<?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>94143</bug_id>
          
          <creation_ts>2012-08-15 13:44:05 -0700</creation_ts>
          <short_desc>Assertion going back to results.html page from an image diff result</short_desc>
          <delta_ts>2012-08-20 16:43:45 -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>History</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>696331</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-08-15 13:44:05 -0700</bug_when>
    <thetext>I assert every time I go Back to the results.html page after examining a ref test result image in the standard layout test results page.

We assert here:

    ASSERT(!window() || domWindow.get() != window()-&gt;impl());

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.WebCore             	0x000000010a3b631e WebCore::JSDOMWindowShell::setWindow(WTF::PassRefPtr&lt;WebCore::DOMWindow&gt;) + 142 (JSDOMWindowShell.cpp:69)
1   com.apple.WebCore             	0x000000010ac72862 WebCore::ScriptCachedFrameData::restore(WebCore::Frame*) + 402 (ScriptCachedFrameData.cpp:83)
2   com.apple.WebCore             	0x0000000109953080 WebCore::CachedFrameBase::restore() + 240 (CachedFrame.cpp:103)
3   com.apple.WebCore             	0x0000000109ee3a49 WebCore::FrameLoader::open(WebCore::CachedFrameBase&amp;) + 1033 (FrameLoader.cpp:1955)
4   com.apple.WebCore             	0x0000000109953417 WebCore::CachedFrame::open() + 183 (CachedFrame.cpp:212)
5   com.apple.WebCore             	0x0000000109959fa9 WebCore::CachedPage::restore(WebCore::Page*) + 377 (CachedPage.cpp:83)
6   com.apple.WebCore             	0x0000000109ee1f03 WebCore::FrameLoader::commitProvisionalLoad() + 1267 (FrameLoader.cpp:1685)
7   com.apple.WebCore             	0x0000000109ee57d7 WebCore::FrameLoader::loadProvisionalItemFromCachedPage() + 311 (FrameLoader.cpp:2910)
8   com.apple.WebCore             	0x0000000109ee061b WebCore::FrameLoader::continueLoadAfterNavigationPolicy(WebCore::ResourceRequest const&amp;, WTF::PassRefPtr&lt;WebCore::FormState&gt;, bool) + 843 (FrameLoader.cpp:2779)
9   com.apple.WebCore             	0x0000000109ee0717 WebCore::FrameLoader::callContinueLoadAfterNavigationPolicy(void*, WebCore::ResourceRequest const&amp;, WTF::PassRefPtr&lt;WebCore::FormState&gt;, bool) + 87 (FrameLoader.cpp:2655)
10  com.apple.WebCore             	0x000000010a94aaf2 WebCore::PolicyChecker::checkNavigationPolicy(WebCore::ResourceRequest const&amp;, WebCore::DocumentLoader*, WTF::PassRefPtr&lt;WebCore::FormState&gt;, void (*)(void*, WebCore::ResourceRequest const&amp;, WTF::PassRefPtr&lt;WebCore::FormState&gt;, bool), void*) + 370 (PolicyChecker.cpp:69)
11  com.apple.WebCore             	0x0000000109ee00eb WebCore::FrameLoader::loadWithDocumentLoader(WebCore::DocumentLoader*, WebCore::FrameLoadType, WTF::PassRefPtr&lt;WebCore::FormState&gt;) + 1467 (FrameLoader.cpp:1363)
12  com.apple.WebCore             	0x0000000109edc351 WebCore::FrameLoader::loadDifferentDocumentItem(WebCore::HistoryItem*, WebCore::FrameLoadType) + 161 (FrameLoader.cpp:3007)
13  com.apple.WebCore             	0x0000000109ee62b1 WebCore::FrameLoader::loadItem(WebCore::HistoryItem*, WebCore::FrameLoadType) + 161 (FrameLoader.cpp:3095)
14  com.apple.WebCore             	0x0000000109f9fe85 WebCore::HistoryController::recursiveGoToItem(WebCore::HistoryItem*, WebCore::HistoryItem*, WebCore::FrameLoadType) + 565 (HistoryController.cpp:736)
15  com.apple.WebCore             	0x0000000109f9f9fe WebCore::HistoryController::goToItem(WebCore::HistoryItem*, WebCore::FrameLoadType) + 430 (HistoryController.cpp:275)
16  com.apple.WebCore             	0x000000010a8f16e9 WebCore::Page::goToItem(WebCore::HistoryItem*, WebCore::FrameLoadType) + 201 (Page.cpp:367)
17  com.apple.WebKit2             	0x0000000107c57237 WebKit::WebPage::goBack(unsigned long long) + 183 (WebPage.cpp:830)
18  com.apple.WebKit2             	0x0000000107c8d12a void CoreIPC::callMemberFunction&lt;WebKit::WebPage, void (WebKit::WebPage::*)(unsigned long long), unsigned long long&gt;(CoreIPC::Arguments1&lt;unsigned long long&gt; const&amp;, WebKit::WebPage*, void (WebKit::WebPage::*)(unsigned long long)) + 138 (HandleMessage.h:20)
19  com.apple.WebKit2             	0x0000000107c83dbf void CoreIPC::handleMessage&lt;Messages::WebPage::GoBack, WebKit::WebPage, void (WebKit::WebPage::*)(unsigned long long)&gt;(CoreIPC::ArgumentDecoder*, WebKit::WebPage*, void (WebKit::WebPage::*)(unsigned long long)) + 111 (HandleMessage.h:303)
20  com.apple.WebKit2             	0x0000000107c817a2 WebKit::WebPage::didReceiveWebPageMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) + 850 (WebPageMessageReceiver.cpp:153)
21  com.apple.WebKit2             	0x0000000107c5c09d WebKit::WebPage::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) + 301 (WebPage.cpp:2675)
22  com.apple.WebKit2             	0x0000000107d11dbb WebKit::WebProcess::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) + 923 (WebProcess.cpp:716)
23  com.apple.WebKit2             	0x0000000107bb4e5e WebKit::WebConnectionToUIProcess::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) + 350 (WebConnectionToUIProcess.cpp:88)
24  com.apple.WebKit2             	0x0000000107bb4ead non-virtual thunk to WebKit::WebConnectionToUIProcess::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) + 61
25  com.apple.WebKit2             	0x0000000107a53c4c CoreIPC::Connection::dispatchMessage(CoreIPC::Connection::Message&lt;CoreIPC::ArgumentDecoder&gt;&amp;) + 348 (Connection.cpp:691)
26  com.apple.WebKit2             	0x0000000107a563fb CoreIPC::Connection::dispatchOneMessage() + 203 (Connection.cpp:718)
27  com.apple.WebKit2             	0x0000000107a5cf02 WTF::FunctionWrapper&lt;void (CoreIPC::Connection::*)()&gt;::operator()(CoreIPC::Connection*) + 114 (Functional.h:173)
28  com.apple.WebKit2             	0x0000000107a5ce85 WTF::BoundFunctionImpl&lt;WTF::FunctionWrapper&lt;void (CoreIPC::Connection::*)()&gt;, void (CoreIPC::Connection*)&gt;::operator()() + 53 (Functional.h:405)
29  com.apple.WebCore             	0x000000010ac5d565 WTF::Function&lt;void ()&gt;::operator()() const + 133 (Functional.h:613)
30  com.apple.WebCore             	0x000000010ac5d1af WebCore::RunLoop::performWork() + 207 (RunLoop.cpp:89)
31  com.apple.WebCore             	0x000000010ac5e69e WebCore::RunLoop::performWork(void*) + 62 (RunLoopCF.cpp:66)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696333</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2012-08-15 13:44:30 -0700</bug_when>
    <thetext>&lt;rdar://problem/12106883&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696375</commentid>
    <comment_count>2</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-08-15 14:24:59 -0700</bug_when>
    <thetext>When did this start?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696432</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2012-08-15 15:28:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/12108266&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696434</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-08-15 15:30:33 -0700</bug_when>
    <thetext>(lldb) expr window()
