<?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>38928</bug_id>
          
          <creation_ts>2010-05-11 12:44:19 -0700</creation_ts>
          <short_desc>Repro crash at http://www.sears.com</short_desc>
          <delta_ts>2010-09-02 12:22:09 -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>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.sears.com</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>43840</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>robert</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>224096</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-05-11 12:44:19 -0700</bug_when>
    <thetext>1. Navigate to http://www.sears.com. 
2. Select a product category (ex. Health &amp; Wellness &gt; Air Treatments).
3. Press List View.
4. Select first and second product.
5. Press Compare Now.
6. Press back button.
7. Press Compare Now again.
--Observe: Nothing happens; product comparison not displayed (unexpected).
8. Select Sign In link.

Deref&apos;ing a null DocumentLoader

#0	0x102720ba8 in WTF::OwnPtr&lt;WebCore::ArchiveResourceCollection&gt;::operator WebCore::ArchiveResourceCollection* WTF::OwnPtr&lt;WebCore::ArchiveResourceCollection&gt;::* at OwnPtr.h:69
#1	0x10271ea2e in WebCore::DocumentLoader::popArchiveForSubframe at DocumentLoader.cpp:441
#2	0x1028556ba in WebCore::FrameLoader::loadURLIntoChildFrame at FrameLoader.cpp:1082
#3	0x101fca3ab in WebFrameLoaderClient::createFrame at WebFrameLoaderClient.mm:1364
#4	0x1028559e6 in WebCore::FrameLoader::loadSubframe at FrameLoader.cpp:410
#5	0x102855cf0 in WebCore::FrameLoader::requestFrame at FrameLoader.cpp:381
#6	0x1028f1dc1 in WebCore::HTMLFrameElementBase::openURL at HTMLFrameElementBase.cpp:107
#7	0x1028f2399 in WebCore::HTMLFrameElementBase::setNameAndOpenURL at HTMLFrameElementBase.cpp:166
#8	0x1028f23b1 in WebCore::HTMLFrameElementBase::setNameAndOpenURLCallback at HTMLFrameElementBase.cpp:171
#9	0x1025cd61c in WebCore::ContainerNode::dispatchPostAttachCallbacks at ContainerNode.cpp:611
#10	0x1025cd764 in WebCore::ContainerNode::resumePostAttachCallbacks at ContainerNode.cpp:583
#11	0x1027eb223 in WebCore::Element::attach at Element.cpp:837
#12	0x1028f1964 in WebCore::HTMLFrameElementBase::attach at HTMLFrameElementBase.cpp:212
#13	0x102caa8ce in WebCore::Node::lazyAttach at Node.cpp:748
#14	0x1025cdcc1 in WebCore::ContainerNode::appendChild at ContainerNode.cpp:525
#15	0x102b03b37 in WebCore::JSNode::appendChild at JSNodeCustom.cpp:165
#16	0x102b023b6 in WebCore::jsNodePrototypeFunctionAppendChild at JSNode.cpp:471
...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224097</commentid>
    <comment_count>1</comment_count>
      <attachid>55738</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-05-11 12:44:55 -0700</bug_when>
    <thetext>Created attachment 55738
Reduction with description of the problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224101</commentid>
    <comment_count>2</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-05-11 12:48:35 -0700</bug_when>
    <thetext>Sears.com scripts have bizarre Safari specific code paths that do this.

The anchor element they create within their onbeforeunload handler and then dispatch a click to actually activates the policy delegate to consult about the navigation.

When the policy delegate says &quot;use&quot;, we call onbeforeunload again, which does the same thing with the anchor, consulting the policy delegate, etc etc etc.

All the way till we blow out the stack and javascript aborts.

Here&apos;s a cut of a single iteration of the stack blowing out:

#0	0x1026c550e in WebCore::FrameLoader::continueLoadAfterNavigationPolicy at FrameLoader.cpp:3425
#1	0x1026c561c in WebCore::FrameLoader::callContinueLoadAfterNavigationPolicy at FrameLoader.cpp:3366
#2	0x102b6e063 in WebCore::PolicyCallback::call at PolicyCallback.cpp:101
#3	0x102b6ebb3 in WebCore::PolicyChecker::continueAfterNavigationPolicy at PolicyChecker.cpp:160
#4	0x101e3b999 in WebFrameLoaderClient::receivedPolicyDecison at WebFrameLoaderClient.mm:1271
#5	0x101e3ba2e in -[WebFramePolicyListener receivedPolicyDecision:] at WebFrameLoaderClient.mm:1864
#6	0x101e38066 in -[WebFramePolicyListener use] at WebFrameLoaderClient.mm:1879
#7	Browser policy delegate
#8	Browser policy delegate
#9	Browser policy delegate
#10	0x7fff88026d8c in __invoking___
#11	0x7fff88026c5d in -[NSInvocation invoke]
#12	0x7fff88042a71 in -[NSInvocation invokeWithTarget:]
#13	0x101ed9f3e in -[_WebSafeForwarder forwardInvocation:] at WebView.mm:2467
#14	0x7fff88023dac in ___forwarding___
#15	0x7fff8801fe88 in __forwarding_prep_0___
#16	0x101e3cc30 in WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction at WebFrameLoaderClient.mm:750
#17	0x102b6f130 in WebCore::PolicyChecker::checkNavigationPolicy at PolicyChecker.cpp:88
#18	0x1026c5a34 in WebCore::FrameLoader::loadWithDocumentLoader at FrameLoader.cpp:1992
#19	0x1026c680a in WebCore::FrameLoader::loadWithNavigationAction at FrameLoader.cpp:1916
#20	0x1026c7c9e in WebCore::FrameLoader::loadURL at FrameLoader.cpp:1859
#21	0x1026c819d in WebCore::FrameLoader::loadFrameRequest at FrameLoader.cpp:1795
#22	0x1026c8545 in WebCore::FrameLoader::urlSelected at FrameLoader.cpp:361
#23	0x10273842d in WebCore::HTMLAnchorElement::defaultEventHandler at HTMLAnchorElement.cpp:199
#24	0x102b193a9 in WebCore::Node::dispatchGenericEvent at Node.cpp:2683
#25	0x102b19607 in WebCore::Node::dispatchEvent at Node.cpp:2567
#26	0x102678278 in WebCore::EventTarget::dispatchEvent at EventTarget.cpp:268
#27	0x102974c23 in WebCore::jsNodePrototypeFunctionDispatchEvent at JSNode.cpp:664
#28	0x33828e4001b4 in ??
#29	0x1017acca4 in JSC::JITCode::execute at JITCode.h:77
#30	0x1017974f0 in JSC::Interpreter::execute at Interpreter.cpp:758
#31	0x1017f2298 in JSC::JSFunction::call at JSFunction.cpp:139
#32	0x10173f45b in JSC::call at CallData.cpp:39
#33	0x1028e8392 in WebCore::JSEventListener::handleEvent at JSEventListener.cpp:116
#34	0x10267818a in WebCore::EventTarget::fireEventListeners at EventTarget.cpp:329
#35	0x102678877 in WebCore::EventTarget::fireEventListeners at EventTarget.cpp:290
#36	0x102630f44 in WebCore::DOMWindow::dispatchEvent at DOMWindow.cpp:1444
#37	0x1026ad413 in WebCore::Frame::shouldClose at Frame.cpp:1684
#38	0x1026c52ff in WebCore::FrameLoader::continueLoadAfterNavigationPolicy at FrameLoader.cpp:3383</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224105</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-05-11 12:52:15 -0700</bug_when>
    <thetext>When the stack blows out and javascript aborts, the FrameLoader is left in a bizarre state where it thinks it is the middle of FrameLoadStateProvisional, but doesn&apos;t have a provisional documentloader.

