<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>21638</bug_id>
          
          <creation_ts>2008-10-16 01:59:47 -0700</creation_ts>
          <short_desc>WebCore/page/FrameTree.cpp:find() dispatches form submissions to incorrect frame</short_desc>
          <delta_ts>2024-08-05 18:43:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Frames</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>UNCONFIRMED</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc>http://dbeclipse.org/webkit/top.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>EasyFix, GoodFirstBug</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="John Holdsworth">webkit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>95522</commentid>
    <comment_count>0</comment_count>
    <who name="John Holdsworth">webkit</who>
    <bug_when>2008-10-16 01:59:47 -0700</bug_when>
    <thetext>Hi,

When two frames in a web application have the same name, on form submission the frame first defined on the page is chosen as the target to load rather than the frame &quot;closest&quot; to the submitting form in the frame tree. The other major browsers: Firefox, IE etc use the closest frame. (See the URL http://dbeclipse.org/webkit/top.html as an example - each form should submit into its own enclosing frame)

A minor four line fix to FrameTree.cpp shown below is already available and is about to be submitted under this bug report. 

To replicate create the following files:

top.html:
&lt;html&gt;
&lt;frameset cols=&apos;50%,50%&apos;&gt;
&lt;frame src=&apos;frame.html&apos;&gt;
&lt;frame src=&apos;frame.html&apos;&gt;
&lt;/frameset&gt;

frame.html:
&lt;html&gt;
&lt;frameset rows=&apos;100,*&apos;&gt;
	&lt;frame src=&apos;form.html&apos;&gt;
	&lt;frame src=&apos;javascript: &quot;&quot;&apos; name=&apos;out&apos;&gt;
&lt;/frameset&gt;

form.html:
&lt;html&gt;&lt;body&gt;
&lt;form target=out action=&apos;http://www.google.com/search&apos;&gt;
Search for: &lt;input name=&apos;q&apos; value=&apos;webkit&apos;&gt;
&lt;input type=submit value=&apos;Click me&apos;&gt;&lt;/form&gt;

On opening top.html both forms submit into the left hand side frame. After applying the fix each form submits to the correct frame beneath the form. This results in no regression according to the webkit-tests.

This fix would be useful in Web 2.0 applications, for example, those which implement their own tabbed interface and have more than one frame with the same name in different frames.

Patch is below:
--- WebCore/page/FrameTree.cpp	(revision 37618)
+++ WebCore/page/FrameTree.cpp	(working copy)
@@ -183,11 +183,13 @@ Frame* FrameTree::find(const AtomicStrin
     if (name == &quot;_blank&quot;)
         return 0;
 
-    // Search subtree starting with this frame first.
-    for (Frame* frame = m_thisFrame; frame; frame = frame-&gt;tree()-&gt;traverseNext(m_thisFrame))
-        if (frame-&gt;tree()-&gt;name() == name)
-            return frame;
-
+    // Search up tree starting with this frame first.
+    for (Frame* parent = m_thisFrame; parent; parent = parent-&gt;tree()-&gt;parent())
+        for (Frame* frame = parent; frame; frame = frame-&gt;tree()-&gt;traverseNext(parent))
+            if (frame-&gt;tree()-&gt;name() == name)
+                return frame;
+    
+	// page search may no longer be required...
     // Search the entire tree for this page next.
     Page* page = m_thisFrame-&gt;page();
 
Thanks for all your work.

Best Regards,

John Holdsworth</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95523</commentid>
    <comment_count>1</comment_count>
      <attachid>24391</attachid>
    <who name="John Holdsworth">webkit</who>
    <bug_when>2008-10-16 02:07:50 -0700</bug_when>
    <thetext>Created attachment 24391
Fix for FrameTree.cpp for ambiguous frames.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95524</commentid>
    <comment_count>2</comment_count>
      <attachid>24392</attachid>
    <who name="John Holdsworth">webkit</who>
    <bug_when>2008-10-16 02:10:46 -0700</bug_when>
    <thetext>Created attachment 24392
Test case for frame bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96543</commentid>
    <comment_count>3</comment_count>
      <attachid>24391</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-10-24 12:12:10 -0700</bug_when>
    <thetext>Comment on attachment 24391
Fix for FrameTree.cpp for ambiguous frames.

&gt; +	Frames now searched for by name starting at the innermost frame
&gt; +	moving up the tree to the outermost containing parent level by level.
Please remove tabs.

&gt; +    // Search up tree starting with this frame first.
&gt; +    for (Frame* parent = m_thisFrame; parent; parent = parent-&gt;tree()-&gt;parent())
&gt; +        for (Frame* frame = parent; frame; frame = frame-&gt;tree()-&gt;traverseNext(parent))
&gt; +            if (frame-&gt;tree()-&gt;name() == name)
&gt; +                return frame;
The two for-loops need braces.  I realize the old code didn&apos;t have them, but they are required for all new code per our style guidelines.

r- due to the style issues.  Please also include a test with a LayoutTests changelog in the same patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96701</commentid>
    <comment_count>4</comment_count>
      <attachid>24681</attachid>
    <who name="John Holdsworth">webkit</who>
    <bug_when>2008-10-26 04:13:51 -0700</bug_when>
    <thetext>Created attachment 24681
Revised Fix for FrameTree.cpp for ambiguous frames.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96702</commentid>
    <comment_count>5</comment_count>
      <attachid>24681</attachid>
    <who name="John Holdsworth">webkit</who>
    <bug_when>2008-10-26 04:16:06 -0700</bug_when>
    <thetext>Comment on attachment 24681
Revised Fix for FrameTree.cpp for ambiguous frames. 

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

&gt;+2008-10-26  John Holdsworth  &lt;webkit@johnholdsworth.com&gt;
&gt;+
&gt;+        Reviewed by NOBODY (OOPS!).
&gt;+
&gt;+        Frames now searched for by name starting at the innermost frame
&gt;+        moving up the tree to the outermost containing parent level by level.
&gt;+
&gt;+        * fast/frames/frameTree-form.html: Added.
&gt;+        * fast/frames/frameTree-frame.html: Added.
&gt;+        * fast/frames/frameTree-top.html: Added.

This is a good first step toward a layout test, John!  However, please note that:

- Layout tests are run in an automated fashion.
- The patch should include the expected results of the tests (see WebKitTools/Scripts/run-webkit-tests --help).
- Layout tests should not depend on external resources (like www.google.com).

Please see this page for more details:

http://webkit.org/quality/testwriting.html

The easiest thing to do is to look at a similar test when writing your own.

Note that since this is a form submission issue, you may need to write an &quot;http&quot; test (see LayoutTest/http/tests/) which run under an Apache web server.

r- to fix layout test issues.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24391</attachid>
            <date>2008-10-16 02:07:50 -0700</date>
            <delta_ts>2008-10-26 04:14:44 -0700</delta_ts>
            <desc>Fix for FrameTree.cpp for ambiguous frames.</desc>
            <filename>frametree.txt</filename>
            <type>text/plain</type>
            <size>1609</size>
            <attacher name="John Holdsworth">webkit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNzYzMCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMDgtMTAtMTYgIEpvaG4gSG9sZHN3b3J0aCAgPHdlYmtpdEBqb2hu
aG9sZHN3b3J0aC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KwlGcmFtZXMgbm93IHNlYXJjaGVkIGZvciBieSBuYW1lIHN0YXJ0aW5nIGF0IHRoZSBpbm5lcm1v
c3QgZnJhbWUKKwltb3ZpbmcgdXAgdGhlIHRyZWUgdG8gdGhlIG91dGVybW9zdCBjb250YWluaW5n
IHBhcmVudCBsZXZlbCBieSBsZXZlbC4KKworICAgICAgICAqIHBhZ2UvRnJhbWVUcmVlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVHJlZTo6ZmluZCk6CisKIDIwMDgtMTAtMTUgIEpvbiBI
b25leWN1dHQgIDxqaG9uZXljdXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdW5uZWVk
ZWQgY2hlY2sgb2Ygd2hldGhlciBhIFBhZ2UgZGVmZXJzIGxvYWRpbmcgYmVmb3JlIHJ1bm5pbmcg
aXQKSW5kZXg6IFdlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGFnZS9GcmFtZVRyZWUuY3BwCShyZXZpc2lvbiAzNzYxOCkKKysrIFdlYkNvcmUvcGFnZS9G
cmFtZVRyZWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODMsMTEgKzE4MywxMyBAQCBGcmFtZSog
RnJhbWVUcmVlOjpmaW5kKGNvbnN0IEF0b21pY1N0cmluCiAgICAgaWYgKG5hbWUgPT0gIl9ibGFu
ayIpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgLy8gU2VhcmNoIHN1YnRyZWUgc3RhcnRpbmcg
d2l0aCB0aGlzIGZyYW1lIGZpcnN0LgotICAgIGZvciAoRnJhbWUqIGZyYW1lID0gbV90aGlzRnJh
bWU7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dChtX3RoaXNGcmFt
ZSkpCi0gICAgICAgIGlmIChmcmFtZS0+dHJlZSgpLT5uYW1lKCkgPT0gbmFtZSkKLSAgICAgICAg
ICAgIHJldHVybiBmcmFtZTsKLQorICAgIC8vIFNlYXJjaCB1cCB0cmVlIHN0YXJ0aW5nIHdpdGgg
dGhpcyBmcmFtZSBmaXJzdC4KKyAgICBmb3IgKEZyYW1lKiBwYXJlbnQgPSBtX3RoaXNGcmFtZTsg
cGFyZW50OyBwYXJlbnQgPSBwYXJlbnQtPnRyZWUoKS0+cGFyZW50KCkpCisgICAgICAgIGZvciAo
RnJhbWUqIGZyYW1lID0gcGFyZW50OyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2
ZXJzZU5leHQocGFyZW50KSkKKyAgICAgICAgICAgIGlmIChmcmFtZS0+dHJlZSgpLT5uYW1lKCkg
PT0gbmFtZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZnJhbWU7CisgICAgCisJLy8gcGFnZSBz
ZWFyY2ggbWF5IG5vIGxvbmdlciBiZSByZXF1aXJlZC4uLgogICAgIC8vIFNlYXJjaCB0aGUgZW50
aXJlIHRyZWUgZm9yIHRoaXMgcGFnZSBuZXh0LgogICAgIFBhZ2UqIHBhZ2UgPSBtX3RoaXNGcmFt
ZS0+cGFnZSgpOwogCg==
</data>
<flag name="review"
          id="11114"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>24392</attachid>
            <date>2008-10-16 02:10:46 -0700</date>
            <delta_ts>2008-10-16 02:10:46 -0700</delta_ts>
            <desc>Test case for frame bug.</desc>
            <filename>frametree.tgz</filename>
            <type>application/octet-stream</type>
            <size>563</size>
            <attacher name="John Holdsworth">webkit</attacher>
            
              <data encoding="base64">H4sICDAE90gAA2ZyYW1ldHJlZS50YXIA7ZZPb5RAGIdHE2O6F2968DJpYkhMBYa/dQWSxujNmNg1
8WZYygItMAizxb34SfoN/GZ+Ct/ZZWuKSdcmgpv4PsksAzNDZoHfPKNq6ucFrws1FUVOhkEHHMta
H13HXh91Y3O+rtomYUx3bdt1dBeuM8NwHEL1geZzg2UjwppScs7TMr2lH3RbLMaY0Mg8ePyQ3Cfk
XRjR96f0E+2Q18gBFAPKCoo8//5ntzyZzT6Qpz+absQVlEe9Lvd+XX8S8UINqyqP1Vn8VbwpI36W
lQk0fpy9fXH8ipmWwdyXx9bf+b/IDYbOvmRn/k27l3/mMgvzPwaefPeBN+dnq2Diya+BwvNIYuHz
paBhJDJe+koqRDXVtLZt1YTzBKIKodWaOKyjVAkmp+sKhdFT6mVlBSPLsIh95YtCL8N8CbU2nl9k
Avp27WJVxX6znBeZ2HZ5nWfRBS1iJfA0OZFg8q8fzn+AKv1fw8sacBG4k/+ZIf1v6TbmfxSG839C
0P97z9DZl+zKP7Ptfv51E/0/Chv/g/nld9DEgta8bXyF6frRc7D1waaBNnXkK9d7xX7DeXgZNlGd
VWJKDw+VTv6wgZC+17a3Rp/vIdL/gleDrgB38b9cCyD/zED/j8Nw/v9G0P97z9DZl+z0v+n28g+/
6P9R+M3/Ec/B/7b+7AiKsm3pNgDXm8VbG9D4CIIgCIIgCIIgCIIg+8NP5goeigAoAAA=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24681</attachid>
            <date>2008-10-26 04:13:51 -0700</date>
            <delta_ts>2010-06-10 16:22:04 -0700</delta_ts>
            <desc>Revised Fix for FrameTree.cpp for ambiguous frames. </desc>
            <filename>frameTree.txt</filename>
            <type>text/plain</type>
            <size>3851</size>
            <attacher name="John Holdsworth">webkit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNzg5NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMDgtMTAtMjYgIEpvaG4gSG9sZHN3b3J0aCAgPHdlYmtpdEBqb2hu
aG9sZHN3b3J0aC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGVzdHM6IGZhc3QvZnJhbWVzL2ZyYW1lVHJlZS10b3AuaHRtbAorICAgICAgICAg
ICAgICAgZmFzdC9mcmFtZXMvZnJhbWVUcmVlLWZyYW1lLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZnJhbWVzL2ZyYW1lVHJlZS1mb3JtLmh0bWwKKworICAgICAgICBGcmFtZXMgbm93IHNlYXJj
aGVkIGZvciBieSBuYW1lIHN0YXJ0aW5nIGF0IHRoZSBpbm5lcm1vc3QgZnJhbWUKKyAgICAgICAg
bW92aW5nIHVwIHRoZSB0cmVlIHRvIHRoZSBvdXRlcm1vc3QgY29udGFpbmluZyBwYXJlbnQgbGV2
ZWwgYnkgbGV2ZWwuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVHJlZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZVRyZWU6OmZpbmQpOgorCiAyMDA4LTEwLTI1ICBHZW9mZnJleSBHYXJlbiAg
PGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgTm90IHJldmlld2VkLgpJbmRleDogV2ViQ29y
ZS9wYWdlL0ZyYW1lVHJlZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0ZyYW1lVHJl
ZS5jcHAJKHJldmlzaW9uIDM3ODk0KQorKysgV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE4MywxMCArMTgzLDE1IEBAIEZyYW1lKiBGcmFtZVRyZWU6OmZpbmQo
Y29uc3QgQXRvbWljU3RyaW4KICAgICBpZiAobmFtZSA9PSAiX2JsYW5rIikKICAgICAgICAgcmV0
dXJuIDA7CiAKLSAgICAvLyBTZWFyY2ggc3VidHJlZSBzdGFydGluZyB3aXRoIHRoaXMgZnJhbWUg
Zmlyc3QuCi0gICAgZm9yIChGcmFtZSogZnJhbWUgPSBtX3RoaXNGcmFtZTsgZnJhbWU7IGZyYW1l
ID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KG1fdGhpc0ZyYW1lKSkKLSAgICAgICAgaWYg
KGZyYW1lLT50cmVlKCktPm5hbWUoKSA9PSBuYW1lKQotICAgICAgICAgICAgcmV0dXJuIGZyYW1l
OworICAgIC8vIFNlYXJjaCB1cCB0cmVlIHN0YXJ0aW5nIHdpdGggdGhpcyBmcmFtZSBmaXJzdC4K
KyAgICBmb3IgKEZyYW1lKiBwYXJlbnQgPSBtX3RoaXNGcmFtZTsgcGFyZW50OyBwYXJlbnQgPSBw
YXJlbnQtPnRyZWUoKS0+cGFyZW50KCkpIHsKKyAgICAgICAgZm9yIChGcmFtZSogZnJhbWUgPSBw
YXJlbnQ7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dChwYXJlbnQp
KSB7CisgICAgICAgICAgIGlmIChmcmFtZS0+dHJlZSgpLT5uYW1lKCkgPT0gbmFtZSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZnJhbWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBwYWdl
IHNlYXJjaCBtYXkgbm8gbG9uZ2VyIGJlIHJlcXVpcmVkLi4uCiAKICAgICAvLyBTZWFyY2ggdGhl
IGVudGlyZSB0cmVlIGZvciB0aGlzIHBhZ2UgbmV4dC4KICAgICBQYWdlKiBwYWdlID0gbV90aGlz
RnJhbWUtPnBhZ2UoKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDM3ODk0KQorKysgTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDgtMTAtMjYgIEpv
aG4gSG9sZHN3b3J0aCAgPHdlYmtpdEBqb2huaG9sZHN3b3J0aC5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRnJhbWVzIG5vdyBzZWFyY2hlZCBm
b3IgYnkgbmFtZSBzdGFydGluZyBhdCB0aGUgaW5uZXJtb3N0IGZyYW1lCisgICAgICAgIG1vdmlu
ZyB1cCB0aGUgdHJlZSB0byB0aGUgb3V0ZXJtb3N0IGNvbnRhaW5pbmcgcGFyZW50IGxldmVsIGJ5
IGxldmVsLgorCisgICAgICAgICogZmFzdC9mcmFtZXMvZnJhbWVUcmVlLWZvcm0uaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9mcmFtZXMvZnJhbWVUcmVlLWZyYW1lLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZnJhbWVzL2ZyYW1lVHJlZS10b3AuaHRtbDogQWRkZWQuCisKIDIwMDgt
MTAtMjQgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IFNhbSBXZWluaWcuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mcmFtZVRyZWUt
Zm9ybS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lVHJl
ZS1mb3JtLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mcmFt
ZVRyZWUtZm9ybS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYgQEAKKzwhLS0gc2VlL29w
ZW4gZnJhbWVUcmVlLXRvcC5odG1sIC0tPgorPGh0bWw+PGJvZHk+Cis8Zm9ybSB0YXJnZXQ9b3V0
IGFjdGlvbj0naHR0cDovL3d3dy5nb29nbGUuY29tL3NlYXJjaCc+CitTZWFyY2ggZm9yOiA8aW5w
dXQgbmFtZT0ncScgdmFsdWU9J3dlYmtpdCc+Cis8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9J0Ns
aWNrIG1lJz48L2Zvcm0+CitPdXRwdXQgZnJvbSBmb3JtIHN1Ym1pc3Npb24gc2hvdWxkIGFwcGVh
ciBiZWxvdy4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lVHJlZS1mcmFtZS5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lVHJlZS1mcmFt
ZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZnJhbWVUcmVl
LWZyYW1lLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNiBAQAorPCEtLSBzZWUvb3BlbiBm
cmFtZVRyZWUtdG9wLmh0bWwgLS0+Cis8aHRtbD4KKzxmcmFtZXNldCByb3dzPScxMDAsKic+CisJ
PGZyYW1lIHNyYz0nZnJhbWVUcmVlLWZvcm0uaHRtbCc+CisJPGZyYW1lIHNyYz0namF2YXNjcmlw
dDogIiInIG5hbWU9J291dCc+Cis8L2ZyYW1lc2V0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9m
cmFtZXMvZnJhbWVUcmVlLXRvcC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZnJhbWVzL2ZyYW1lVHJlZS10b3AuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvZnJhbWVzL2ZyYW1lVHJlZS10b3AuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMCBA
QAorPC0tCisKK09wZW4gdG8gdGVzdCBmaXggZm9yIGJ1Z3ppbGxhIEJ1ZyMgMjE2Mzg6IFdlYkNv
cmUvcGFnZS9GcmFtZVRyZWUuY3BwOmZpbmQoKSBkaXNwYXRjaGVzIGZvcm0gc3VibWlzc2lvbnMg
dG8gaW5jb3JyZWN0IGZyYW1lCisKKy0tPgorPGh0bWw+Cis8ZnJhbWVzZXQgY29scz0nNTAlLDUw
JSc+Cis8ZnJhbWUgc3JjPSdmcmFtZVRyZWUtZnJhbWUuaHRtbCc+Cis8ZnJhbWUgc3JjPSdmcmFt
ZVRyZWUtZnJhbWUuaHRtbCc+Cis8L2ZyYW1lc2V0Pgo=
</data>
<flag name="review"
          id="11279"
          type_id="1"
          status="-"
          setter="ddkilzer"
    />
          </attachment>
      

    </bug>

</bugzilla>