(WebCore::JSDOMWindow *) $1 = 0x0000000152f9d880
(lldb) p domWindow.get()
(WebCore::DOMWindow *) $2 = 0x00007fcb29966f50
(lldb) p window()-&gt;impl()
(WebCore::DOMWindow *) $3 = 0x00007fcb29966f50</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696513</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-15 16:51:58 -0700</bug_when>
    <thetext>I&apos;m having trouble reproducing this issue with a build at r125682.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696522</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-15 17:04:18 -0700</bug_when>
    <thetext>Exact repro steps:

---8&lt;---
 ./Tools/Scripts/run-safari --debug about:blank
navigate to http://www.webkit.org/
click &quot;download the lastest nightly build&quot;
click the back button?
---&gt;8---

smfr confirms that it doesn&apos;t repro with release Safari but it does repro with an Apple-internal build of Safari.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696526</commentid>
    <comment_count>7</comment_count>
      <attachid>158664</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-15 17:06:19 -0700</bug_when>
    <thetext>Created attachment 158664
A sketch of a layout test (does not assert)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696549</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-15 17:28:11 -0700</bug_when>
    <thetext>smfr, I&apos;m sorry but I&apos;m not sure how to make progress here.  I would like to help resolve the issue, but it&apos;s difficult without being able to reproduce the issue.