This allows for the later crash, but also makes the frame un-navigable in the meantime.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224106</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-05-11 12:52:31 -0700</bug_when>
    <thetext>&lt;rdar://problem/7965182&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224109</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-05-11 12:56:21 -0700</bug_when>
    <thetext>The most obvious and glaring problem here is that we re-enter the onbeforeunload event.  Running the same test in Firefox, it&apos;s clear they don&apos;t re-enter.  Modifying it for IE, they seem to enter it twice (once for the original navigation, once for the first dispatched click) but then they navigate to the first site as expected.

I plan to protect the beforeunload event the same way we protect against unload re-entrancy, with a simple wrapper flag.

Another problem is what happens to the FrameLoader when onbeforeunload aborts (as JSCore is actually aborting the javascript execution when the stack reaches its limit).  I plan to at least add an ASSERT in ::activeDocumentLoader to catch the case that should never occur, and might explore the javascript-aborts aspect further, as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224112</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-05-11 12:57:48 -0700</bug_when>
    <thetext>BTW, this isn&apos;t a (recent) regression.  Happens in ToT but also in Safari 4.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224122</commentid>
    <comment_count>7</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-05-11 13:23:46 -0700</bug_when>
    <thetext>Debugging a bit, it&apos;s not immediately clear why the aborted javascript due to the excessive stack results in the FrameLoadState and m_provisionalDocumentLoader getting out of sync.

I&apos;m going to focus on preventing the recursion in the onbeforeunload event handler and adding the ASSERT, then might revisit the out-of-syncness later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224804</commentid>
    <comment_count>8</comment_count>
      <attachid>55886</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-05-12 12:32:42 -0700</bug_when>
    <thetext>Created attachment 55886
Fix + layout test

Guarding beforeunload with the same flag as we do pagehide and unload makes sense.

But renaming the flag also seemed prudent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224908</commentid>
    <comment_count>9</comment_count>
      <attachid>55886</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-12 14:42:18 -0700</bug_when>
    <thetext>Comment on attachment 55886
Fix + layout test

Instead of making setPageDismissalEventBeingDispatched public, could we instead refactor part of the Frame::shouldClose function so it can go inside FrameLoader?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224909</commentid>
    <comment_count>10</comment_count>
      <attachid>55886</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-12 14:42:41 -0700</bug_when>
    <thetext>Comment on attachment 55886
Fix + layout test

Lets land the renaming half of the patch first, separately. Sound OK?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224927</commentid>
    <comment_count>11</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-05-12 14:59:00 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 55886 [details])
&gt; Lets land the renaming half of the patch first, separately. Sound OK?

Sounds fine.  r+ on doing that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224928</commentid>
    <comment_count>12</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-05-12 15:00:10 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 55886 [details])
&gt; Instead of making setPageDismissalEventBeingDispatched public, could we instead refactor part of the Frame::shouldClose function so it can go inside FrameLoader?

Frame::shouldClose has a direct API/SPI equivalent in WebKit on WebFrame.

I&apos;m not saying it *couldn&apos;t* be done, but it might be much messier than one might think at a glance.

Would you like me to pursue that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225372</commentid>
    <comment_count>13</comment_count>
      <attachid>55995</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-05-13 10:37:00 -0700</bug_when>
    <thetext>Created attachment 55995
Rename m_unloadEventBeingDispatched to m_pageDismissalEventBeingDispatched</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225373</commentid>
    <comment_count>14</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-05-13 10:37:13 -0700</bug_when>
    <thetext>Split off the rename, per Darin&apos;s request.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225392</commentid>
    <comment_count>15</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-05-13 11:18:04 -0700</bug_when>
    <thetext>Rename landed in http://trac.webkit.org/changeset/59374</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225473</commentid>
    <comment_count>16</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-05-13 13:36:47 -0700</bug_when>
    <thetext>Not too different from the original patch, I landed http://trac.webkit.org/changeset/59384 with an in-person review from Darin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225496</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-13 14:02:54 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/59384 might have broken Qt Linux Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225525</commentid>
    <comment_count>18</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-05-13 15:03:55 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; http://trac.webkit.org/changeset/59384 might have broken Qt Linux Release

I don&apos;t see a broken build on Qt Linux Release, nor did this automated message give me a link to something that shows the alleged breakage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225526</commentid>
    <comment_count>19</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-05-13 15:04:23 -0700</bug_when>
    <thetext>BTW, I know I caused a failure on the Tiger bot and am getting new results ready for it as I type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225532</commentid>
    <comment_count>20</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-05-13 15:13:29 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/59389 should fix the Tiger layouttests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225534</commentid>
    <comment_count>21</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-13 15:16:39 -0700</bug_when>
    <thetext>&gt; I don&apos;t see a broken build on Qt Linux Release, nor did this automated message give me a link to something that shows the alleged breakage.

http://build.webkit.org/waterfall?show=Qt%20Linux%20Release
http://build.webkit.org/results/Qt%20Linux%20Release/r59384%20(11726)/results.html

Tests that timed out:

fast/loader/recursive-before-unload-crash.html

... which is a test added by your patch...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225538</commentid>
    <comment_count>22</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-05-13 15:31:48 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; &gt; I don&apos;t see a broken build on Qt Linux Release, nor did this automated message give me a link to something that shows the alleged breakage.
&gt; 
&gt; http://build.webkit.org/waterfall?show=Qt%20Linux%20Release
&gt; http://build.webkit.org/results/Qt%20Linux%20Release/r59384%20(11726)/results.html
&gt; 
&gt; Tests that timed out:
&gt; 
&gt; fast/loader/recursive-before-unload-crash.html
&gt; 
&gt; ... which is a test added by your patch...

Someone else pointed that out to me.

Did the waterfall &quot;View Results&quot; links used to link *DIRECTLY* to results.html?

I seem to recall not needing to click results.html in the past.  Since I was giving a directory listing and not a page that actually described results, I clicked through to fast/loader and saw nothing, and didn&apos;t know what the complaint was.

Could the error message posted in bugzilla be... more useful?

What it told me:
http://trac.webkit.org/changeset/59384 might have broken Qt Linux Release

When I read that, I first thought &quot;Oh, I broke the build,&quot; and was actually confused when I saw the build was fine.

What it COULD have told me:
http://trac.webkit.org/changeset/59384 might have broken Qt Linux Release layout tests.  Refer to http://build.webkit.org/results/Qt%20Linux%20Release/r59384%20(11726)/results.html to see what I&apos;m talking about.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225541</commentid>
    <comment_count>23</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-05-13 15:33:38 -0700</bug_when>
    <thetext>Looking at the diffs for GTK, it&apos;s clear that their DRT isn&apos;t ready for these types of resource load callback dumping.  I&apos;ll skip it there.

And the Qt hang is something I&apos;m not equipped to explore, and the tool isn&apos;t giving any sort of info like a sample that might let me explore blindly, so I&apos;ll skip that also.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225545</commentid>
    <comment_count>24</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-05-13 15:40:10 -0700</bug_when>
    <thetext>Skipped for both Qt and GTK in r59392</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225551</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-13 15:56:05 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/59389 might have broken Qt Windows 32-bit Release
The following changes are on the blame list:
http://trac.webkit.org/changeset/59387
http://trac.webkit.org/changeset/59388
http://trac.webkit.org/changeset/59389</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225587</commentid>
    <comment_count>26</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-05-13 17:42:53 -0700</bug_when>
    <thetext>fast/loader/recursive-before-unload.html failed again on Tiger:

