<?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>43152</bug_id>
          
          <creation_ts>2010-07-28 15:19:11 -0700</creation_ts>
          <short_desc>Assertion failure in FrameView::layout when modifying the DOM during pagehide with PageCache enabled</short_desc>
          <delta_ts>2010-08-23 14:32:00 -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></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mihai Parparita">mihaip</reporter>
          <assigned_to name="Mihai Parparita">mihaip</assigned_to>
          <cc>aroben</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>257387</commentid>
    <comment_count>0</comment_count>
      <attachid>62885</attachid>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-07-28 15:19:11 -0700</bug_when>
    <thetext>Created attachment 62885
Test case

The attached test case triggers this assertion failure in debug builds:

ASSERTION FAILED: m_frame-&gt;view() == this
(/Users/mihaip/Developer/source/webkit1/WebCore/page/FrameView.cpp:634 void WebCore::FrameView::layout(bool))

0   com.apple.WebCore             	0x00000001017fd345 WebCore::FrameView::layout(bool) + 449 (FrameView.cpp:634)
1   com.apple.WebCore             	0x00000001017fe5ea WebCore::FrameView::layoutTimerFired(WebCore::Timer&lt;WebCore::FrameView&gt;*) + 30 (FrameView.cpp:1332)
2   com.apple.WebCore             	0x0000000101801753 WebCore::Timer&lt;WebCore::FrameView&gt;::fired() + 113 (Timer.h:98)
3   com.apple.WebCore             	0x000000010202ce68 WebCore::ThreadTimers::sharedTimerFiredInternal() + 208 (ThreadTimers.cpp:115)
4   com.apple.WebCore             	0x000000010202cff7 WebCore::ThreadTimers::sharedTimerFired() + 25 (ThreadTimers.cpp:91)
5   com.apple.WebCore             	0x0000000101efefd4 WebCore::timerFired(__CFRunLoopTimer*, void*) + 73 (SharedTimerMac.mm:87)
6   com.apple.CoreFoundation      	0x00007fff83b67678 __CFRunLoopRun + 6488
7   com.apple.CoreFoundation      	0x00007fff83b6584f CFRunLoopRunSpecific + 575
8   com.apple.HIToolbox           	0x00007fff830e991a RunCurrentEventLoopInMode + 333
9   com.apple.HIToolbox           	0x00007fff830e971f ReceiveNextEventCommon + 310
10  com.apple.HIToolbox           	0x00007fff830e95d8 BlockUntilNextEventMatchingListInMode + 59
11  com.apple.AppKit              	0x00007fff8451e29e _DPSNextEvent + 708
12  com.apple.AppKit              	0x00007fff8451dbed -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 155
13  com.apple.Safari              	0x0000000100015c96 0x100000000 + 89238
14  com.apple.AppKit              	0x00007fff844e38d3 -[NSApplication run] + 395
15  com.apple.AppKit              	0x00007fff844dc5f8 NSApplicationMain + 364
16  com.apple.Safari              	0x0000000100009b18 0x100000000 + 39704

The triggering conditions appear to be 1) the DOM being modified in the pagehide handler 2) the page cache being enabled (adding an unload event handler to disable results in this not crashing). The fact that it&apos;s a data: URL does not seem to matter, the crash also happens when changing the location to a regular URL.

There is this comment and check in FrameView.cpp immediately after the assert:

    // This early return should be removed when rdar://5598072 is resolved. In the meantime, there is a
    // gigantic CrashTracer because of this issue, and the early return will hopefully cause graceful 
    // failure instead.  
    if (m_frame-&gt;view() != this)
        return;

That was added in http://trac.webkit.org/changeset/29878. Cc-ing Darin and Beth in case there&apos;s anything relevant to this bug at the rdar:// URL.