Do you know which half of the ASSERT is triggering?

    ASSERT(!window() || domWindow.get() != window()-&gt;impl());

i.e., is is !window() or is it domWindow.get() != window()-&gt;impl() ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696550</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-15 17:28:43 -0700</bug_when>
    <thetext>I guess Comment #4 says that it&apos;s the second half.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696553</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-15 17:30:45 -0700</bug_when>
    <thetext>A blind guess at a fix is to teach ScriptCachedFrameData::restore not to call JSDOMWindowShell::setWindow with the same DOMWindow, but without understanding why it&apos;s doing that, I&apos;m not super confident in that solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696572</commentid>
    <comment_count>11</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-08-15 17:53:53 -0700</bug_when>
    <thetext>The interesting thing to me is that this is (apparently) a recent regression.  I&apos;d really like to see what change broke things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696741</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-15 22:15:56 -0700</bug_when>
    <thetext>&gt; The interesting thing to me is that this is (apparently) a recent regression.  I&apos;d really like to see what change broke things.

It&apos;s likely to be http://trac.webkit.org/changeset/125592</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700066</commentid>
    <comment_count>13</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-08-20 15:30:59 -0700</bug_when>
    <thetext>I can&apos;t get any work done because of this. Will look now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700099</commentid>
    <comment_count>14</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-08-20 15:49:16 -0700</bug_when>
    <thetext>Series of setWindow calls leading up to the assertion:

JSDOMWindowShell 0x108fffe80 setWindow 0x10b23cad0, window 0x10f91d880, window impl 0x10016a360
JSDOMWindowShell 0x108ffffc0 setWindow 0x10b23cad0, window 0x10f91d380, window impl 0x10016a360
JSDOMWindowShell 0x108fff3c0 setWindow 0x10b23cad0, window 0x10f91c480, window impl 0x10016a360
JSDOMWindowShell 0x108fff340 setWindow 0x10b23cad0, window 0x10f91bf80, window impl 0x10016a360
JSDOMWindowShell 0x108ffff00 setWindow 0x10b23cad0, window 0x10f91ce80, window impl 0x10016a360
JSDOMWindowShell 0x108fffe00 setWindow 0x10b23cad0, window 0x10f91c980, window impl 0x10016a360
JSDOMWindowShell 0x108fff3c0 setWindow 0x10b23cad0, window 0x10f91b580, window impl 0x10b23cad0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700137</commentid>
    <comment_count>15</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-08-20 16:21:24 -0700</bug_when>
    <thetext>The first relevant setWindow call comes from:

* thread #1: tid = 0x1f03, 0x00000001039bdbd7 WebCore`WebCore::JSDOMWindowShell::setWindow(WTF::PassRefPtr&lt;WebCore::DOMWindow&gt;) + 167 at JSDOMWindowShell.cpp:70, stop reason = breakpoint 2.1
    frame #0: 0x00000001039bdbd7 WebCore`WebCore::JSDOMWindowShell::setWindow(WTF::PassRefPtr&lt;WebCore::DOMWindow&gt;) + 167 at JSDOMWindowShell.cpp:70
    frame #1: 0x0000000104286f33 WebCore`WebCore::ScriptController::clearWindowShell(WebCore::DOMWindow*, bool) + 323 at ScriptController.cpp:195
    frame #2: 0x00000001034df199 WebCore`WebCore::FrameLoader::clear(WebCore::Document*, bool, bool, bool) + 425 at FrameLoader.cpp:528

and the second, with the identical window, from  ScriptCachedFrameData::restore().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700147</commentid>
    <comment_count>16</comment_count>
      <attachid>159559</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-08-20 16:32:21 -0700</bug_when>
    <thetext>Created attachment 159559
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700149</commentid>
    <comment_count>17</comment_count>
      <attachid>159559</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-08-20 16:33:21 -0700</bug_when>
    <thetext>Comment on attachment 159559
Patch