--- /Volumes/Data/WebKit-BuildSlave/tiger-intel-release/build/layout-test-results/fast/loader/recursive-before-unload-crash-expected.txt	2010-05-13 17:13:21.000000000 -0700
+++ /Volumes/Data/WebKit-BuildSlave/tiger-intel-release/build/layout-test-results/fast/loader/recursive-before-unload-crash-actual.txt	2010-05-13 17:13:21.000000000 -0700
@@ -6,8 +6,8 @@
 main frame - didStartProvisionalLoadForFrame
 ALERT: Adding iframe
 frame &quot;&lt;!--framePath //&lt;!--frame0--&gt;--&gt;&quot; - didStartProvisionalLoadForFrame
-frame &quot;&lt;!--framePath //&lt;!--frame0--&gt;--&gt;&quot; - didFailProvisionalLoadWithError
 main frame - didCancelClientRedirectForFrame
+frame &quot;&lt;!--framePath //&lt;!--frame0--&gt;--&gt;&quot; - didFailProvisionalLoadWithError
 main frame - didFailProvisionalLoadWithError
 This test demonstrates a problem with our handling of the beforeunload event.
 If a script manages to try and navigate the frame from beforeunload - when a navigation is already pending - we end up blowing out the stack by recursively consulting the policy delegate then running onbeforeunload repeatedly.

Looks like the test itself is racy (at least on Tiger), those two lines have flipped around a few times since the test was added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225606</commentid>
    <comment_count>27</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-05-13 18:09:59 -0700</bug_when>
    <thetext>I think I&apos;m going to nuke the frame load callbacks from the test.  I thought they were a nice bonus, but if they&apos;re unreliable then it&apos;s not worth the hassle - the alert logging and lack of crashing is the important thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235376</commentid>
    <comment_count>28</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-06-08 11:09:27 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; Looking at the diffs for GTK, it&apos;s clear that their DRT isn&apos;t ready for these types of resource load callback dumping.  I&apos;ll skip it there.
&gt; 
&gt; And the Qt hang is something I&apos;m not equipped to explore, and the tool isn&apos;t giving any sort of info like a sample that might let me explore blindly, so I&apos;ll skip that also.

I think the timeout is related to the issue tracked here: https://bugs.webkit.org/show_bug.cgi?id=39160</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242133</commentid>
    <comment_count>29</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-23 16:08:32 -0700</bug_when>
    <thetext>Have seen fast/loader/recursive-before-unload-crash.html fail a couple times on the leopard commit bot.  Might be flaky.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273497</commentid>
    <comment_count>30</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-02 12:22:09 -0700</bug_when>
    <thetext>This test is in fact very flaky.  See bug 43840.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>55738</attachid>
            <date>2010-05-11 12:44:55 -0700</date>
            <delta_ts>2010-05-11 12:44:55 -0700</delta_ts>
            <desc>Reduction with description of the problem.</desc>
            <filename>infinite-before-unload.html</filename>
            <type>text/html</type>
            <size>1418</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">PHNjcmlwdD4Kd2luZG93Lm9uYmVmb3JldW5sb2FkID0gZnVuY3Rpb24oKSB7CiAgICB2YXIgYSA9
IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCJNb3VzZUV2ZW50cyIpOwogICAgYS5pbml0RXZlbnQoImNs
aWNrIiwgdHJ1ZSwgdHJ1ZSk7CiAgICB2YXIgZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEi
KTsKICAgIGQuaHJlZiA9ICJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyI7CiAgICBkLmRpc3BhdGNo
RXZlbnQoYSk7Cn0KCmZ1bmN0aW9uIGNsaWNrZWQoKSB7CiAgICB3aW5kb3cubG9jYXRpb24uaHJl
Zj0iaHR0cDovL3d3dy53ZWJraXQub3JnLyI7Cn0KCmZ1bmN0aW9uIGFkZElmcmFtZSgpIHsKICAg
IHZhciBmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwogICAgZnJhbWUu
c3JjID0gImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGZyYW1lKTsKfQoKPC9zY3JpcHQ+Cjxib2R5PgpUaGlzIHRlc3QgZGVtb25zdHJhdGVzIGEg
cHJvYmxlbSB3aXRoIG91ciBoYW5kbGluZyBvZiB0aGUgYmVmb3JldW5sb2FkIGV2ZW50Ljxicj4K
SWYgYSBzY3JpcHQgbWFuYWdlcyB0byB0cnkgYW5kIG5hdmlnYXRlIHRoZSBmcmFtZSBmcm9tIGJl
Zm9yZXVubG9hZCAtIHdoZW4gYSBuYXZpZ2F0aW9uIGlzIGFscmVhZHkgcGVuZGluZyAtIHdlIGVu
ZCB1cCBibG93aW5nIG91dCB0aGUgc3RhY2sgYnkgcmVjdXJzaXZlbHkgY29uc3VsdGluZyB0aGUg
cG9saWN5IGRlbGVnYXRlIHRoZW4gcnVubmluZyBvbmJlZm9yZXVubG9hZCByZXBlYXRlZGx5Ljxi
cj4KQWZ0ZXIgdGhpcyBoYXBwZW5zLCB0aGUgRnJhbWVMb2FkZXIgaXMgaW4gYSBib2d1cyBzdGF0
ZSB3aGVyZSBpdCB0aGlua3MgaXQgaXMgaW4gdGhlIG1pZGRsZSBvZiBhIHByb3Zpc2lvbmFsIGxv
YWQsIGJ1dCBpdCBkb2Vzbid0IGhhdmUgYSBwcm92aXNpb25hbCBkb2N1bWVudCBsb2FkZXIuPGJy
PgpJbiB0aGlzIHN0YXRlLCB0aGUgZnJhbWUgaXMgdmVyeSBkaWZmaWN1bHQgdG8gbmF2aWdhdGUg
YW55d2hlcmUgZWxzZSwgYW5kIGF0dGVtcHRzIHRvIGxvYWQgbmV3IHRoaW5ncyB3aXRoaW4gdGhl
IGZyYW1lIGNhbiByZXN1bHQgaW4gYSBjcmFzaC48YnI+ClRoaXMgd2FzIHJlcHJvZHVjaWJseSBp
ZGVudGlmaWVkIG9uIHNlYXJzLmNvbSBmb2xsb3dpbmcgYSBiaXphcnJlIFNhZmFyaSBzcGVjaWZp
YyBjb2RlIHBhdGguPGJyPgo8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoY2xpY2tlZCgpKSI+Q2xp
Y2sgaGVyZSB0byBydW4gdGhlIGJlZm9yZXVubG9hZCB0ZXN0IGFuZCBibG93IG91dCB0aGUgc3Rh
Y2s8L2E+PGJyPgo8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoYWRkSWZyYW1lKCkpIj5DbGljayBo
ZXJlIHRvIGFwcGVuZCBhbiBpZnJhbWUgYW5kIGNyYXNoPC9hPjxicj4KPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55886</attachid>
            <date>2010-05-12 12:32:42 -0700</date>
            <delta_ts>2010-05-13 10:37:00 -0700</delta_ts>
            <desc>Fix + layout test</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>11481</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1OTI0OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMTAtMDUtMTIgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