Bug 32752 may be related, since it&apos;s the same assert and it happens on a page transition, but I can&apos;t reproduce it. Bug 19564 also mentions this assert, and says that HTMLFrameElement09.xhtml fails because of it (and it&apos;s still disabled as of http://trac.webkit.org/changeset/34803), but I can&apos;t reproduce the assert  when running it locally (though the test doesn&apos;t pass).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257389</commentid>
    <comment_count>1</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-28 15:21:14 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; Cc-ing Darin and Beth in case there&apos;s anything relevant to this bug at the rdar:// URL.

That Radar is marked as a duplicate of the bug fixed in &lt;http://trac.webkit.org/changeset/46136&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257392</commentid>
    <comment_count>2</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-07-28 15:23:33 -0700</bug_when>
    <thetext>An additional wrinkle: this only happens when the attached test case is served locally (from a file:/// URL), if viewing it when the file served from Bugzilla then the assert is not triggered.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257395</commentid>
    <comment_count>3</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-07-28 15:24:59 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; (In reply to comment #0)
&gt; &gt; Cc-ing Darin and Beth in case there&apos;s anything relevant to this bug at the rdar:// URL.
&gt; 
&gt; That Radar is marked as a duplicate of the bug fixed in &lt;http://trac.webkit.org/changeset/46136&gt;.

Thanks. So the comment/early return in FrameView.cpp should be removed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257409</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-28 15:57:16 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; So the comment/early return in FrameView.cpp should be removed?

If the comment is correct, the code can be removed.

But as I see it, if the comment was correct, then we would not be hitting the assertion! I am not yet sure we can remove this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257411</commentid>
    <comment_count>5</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-07-28 16:02:55 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; If the comment is correct, the code can be removed.
&gt; 
&gt; But as I see it, if the comment was correct, then we would not be hitting the assertion! I am not yet sure we can remove this.

OK, makes sense :) Darin Fisher and I looked a bit at this, and he suspects that the layout timer list is not being cleared when navigating away from pages in some cases. I&apos;ll investigate more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257973</commentid>
    <comment_count>6</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-07-29 16:42:46 -0700</bug_when>
    <thetext>As best as I can tell, the code path for invoking pagehide event handlers when the page cache is not enabled is:

- FrameLoader::commitProvisionalLoad
  - FrameLoader::transitionToCommitted
    - FrameLoader::closeURL
      - FrameLoader::stopLoading(UnloadEventPolicyUnloadAndPageHide)
          - DOMWindow::dispatchEvent(pageHideEvent)
    - WebFrameLoaderClient::transitionToCommittedForNewPage
      - Frame::SetView(0)
        - FrameView::unscheduleRelayout

While when the page cache is enabled, it is:

- FrameLoader::commitProvisionalLoad
  - PageCache::add
    - CachedPage::create
      - CachedFrame::create
        - FrameLoader::stopLoading(UnloadEventPolicyUnloadAndPageHide)
          - DOMWindow::dispatchEvent(pageHideEvent)
    - WebFrameLoaderClient::transitionToCommittedForNewPage
      - Frame::SetView(0)

(in the page cache case we call stopLoading with UnloadEventPolicyUnloadOnly in FrameLoader::closeURL, which is why they don&apos;t get invoked there)

The other difference is that later on, in Frame::SetView(0) (see how we get there above), there is this snippet:

235	// Detach the document now, so any onUnload handlers get run - if
236	// we wait until the view is destroyed, then things won&apos;t be
237	// hooked up enough for some JavaScript calls to work.
238	if (!view &amp;&amp; m_doc &amp;&amp; m_doc-&gt;attached() &amp;&amp; !m_doc-&gt;inPageCache()) {
239	    // FIXME: We don&apos;t call willRemove here. Why is that OK?
240	    m_doc-&gt;detach();
241	    if (m_view)
242	        m_view-&gt;unscheduleRelayout();
243	}

If the document is in the page cache, not only do we not detach the document, but we don&apos;t unschedule pending layouts either. The assert goes away if the unscheduleRelayout call is moved to be outside the attached/page cache check. Generally that seems like a good thing (we don&apos;t care about pending layouts in any case if we&apos;re about to switch away from that view), but I don&apos;t know this code well enough.

This code was built up over time, so I&apos;m not clear about the intention either (e.g. the comment about unload handlers seems wrong, since they don&apos;t get invoked by Document::detach). The relevant changes in this area are:
http://trac.webkit.org/changeset/19373
http://trac.webkit.org/changeset/25395
http://trac.webkit.org/changeset/25397</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258413</commentid>
    <comment_count>7</comment_count>
      <attachid>63109</attachid>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-07-30 15:07:15 -0700</bug_when>
    <thetext>Created attachment 63109
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258414</commentid>
    <comment_count>8</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-07-30 15:08:00 -0700</bug_when>
    <thetext>Darin, would you have time to review this? If not, can you suggest anyone appropriate?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266122</commentid>
    <comment_count>9</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-08-18 08:37:12 -0700</bug_when>
    <thetext>Simon, would you be a good person to review this? If not, do you have any suggestions as to who could look at it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266184</commentid>
    <comment_count>10</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-08-18 10:05:10 -0700</bug_when>
    <thetext>Is m_frame-&gt;view() null in this case?

It seems that is something is trying to do layout when in the page cache, we need to decid if we should not do the layout, and leave the document in the &quot;needs layout&quot; state until it comes out of the page cache</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266226</commentid>
    <comment_count>11</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-08-18 10:43:51 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Is m_frame-&gt;view() null in this case?

No, it&apos;s the previous page&apos;s view (CachedFrame keeps a reference to it).
 
&gt; It seems that is something is trying to do layout when in the page cache, we need to decid if we should not do the layout, and leave the document in the &quot;needs layout&quot; state until it comes out of the page cache

I don&apos;t think this is necessary, when restoring from the page cache we always do a layout. From http://trac.webkit.org/browser/trunk/WebCore/loader/FrameLoader.cpp#L1875:

if (m_loadingFromCachedPage) {
      ...
      // Force a layout to update view size and thereby update scrollbars.
      m_frame-&gt;view()-&gt;forceLayout();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267287</commentid>
    <comment_count>12</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-08-20 10:24:29 -0700</bug_when>
    <thetext>So maybe the fix for this is to call unscheduleRelayout() in a new place. That layout timer should not be firing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267948</commentid>
    <comment_count>13</comment_count>
      <attachid>63109</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-08-23 09:27:06 -0700</bug_when>
    <thetext>Comment on attachment 63109
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268099</commentid>
    <comment_count>14</comment_count>
      <attachid>63109</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-23 14:31:55 -0700</bug_when>
    <thetext>Comment on attachment 63109
Patch

Clearing flags on attachment: 63109

Committed r65832: &lt;http://trac.webkit.org/changeset/65832&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268100</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-23 14:32:00 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>62885</attachid>
            <date>2010-07-28 15:19:11 -0700</date>
            <delta_ts>2010-07-28 15:19:11 -0700</delta_ts>
            <desc>Test case</desc>
            <filename>triggers-assert.html</filename>
            <type>text/html</type>
            <size>405</size>
            <attacher name="Mihai Parparita">mihaip</attacher>
            
              <data encoding="base64">PGh0bWw+Cjxib2R5Pgo8cHJlIGlkPSJsb2ciPjwvcHJlPgo8L2JvZHk+CjxzY3JpcHQ+Cgp3aW5k
b3cub25wYWdlc2hvdyA9IGZ1bmN0aW9uKGV2dCkgewogIC8vIE1ha2Ugc3VyZSB0aGF0IHdlIGdl
bmVyYXRlIGEgbmV3IGhpc3RvcnkgZW50cnkgZXZlbiBhZnRlciBidWcgNDI4NjEgaXMgZml4ZWQu
CiAgc2V0VGltZW91dChmdW5jdGlvbigpIHt3aW5kb3cubG9jYXRpb24uaHJlZiA9ICJkYXRhOnRl
eHQvaHRtbCw8c2NyaXB0PmFsZXJ0KCduYXZpZ2F0ZWQnKTs8L3NjciIgKyAiaXB0PiI7fSwgMCk7
Cn0KCndpbmRvdy5vbnBhZ2VoaWRlID0gZnVuY3Rpb24oZXZ0KSB7CiAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2xvZycpLmlubmVySFRNTCA9ICdvbnBhZ2VoaWRlJzsKfQoKPC9zY3JpcHQ+Cjwv
aHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63109</attachid>
            <date>2010-07-30 15:07:15 -0700</date>
            <delta_ts>2010-08-23 14:31:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43152-20100730150714.patch</filename>
            <type>text/plain</type>
            <size>5688</size>
            <attacher name="Mihai Parparita">mihaip</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4ZmQ3YzRkNTJlNTc3YjgwZWQ2NDg1OTJkZmFiMTM3NDMxNDcyOGJhLi4xNzU4MTJi
MWZlMTY1MDU4M2M4ZGU1NzQxMWIyOTc3ODdjNTAyY2JmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTAtMDctMzAgIE1paGFpIFBhcnBhcml0YSAgPG1paGFpcEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXNzZXJ0aW9uIGZh
aWx1cmUgaW4gRnJhbWVWaWV3OjpsYXlvdXQgd2hlbiBtb2RpZnlpbmcgdGhlIERPTSBkdXJpbmcK
KyAgICAgICAgcGFnZWhpZGUgd2l0aCBQYWdlQ2FjaGUgZW5hYmxlZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDMxNTIKKworICAgICAgICBBbHdheXMg
dW5zY2hlZHVsZSBhbnkgcGVuZGluZyByZWxheW91dHMgd2hlbiBjaGFuZ2luZyB0aGUgdmlldywg
bm90IGp1c3QKKyAgICAgICAgd2hlbiB3ZSdyZSBub3QgdXNpbmcgdGhlIHBhZ2UgY2FjaGUuIE90
aGVyd2lzZSB0b3VjaGluZyB0aGUgRE9NIGR1cmluZworICAgICAgICB0aGUgcGFnZWhpZGUgaGFu
ZGxlciBjYW4gbGVhZCB0byBsYXlvdXRzIHRoYXQgd2lsbCBiZSBkb25lIGJ5IHRoZSB0aW1lCisg
ICAgICAgIHRoZSB2aWV3IGhhcyBjaGFuZ2VkLCB3aGljaCB0cmlnZ2VycyBhbiBhc3NlcnQuCisK
KyAgICAgICAgKiBmYXN0L2xvYWRlci9yZXNvdXJjZXMvdW5zY2hlZHVsZS1yZWxheW91dC1hZnRl
ci11bmxvYWQtdGFyZ2V0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbG9hZGVyL3Vuc2No
ZWR1bGUtcmVsYXlvdXQtYWZ0ZXItdW5sb2FkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9sb2FkZXIvdW5zY2hlZHVsZS1yZWxheW91dC1hZnRlci11bmxvYWQuaHRtbDogQWRk
ZWQuCisKIDIwMTAtMDctMjcgIERhcmluIEZpc2hlciAgPGRhcmluQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBCcmFkeSBFaWRzb24uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2xvYWRlci9yZXNvdXJjZXMvdW5zY2hlZHVsZS1yZWxheW91dC1hZnRlci11bmxvYWQt
dGFyZ2V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9yZXNvdXJjZXMvdW5zY2hlZHVs
ZS1yZWxheW91dC1hZnRlci11bmxvYWQtdGFyZ2V0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDU3OGY4Yjcy
ZDE3M2Q4YTU4ZmNlY2Y4N2ZiZWJmMjdlMmYwYjQyNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvbG9hZGVyL3Jlc291cmNlcy91bnNjaGVkdWxlLXJlbGF5b3V0LWFmdGVyLXVu
bG9hZC10YXJnZXQuaHRtbApAQCAtMCwwICsxLDEwIEBACis8aHRtbD4KKzxzY3JpcHQ+CisgIHdp
bmRvdy5zZXRUaW1lb3V0KAorICAgIGZ1bmN0aW9uKCkgeworICAgICAgICBkb2N1bWVudC5ib2R5
LmlubmVySFRNTCA9ICdTVUNDRVNTOiBOYXZpZ2F0ZWQnOworICAgICAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOworICAgIH0sIDApOworPC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2xvYWRlci91bnNjaGVkdWxlLXJlbGF5b3V0LWFmdGVyLXVubG9hZC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci91bnNjaGVkdWxlLXJlbGF5b3V0
LWFmdGVyLXVubG9hZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWQ1YmFlOTIxZThlNThjYTM5
NzMwZTAxNmI1NDViZGYwNzcwNjAyNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvbG9hZGVyL3Vuc2NoZWR1bGUtcmVsYXlvdXQtYWZ0ZXItdW5sb2FkLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxIEBACitTVUNDRVNTOiBOYXZpZ2F0ZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvbG9hZGVyL3Vuc2NoZWR1bGUtcmVsYXlvdXQtYWZ0ZXItdW5sb2FkLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2xvYWRlci91bnNjaGVkdWxlLXJlbGF5b3V0LWFmdGVyLXVubG9hZC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjgwMWIzNmY3MmFmYjVkOTNlYzgyY2NkZmQwOGU0YjJkN2RiZGU2ZGQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci91bnNjaGVkdWxlLXJlbGF5
b3V0LWFmdGVyLXVubG9hZC5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzxodG1sPgorPGJvZHk+Cis8
cHJlIGlkPSJsb2ciPjwvcHJlPgorPC9ib2R5PgorPHNjcmlwdD4KKworaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRVc2VzUGFnZUNhY2hlUHJl
ZmVyZW5jZUtleSIsIDEpOworfQorCit3aW5kb3cub25wYWdlc2hvdyA9IGZ1bmN0aW9uKGV2dCkg
eworICAgIC8vIExvY2F0aW9uIGNoYW5nZXMgbmVlZCB0byBoYXBwZW4gb3V0c2lkZSB0aGUgb25s
b2FkIGhhbmRsZXIgdG8gZ2VuZXJhdGUgaGlzdG9yeSBlbnRyaWVzLgorICAgIHNldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7d2luZG93LmxvY2F0aW9uLmhyZWYgPSAncmVzb3VyY2VzL3Vuc2NoZWR1bGUt
cmVsYXlvdXQtYWZ0ZXItdW5sb2FkLXRhcmdldC5odG1sJzt9LCAwKTsKK307CisKK3dpbmRvdy5v
bnBhZ2VoaWRlID0gZnVuY3Rpb24oZXZ0KSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2xvZycpLmlubmVySFRNTCArPSAnb25wYWdlaGlkZSc7Cit9OworCis8L3NjcmlwdD4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggMWUxNjQwMTZlZGVkYjliNTFhZDkyMGIxMzAyZTdmM2NkYTg3Njk0NS4uMTU0YTUwNDk2YTJl
MjZhNjg2MzBiOTM2NTAyNDljMjcwYmY1MTZkNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0wNy0zMCAg
TWloYWkgUGFycGFyaXRhICA8bWloYWlwQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBc3NlcnRpb24gZmFpbHVyZSBpbiBGcmFt
ZVZpZXc6OmxheW91dCB3aGVuIG1vZGlmeWluZyB0aGUgRE9NIGR1cmluZworICAgICAgICBwYWdl
aGlkZSB3aXRoIFBhZ2VDYWNoZSBlbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00MzE1MgorCisgICAgICAgIEFsd2F5cyB1bnNjaGVkdWxlIGFu
eSBwZW5kaW5nIHJlbGF5b3V0cyB3aGVuIGNoYW5naW5nIHRoZSB2aWV3LCBub3QganVzdAorICAg
ICAgICB3aGVuIHdlJ3JlIG5vdCB1c2luZyB0aGUgcGFnZSBjYWNoZS4gT3RoZXJ3aXNlIHRvdWNo
aW5nIHRoZSBET00gZHVyaW5nCisgICAgICAgIHRoZSBwYWdlaGlkZSBoYW5kbGVyIGNhbiBsZWFk
IHRvIGxheW91dHMgdGhhdCB3aWxsIGJlIGRvbmUgYnkgdGhlIHRpbWUKKyAgICAgICAgdGhlIHZp
ZXcgaGFzIGNoYW5nZWQsIHdoaWNoIHRyaWdnZXJzIGFuIGFzc2VydC4KKworICAgICAgICBUZXN0
OiBmYXN0L2xvYWRlci91bnNjaGVkdWxlLXJlbGF5b3V0LWFmdGVyLXVubG9hZC5odG1sCisKKyAg
ICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpzZXRWaWV3
KTogbW92ZSB1bnNjaGVkdWxlUmVsYXlvdXQgb3V0c2lkZSBwYWdlIGNhY2hlCisgICAgICAgIGNo
ZWNrLgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lVmlldzo6bGF5b3V0KTogcmVtb3ZlIGVhcmx5IHJldHVybiBub3cgdGhhdCBhc3NlcnQKKyAg
ICAgICAgc2hvdWxkIGJlIGNvcnJlY3QgKGFuZCB0aGUgcmVmZXJlbmNlZCByZGFyOi8vIGdvdCBm
aXhlZCkuCisKIDIwMTAtMDctMjcgIERhcmluIEZpc2hlciAgPGRhcmluQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBCcmFkeSBFaWRzb24uCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BhZ2UvRnJhbWUuY3BwIGIvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCBiNDE5ZTE0NWZj
ZjQ5MmI1NmUzODhkZGQ5YWMzY2ZkZDYwNjA2ZWQxLi5hZGJlNDdmNjE5ZTAwYjc4MjdjOWI0ODVk
ODM2MDI1ZWU0ZTIwNWQ5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBi
L1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTIzOCw5ICsyMzgsMTEgQEAgdm9pZCBGcmFtZTo6
c2V0VmlldyhQYXNzUmVmUHRyPEZyYW1lVmlldz4gdmlldykKICAgICBpZiAoIXZpZXcgJiYgbV9k
b2MgJiYgbV9kb2MtPmF0dGFjaGVkKCkgJiYgIW1fZG9jLT5pblBhZ2VDYWNoZSgpKSB7CiAgICAg
ICAgIC8vIEZJWE1FOiBXZSBkb24ndCBjYWxsIHdpbGxSZW1vdmUgaGVyZS4gV2h5IGlzIHRoYXQg
T0s/CiAgICAgICAgIG1fZG9jLT5kZXRhY2goKTsKLSAgICAgICAgaWYgKG1fdmlldykKLSAgICAg
ICAgICAgIG1fdmlldy0+dW5zY2hlZHVsZVJlbGF5b3V0KCk7CiAgICAgfQorICAgIAorICAgIGlm
IChtX3ZpZXcpCisgICAgICAgIG1fdmlldy0+dW5zY2hlZHVsZVJlbGF5b3V0KCk7CisgICAgCiAg
ICAgZXZlbnRIYW5kbGVyKCktPmNsZWFyKCk7CiAKICAgICBtX3ZpZXcgPSB2aWV3OwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmNwcAppbmRleCAwNTQ3YzgyZmJlOTE0ZWRlYzRjMzJlOTZiYmIxNTUyNDdkOGIzYWRiLi5iYTZj
NjdkZjgwZTcwZWE3NjEwZGQ1ODczZDc5NTgxYjk5NGY4NWJmIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAt
NjMyLDExICs2MzIsNiBAQCB2b2lkIEZyYW1lVmlldzo6bGF5b3V0KGJvb2wgYWxsb3dTdWJ0cmVl
KQogICAgIH0KIAogICAgIEFTU0VSVChtX2ZyYW1lLT52aWV3KCkgPT0gdGhpcyk7Ci0gICAgLy8g
VGhpcyBlYXJseSByZXR1cm4gc2hvdWxkIGJlIHJlbW92ZWQgd2hlbiByZGFyOi8vNTU5ODA3MiBp
cyByZXNvbHZlZC4gSW4gdGhlIG1lYW50aW1lLCB0aGVyZSBpcyBhCi0gICAgLy8gZ2lnYW50aWMg
Q3Jhc2hUcmFjZXIgYmVjYXVzZSBvZiB0aGlzIGlzc3VlLCBhbmQgdGhlIGVhcmx5IHJldHVybiB3
aWxsIGhvcGVmdWxseSBjYXVzZSBncmFjZWZ1bCAKLSAgICAvLyBmYWlsdXJlIGluc3RlYWQuICAK
LSAgICBpZiAobV9mcmFtZS0+dmlldygpICE9IHRoaXMpCi0gICAgICAgIHJldHVybjsKIAogICAg
IERvY3VtZW50KiBkb2N1bWVudCA9IG1fZnJhbWUtPmRvY3VtZW50KCk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>