<?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>27137</bug_id>
          
          <creation_ts>2009-07-09 16:43:49 -0700</creation_ts>
          <short_desc>REGRESSION (r44311): Reproducible crash due to infinite recursion into FrameLoader::gotoAnchor() -&gt; FrameView::layout()</short_desc>
          <delta_ts>2009-07-10 09:57:17 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://hsivonen.iki.fi/doctype/#handling</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, NeedsReduction, Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>130763</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2009-07-09 16:43:49 -0700</bug_when>
    <thetext>&lt;rdar://problem/7043124&gt;

VIsiting the URL makes Safari crash with a stack showing many repititions of

  com.apple.WebCore              0x9547f226 WebCore::FrameLoader::gotoAnchor() + 0x56
  com.apple.WebCore              0x9549a348 WebCore::FrameView::layout(bool) + 0x828
  com.apple.WebCore              0x956124ad WebCore::FrameLoader::gotoAnchor(WebCore::String const&amp;) + 0x26d

We may need to make the going-to-anchor a post-layoiut task. I suspect that this was introduced by a recent patch to improve locking-to-anchor during loading, but I haven’t verified this yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130767</commentid>
    <comment_count>1</comment_count>
    <who name="">mitz</who>
    <bug_when>2009-07-09 16:47:48 -0700</bug_when>
    <thetext>&lt;http://trac.webkit.org/changeset/44311/&gt; is the change I had in mind.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130770</commentid>
    <comment_count>2</comment_count>
    <who name="">mitz</who>
    <bug_when>2009-07-09 16:56:53 -0700</bug_when>
    <thetext>Confirmed that reverting r44311 fixes the crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130774</commentid>
    <comment_count>3</comment_count>
    <who name="">mitz</who>
    <bug_when>2009-07-09 17:20:19 -0700</bug_when>
    <thetext>Having looked at the code, I don’t think moving to post-layout is the right solution here. If the frame needs layout at that point, there’s no use scrolling it until that layout occurs. But also, it seems somewhat inefficient to go through gotoAnchor() every time. Perhaps instead of the lockedToAnchor boolean, a RefPtr&lt;Node&gt; could be used and the frame could track that node without calling back into the loader.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130802</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-09 19:08:27 -0700</bug_when>
    <thetext>Concensus on IRC was not to back the patch out tonight.  Nate will look into this tomorrow.  If we can&apos;t find a fix shortly, we will revert the offending change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130841</commentid>
    <comment_count>5</comment_count>
      <attachid>32551</attachid>
    <who name="">mitz</who>
    <bug_when>2009-07-09 23:04:03 -0700</bug_when>
    <thetext>Created attachment 32551
Make lock-scroll-to-anchor a function of FrameView, and perform it as a post-layout task</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130881</commentid>
    <comment_count>6</comment_count>
      <attachid>32551</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-07-10 08:13:16 -0700</bug_when>
    <thetext>Comment on attachment 32551
Make lock-scroll-to-anchor a function of FrameView, and perform it as a post-layout task



&gt; +void FrameView::keepScrolledToAnchorNode(Node* anchorNode)

I&apos;m not a big fan of this method name; maybe something like maintainScrollPositionToAnchorNode?

&gt; +    if (anchorNode != m_frame-&gt;document())
&gt; +        rect = anchorNode-&gt;getRect();

getRect(true) will make this transform-friendly!

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130886</commentid>
    <comment_count>7</comment_count>
    <who name="">mitz</who>
    <bug_when>2009-07-10 09:57:17 -0700</bug_when>
    <thetext>Fixed in &lt;http://trac.webkit.org/projects/webkit/changeset/45710&gt; and &lt;http://trac.webkit.org/projects/webkit/changeset/45711&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32551</attachid>
            <date>2009-07-09 23:04:03 -0700</date>
            <delta_ts>2009-07-10 08:13:16 -0700</delta_ts>
            <desc>Make lock-scroll-to-anchor a function of FrameView, and perform it as a post-layout task</desc>
            <filename>7043124_r2.diff</filename>
            <type>text/plain</type>
            <size>11540</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NTcwMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDcgQEAKKzIwMDktMDctMDkgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIGZp
eCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjcxMzcKKyAgICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNzA0MzEyND4gUkVHUkVTU0lPTiAocjQ0MzExKTogUmVwcm9kdWNp
YmxlIGNyYXNoIGR1ZQorICAgICAgICAgIHRvIGluZmluaXRlIHJlY3Vyc2lvbiBpbnRvIEZyYW1l
TG9hZGVyOjpnb3RvQW5jaG9yKCkgLT4KKyAgICAgICAgICBGcmFtZVZpZXc6OmxheW91dCgpCisK
KyAgICAgICAgVGVzdDogZmFzdC9sb2FkZXIvZ290by1hbmNob3ItaW5maW5pdGUtbGF5b3V0Lmh0
bWwKKworICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZUxvYWRlcjo6Z290b0FuY2hvcik6IE1vdmVkIHRoZSBjb2RlIHRvIHVwZGF0ZSBsYXlv
dXQsCisgICAgICAgIGZpbmQgdGhlIHJlbmRlcmVyIHRvIHNjcm9sbCB0bywgYW5kIHNjcm9sbCBm
cm9tIGhlcmUgdG8gbWV0aG9kcyBvbgorICAgICAgICBGcmFtZVZpZXcsIGFuZCByZXBsYWNlZCBp
dCB3aXRoIGEgY2FsbCB0bworICAgICAgICBGcmFtZVZpZXc6OmtlZXBTY3JvbGxlZFRvQW5jaG9y
Tm9kZSgpLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNvbXBsZXRlZCk6IENhbGwg
a2VlcFNjcm9sbGVkVG9BbmNob3JOb2RlKCkKKyAgICAgICAgaW5zdGVhZCBvZiBzZXRMb2NrZWRU
b0FuY2hvcigpLgorCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVWaWV3OjpGcmFtZVZpZXcpOiBSZW1vdmVkIGluaXRpYWxpemF0aW9uIG9mCisg
ICAgICAgIG1fbG9ja2VkVG9BbmNob3IuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnJl
c2V0KTogUmVzZXQgbV9rZWVwU2Nyb2xsZWRUb0FuY2hvciBpbnN0ZWFkIG9mCisgICAgICAgIG1f
bG9ja2VkVG9BbmNob3IuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmxheW91dCk6IFJl
bW92ZWQgdGhlIGNvZGUgcmVsYXRlZCB0byBzY3JvbGxpbmcgdG8KKyAgICAgICAgdGhlIGFuY2hv
ciBmcm9tIGhlcmUsIGJlY2F1c2Ugc2Nyb2xsaW5nIGNhbiB0cmlnZ2VyIGV2ZW50cyB3aGljaAor
ICAgICAgICBpbnZhbGlkYXRlIHRoZSBsYXlvdXQsIGFuZCBhcyBzdWNoLCBiZWxvbmdzIHdpdGgg
dGhlIHBvc3QtbGF5b3V0IHRhc2tzLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjprZWVw
U2Nyb2xsZWRUb0FuY2hvck5vZGUpOiBBZGRlZC4gV2hlbiBjYWxsZWQgd2l0aAorICAgICAgICBh
IG5vZGUgc2Nyb2xscyB0aGUgdmlldyB0byB0aGUgdG9wIG9mIHRoYXQgbm9kZSBhbmQgbWFpbnRh
aW5zIGl0CisgICAgICAgIHNjcm9sbGVkIHRvIHRoZSB0b3Agb2YgdGhlIG5vZGUgZHVyaW5nIHN1
YnNlcXVlbnQgbGF5b3V0cywgdW50aWwKKyAgICAgICAgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQg
d2l0aCAwIG9yIG90aGVyIHRoaW5ncyB0cmlnZ2VyIHNjcm9sbGluZy4KKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lVmlldzo6c2Nyb2xsUmVjdEludG9WaWV3UmVjdXJzaXZlbHkpOiBSZXNldAorICAg
ICAgICBtX2tlZXBTY3JvbGxlZFRvQW5jaG9yLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3
OjpzZXRTY3JvbGxQb3NpdGlvbik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3
OjpzY3JvbGxUb0FuY2hvcik6IEFkZGVkLiBTY3JvbGxzIHRvIHRoZSB0b3Agb2YKKyAgICAgICAg
bV9rZWVwU2Nyb2xsZWRUb0FuY2hvciwgaWYgaXQgaXMgc2V0LgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVWaWV3OjpwZXJmb3JtUG9zdExheW91dFRhc2tzKTogQ2FsbCBzY3JvbGxUb0FuY2hvcigp
LgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXRXYXNTY3JvbGxlZEJ5VXNlcik6IFJl
c2V0CisgICAgICAgIG1fa2VlcFNjcm9sbGVkVG9BbmNob3IuCisKKyAgICAgICAgKiBwYWdlL0Zy
YW1lVmlldy5oOiBSZW1vdmVkIGxvY2tlZFRvQW5jaG9yKCksIHNldExvY2tlZFRvQW5jaG9yKCks
CisgICAgICAgIGFuZCBtX2xvY2tlZFRvQW5jaG9yLiBBZGRlZCBrZWVwU2Nyb2xsZWRUb0FuY2hv
ck5vZGUoKSBhbmQKKyAgICAgICAgbV9rZWVwU2Nyb2xsZWRUb0FuY2hvci4KKwogMjAwOS0wNy0w
OSAgUm9sYW5kIFN0ZWluZXIgIDxyb2xhbmRzdGVpbmVyQGdvb2dsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgTWFjaWVqIFN0YWNob3dpYWsuCkluZGV4OiBXZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
CShyZXZpc2lvbiA0NTY5MykKKysrIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTU4OSwyOCArMTU4OSw4IEBAIGJvb2wgRnJhbWVMb2FkZXI6OmdvdG9B
bmNob3IoY29uc3QgU3RyaW4KICAgICBpZiAoIWFuY2hvck5vZGUgJiYgIShuYW1lLmlzRW1wdHko
KSB8fCBlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCAidG9wIikpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICAvLyBXZSBuZWVkIHRvIHVwZGF0ZSB0aGUgbGF5b3V0IGJlZm9yZSBzY3JvbGxp
bmcsIG90aGVyd2lzZSB3ZSBjb3VsZAotICAgIC8vIHJlYWxseSBtZXNzIHRoaW5ncyB1cCBpZiBh
biBhbmNob3Igc2Nyb2xsIGNvbWVzIGF0IGEgYmFkIG1vbWVudC4KLSAgICBtX2ZyYW1lLT5kb2N1
bWVudCgpLT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7Ci0gICAgLy8gT25seSBkbyBhIGxheW91dCBp
ZiBjaGFuZ2VzIGhhdmUgb2NjdXJyZWQgdGhhdCBtYWtlIGl0IG5lY2Vzc2FyeS4KLSAgICBpZiAo
bV9mcmFtZS0+dmlldygpICYmIG1fZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigpICYmIG1fZnJhbWUt
PmNvbnRlbnRSZW5kZXJlcigpLT5uZWVkc0xheW91dCgpKQotICAgICAgICBtX2ZyYW1lLT52aWV3
KCktPmxheW91dCgpOwotICAKLSAgICAvLyBTY3JvbGwgbmVzdGVkIGxheWVycyBhbmQgZnJhbWVz
IHRvIHJldmVhbCB0aGUgYW5jaG9yLgotICAgIC8vIEFsaWduIHRvIHRoZSB0b3AgYW5kIHRvIHRo
ZSBjbG9zZXN0IHNpZGUgKHRoaXMgbWF0Y2hlcyBvdGhlciBicm93c2VycykuCi0gICAgUmVuZGVy
T2JqZWN0KiByZW5kZXJlcjsKLSAgICBJbnRSZWN0IHJlY3Q7Ci0gICAgaWYgKCFhbmNob3JOb2Rl
KQotICAgICAgICByZW5kZXJlciA9IG1fZnJhbWUtPmRvY3VtZW50KCktPnJlbmRlcmVyKCk7IC8v
IHRvcCBvZiBkb2N1bWVudAotICAgIGVsc2UgewotICAgICAgICByZW5kZXJlciA9IGFuY2hvck5v
ZGUtPnJlbmRlcmVyKCk7Ci0gICAgICAgIHJlY3QgPSBhbmNob3JOb2RlLT5nZXRSZWN0KCk7Ci0g
ICAgfQotICAgIGlmIChyZW5kZXJlcikgewotICAgICAgICByZW5kZXJlci0+ZW5jbG9zaW5nTGF5
ZXIoKS0+c2Nyb2xsUmVjdFRvVmlzaWJsZShyZWN0LCB0cnVlLCBTY3JvbGxBbGlnbm1lbnQ6OmFs
aWduVG9FZGdlSWZOZWVkZWQsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub3BBbHdheXMpOwotICAg
ICAgICBpZiAobV9mcmFtZS0+dmlldygpKQotICAgICAgICAgICAgbV9mcmFtZS0+dmlldygpLT5z
ZXRMb2NrZWRUb0FuY2hvcih0cnVlKTsKLSAgICB9CisgICAgaWYgKEZyYW1lVmlldyogdmlldyA9
IG1fZnJhbWUtPnZpZXcoKSkKKyAgICAgICAgdmlldy0+a2VlcFNjcm9sbGVkVG9BbmNob3JOb2Rl
KGFuY2hvck5vZGUgPyBzdGF0aWNfY2FzdDxOb2RlKj4oYW5jaG9yTm9kZSkgOiBtX2ZyYW1lLT5k
b2N1bWVudCgpKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMjExNCw3ICsyMDk0LDcgQEAg
dm9pZCBGcmFtZUxvYWRlcjo6Y29tcGxldGVkKCkKICAgICBpZiAoRnJhbWUqIHBhcmVudCA9IG1f
ZnJhbWUtPnRyZWUoKS0+cGFyZW50KCkpCiAgICAgICAgIHBhcmVudC0+bG9hZGVyKCktPmNoZWNr
Q29tcGxldGVkKCk7CiAgICAgaWYgKG1fZnJhbWUtPnZpZXcoKSkKLSAgICAgICAgbV9mcmFtZS0+
dmlldygpLT5zZXRMb2NrZWRUb0FuY2hvcihmYWxzZSk7CisgICAgICAgIG1fZnJhbWUtPnZpZXco
KS0+a2VlcFNjcm9sbGVkVG9BbmNob3JOb2RlKDApOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjpz
dGFydGVkKCkKSW5kZXg6IFdlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCShyZXZpc2lvbiA0NTY5MykKKysrIFdlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEsNyArMTExLDYgQEAgRnJh
bWVWaWV3OjpGcmFtZVZpZXcoRnJhbWUqIGZyYW1lKQogICAgICwgbV9zaG91bGRVcGRhdGVXaGls
ZU9mZnNjcmVlbih0cnVlKQogICAgICwgbV9kZWZlclNldE5lZWRzTGF5b3V0cygwKQogICAgICwg
bV9zZXROZWVkc0xheW91dFdhc0RlZmVycmVkKGZhbHNlKQotICAgICwgbV9sb2NrZWRUb0FuY2hv
cihmYWxzZSkKIHsKICAgICBpbml0KCk7CiB9CkBAIC0xODUsNyArMTg0LDcgQEAgdm9pZCBGcmFt
ZVZpZXc6OnJlc2V0KCkKICAgICBtX2lzUGFpbnRpbmcgPSBmYWxzZTsKICAgICBtX2lzVmlzdWFs
bHlOb25FbXB0eSA9IGZhbHNlOwogICAgIG1fZmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Q2Fs
bGJhY2tQZW5kaW5nID0gdHJ1ZTsKLSAgICBtX2xvY2tlZFRvQW5jaG9yID0gZmFsc2U7CisgICAg
bV9rZWVwU2Nyb2xsZWRUb0FuY2hvciA9IDA7CiB9CiAKIGJvb2wgRnJhbWVWaWV3Ojppc0ZyYW1l
VmlldygpIGNvbnN0IApAQCAtNjY2LDkgKzY2NSw2IEBAIHZvaWQgRnJhbWVWaWV3OjpsYXlvdXQo
Ym9vbCBhbGxvd1N1YnRyZWUKICAgICAgICAgQVNTRVJUKG1fZW5xdWV1ZUV2ZW50cyk7CiAgICAg
fQogCi0gICAgaWYgKGxvY2tlZFRvQW5jaG9yKCkpCi0gICAgICAgIG1fZnJhbWUtPmxvYWRlcigp
LT5nb3RvQW5jaG9yKCk7Ci0KICAgICBtX25lc3RlZExheW91dENvdW50LS07CiB9CiAKQEAgLTc1
MSwxMSArNzQ3LDI3IEBAIHZvaWQgRnJhbWVWaWV3OjpyZXN0b3JlU2Nyb2xsYmFyKCkKICAgICBz
ZXRTY3JvbGxiYXJzU3VwcHJlc3NlZChmYWxzZSk7CiB9CiAKK3ZvaWQgRnJhbWVWaWV3OjprZWVw
U2Nyb2xsZWRUb0FuY2hvck5vZGUoTm9kZSogYW5jaG9yTm9kZSkKK3sKKyAgICBtX2tlZXBTY3Jv
bGxlZFRvQW5jaG9yID0gYW5jaG9yTm9kZTsKKyAgICBpZiAoIW1fa2VlcFNjcm9sbGVkVG9BbmNo
b3IpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIFdlIG5lZWQgdG8gdXBkYXRlIHRoZSBsYXlv
dXQgYmVmb3JlIHNjcm9sbGluZywgb3RoZXJ3aXNlIHdlIGNvdWxkCisgICAgLy8gcmVhbGx5IG1l
c3MgdGhpbmdzIHVwIGlmIGFuIGFuY2hvciBzY3JvbGwgY29tZXMgYXQgYSBiYWQgbW9tZW50Lgor
ICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKKyAgICAvLyBP
bmx5IGRvIGEgbGF5b3V0IGlmIGNoYW5nZXMgaGF2ZSBvY2N1cnJlZCB0aGF0IG1ha2UgaXQgbmVj
ZXNzYXJ5LgorICAgIGlmIChtX2ZyYW1lLT5jb250ZW50UmVuZGVyZXIoKSAmJiBtX2ZyYW1lLT5j
b250ZW50UmVuZGVyZXIoKS0+bmVlZHNMYXlvdXQoKSkKKyAgICAgICAgbGF5b3V0KCk7CisgICAg
ZWxzZQorICAgICAgICBzY3JvbGxUb0FuY2hvcigpOworfQorCiB2b2lkIEZyYW1lVmlldzo6c2Ny
b2xsUmVjdEludG9WaWV3UmVjdXJzaXZlbHkoY29uc3QgSW50UmVjdCYgcikKIHsKICAgICBib29s
IHdhc0luUHJvZ3JhbW1hdGljU2Nyb2xsID0gbV9pblByb2dyYW1tYXRpY1Njcm9sbDsKICAgICBt
X2luUHJvZ3JhbW1hdGljU2Nyb2xsID0gdHJ1ZTsKLSAgICBzZXRMb2NrZWRUb0FuY2hvcihmYWxz
ZSk7CisgICAgbV9rZWVwU2Nyb2xsZWRUb0FuY2hvciA9IDA7CiAgICAgU2Nyb2xsVmlldzo6c2Ny
b2xsUmVjdEludG9WaWV3UmVjdXJzaXZlbHkocik7CiAgICAgbV9pblByb2dyYW1tYXRpY1Njcm9s
bCA9IHdhc0luUHJvZ3JhbW1hdGljU2Nyb2xsOwogfQpAQCAtNzY0LDcgKzc3Niw3IEBAIHZvaWQg
RnJhbWVWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCAKIHsKICAgICBib29sIHdhc0luUHJv
Z3JhbW1hdGljU2Nyb2xsID0gbV9pblByb2dyYW1tYXRpY1Njcm9sbDsKICAgICBtX2luUHJvZ3Jh
bW1hdGljU2Nyb2xsID0gdHJ1ZTsKLSAgICBzZXRMb2NrZWRUb0FuY2hvcihmYWxzZSk7CisgICAg
bV9rZWVwU2Nyb2xsZWRUb0FuY2hvciA9IDA7CiAgICAgU2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9z
aXRpb24oc2Nyb2xsUG9pbnQpOwogICAgIG1faW5Qcm9ncmFtbWF0aWNTY3JvbGwgPSB3YXNJblBy
b2dyYW1tYXRpY1Njcm9sbDsKIH0KQEAgLTExMTgsNiArMTEzMCwyNyBAQCB2b2lkIEZyYW1lVmll
dzo6cmVzdW1lU2NoZWR1bGVkRXZlbnRzKCkKICAgICBBU1NFUlQobV9zY2hlZHVsZWRFdmVudHMu
aXNFbXB0eSgpIHx8IG1fZW5xdWV1ZUV2ZW50cyk7CiB9CiAKK3ZvaWQgRnJhbWVWaWV3OjpzY3Jv
bGxUb0FuY2hvcigpCit7CisgICAgUmVmUHRyPE5vZGU+IGFuY2hvck5vZGUgPSBtX2tlZXBTY3Jv
bGxlZFRvQW5jaG9yOworICAgIGlmICghYW5jaG9yTm9kZSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKCFhbmNob3JOb2RlLT5yZW5kZXJlcigpKQorICAgICAgICByZXR1cm47CisKKyAgICBJ
bnRSZWN0IHJlY3Q7CisgICAgaWYgKGFuY2hvck5vZGUgIT0gbV9mcmFtZS0+ZG9jdW1lbnQoKSkK
KyAgICAgICAgcmVjdCA9IGFuY2hvck5vZGUtPmdldFJlY3QoKTsKKworICAgIC8vIFNjcm9sbCBu
ZXN0ZWQgbGF5ZXJzIGFuZCBmcmFtZXMgdG8gcmV2ZWFsIHRoZSBhbmNob3IuCisgICAgLy8gQWxp
Z24gdG8gdGhlIHRvcCBhbmQgdG8gdGhlIGNsb3Nlc3Qgc2lkZSAodGhpcyBtYXRjaGVzIG90aGVy
IGJyb3dzZXJzKS4KKyAgICBhbmNob3JOb2RlLT5yZW5kZXJlcigpLT5lbmNsb3NpbmdMYXllcigp
LT5zY3JvbGxSZWN0VG9WaXNpYmxlKHJlY3QsIHRydWUsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25U
b0VkZ2VJZk5lZWRlZCwgU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvcEFsd2F5cyk7CisKKyAgICAv
LyBzY3JvbGxSZWN0VG9WaXNpYmxlIGNhbiBjYWxsIGludG8gc2Nyb2xsUmVjdEludG9WaWV3UmVj
dXJzaXZlbHkoKSwgd2hpY2ggcmVzZXRzIG1fa2VlcFNjcm9sbGVkVG9BbmNob3IuCisgICAgbV9r
ZWVwU2Nyb2xsZWRUb0FuY2hvciA9IGFuY2hvck5vZGU7Cit9CisKIGJvb2wgRnJhbWVWaWV3Ojp1
cGRhdGVXaWRnZXRzKCkKIHsKICAgICBpZiAobV9uZXN0ZWRMYXlvdXRDb3VudCA+IDEgfHwgIW1f
d2lkZ2V0VXBkYXRlU2V0IHx8IG1fd2lkZ2V0VXBkYXRlU2V0LT5pc0VtcHR5KCkpCkBAIC0xMTYx
LDcgKzExOTQsOSBAQCB2b2lkIEZyYW1lVmlldzo6cGVyZm9ybVBvc3RMYXlvdXRUYXNrcygpCiAg
ICAgICAgIGlmICh1cGRhdGVXaWRnZXRzKCkpCiAgICAgICAgICAgICBicmVhazsKICAgICB9Ci0g
ICAgCisKKyAgICBzY3JvbGxUb0FuY2hvcigpOworCiAgICAgcmVzdW1lU2NoZWR1bGVkRXZlbnRz
KCk7CiAKICAgICBpZiAoIXJvb3QtPnByaW50aW5nKCkpIHsKQEAgLTEzNTEsNyArMTM4Niw3IEBA
IHZvaWQgRnJhbWVWaWV3OjpzZXRXYXNTY3JvbGxlZEJ5VXNlcihib28KIHsKICAgICBpZiAobV9p
blByb2dyYW1tYXRpY1Njcm9sbCkKICAgICAgICAgcmV0dXJuOwotICAgIHNldExvY2tlZFRvQW5j
aG9yKGZhbHNlKTsKKyAgICBtX2tlZXBTY3JvbGxlZFRvQW5jaG9yID0gMDsKICAgICBtX3dhc1Nj
cm9sbGVkQnlVc2VyID0gd2FzU2Nyb2xsZWRCeVVzZXI7CiB9CiAKSW5kZXg6IFdlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgJKHJl
dmlzaW9uIDQ1NjkzKQorKysgV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xNzksOCArMTc5LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBhZGp1c3RQYWdlSGVpZ2h0
KGZsb2F0KiBuZXdCb3R0b20sIGZsb2F0IG9sZFRvcCwgZmxvYXQgb2xkQm90dG9tLCBmbG9hdCBi
b3R0b21MaW1pdCk7CiAKLSAgICBib29sIGxvY2tlZFRvQW5jaG9yKCkgeyByZXR1cm4gbV9sb2Nr
ZWRUb0FuY2hvcjsgfQotICAgIHZvaWQgc2V0TG9ja2VkVG9BbmNob3IoYm9vbCBsb2NrZWRUb0Fu
Y2hvcikgeyBtX2xvY2tlZFRvQW5jaG9yID0gbG9ja2VkVG9BbmNob3I7IH0KKyAgICB2b2lkIGtl
ZXBTY3JvbGxlZFRvQW5jaG9yTm9kZShOb2RlKik7CiAKICAgICAvLyBNZXRob2RzIHRvIGNvbnZl
cnQgcG9pbnRzIGFuZCByZWN0cyBiZXR3ZWVuIHRoZSBjb29yZGluYXRlIHNwYWNlIG9mIHRoZSBy
ZW5kZXJlciwgYW5kIHRoaXMgdmlldy4KICAgICB2aXJ0dWFsIEludFJlY3QgY29udmVydEZyb21S
ZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QqLCBjb25zdCBJbnRSZWN0JikgY29uc3Q7CkBAIC0y
MzMsNiArMjMyLDcgQEAgcHJpdmF0ZToKICAgICBkb3VibGUgYWRqdXN0ZWREZWZlcnJlZFJlcGFp
bnREZWxheSgpIGNvbnN0OwogCiAgICAgYm9vbCB1cGRhdGVXaWRnZXRzKCk7CisgICAgdm9pZCBz
Y3JvbGxUb0FuY2hvcigpOwogICAgIAogICAgIHN0YXRpYyBkb3VibGUgc0N1cnJlbnRQYWludFRp
bWVTdGFtcDsgLy8gdXNlZCBmb3IgZGV0ZWN0aW5nIGRlY29kZWQgcmVzb3VyY2UgdGhyYXNoIGlu
IHRoZSBjYWNoZQogCkBAIC0zMDIsNyArMzAyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNW
aXN1YWxseU5vbkVtcHR5OwogICAgIGJvb2wgbV9maXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRD
YWxsYmFja1BlbmRpbmc7CiAKLSAgICBib29sIG1fbG9ja2VkVG9BbmNob3I7CisgICAgUmVmUHRy
PE5vZGU+IG1fa2VlcFNjcm9sbGVkVG9BbmNob3I7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0NTcwMikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDA5LTA3LTA5ICBEYW4gQmVybnN0ZWlu
ICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgLSB0ZXN0IGZvciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjcxMzcKKyAgICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA0MzEyND4gUkVHUkVTU0lP
TiAocjQ0MzExKTogUmVwcm9kdWNpYmxlIGNyYXNoIGR1ZQorICAgICAgICAgIHRvIGluZmluaXRl
IHJlY3Vyc2lvbiBpbnRvIEZyYW1lTG9hZGVyOjpnb3RvQW5jaG9yKCkgLT4KKyAgICAgICAgICBG
cmFtZVZpZXc6OmxheW91dCgpCisKKyAgICAgICAgKiBmYXN0L2xvYWRlci9nb3RvLWFuY2hvci1p
bmZpbml0ZS1sYXlvdXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2xvYWRl
ci9nb3RvLWFuY2hvci1pbmZpbml0ZS1sYXlvdXQuaHRtbDogQWRkZWQuCisKIDIwMDktMDctMDkg
IE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBN
YWNpZWogU3RhY2hvd2lhay4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2dvdG8tYW5j
aG9yLWluZmluaXRlLWxheW91dC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9sb2FkZXIvZ290by1hbmNob3ItaW5maW5pdGUtbGF5b3V0LWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2dvdG8tYW5jaG9yLWluZmlu
aXRlLWxheW91dC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNiBAQAorVGVz
dCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3MTM3IFJFR1JF
U1NJT04gKHI0NDMxMSk6IFJlcHJvZHVjaWJsZSBjcmFzaCBkdWUgdG8gaW5maW5pdGUgcmVjdXJz
aW9uIGludG8gRnJhbWVMb2FkZXI6OmdvdG9BbmNob3IoKSAtPiBGcmFtZVZpZXc6OmxheW91dCgp
LgorCitUaGUgdGVzdCBwYXNzZXMgaWYgaXQgZG9lcyBub3QgaGFuZyBvciBjcmFzaC4KKworVGhp
cyBpcyB0aGUgYW5jaG9yLgorI2FuY2hvcgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIv
Z290by1hbmNob3ItaW5maW5pdGUtbGF5b3V0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9sb2FkZXIvZ290by1hbmNob3ItaW5maW5pdGUtbGF5b3V0Lmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9nb3RvLWFuY2hvci1pbmZpbml0ZS1sYXlv
dXQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMiBAQAorPHN0eWxlPgorICAgIEBmb250
LWZhY2UgeworICAgICAgICBmb250LWZhbWlseTogYmFkLWZvbnQ7CisgICAgICAgIHNyYzogdXJs
KGRhdGE6dGV4dC9wbGFpbiwpOworICAgIH0KKzwvc3R5bGU+Cis8cD4KKyAgICBUZXN0IGZvciA8
aT48YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjcxMzci
Pmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzEzNzwvYT4KKyAgICBS
RUdSRVNTSU9OIChyNDQzMTEpOiBSZXByb2R1Y2libGUgY3Jhc2ggZHVlIHRvIGluZmluaXRlIHJl
Y3Vyc2lvbiBpbnRvIEZyYW1lTG9hZGVyOjpnb3RvQW5jaG9yKCkgLT4gRnJhbWVWaWV3OjpsYXlv
dXQoKTwvaT4uCis8L3A+Cis8cD4KKyAgICBUaGUgdGVzdCBwYXNzZXMgaWYgaXQgZG9lcyBub3Qg
aGFuZyBvciBjcmFzaC4KKzwvcD4KKzxkaXYgaWQ9ImFuY2hvciIgc3R5bGU9ImZvbnQtZmFtaWx5
OiBiYWQtZm9udCI+CisgICAgVGhpcyBpcyB0aGUgYW5jaG9yLgorPC9kaXY+Cis8c2NyaXB0Pgor
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgIGRvY3VtZW50LndyaXRlKGxvY2F0aW9uLmhy
ZWY9IiNhbmNob3IiKTsKKzwvc2NyaXB0Pgo=
</data>
<flag name="review"
          id="16973"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>