Is it okay to just bypass the issue without understanding what introduced it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700151</commentid>
    <comment_count>18</comment_count>
      <attachid>159559</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-20 16:34:00 -0700</bug_when>
    <thetext>Comment on attachment 159559
Patch

Thanks for fixing this bug.  I&apos;m sorry that I could not fix it myself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700156</commentid>
    <comment_count>19</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-20 16:36:39 -0700</bug_when>
    <thetext>&gt; Is it okay to just bypass the issue without understanding what introduced it?

The core thing that changes is that we&apos;re not explicitly re-using DOMWindow objects in some cases (e.g., XSLT and initial documents that do a &quot;secure transition to&quot; the next document).  Previously, this all worked because of Frame::domWindow lazily created DOMWindow objects and we were careful to trigger this lazy creation at specific times.

I&apos;m not sure what&apos;s causing the difference between release-safari and future-safari through.  I&apos;m surprised that this doesn&apos;t happen in release-safari because it would seem to be need to balance the same logic in clearDOMWindow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700157</commentid>
    <comment_count>20</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-20 16:37:12 -0700</bug_when>
    <thetext>In general, though, I agree with you that it would be better to know more, but I don&apos;t want to burden smfr more than we have already here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700158</commentid>
    <comment_count>21</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-20 16:37:34 -0700</bug_when>
    <thetext>s/not explicitly/now explicitly/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700167</commentid>
    <comment_count>22</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-08-20 16:43:45 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/126090</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158664</attachid>
            <date>2012-08-15 17:06:19 -0700</date>
            <delta_ts>2012-08-20 16:32:18 -0700</delta_ts>
            <desc>A sketch of a layout test (does not assert)</desc>
            <filename>bug-94143-20120815170545.patch</filename>
            <type>text/plain</type>
            <size>3367</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NjgyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2ZyYW1lcy9jcmFzaC13aGVuLWdvaW5nLWJhY2std2l0aC1wYWdlLWNhY2hlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2NyYXNoLXdoZW4tZ29pbmctYmFjay13aXRoLXBh