cHJvIGNyYXNoIGF0IHd3dy5zZWFycy5jb20gKGluZmluaXRlIHJlY3Vyc2lvbiBpbiBiZWZvcmV1
bmxvYWQgaGFuZGxlcikKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc5NjUxODI+IGFuZCBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg5MjgKKworICAgICAgICBUZXN0
OiBmYXN0L2xvYWRlci9yZWN1cnNpdmUtYmVmb3JlLXVubG9hZC1jcmFzaC5odG1sCisKKyAgICAg
ICAgQ2hhbmdlIG1fdW5sb2FkRXZlbnRCZWluZ0Rpc3BhdGNoZWQgdG8gbV9wYWdlRGlzbWlzc2Fs
RXZlbnRCZWluZ0Rpc3BhdGNoZWQsIGFuZCBhbGxvdyBGcmFtZSB0byBzZXQgaXQ6CisgICAgICAg
ICogbG9hZGVyL0ZyYW1lTG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6
c2V0UGFnZURpc21pc3NhbEV2ZW50QmVpbmdEaXNwYXRjaGVkKToKKworICAgICAgICBQcm90ZWN0
IHRoZSBhY3R1YWwgYmVmb3JldW5sb2FkIGRpc3BhdGNoaW5nIHdpdGggdGhlIG5ldyBwYWdlRGlz
bWlzc2FsRXZlbnRCZWluZ0Rpc3BhdGNoZWQgZmxhZzoKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpzaG91bGRDbG9zZSk6CisKKyAgICAgICAgUmVu
YW1lIHRoZSBmbGFnIHdoZXJlIGl0IHdhcyBhbHJlYWR5IHVzZWQ6CisgICAgICAgICogbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpGcmFtZUxv
YWRlcik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6c3RvcExvYWRpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRVUkwpOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OmxvYWRXaXRoRG9jdW1lbnRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OnN0b3BBbGxMb2FkZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9h
ZGVyOjpjb250aW51ZUxvYWRBZnRlck5hdmlnYXRpb25Qb2xpY3kpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXI6OnBhZ2VIaWRkZW4pOgorCiAyMDEwLTA1LTEyICB5YWVsIGFoYXJvbiAg
PHlhZWwuYWhhcm9uQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0
ZWluLgpJbmRleDogV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkocmV2aXNpb24gNTkyNDkpCisrKyBXZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4Niw3ICsxODYs
NyBAQCBGcmFtZUxvYWRlcjo6RnJhbWVMb2FkZXIoRnJhbWUqIGZyYW1lLCBGCiAgICAgLCBtX2lz
RXhlY3V0aW5nSmF2YVNjcmlwdEZvcm1BY3Rpb24oZmFsc2UpCiAgICAgLCBtX2RpZENhbGxJbXBs
aWNpdENsb3NlKGZhbHNlKQogICAgICwgbV93YXNVbmxvYWRFdmVudEVtaXR0ZWQoZmFsc2UpCi0g
ICAgLCBtX3VubG9hZEV2ZW50QmVpbmdEaXNwYXRjaGVkKGZhbHNlKQorICAgICwgbV9wYWdlRGlz
bWlzc2FsRXZlbnRCZWluZ0Rpc3BhdGNoZWQoZmFsc2UpCiAgICAgLCBtX2lzQ29tcGxldGUoZmFs
c2UpCiAgICAgLCBtX2lzTG9hZGluZ01haW5SZXNvdXJjZShmYWxzZSkKICAgICAsIG1fbmVlZHND
bGVhcihmYWxzZSkKQEAgLTU0MCwxNCArNTQwLDE0IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnN0b3BM
b2FkaW5nKFVubG9hZEV2ZW4KICAgICAgICAgICAgICAgICBOb2RlKiBjdXJyZW50Rm9jdXNlZE5v
ZGUgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5mb2N1c2VkTm9kZSgpOwogICAgICAgICAgICAgICAg
IGlmIChjdXJyZW50Rm9jdXNlZE5vZGUpCiAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRGb2N1
c2VkTm9kZS0+YWJvdXRUb1VubG9hZCgpOwotICAgICAgICAgICAgICAgIG1fdW5sb2FkRXZlbnRC
ZWluZ0Rpc3BhdGNoZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIG1fcGFnZURpc21pc3NhbEV2
ZW50QmVpbmdEaXNwYXRjaGVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBpZiAobV9mcmFtZS0+
ZG9tV2luZG93KCkpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKHVubG9hZEV2ZW50UG9saWN5
ID09IFVubG9hZEV2ZW50UG9saWN5VW5sb2FkQW5kUGFnZUhpZGUpCiAgICAgICAgICAgICAgICAg
ICAgICAgICBtX2ZyYW1lLT5kb21XaW5kb3coKS0+ZGlzcGF0Y2hFdmVudChQYWdlVHJhbnNpdGlv
bkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnBhZ2VoaWRlRXZlbnQsIG1fZnJhbWUtPmRvY3Vt
ZW50KCktPmluUGFnZUNhY2hlKCkpLCBtX2ZyYW1lLT5kb2N1bWVudCgpKTsKICAgICAgICAgICAg
ICAgICAgICAgaWYgKCFtX2ZyYW1lLT5kb2N1bWVudCgpLT5pblBhZ2VDYWNoZSgpKQogICAgICAg
ICAgICAgICAgICAgICAgICAgbV9mcmFtZS0+ZG9tV2luZG93KCktPmRpc3BhdGNoRXZlbnQoRXZl
bnQ6OmNyZWF0ZShldmVudE5hbWVzKCkudW5sb2FkRXZlbnQsIGZhbHNlLCBmYWxzZSksIG1fZnJh
bWUtPmRvbVdpbmRvdygpLT5kb2N1bWVudCgpKTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgbV91bmxvYWRFdmVudEJlaW5nRGlzcGF0Y2hlZCA9IGZhbHNlOworICAgICAgICAg
ICAgICAgIG1fcGFnZURpc21pc3NhbEV2ZW50QmVpbmdEaXNwYXRjaGVkID0gZmFsc2U7CiAgICAg
ICAgICAgICAgICAgaWYgKG1fZnJhbWUtPmRvY3VtZW50KCkpCiAgICAgICAgICAgICAgICAgICAg
IG1fZnJhbWUtPmRvY3VtZW50KCktPnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKICAgICAgICAgICAg
ICAgICBtX3dhc1VubG9hZEV2ZW50RW1pdHRlZCA9IHRydWU7CkBAIC0xODI5LDcgKzE4MjksNyBA
QCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkVVJMKGNvbnN0IEtVUkwmIG5lCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBpZiAobV91bmxvYWRFdmVudEJlaW5nRGlzcGF0Y2hlZCkKKyAgICBp
ZiAobV9wYWdlRGlzbWlzc2FsRXZlbnRCZWluZ0Rpc3BhdGNoZWQpCiAgICAgICAgIHJldHVybjsK
IAogICAgIE5hdmlnYXRpb25BY3Rpb24gYWN0aW9uKG5ld1VSTCwgbmV3TG9hZFR5cGUsIGlzRm9y
bVN1Ym1pc3Npb24sIGV2ZW50KTsKQEAgLTE5NTUsNyArMTk1NSw3IEBAIHZvaWQgRnJhbWVMb2Fk
ZXI6OmxvYWRXaXRoRG9jdW1lbnRMb2FkZXIKIAogICAgIEFTU0VSVChtX2ZyYW1lLT52aWV3KCkp
OwogCi0gICAgaWYgKG1fdW5sb2FkRXZlbnRCZWluZ0Rpc3BhdGNoZWQpCisgICAgaWYgKG1fcGFn
ZURpc21pc3NhbEV2ZW50QmVpbmdEaXNwYXRjaGVkKQogICAgICAgICByZXR1cm47CiAKICAgICBw
b2xpY3lDaGVja2VyKCktPnNldExvYWRUeXBlKHR5cGUpOwpAQCAtMjE5Nyw3ICsyMTk3LDcgQEAg
dm9pZCBGcmFtZUxvYWRlcjo6c3RvcExvYWRpbmdTdWJmcmFtZXMoKQogdm9pZCBGcmFtZUxvYWRl
cjo6c3RvcEFsbExvYWRlcnMoRGF0YWJhc2VQb2xpY3kgZGF0YWJhc2VQb2xpY3kpCiB7CiAgICAg
QVNTRVJUKCFtX2ZyYW1lLT5kb2N1bWVudCgpIHx8ICFtX2ZyYW1lLT5kb2N1bWVudCgpLT5pblBh
Z2VDYWNoZSgpKTsKLSAgICBpZiAobV91bmxvYWRFdmVudEJlaW5nRGlzcGF0Y2hlZCkKKyAgICBp
ZiAobV9wYWdlRGlzbWlzc2FsRXZlbnRCZWluZ0Rpc3BhdGNoZWQpCiAgICAgICAgIHJldHVybjsK
IAogICAgIC8vIElmIHRoaXMgbWV0aG9kIGlzIGNhbGxlZCBmcm9tIHdpdGhpbiB0aGlzIG1ldGhv
ZCwgaW5maW5pdGUgcmVjdXJzaW9uIGNhbiBvY2N1ciAoMzQ0MjIxOCkuIEF2b2lkIHRoaXMuCkBA
IC0zMzc5LDcgKzMzNzksNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjb250aW51ZUxvYWRBZnRlck5h
dmlnCiAgICAgLy8gICAgMSkgTmF2aWdhdGlvbiBwb2xpY3kgZGVsZWdhdGUgc2FpZCB3ZSBjYW4n
dCBzbyByZXF1ZXN0IGlzIG5pbC4gQSBwcmltYXJ5IGNhc2Ugb2YgdGhpcyAKICAgICAvLyAgICAg
ICBpcyB0aGUgdXNlciByZXNwb25kaW5nIENhbmNlbCB0byB0aGUgZm9ybSByZXBvc3QgbmFnIHNo
ZWV0LgogICAgIC8vICAgIDIpIFVzZXIgcmVzcG9uZGVkIENhbmNlbCB0byBhbiBhbGVydCBwb3Bw
ZWQgdXAgYnkgdGhlIGJlZm9yZSB1bmxvYWQgZXZlbnQgaGFuZGxlci4KLSAgICAvLyBUaGUgImJl
Zm9yZSB1bmxvYWQiIGV2ZW50IGhhbmRsZXIgcnVucyBvbmx5IGZvciB0aGUgbWFpbiBmcmFtZS4K
KyAgICAvLyBUaGUgImJlZm9yZSB1bmxvYWQiIGV2ZW50IGhhbmRsZXIgcnVucyBvbmx5IGZvciB0
aGUgbWFpbiBmcmFtZS4gCiAgICAgYm9vbCBjYW5Db250aW51ZSA9IHNob3VsZENvbnRpbnVlICYm
ICghaXNMb2FkaW5nTWFpbkZyYW1lKCkgfHwgbV9mcmFtZS0+c2hvdWxkQ2xvc2UoKSk7CiAKICAg
ICBpZiAoIWNhbkNvbnRpbnVlKSB7CkBAIC0zNTc0LDEwICszNTc0LDEwIEBAIHZvaWQgRnJhbWVM
b2FkZXI6OmNhY2hlUGFnZUZvckhpc3RvcnlJdGUKIAogdm9pZCBGcmFtZUxvYWRlcjo6cGFnZUhp
ZGRlbigpCiB7Ci0gICAgbV91bmxvYWRFdmVudEJlaW5nRGlzcGF0Y2hlZCA9IHRydWU7CisgICAg
bV9wYWdlRGlzbWlzc2FsRXZlbnRCZWluZ0Rpc3BhdGNoZWQgPSB0cnVlOwogICAgIGlmIChtX2Zy
YW1lLT5kb21XaW5kb3coKSkKICAgICAgICAgbV9mcmFtZS0+ZG9tV2luZG93KCktPmRpc3BhdGNo
RXZlbnQoUGFnZVRyYW5zaXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5wYWdlaGlkZUV2
ZW50LCB0cnVlKSwgbV9mcmFtZS0+ZG9jdW1lbnQoKSk7Ci0gICAgbV91bmxvYWRFdmVudEJlaW5n
RGlzcGF0Y2hlZCA9IGZhbHNlOworICAgIG1fcGFnZURpc21pc3NhbEV2ZW50QmVpbmdEaXNwYXRj
aGVkID0gZmFsc2U7CiAKICAgICAvLyBTZW5kIHBhZ2VoaWRlIGV2ZW50IGZvciBzdWJmcmFtZXMg
YXMgd2VsbAogICAgIGZvciAoRnJhbWUqIGNoaWxkID0gbV9mcmFtZS0+dHJlZSgpLT5maXJzdENo
aWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT50cmVlKCktPm5leHRTaWJsaW5nKCkpCkluZGV4
OiBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmgJKHJldmlzaW9uIDU5MjQ5KQorKysgV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzUxLDYgKzM1MSw4IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgY2xlYXIoYm9vbCBjbGVhcldpbmRvd1Byb3BlcnRpZXMgPSB0cnVlLCBib29sIGNs
ZWFyU2NyaXB0T2JqZWN0cyA9IHRydWUsIGJvb2wgY2xlYXJGcmFtZVZpZXcgPSB0cnVlKTsKICAg
ICAKKyAgICB2b2lkIHNldFBhZ2VEaXNtaXNzYWxFdmVudEJlaW5nRGlzcGF0Y2hlZChib29sIGRp
c3BhdGNoZWQpIHsgbV9wYWdlRGlzbWlzc2FsRXZlbnRCZWluZ0Rpc3BhdGNoZWQgPSBkaXNwYXRj
aGVkOyB9CisgICAgCiBwcml2YXRlOgogICAgIGJvb2wgY2FuQ2FjaGVQYWdlQ29udGFpbmluZ1Ro
aXNGcmFtZSgpOwogI2lmbmRlZiBOREVCVUcKQEAgLTQ5Myw3ICs0OTUsNyBAQCBwcml2YXRlOgog
CiAgICAgYm9vbCBtX2RpZENhbGxJbXBsaWNpdENsb3NlOwogICAgIGJvb2wgbV93YXNVbmxvYWRF
dmVudEVtaXR0ZWQ7Ci0gICAgYm9vbCBtX3VubG9hZEV2ZW50QmVpbmdEaXNwYXRjaGVkOworICAg
IGJvb2wgbV9wYWdlRGlzbWlzc2FsRXZlbnRCZWluZ0Rpc3BhdGNoZWQ7CiAgICAgYm9vbCBtX2lz
Q29tcGxldGU7CiAgICAgYm9vbCBtX2lzTG9hZGluZ01haW5SZXNvdXJjZTsKIApJbmRleDogV2Vi
Q29yZS9wYWdlL0ZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRnJhbWUuY3Bw
CShyZXZpc2lvbiA1OTI0OSkKKysrIFdlYkNvcmUvcGFnZS9GcmFtZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE2ODEsNyArMTY4MSwxMCBAQCBib29sIEZyYW1lOjpzaG91bGRDbG9zZSgpCiAgICAg
ICAgIHJldHVybiB0cnVlOwogCiAgICAgUmVmUHRyPEJlZm9yZVVubG9hZEV2ZW50PiBiZWZvcmVV
bmxvYWRFdmVudCA9IEJlZm9yZVVubG9hZEV2ZW50OjpjcmVhdGUoKTsKKyAgICAKKyAgICBtX2xv
YWRlci5zZXRQYWdlRGlzbWlzc2FsRXZlbnRCZWluZ0Rpc3BhdGNoZWQodHJ1ZSk7CiAgICAgbV9k
b21XaW5kb3ctPmRpc3BhdGNoRXZlbnQoYmVmb3JlVW5sb2FkRXZlbnQuZ2V0KCksIG1fZG9tV2lu
ZG93LT5kb2N1bWVudCgpKTsKKyAgICBtX2xvYWRlci5zZXRQYWdlRGlzbWlzc2FsRXZlbnRCZWlu
Z0Rpc3BhdGNoZWQoZmFsc2UpOwogCiAgICAgaWYgKCFiZWZvcmVVbmxvYWRFdmVudC0+ZGVmYXVs
dFByZXZlbnRlZCgpKQogICAgICAgICBkb2MtPmRlZmF1bHRFdmVudEhhbmRsZXIoYmVmb3JlVW5s
b2FkRXZlbnQuZ2V0KCkpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNTkyNDkpCisrKyBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMC0wNS0xMiAg
QnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwcm8gY3Jhc2ggYXQgd3d3LnNlYXJzLmNvbSAo
aW5maW5pdGUgcmVjdXJzaW9uIGluIGJlZm9yZXVubG9hZCBoYW5kbGVyKQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNzk2NTE4Mj4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zODkyOAorCisgICAgICAgICogZmFzdC9sb2FkZXIvcmVjdXJzaXZlLWJlZm9yZS11
bmxvYWQtY3Jhc2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2xvYWRlci9y
ZWN1cnNpdmUtYmVmb3JlLXVubG9hZC1jcmFzaC5odG1sOiBBZGRlZC4KKwogMjAxMC0wNS0xMiAg
TWFydGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTm90IHJl
dmlld2VkLiBUcnlpbmcgb25jZSBtb3JlIHRvIGdlbmVyYXRlIGJhc2VsaW5lcyBmb3IgR1RLKy4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3JlY3Vyc2l2ZS1iZWZvcmUtdW5sb2FkLWNy
YXNoLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9y
ZWN1cnNpdmUtYmVmb3JlLXVubG9hZC1jcmFzaC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9yZWN1cnNpdmUtYmVmb3JlLXVubG9hZC1jcmFzaC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKK21haW4gZnJhbWUgLSBk
aWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIHdpbGxQZXJmb3JtQ2xp
ZW50UmVkaXJlY3RUb1VSTDogaHR0cDovLzEyNy4wLjAuMToxMjM0LyAKK21haW4gZnJhbWUgLSBk
aWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZEZpbmlzaExvYWRG
b3JGcmFtZQorQUxFUlQ6IG9uYmVmb3JldW5sb2FkIGNhbGxlZCwgYW5kIGlmcmFtZSBoYXNuJ3Qg
YmVlbiBhZGRlZCB5ZXQuCittYWluIGZyYW1lIC0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JG
cmFtZQorQUxFUlQ6IEFkZGluZyBpZnJhbWUKK2ZyYW1lICI8IS0tZnJhbWVQYXRoIC8vPCEtLWZy
YW1lMC0tPi0tPiIgLSBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lCittYWluIGZyYW1l
IC0gZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZQorZnJhbWUgIjwhLS1mcmFtZVBhdGgg
Ly88IS0tZnJhbWUwLS0+LS0+IiAtIGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3IKK21h
aW4gZnJhbWUgLSBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yCitUaGlzIHRlc3QgZGVt
b25zdHJhdGVzIGEgcHJvYmxlbSB3aXRoIG91ciBoYW5kbGluZyBvZiB0aGUgYmVmb3JldW5sb2Fk
IGV2ZW50LgorSWYgYSBzY3JpcHQgbWFuYWdlcyB0byB0cnkgYW5kIG5hdmlnYXRlIHRoZSBmcmFt
ZSBmcm9tIGJlZm9yZXVubG9hZCAtIHdoZW4gYSBuYXZpZ2F0aW9uIGlzIGFscmVhZHkgcGVuZGlu
ZyAtIHdlIGVuZCB1cCBibG93aW5nIG91dCB0aGUgc3RhY2sgYnkgcmVjdXJzaXZlbHkgY29uc3Vs
dGluZyB0aGUgcG9saWN5IGRlbGVnYXRlIHRoZW4gcnVubmluZyBvbmJlZm9yZXVubG9hZCByZXBl
YXRlZGx5LgorQWZ0ZXIgdGhpcyBoYXBwZW5zLCB0aGUgRnJhbWVMb2FkZXIgaXMgaW4gYSBib2d1
cyBzdGF0ZSB3aGVyZSBpdCB0aGlua3MgaXQgaXMgaW4gdGhlIG1pZGRsZSBvZiBhIHByb3Zpc2lv
bmFsIGxvYWQsIGJ1dCBpdCBkb2Vzbid0IGhhdmUgYSBwcm92aXNpb25hbCBkb2N1bWVudCBsb2Fk
ZXIuCitJbiB0aGlzIHN0YXRlLCB0aGUgZnJhbWUgaXMgdmVyeSBkaWZmaWN1bHQgdG8gbmF2aWdh
dGUgYW55d2hlcmUgZWxzZSwgYW5kIGF0dGVtcHRzIHRvIGxvYWQgbmV3IHRoaW5ncyB3aXRoaW4g
dGhlIGZyYW1lIGNhbiByZXN1bHQgaW4gYSBjcmFzaC4KK1RoaXMgd2FzIHJlcHJvZHVjaWJseSBp
ZGVudGlmaWVkIG9uIHNlYXJzLmNvbSBmb2xsb3dpbmcgYSBiaXphcnJlIFNhZmFyaSBzcGVjaWZp
YyBjb2RlIHBhdGguCitDbGljayBoZXJlIHRvIHJ1biB0aGUgYmVmb3JldW5sb2FkIHRlc3QgYW5k
IGJsb3cgb3V0IHRoZSBzdGFjaworQ2xpY2sgaGVyZSB0byBhcHBlbmQgYW4gaWZyYW1lIGFuZCBj
cmFzaAorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9yZWN1cnNpdmUtYmVmb3JlLXVu
bG9hZC1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3Jl
Y3Vyc2l2ZS1iZWZvcmUtdW5sb2FkLWNyYXNoLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2xvYWRlci9yZWN1cnNpdmUtYmVmb3JlLXVubG9hZC1jcmFzaC5odG1sCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDQ4IEBACis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEZyYW1lTG9hZENhbGxiYWNrcygpOworfQorCit2YXIgaGF2ZUFkZGVkSUZy
YW1lID0gZmFsc2U7CisKK3dpbmRvdy5vbmJlZm9yZXVubG9hZCA9IGZ1bmN0aW9uKCkgeworICAg
IGlmICghaGF2ZUFkZGVkSUZyYW1lKQorICAgICAgICBhbGVydCgib25iZWZvcmV1bmxvYWQgY2Fs
bGVkLCBhbmQgaWZyYW1lIGhhc24ndCBiZWVuIGFkZGVkIHlldC4iKTsKKyAgICB2YXIgYSA9IGRv
Y3VtZW50LmNyZWF0ZUV2ZW50KCJNb3VzZUV2ZW50cyIpOworICAgIGEuaW5pdEV2ZW50KCJjbGlj
ayIsIHRydWUsIHRydWUpOworICAgIHZhciBkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIp
OworICAgIGQuaHJlZiA9ICJodHRwOi8vbG9jYWxob3N0OjEyMzQvIjsKKyAgICBkLmRpc3BhdGNo
RXZlbnQoYSk7Cit9CisKK2Z1bmN0aW9uIGNsaWNrZWQoKSB7CisgICAgd2luZG93LmxvY2F0aW9u
LmhyZWY9Imh0dHA6Ly8xMjcuMC4wLjE6MTIzNC8iOworfQorCitmdW5jdGlvbiBhZGRpZnJhbWUo
KSB7CisgICAgYWxlcnQoIkFkZGluZyBpZnJhbWUiKTsKKyAgICB2YXIgZnJhbWUgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICBmcmFtZS5zcmMgPSAiaHR0cDovL2xvY2Fs
aG9zdDoxMjM0LyIKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZyYW1lKTsKKyAgICBo
YXZlQWRkZWRJRnJhbWUgPSB0cnVlOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKworZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKKyAgIGNsaWNrZWQoKTsKKyAgIHNldFRpbWVvdXQoImFkZGlmcmFt
ZSgpOyIsIDApOworfQorCis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+CitU
aGlzIHRlc3QgZGVtb25zdHJhdGVzIGEgcHJvYmxlbSB3aXRoIG91ciBoYW5kbGluZyBvZiB0aGUg
YmVmb3JldW5sb2FkIGV2ZW50Ljxicj4KK0lmIGEgc2NyaXB0IG1hbmFnZXMgdG8gdHJ5IGFuZCBu
YXZpZ2F0ZSB0aGUgZnJhbWUgZnJvbSBiZWZvcmV1bmxvYWQgLSB3aGVuIGEgbmF2aWdhdGlvbiBp
cyBhbHJlYWR5IHBlbmRpbmcgLSB3ZSBlbmQgdXAgYmxvd2luZyBvdXQgdGhlIHN0YWNrIGJ5IHJl
Y3Vyc2l2ZWx5IGNvbnN1bHRpbmcgdGhlIHBvbGljeSBkZWxlZ2F0ZSB0aGVuIHJ1bm5pbmcgb25i
ZWZvcmV1bmxvYWQgcmVwZWF0ZWRseS48YnI+CitBZnRlciB0aGlzIGhhcHBlbnMsIHRoZSBGcmFt
ZUxvYWRlciBpcyBpbiBhIGJvZ3VzIHN0YXRlIHdoZXJlIGl0IHRoaW5rcyBpdCBpcyBpbiB0aGUg
bWlkZGxlIG9mIGEgcHJvdmlzaW9uYWwgbG9hZCwgYnV0IGl0IGRvZXNuJ3QgaGF2ZSBhIHByb3Zp
c2lvbmFsIGRvY3VtZW50IGxvYWRlci48YnI+CitJbiB0aGlzIHN0YXRlLCB0aGUgZnJhbWUgaXMg
dmVyeSBkaWZmaWN1bHQgdG8gbmF2aWdhdGUgYW55d2hlcmUgZWxzZSwgYW5kIGF0dGVtcHRzIHRv
IGxvYWQgbmV3IHRoaW5ncyB3aXRoaW4gdGhlIGZyYW1lIGNhbiByZXN1bHQgaW4gYSBjcmFzaC48
YnI+CitUaGlzIHdhcyByZXByb2R1Y2libHkgaWRlbnRpZmllZCBvbiBzZWFycy5jb20gZm9sbG93
aW5nIGEgYml6YXJyZSBTYWZhcmkgc3BlY2lmaWMgY29kZSBwYXRoLjxicj4KKzxhIGhyZWY9Imph
dmFzY3JpcHQ6dm9pZChjbGlja2VkKCkpIj5DbGljayBoZXJlIHRvIHJ1biB0aGUgYmVmb3JldW5s
b2FkIHRlc3QgYW5kIGJsb3cgb3V0IHRoZSBzdGFjazwvYT48YnI+Cis8YSBocmVmPSJqYXZhc2Ny
aXB0OnZvaWQoYWRkaWZyYW1lKCkpIj5DbGljayBoZXJlIHRvIGFwcGVuZCBhbiBpZnJhbWUgYW5k
IGNyYXNoPC9hPjxicj4KKzwvYm9keT4K
</data>
<flag name="commit-queue"
          id="40184"
          type_id="3"
          status="-"
          setter="beidson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55995</attachid>
            <date>2010-05-13 10:37:00 -0700</date>
            <delta_ts>2010-05-13 10:38:50 -0700</delta_ts>
            <desc>Rename m_unloadEventBeingDispatched to m_pageDismissalEventBeingDispatched</desc>
            <filename>1patch.txt</filename>
            <type>text/plain</type>
            <size>4886</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1OTM3MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMTAtMDUtMTMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBh
cnQgb2YgPHJkYXI6Ly9wcm9ibGVtLzc5NjUxODI+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Mzg5MjgKKworICAgICAgICBObyBuZXcgdGVzdHMuIChObyBjaGFu
Z2UgaW4gYmVoYXZpb3IpCisKKyAgICAgICAgbV91bmxvYWRFdmVudEJlaW5nRGlzcGF0Y2hlZCB3
YXMgYWxyZWFkeSBvdmVybG9hZGVkIHRvIGluY2x1ZGUgYm90aCB1bmxvYWQgYW5kIHBhZ2VoaWRl
IGV2ZW50cy4KKyAgICAgICAgSW4gZ2VuZXJhbCwgdGhlc2UgYXJlICJwYWdlIGRpc21pc3NhbCIg
ZXZlbnRzLCBhbmQgbWlnaHQgYWxzbyBpbmNsdWRlIGJlZm9yZXVubG9hZCwgc28gbGV0J3MgcmVu
YW1lCisgICAgICAgIHRoZSBmbGFnIQorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpGcmFtZUxvYWRlcik6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6c3RvcExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OmxvYWRVUkwpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6Omxv
YWRXaXRoRG9jdW1lbnRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnN0
b3BBbGxMb2FkZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjb250aW51ZUxv
YWRBZnRlck5hdmlnYXRpb25Qb2xpY3kpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OnBhZ2VIaWRkZW4pOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5oOgorCiAyMDEwLTA1
LTEzICBKb3NlcGggUGVjb3Jhcm8gIDxqb2VwZWNrQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KSW5kZXg6IFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHJldmlz
aW9uIDU5MjQ5KQorKysgV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xODYsNyArMTg2LDcgQEAgRnJhbWVMb2FkZXI6OkZyYW1lTG9hZGVyKEZyYW1lKiBm
cmFtZSwgRgogICAgICwgbV9pc0V4ZWN1dGluZ0phdmFTY3JpcHRGb3JtQWN0aW9uKGZhbHNlKQog
ICAgICwgbV9kaWRDYWxsSW1wbGljaXRDbG9zZShmYWxzZSkKICAgICAsIG1fd2FzVW5sb2FkRXZl
bnRFbWl0dGVkKGZhbHNlKQotICAgICwgbV91bmxvYWRFdmVudEJlaW5nRGlzcGF0Y2hlZChmYWxz
ZSkKKyAgICAsIG1fcGFnZURpc21pc3NhbEV2ZW50QmVpbmdEaXNwYXRjaGVkKGZhbHNlKQogICAg
ICwgbV9pc0NvbXBsZXRlKGZhbHNlKQogICAgICwgbV9pc0xvYWRpbmdNYWluUmVzb3VyY2UoZmFs
c2UpCiAgICAgLCBtX25lZWRzQ2xlYXIoZmFsc2UpCkBAIC01NDAsMTQgKzU0MCwxNCBAQCB2b2lk
IEZyYW1lTG9hZGVyOjpzdG9wTG9hZGluZyhVbmxvYWRFdmVuCiAgICAgICAgICAgICAgICAgTm9k
ZSogY3VycmVudEZvY3VzZWROb2RlID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Zm9jdXNlZE5vZGUo
KTsKICAgICAgICAgICAgICAgICBpZiAoY3VycmVudEZvY3VzZWROb2RlKQogICAgICAgICAgICAg
ICAgICAgICBjdXJyZW50Rm9jdXNlZE5vZGUtPmFib3V0VG9VbmxvYWQoKTsKLSAgICAgICAgICAg
ICAgICBtX3VubG9hZEV2ZW50QmVpbmdEaXNwYXRjaGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAg
ICBtX3BhZ2VEaXNtaXNzYWxFdmVudEJlaW5nRGlzcGF0Y2hlZCA9IHRydWU7CiAgICAgICAgICAg
ICAgICAgaWYgKG1fZnJhbWUtPmRvbVdpbmRvdygpKSB7CiAgICAgICAgICAgICAgICAgICAgIGlm
ICh1bmxvYWRFdmVudFBvbGljeSA9PSBVbmxvYWRFdmVudFBvbGljeVVubG9hZEFuZFBhZ2VIaWRl
KQogICAgICAgICAgICAgICAgICAgICAgICAgbV9mcmFtZS0+ZG9tV2luZG93KCktPmRpc3BhdGNo
RXZlbnQoUGFnZVRyYW5zaXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5wYWdlaGlkZUV2
ZW50LCBtX2ZyYW1lLT5kb2N1bWVudCgpLT5pblBhZ2VDYWNoZSgpKSwgbV9mcmFtZS0+ZG9jdW1l
bnQoKSk7CiAgICAgICAgICAgICAgICAgICAgIGlmICghbV9mcmFtZS0+ZG9jdW1lbnQoKS0+aW5Q
YWdlQ2FjaGUoKSkKICAgICAgICAgICAgICAgICAgICAgICAgIG1fZnJhbWUtPmRvbVdpbmRvdygp
LT5kaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnVubG9hZEV2ZW50LCBm
YWxzZSwgZmFsc2UpLCBtX2ZyYW1lLT5kb21XaW5kb3coKS0+ZG9jdW1lbnQoKSk7CiAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIG1fdW5sb2FkRXZlbnRCZWluZ0Rpc3BhdGNoZWQg
PSBmYWxzZTsKKyAgICAgICAgICAgICAgICBtX3BhZ2VEaXNtaXNzYWxFdmVudEJlaW5nRGlzcGF0
Y2hlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgIGlmIChtX2ZyYW1lLT5kb2N1bWVudCgpKQog
ICAgICAgICAgICAgICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT51cGRhdGVTdHlsZUlmTmVl
ZGVkKCk7CiAgICAgICAgICAgICAgICAgbV93YXNVbmxvYWRFdmVudEVtaXR0ZWQgPSB0cnVlOwpA
QCAtMTgyOSw3ICsxODI5LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFVSTChjb25zdCBLVVJM
JiBuZQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKG1fdW5sb2FkRXZlbnRCZWlu
Z0Rpc3BhdGNoZWQpCisgICAgaWYgKG1fcGFnZURpc21pc3NhbEV2ZW50QmVpbmdEaXNwYXRjaGVk
KQogICAgICAgICByZXR1cm47CiAKICAgICBOYXZpZ2F0aW9uQWN0aW9uIGFjdGlvbihuZXdVUkws
IG5ld0xvYWRUeXBlLCBpc0Zvcm1TdWJtaXNzaW9uLCBldmVudCk7CkBAIC0xOTU1LDcgKzE5NTUs
NyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkV2l0aERvY3VtZW50TG9hZGVyCiAKICAgICBBU1NF
UlQobV9mcmFtZS0+dmlldygpKTsKIAotICAgIGlmIChtX3VubG9hZEV2ZW50QmVpbmdEaXNwYXRj
aGVkKQorICAgIGlmIChtX3BhZ2VEaXNtaXNzYWxFdmVudEJlaW5nRGlzcGF0Y2hlZCkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgcG9saWN5Q2hlY2tlcigpLT5zZXRMb2FkVHlwZSh0eXBlKTsKQEAg
LTIxOTcsNyArMjE5Nyw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnN0b3BMb2FkaW5nU3ViZnJhbWVz
KCkKIHZvaWQgRnJhbWVMb2FkZXI6OnN0b3BBbGxMb2FkZXJzKERhdGFiYXNlUG9saWN5IGRhdGFi
YXNlUG9saWN5KQogewogICAgIEFTU0VSVCghbV9mcmFtZS0+ZG9jdW1lbnQoKSB8fCAhbV9mcmFt
ZS0+ZG9jdW1lbnQoKS0+aW5QYWdlQ2FjaGUoKSk7Ci0gICAgaWYgKG1fdW5sb2FkRXZlbnRCZWlu
Z0Rpc3BhdGNoZWQpCisgICAgaWYgKG1fcGFnZURpc21pc3NhbEV2ZW50QmVpbmdEaXNwYXRjaGVk
KQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBJZiB0aGlzIG1ldGhvZCBpcyBjYWxsZWQgZnJv
bSB3aXRoaW4gdGhpcyBtZXRob2QsIGluZmluaXRlIHJlY3Vyc2lvbiBjYW4gb2NjdXIgKDM0NDIy
MTgpLiBBdm9pZCB0aGlzLgpAQCAtMzU3NCwxMCArMzU3NCwxMCBAQCB2b2lkIEZyYW1lTG9hZGVy
OjpjYWNoZVBhZ2VGb3JIaXN0b3J5SXRlCiAKIHZvaWQgRnJhbWVMb2FkZXI6OnBhZ2VIaWRkZW4o
KQogewotICAgIG1fdW5sb2FkRXZlbnRCZWluZ0Rpc3BhdGNoZWQgPSB0cnVlOworICAgIG1fcGFn
ZURpc21pc3NhbEV2ZW50QmVpbmdEaXNwYXRjaGVkID0gdHJ1ZTsKICAgICBpZiAobV9mcmFtZS0+
ZG9tV2luZG93KCkpCiAgICAgICAgIG1fZnJhbWUtPmRvbVdpbmRvdygpLT5kaXNwYXRjaEV2ZW50
KFBhZ2VUcmFuc2l0aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkucGFnZWhpZGVFdmVudCwg
dHJ1ZSksIG1fZnJhbWUtPmRvY3VtZW50KCkpOwotICAgIG1fdW5sb2FkRXZlbnRCZWluZ0Rpc3Bh
dGNoZWQgPSBmYWxzZTsKKyAgICBtX3BhZ2VEaXNtaXNzYWxFdmVudEJlaW5nRGlzcGF0Y2hlZCA9
IGZhbHNlOwogCiAgICAgLy8gU2VuZCBwYWdlaGlkZSBldmVudCBmb3Igc3ViZnJhbWVzIGFzIHdl
bGwKICAgICBmb3IgKEZyYW1lKiBjaGlsZCA9IG1fZnJhbWUtPnRyZWUoKS0+Zmlyc3RDaGlsZCgp
OyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+dHJlZSgpLT5uZXh0U2libGluZygpKQpJbmRleDogV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5oCShyZXZpc2lvbiA1OTI0OSkKKysrIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5Myw3ICs0OTMsNyBAQCBwcml2YXRlOgogCiAgICAg
Ym9vbCBtX2RpZENhbGxJbXBsaWNpdENsb3NlOwogICAgIGJvb2wgbV93YXNVbmxvYWRFdmVudEVt
aXR0ZWQ7Ci0gICAgYm9vbCBtX3VubG9hZEV2ZW50QmVpbmdEaXNwYXRjaGVkOworICAgIGJvb2wg
bV9wYWdlRGlzbWlzc2FsRXZlbnRCZWluZ0Rpc3BhdGNoZWQ7CiAgICAgYm9vbCBtX2lzQ29tcGxl
dGU7CiAgICAgYm9vbCBtX2lzTG9hZGluZ01haW5SZXNvdXJjZTsKIAo=
</data>
<flag name="review"
          id="40318"
          type_id="1"
          status="+"
          setter="sullivan"
    />
    <flag name="commit-queue"
          id="40319"
          type_id="3"
          status="-"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>