[webkit-reviews] review requested: [Bug 21638] WebCore/page/FrameTree.cpp:find() dispatches form submissions to incorrect frame : [Attachment 24681] Revised Fix for FrameTree.cpp for ambiguous frames.

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sun Oct 26 04:16:06 PDT 2008


John Holdsworth <webkit at johnholdsworth.com> has asked  for review:
Bug 21638: WebCore/page/FrameTree.cpp:find() dispatches form submissions to
incorrect frame
https://bugs.webkit.org/show_bug.cgi?id=21638

Attachment 24681: Revised Fix for FrameTree.cpp for ambiguous frames. 
https://bugs.webkit.org/attachment.cgi?id=24681&action=edit

------- Additional Comments from John Holdsworth <webkit at johnholdsworth.com>
> Index: WebCore/ChangeLog
> ===================================================================
> --- WebCore/ChangeLog (revision 37894)
> +++ WebCore/ChangeLog (working copy)
> @@ -1,3 +1,17 @@
> +2008-10-26  John Holdsworth	<webkit at johnholdsworth.com>
> +
> +	   Reviewed by NOBODY (OOPS!).
> +
> +	   Tests: fast/frames/frameTree-top.html
> +		  fast/frames/frameTree-frame.html
> +		  fast/frames/frameTree-form.html
> +
> +	   Frames now searched for by name starting at the innermost frame
> +	   moving up the tree to the outermost containing parent level by
level.
> +
> +	   * page/FrameTree.cpp:
> +	   (WebCore::FrameTree::find):
> +
>  2008-10-25  Geoffrey Garen  <ggaren at apple.com>
>  
>	   Not reviewed.
> Index: WebCore/page/FrameTree.cpp
> ===================================================================
> --- WebCore/page/FrameTree.cpp	(revision 37894)
> +++ WebCore/page/FrameTree.cpp	(working copy)
> @@ -183,10 +183,15 @@ Frame* FrameTree::find(const AtomicStrin
>      if (name == "_blank")
>	   return 0;
>  
> -    // Search subtree starting with this frame first.
> -    for (Frame* frame = m_thisFrame; frame; frame =
frame->tree()->traverseNext(m_thisFrame))
> -	   if (frame->tree()->name() == name)
> -	       return frame;
> +    // Search up tree starting with this frame first.
> +    for (Frame* parent = m_thisFrame; parent; parent =
parent->tree()->parent()) {
> +	   for (Frame* frame = parent; frame; frame =
frame->tree()->traverseNext(parent)) {
> +	      if (frame->tree()->name() == name)
> +		   return frame;
> +	   }
> +    }
> +
> +    // page search may no longer be required...
>  
>      // Search the entire tree for this page next.
>      Page* page = m_thisFrame->page();
> Index: LayoutTests/ChangeLog
> ===================================================================
> --- LayoutTests/ChangeLog	(revision 37894)
> +++ LayoutTests/ChangeLog	(working copy)
> @@ -1,3 +1,14 @@
> +2008-10-26  John Holdsworth	<webkit at johnholdsworth.com>
> +
> +	   Reviewed by NOBODY (OOPS!).
> +
> +	   Frames now searched for by name starting at the innermost frame
> +	   moving up the tree to the outermost containing parent level by
level.
> +
> +	   * fast/frames/frameTree-form.html: Added.
> +	   * fast/frames/frameTree-frame.html: Added.
> +	   * fast/frames/frameTree-top.html: Added.
> +
>  2008-10-24  Eric Seidel  <eric at webkit.org>
>  
>	   Reviewed by Sam Weinig.
> Index: LayoutTests/fast/frames/frameTree-form.html
> ===================================================================
> --- LayoutTests/fast/frames/frameTree-form.html	(revision 0)
> +++ LayoutTests/fast/frames/frameTree-form.html	(revision 0)
> @@ -0,0 +1,6 @@
> +<!-- see/open frameTree-top.html -->
> +<html><body>
> +<form target=out action='http://www.google.com/search'>
> +Search for: <input name='q' value='webkit'>
> +<input type=submit value='Click me'></form>
> +Output from form submission should appear below.
> Index: LayoutTests/fast/frames/frameTree-frame.html
> ===================================================================
> --- LayoutTests/fast/frames/frameTree-frame.html	(revision 0)
> +++ LayoutTests/fast/frames/frameTree-frame.html	(revision 0)
> @@ -0,0 +1,6 @@
> +<!-- see/open frameTree-top.html -->
> +<html>
> +<frameset rows='100,*'>
> +	<frame src='frameTree-form.html'>
> +	<frame src='javascript: ""' name='out'>
> +</frameset>
> Index: LayoutTests/fast/frames/frameTree-top.html
> ===================================================================
> --- LayoutTests/fast/frames/frameTree-top.html	(revision 0)
> +++ LayoutTests/fast/frames/frameTree-top.html	(revision 0)
> @@ -0,0 +1,10 @@
> +<--
> +
> +Open to test fix for bugzilla Bug# 21638: WebCore/page/FrameTree.cpp:find()
dispatches form submissions to incorrect frame
> +
> +-->
> +<html>
> +<frameset cols='50%,50%'>
> +<frame src='frameTree-frame.html'>
> +<frame src='frameTree-frame.html'>
> +</frameset>


More information about the webkit-reviews mailing list