Z2UtY2FjaGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1N2RhZTY5NWMzMWJlMWYwNmZhMjlj
MWViZDEwNDdhMGZkYTA1ODYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zy
YW1lcy9jcmFzaC13aGVuLWdvaW5nLWJhY2std2l0aC1wYWdlLWNhY2hlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDkgQEAKK0lmIFdlYktpdCBkb2VzIG5vdCBhc3NlcnQgb3IgY3Jhc2gsIHlvdSBw
YXNzZWQuCitvcGVuIHBhZ2UtMQorcGFnZS0xIHBhcnNpbmcuCitwYWdlLTEgYWJvdXQgdG8gbmF2
aWdhdGUgdG8gcGFnZS0yLgorcGFnZS0xIHJlY2VpdmVkIHBhZ2VzaG93LgorcGFnZS0yIHBhcnNp
bmcuCitwYWdlLTIgYWJvdXQgdG8gZ28gYmFjayB0byBwYWdlLTEuCitwYWdlLTEgcmVjZWl2ZWQg
cGFnZXNob3cuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2NyYXNoLXdo
ZW4tZ29pbmctYmFjay13aXRoLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJh
bWVzL2NyYXNoLXdoZW4tZ29pbmctYmFjay13aXRoLXBhZ2UtY2FjaGUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42MzgzMzAwMDgxNjA0OTcwNzFjMzlhZWE0M2E2MDUxM2JlNWY5YWNjCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvY3Jhc2gtd2hlbi1nb2luZy1iYWNrLXdpdGgt
cGFnZS1jYWNoZS5odG1sCkBAIC0wLDAgKzEsMzQgQEAKKzxodG1sPgorPHNjcmlwdD4KK3dpbmRv
dy5maW5pc2ggPSBmdW5jdGlvbigpCit7CisgICAgaWYgKHRlc3RSdW5uZXIpCisgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCit3aW5kb3cubG9nID0gZnVuY3Rpb24obWVzc2Fn
ZSkgeworICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MICs9
IG1lc3NhZ2UgKyAiPGJyPiI7Cit9CisKK3dpbmRvdy5mYWlsdXJlID0gZnVuY3Rpb24obWVzc2Fn
ZSkgeworICAgIGxvZygiRkFJTDogIiArIG1lc3NhZ2UpOworICAgIGZpbmlzaCgpOworfQorCitm
dW5jdGlvbiB0ZXN0KCkgeworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKKyAgICAgICAgdGVz
dFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdFVzZXNQYWdlQ2FjaGVQcmVmZXJlbmNl
S2V5IiwgMSk7CisgICAgfQorICAgIGxvZygib3BlbiBwYWdlLTEiKTsKKyAgICB3aW5kb3cub3Bl
bigicmVzb3VyY2VzL2NyYXNoLXdoZW4tZ29pbmctYmFjay13aXRoLXBhZ2UtY2FjaGUtMS5odG1s
Iik7Cit9Cis8L3NjcmlwdD4KKworPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorSWYgV2ViS2l0IGRv
ZXMgbm90IGFzc2VydCBvciBjcmFzaCwgeW91IHBhc3NlZC4KKzxkaXYgaWQ9InJlc3VsdCI+PC9k
aXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1l
cy9yZXNvdXJjZXMvY3Jhc2gtd2hlbi1nb2luZy1iYWNrLXdpdGgtcGFnZS1jYWNoZS0xLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXNvdXJjZXMvY3Jhc2gtd2hlbi1nb2luZy1iYWNr
LXdpdGgtcGFnZS1jYWNoZS0xLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDlkZGE2M2E3ZTVjMTg3OTNiMDNl
ZDZmOWNlYzM4ZTFmMmVhOGRkZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZnJhbWVzL3Jlc291cmNlcy9jcmFzaC13aGVuLWdvaW5nLWJhY2std2l0aC1wYWdlLWNhY2hlLTEu
aHRtbApAQCAtMCwwICsxLDE3IEBACis8c2NyaXB0Pgord2luZG93Lm9wZW5lci5sb2coInBhZ2Ut
MSBwYXJzaW5nLiIpOword2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIHdpbmRvdy5v
cGVuZXIubG9nKCJwYWdlLTEgYWJvdXQgdG8gbmF2aWdhdGUgdG8gcGFnZS0yLiIpOworICAgIC8v
IExvY2F0aW9uIGNoYW5nZXMgbmVlZCB0byBoYXBwZW4gb3V0c2lkZSB0aGUgb25sb2FkIGhhbmRs
ZXIgdG8gZ2VuZXJhdGUgaGlzdG9yeSBlbnRyaWVzLgorICAgIHNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7IGxvY2F0aW9uLmhyZWYgPSAiY3Jhc2gtd2hlbi1nb2luZy1iYWNrLXdpdGgtcGFnZS1jYWNo
ZS0yLmh0bWwiOyB9LCAwKTsKK307CisKK3dpbmRvdy5wYWdlU2hvd0NvdW50ID0gMDsKKword2lu
ZG93Lm9ucGFnZXNob3cgPSBmdW5jdGlvbigpIHsKKyAgICB3aW5kb3cub3BlbmVyLmxvZygicGFn
ZS0xIHJlY2VpdmVkIHBhZ2VzaG93LiIpOworICAgICsrd2luZG93LnBhZ2VTaG93Q291bnQ7Cisg
ICAgaWYgKHdpbmRvdy5wYWdlU2hvd0NvdW50ID49IDIpCisgICAgICAgIHdpbmRvdy5vcGVuZXIu
ZmluaXNoKCk7Cit9OworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zy
YW1lcy9yZXNvdXJjZXMvY3Jhc2gtd2hlbi1nb2luZy1iYWNrLXdpdGgtcGFnZS1jYWNoZS0yLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXNvdXJjZXMvY3Jhc2gtd2hlbi1nb2luZy1i
YWNrLXdpdGgtcGFnZS1jYWNoZS0yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2I4MjE5ZDg5NWQ4YTg1ZDVj
Y2FiN2VmNzM4ZDVlNTQyOWNhN2M5NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZnJhbWVzL3Jlc291cmNlcy9jcmFzaC13aGVuLWdvaW5nLWJhY2std2l0aC1wYWdlLWNhY2hl
LTIuaHRtbApAQCAtMCwwICsxLDcgQEAKKzxzY3JpcHQ+Cit3aW5kb3cub3BlbmVyLmxvZygicGFn
ZS0yIHBhcnNpbmcuIik7Cit3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgd2luZG93
Lm9wZW5lci5sb2coInBhZ2UtMiBhYm91dCB0byBnbyBiYWNrIHRvIHBhZ2UtMS4iKTsKKyAgICBz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBoaXN0b3J5LmJhY2soKTsgfSwgMCk7Cit9OworPC9zY3Jp
cHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159559</attachid>
            <date>2012-08-20 16:32:21 -0700</date>
            <delta_ts>2012-08-20 16:33:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94143-20120820163141.patch</filename>
            <type>text/plain</type>
            <size>2017</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2MDc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjIzMGYzNjRjMzczZmZj
MDIyYTYyMTUwNjIxZDZjOTNhMWQ1Y2ZmOC4uYmNiZmE0OTlmNGU2NWEzMzllODBhMjdjNTdkMWVm
ZTZiNzU0NzIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA4LTIwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFzc2VydGlvbiBn
b2luZyBiYWNrIHRvIHJlc3VsdHMuaHRtbCBwYWdlIGZyb20gYW4gaW1hZ2UgZGlmZiByZXN1bHQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0MTQzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXZvaWQgcmVk
dW5kYW50bHkgc2V0dGluZyB0aGUgRE9NV2luZG93IG9uIGEgSlNET01XaW5kb3cgc2hlbGwgaW4K
KyAgICAgICAgU2NyaXB0Q2FjaGVkRnJhbWVEYXRhOjpyZXN0b3JlKCksIGFzIHdlIG1heSBoYXZl
IGFscmVhZHkgZG9uZSB0aGlzCisgICAgICAgIGluIFNjcmlwdENvbnRyb2xsZXI6OmNsZWFyV2lu
ZG93U2hlbGwoKS4gVGhpcyBhdm9pZHMgYW4gYXNzZXJ0aW9uCisgICAgICAgIG9uIHNvbWUgcGxh
dGZvcm1zIHdoZW4gZ29pbmcgQmFjayB0byB0aGUgdGVzdCByZXN1bHRzIHBhZ2UgZnJvbQorICAg
ICAgICBhIGRpZmYgaW1hZ2UuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRDYWNoZWRG
cmFtZURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q2FjaGVkRnJhbWVEYXRhOjpy
ZXN0b3JlKToKKwogMjAxMi0wOC0xNiAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gQ2hhbmdlIFdlYkxheWVyIGZyb20gYSBjb25jcmV0
ZSB0eXBlIHRvIGEgcHVyZSB2aXJ0dWFsIGludGVyZmFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhY2hlZEZyYW1lRGF0YS5jcHAKaW5kZXggYTY5YWYzOTFi
ZjQyYmU2NDVhZTRlMTFjYjM3NzNlYzQ3YmZhYjZkYy4uZGVmNzljZjJjMTZiYTc2ZTUxYmQ4ZjAx
ZmYwNzAwOWZlZDIwY2M2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRDYWNoZWRGcmFtZURhdGEuY3BwCkBAIC04MCw3ICs4MCwxMSBAQCB2b2lkIFNjcmlw
dENhY2hlZEZyYW1lRGF0YTo6cmVzdG9yZShGcmFtZSogZnJhbWUpCiAgICAgICAgIGlmIChKU0RP
TVdpbmRvdyogd2luZG93ID0gbV93aW5kb3dzLmdldCh3b3JsZCkuZ2V0KCkpCiAgICAgICAgICAg
ICB3aW5kb3dTaGVsbC0+c2V0V2luZG93KHdpbmRvdy0+Z2xvYmFsRGF0YSgpLCB3aW5kb3cpOwog
ICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIHdpbmRvd1NoZWxsLT5zZXRXaW5kb3coZnJhbWUt
PmRvY3VtZW50KCktPmRvbVdpbmRvdygpKTsKKyAgICAgICAgICAgIERPTVdpbmRvdyogZG9tV2lu
ZG93ID0gZnJhbWUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpOworICAgICAgICAgICAgaWYgKHdp
bmRvd1NoZWxsLT53aW5kb3coKS0+aW1wbCgpID09IGRvbVdpbmRvdykKKyAgICAgICAgICAgICAg
ICBjb250aW51ZTsKKworICAgICAgICAgICAgd2luZG93U2hlbGwtPnNldFdpbmRvdyhkb21XaW5k
b3cpOwogCiAgICAgICAgICAgICBpZiAoUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCkpIHsKICAg
ICAgICAgICAgICAgICBzY3JpcHRDb250cm9sbGVyLT5hdHRhY2hEZWJ1Z2dlcih3aW5kb3dTaGVs
bCwgcGFnZS0+ZGVidWdnZXIoKSk7Cg==
</data>
<flag name="review"
          id="169916"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>