<?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>79775</bug_id>
          
          <creation_ts>2012-02-28 03:46:16 -0800</creation_ts>
          <short_desc>[GTK] Inconsistent state of WebKitWebView when replacing content in WebKit2</short_desc>
          <delta_ts>2012-02-28 10:25:05 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>79777</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gustavo</cc>
    
    <cc>pnormand</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>566565</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-02-28 03:46:16 -0800</bug_when>
    <thetext>We are currently using a boolean set to true in webkit_web_view_replace_content() in order to ignore load events while replacing content. But that&apos;s not enough, because after replace_content() is called there might be load events of a previous ongoin operation, at least finished. So we need to set the replacing content state when the load of the replaced content starts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566568</commentid>
    <comment_count>1</comment_count>
      <attachid>129225</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-02-28 03:55:30 -0800</bug_when>
    <thetext>Created attachment 129225
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566569</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-28 03:58:23 -0800</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566820</commentid>
    <comment_count>3</comment_count>
      <attachid>129225</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-02-28 10:03:08 -0800</bug_when>
    <thetext>Comment on attachment 129225
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=129225&amp;action=review

Looks good. Please consider the minor cleanups below.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:82
&gt; +    NoReplaceContent,

NotReplacingContent?

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:703
&gt; -    if (webView-&gt;priv-&gt;replacingContent) {
&gt; +    if (webView-&gt;priv-&gt;replaceContentStatus == ReplacingContent) {
&gt;          if (loadEvent == WEBKIT_LOAD_FINISHED)
&gt; -            webView-&gt;priv-&gt;replacingContent = false;
&gt; +            webView-&gt;priv-&gt;replaceContentStatus = DidReplaceContent;
&gt;          return;
&gt;      }
&gt;  
&gt; +    if (loadEvent == WEBKIT_LOAD_STARTED) {
&gt; +        if (webView-&gt;priv-&gt;replaceContentStatus == WillReplaceContent) {
&gt; +            webView-&gt;priv-&gt;replaceContentStatus = ReplacingContent;
&gt; +            return;
&gt; +        }
&gt; +        webView-&gt;priv-&gt;replaceContentStatus = NoReplaceContent;
&gt; +    }

Mind moving this to a helper called updateReplaceContentStatus?

&gt; Source/WebKit2/UIProcess/API/gtk/tests/WebViewTest.cpp:148
&gt; +void WebViewTest::waitUntilTitleChanged(const char* expectedTitle)

Probably better to call this waitUntilTitleChangedTo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566824</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-02-28 10:06:18 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 129225 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=129225&amp;action=review
&gt; 
&gt; Looks good. Please consider the minor cleanups below.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:82
&gt; &gt; +    NoReplaceContent,
&gt; 
&gt; NotReplacingContent?

Sounds good.

&gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:703
&gt; &gt; -    if (webView-&gt;priv-&gt;replacingContent) {
&gt; &gt; +    if (webView-&gt;priv-&gt;replaceContentStatus == ReplacingContent) {
&gt; &gt;          if (loadEvent == WEBKIT_LOAD_FINISHED)
&gt; &gt; -            webView-&gt;priv-&gt;replacingContent = false;
&gt; &gt; +            webView-&gt;priv-&gt;replaceContentStatus = DidReplaceContent;
&gt; &gt;          return;
&gt; &gt;      }
&gt; &gt;  
&gt; &gt; +    if (loadEvent == WEBKIT_LOAD_STARTED) {
&gt; &gt; +        if (webView-&gt;priv-&gt;replaceContentStatus == WillReplaceContent) {
&gt; &gt; +            webView-&gt;priv-&gt;replaceContentStatus = ReplacingContent;
&gt; &gt; +            return;
&gt; &gt; +        }
&gt; &gt; +        webView-&gt;priv-&gt;replaceContentStatus = NoReplaceContent;
&gt; &gt; +    }
&gt; 
&gt; Mind moving this to a helper called updateReplaceContentStatus?

Sure

&gt; &gt; Source/WebKit2/UIProcess/API/gtk/tests/WebViewTest.cpp:148
&gt; &gt; +void WebViewTest::waitUntilTitleChanged(const char* expectedTitle)
&gt; 
&gt; Probably better to call this waitUntilTitleChangedTo.

I didn&apos;t add the &apos;To&apos; because you can pass NULL to wait until title is changed to whatever thing. maybe it&apos;s better to use a default value of NULL, though</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566825</commentid>
    <comment_count>5</comment_count>
      <attachid>129225</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-02-28 10:08:49 -0800</bug_when>
    <thetext>Comment on attachment 129225
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=129225&amp;action=review

&gt;&gt;&gt; Source/WebKit2/UIProcess/API/gtk/tests/WebViewTest.cpp:148
&gt;&gt;&gt; +void WebViewTest::waitUntilTitleChanged(const char* expectedTitle)
&gt;&gt; 
&gt;&gt; Probably better to call this waitUntilTitleChangedTo.
&gt; 
&gt; I didn&apos;t add the &apos;To&apos; because you can pass NULL to wait until title is changed to whatever thing. maybe it&apos;s better to use a default value of NULL, though

You could add another method called waitUntilTitleChanged that just calls waitUntilTitleChangedTo with a NULL parameter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566843</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-02-28 10:25:05 -0800</bug_when>
    <thetext>Committed r109120: &lt;http://trac.webkit.org/changeset/109120&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129225</attachid>
            <date>2012-02-28 03:55:30 -0800</date>
            <delta_ts>2012-02-28 10:08:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-replace-content-status.diff</filename>
            <type>text/plain</type>
            <size>8586</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBmMTYzZDI3Li5mZDM5MzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQg
QEAKKzIwMTItMDItMjggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIEluY29uc2lzdGVudCBzdGF0ZSBvZiBXZWJLaXRXZWJWaWV3IHdo
ZW4gcmVwbGFjaW5nIGNvbnRlbnQgaW4gV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk3NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgYW4gZW51bSBpbnN0ZWFkIG9mIGEgYm9vbGVhbiB0
byB0cmFjayB0aGUgc3RhdHVzIG9mIGEKKyAgICAgICAgcmVwbGFjZV9jb250ZW50KCkgbG9hZCBv
cGVyYXRpb24uIFdlIG5lZWQgdG8ga25vdyB3aGVuIHRoZSBsb2FkIG9mCisgICAgICAgIHRoZSBy
ZXBsYWNlIGNvbnRlbnQgYWN0dWFsbHkgc3RhcnRzIHRvIG5vdCBpZ25vcmUgdmFsaWQgbG9hZAor
ICAgICAgICBldmVudHMgb2YgYSBwcmV2aW91cyBvbmdvaW5nIGxvYWQgb3BlcmF0aW9uLgorCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHA6CisgICAgICAgICh3
ZWJraXRXZWJWaWV3TG9hZENoYW5nZWQpOiBUcmFuc2l0IHRvIG5ldyByZXBsYWNlIGNvbnRlbnQg
c3RhdGUKKyAgICAgICAgd2hlbiByZXBsYWNpbmcgY29udGVudCBkZXBlbmRpbmcgb24gdGhlIGxv
YWQgZXZlbnQuCisgICAgICAgICh3ZWJraXRXZWJWaWV3TG9hZEZhaWxlZCk6IElnbm9yZSBsb2Fk
IGZhaWxlZCBldmVudHMgd2hlbgorICAgICAgICByZXBsYWNpbmcgY29udGVudC4KKyAgICAgICAg
KHdlYmtpdFdlYlZpZXdTZXRFc3RpbWF0ZWRMb2FkUHJvZ3Jlc3MpOiBJZ25vcmUgbG9hZCBwcm9n
cmVzcyB3aGVuCisgICAgICAgIHJlcGxhY2luZyBjb250ZW50LgorICAgICAgICAod2Via2l0X3dl
Yl92aWV3X3JlcGxhY2VfY29udGVudCk6IFNldCByZXBsYWNlIGNvbnRlbnQgc3RhdHVzIHRvCisg
ICAgICAgIFdpbGxSZXBsYWNlQ29udGVudC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay90
ZXN0cy9UZXN0V2ViS2l0V2ViVmlldy5jcHA6CisgICAgICAgIChyZXBsYWNlQ29udGVudExvYWRD
YWxsYmFjayk6CisgICAgICAgICh0ZXN0V2ViVmlld1JlcGxhY2VDb250ZW50KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9XZWJWaWV3VGVzdC5jcHA6CisgICAgICAgICh0aXRs
ZUNoYW5nZWQpOgorICAgICAgICAoV2ViVmlld1Rlc3Q6OndhaXRVbnRpbFRpdGxlQ2hhbmdlZCk6
IENvbnZlbmllbnQgbWV0aG9kIHRvIHdhaXQKKyAgICAgICAgdW50aWwgdGl0bGUgY2hhbmdlcy4g
VXNlIHdpdGggcmVwbGFjZUNvbmVudCgpIHNpbmNlIGxvYWQgZXZlbnRzCisgICAgICAgIGFyZSBu
b3QgZW1pdHRlZCB3aGVuIHJlcGxhY2luZyBjb250ZW50LgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZ3RrL3Rlc3RzL1dlYlZpZXdUZXN0Lmg6CisKIDIwMTItMDItMjYgIFlvdW5nVGFlY2sgU29u
ZyAgPHlvdW5ndGFlY2suc29uZ0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXVtXSzJdIEFk
ZCBJbmplY3RlZEJ1bmRsZUVmbC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKaW5kZXggYmU1OTBmZi4uODhjNDBhNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAK
QEAgLTc4LDEzICs3OCwyMCBAQCBlbnVtIHsKICAgICBQUk9QX1pPT01fTEVWRUwKIH07CiAKK3R5
cGVkZWYgZW51bSB7CisgICAgTm9SZXBsYWNlQ29udGVudCwKKyAgICBXaWxsUmVwbGFjZUNvbnRl
bnQsCisgICAgUmVwbGFjaW5nQ29udGVudCwKKyAgICBEaWRSZXBsYWNlQ29udGVudAorfSBSZXBs
YWNlQ29udGVudFN0YXR1czsKKwogc3RydWN0IF9XZWJLaXRXZWJWaWV3UHJpdmF0ZSB7CiAgICAg
V2ViS2l0V2ViQ29udGV4dCogY29udGV4dDsKICAgICBDU3RyaW5nIHRpdGxlOwogICAgIENTdHJp
bmcgY3VzdG9tVGV4dEVuY29kaW5nOwogICAgIGRvdWJsZSBlc3RpbWF0ZWRMb2FkUHJvZ3Jlc3M7
CiAgICAgQ1N0cmluZyBhY3RpdmVVUkk7Ci0gICAgYm9vbCByZXBsYWNpbmdDb250ZW50OworICAg
IFJlcGxhY2VDb250ZW50U3RhdHVzIHJlcGxhY2VDb250ZW50U3RhdHVzOwogCiAgICAgR1JlZlB0
cjxXZWJLaXRCYWNrRm9yd2FyZExpc3Q+IGJhY2tGb3J3YXJkTGlzdDsKICAgICBHUmVmUHRyPFdl
YktpdFNldHRpbmdzPiBzZXR0aW5nczsKQEAgLTY4MSwxMiArNjg4LDIwIEBAIHN0YXRpYyB2b2lk
IHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KFdlYktpdFdlYlZpZXdDbGFzcyogd2ViVmlld0Ns
YXNzKQogCiB2b2lkIHdlYmtpdFdlYlZpZXdMb2FkQ2hhbmdlZChXZWJLaXRXZWJWaWV3KiB3ZWJW
aWV3LCBXZWJLaXRMb2FkRXZlbnQgbG9hZEV2ZW50KQogewotICAgIGlmICh3ZWJWaWV3LT5wcml2
LT5yZXBsYWNpbmdDb250ZW50KSB7CisgICAgaWYgKHdlYlZpZXctPnByaXYtPnJlcGxhY2VDb250
ZW50U3RhdHVzID09IFJlcGxhY2luZ0NvbnRlbnQpIHsKICAgICAgICAgaWYgKGxvYWRFdmVudCA9
PSBXRUJLSVRfTE9BRF9GSU5JU0hFRCkKLSAgICAgICAgICAgIHdlYlZpZXctPnByaXYtPnJlcGxh
Y2luZ0NvbnRlbnQgPSBmYWxzZTsKKyAgICAgICAgICAgIHdlYlZpZXctPnByaXYtPnJlcGxhY2VD
b250ZW50U3RhdHVzID0gRGlkUmVwbGFjZUNvbnRlbnQ7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKKyAgICBpZiAobG9hZEV2ZW50ID09IFdFQktJVF9MT0FEX1NUQVJURUQpIHsKKyAgICAgICAg
aWYgKHdlYlZpZXctPnByaXYtPnJlcGxhY2VDb250ZW50U3RhdHVzID09IFdpbGxSZXBsYWNlQ29u
dGVudCkgeworICAgICAgICAgICAgd2ViVmlldy0+cHJpdi0+cmVwbGFjZUNvbnRlbnRTdGF0dXMg
PSBSZXBsYWNpbmdDb250ZW50OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAg
ICAgIHdlYlZpZXctPnByaXYtPnJlcGxhY2VDb250ZW50U3RhdHVzID0gTm9SZXBsYWNlQ29udGVu
dDsKKyAgICB9CisKICAgICBpZiAobG9hZEV2ZW50ICE9IFdFQktJVF9MT0FEX0ZJTklTSEVEKQog
ICAgICAgICB3ZWJraXRXZWJWaWV3VXBkYXRlVVJJKHdlYlZpZXcpOwogICAgIGdfc2lnbmFsX2Vt
aXQod2ViVmlldywgc2lnbmFsc1tMT0FEX0NIQU5HRURdLCAwLCBsb2FkRXZlbnQpOwpAQCAtNjk0
LDcgKzcwOSw3IEBAIHZvaWQgd2Via2l0V2ViVmlld0xvYWRDaGFuZ2VkKFdlYktpdFdlYlZpZXcq
IHdlYlZpZXcsIFdlYktpdExvYWRFdmVudCBsb2FkRXZlbnQpCiAKIHZvaWQgd2Via2l0V2ViVmll
d0xvYWRGYWlsZWQoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0TG9hZEV2ZW50IGxvYWRF
dmVudCwgY29uc3QgY2hhciogZmFpbGluZ1VSSSwgR0Vycm9yICplcnJvcikKIHsKLSAgICBpZiAo
d2ViVmlldy0+cHJpdi0+cmVwbGFjaW5nQ29udGVudCkKKyAgICBpZiAod2ViVmlldy0+cHJpdi0+
cmVwbGFjZUNvbnRlbnRTdGF0dXMgPT0gUmVwbGFjaW5nQ29udGVudCkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgZ2Jvb2xlYW4gcmV0dXJuVmFsdWU7CkBAIC03MTQsNyArNzI5LDcgQEAgdm9pZCB3
ZWJraXRXZWJWaWV3U2V0VGl0bGUoV2ViS2l0V2ViVmlldyogd2ViVmlldywgY29uc3QgQ1N0cmlu
ZyYgdGl0bGUpCiAKIHZvaWQgd2Via2l0V2ViVmlld1NldEVzdGltYXRlZExvYWRQcm9ncmVzcyhX
ZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBkb3VibGUgZXN0aW1hdGVkTG9hZFByb2dyZXNzKQogewot
ICAgIGlmICh3ZWJWaWV3LT5wcml2LT5yZXBsYWNpbmdDb250ZW50KQorICAgIGlmICh3ZWJWaWV3
LT5wcml2LT5yZXBsYWNlQ29udGVudFN0YXR1cyAhPSBOb1JlcGxhY2VDb250ZW50KQogICAgICAg
ICByZXR1cm47CiAKICAgICBpZiAod2ViVmlldy0+cHJpdi0+ZXN0aW1hdGVkTG9hZFByb2dyZXNz
ID09IGVzdGltYXRlZExvYWRQcm9ncmVzcykKQEAgLTk2NSw3ICs5ODAsNyBAQCB2b2lkIHdlYmtp
dF93ZWJfdmlld19yZXBsYWNlX2NvbnRlbnQoV2ViS2l0V2ViVmlldyogd2ViVmlldywgY29uc3Qg
Z2NoYXIqIGNvbnRlbgogICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29udGVudCk7CiAgICAgZ19yZXR1
cm5faWZfZmFpbChjb250ZW50VVJJKTsKIAotICAgIHdlYlZpZXctPnByaXYtPnJlcGxhY2luZ0Nv
bnRlbnQgPSB0cnVlOworICAgIHdlYlZpZXctPnByaXYtPnJlcGxhY2VDb250ZW50U3RhdHVzID0g
V2lsbFJlcGxhY2VDb250ZW50OwogCiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGh0bWxT
dHJpbmcoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoY29udGVudCkpOwog
ICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiBjb250ZW50VVJMKEFkb3B0V0ssIFdLVVJMQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKGNvbnRlbnRVUkkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RXZWJLaXRXZWJWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RXZWJLaXRXZWJWaWV3LmNwcAppbmRl
eCA0N2RhOThlLi5lYzVkOGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay90ZXN0cy9UZXN0V2ViS2l0V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFdlYktpdFdlYlZpZXcuY3BwCkBAIC03MSwyNCAr
NzEsMjIgQEAgc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdTZXR0aW5ncyhXZWJWaWV3VGVzdCogdGVz
dCwgZ2NvbnN0cG9pbnRlcikKICAgICBnX2Fzc2VydCh3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJs
ZV9qYXZhc2NyaXB0KHNldHRpbmdzKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHJlcGxhY2VDb250ZW50
VGl0bGVDaGFuZ2VkQ2FsbGJhY2soV2ViVmlld1Rlc3QqIHRlc3QpCitzdGF0aWMgdm9pZCByZXBs
YWNlQ29udGVudExvYWRDYWxsYmFjayhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRMb2Fk
RXZlbnQgbG9hZEV2ZW50LCBXZWJWaWV3VGVzdCogdGVzdCkKIHsKLSAgICBnX21haW5fbG9vcF9x
dWl0KHRlc3QtPm1fbWFpbkxvb3ApOwotfQotCi1zdGF0aWMgdm9pZCByZXBsYWNlQ29udGVudExv
YWRDYWxsYmFjaygpCi17Ci0gICAgZ19hc3NlcnRfbm90X3JlYWNoZWQoKTsKKyAgICAvLyBUaGVy
ZSBtaWdodCBiZSBhbiBldmVudCBmcm9tIGEgcHJldmlvdXMgbG9hZCwKKyAgICAvLyBidXQgbmV2
ZXIgYSBXRUJLSVRfTE9BRF9TVEFSVEVEIGFmdGVyIHdlYmtpdF93ZWJfdmlld19yZXBsYWNlX2Nv
bnRlbnQoKS4KKyAgICBnX2Fzc2VydF9jbXBpbnQobG9hZEV2ZW50LCAhPSwgV0VCS0lUX0xPQURf
U1RBUlRFRCk7CiB9CiAKIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3UmVwbGFjZUNvbnRlbnQoV2Vi
Vmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiB7Ci0gICAgZ19zaWduYWxfY29ubmVjdF9z
d2FwcGVkKHRlc3QtPm1fd2ViVmlldywgIm5vdGlmeTo6dGl0bGUiLCBHX0NBTExCQUNLKHJlcGxh
Y2VDb250ZW50VGl0bGVDaGFuZ2VkQ2FsbGJhY2spLCB0ZXN0KTsKKyAgICB0ZXN0LT5sb2FkSHRt
bCgiPGh0bWw+PGhlYWQ+PHRpdGxlPlJlcGxhY2UgQ29udGVudCBUZXN0PC90aXRsZT48L2hlYWQ+
PGJvZHk+Q29udGVudCB0byByZXBsYWNlPC9ib2R5PjwvaHRtbD4iLCAwKTsKKyAgICB0ZXN0LT53
YWl0VW50aWxUaXRsZUNoYW5nZWQoIlJlcGxhY2UgQ29udGVudCBUZXN0Iik7CisKICAgICBnX3Np
Z25hbF9jb25uZWN0KHRlc3QtPm1fd2ViVmlldywgImxvYWQtY2hhbmdlZCIsIEdfQ0FMTEJBQ0so
cmVwbGFjZUNvbnRlbnRMb2FkQ2FsbGJhY2spLCB0ZXN0KTsKLSAgICBnX3NpZ25hbF9jb25uZWN0
KHRlc3QtPm1fd2ViVmlldywgImxvYWQtZmFpbGVkIiwgR19DQUxMQkFDSyhyZXBsYWNlQ29udGVu
dExvYWRDYWxsYmFjayksIHRlc3QpOwotICAgIHRlc3QtPnJlcGxhY2VDb250ZW50KCI8aHRtbD48
aGVhZD48dGl0bGU+Q29udGVudCBSZXBsYWNlZDwvdGl0bGU+PC9oZWFkPjxib2R5Pk5ldyBDb250
ZW50PC9ib2R5PjwvaHRtbD4iLAorICAgIHRlc3QtPnJlcGxhY2VDb250ZW50KCI8aHRtbD48Ym9k
eSBvbmxvYWQ9J2RvY3VtZW50LnRpdGxlPVwiQ29udGVudCBSZXBsYWNlZFwiJz5OZXcgQ29udGVu
dDwvYm9keT48L2h0bWw+IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAiaHR0cDovL2Zvby5j
b20vYmFyIiwgMCk7Ci0gICAgZ19tYWluX2xvb3BfcnVuKHRlc3QtPm1fbWFpbkxvb3ApOworICAg
IHRlc3QtPndhaXRVbnRpbFRpdGxlQ2hhbmdlZCgiQ29udGVudCBSZXBsYWNlZCIpOwogfQogCiBz
dGF0aWMgY29uc3QgY2hhcioga0FsZXJ0RGlhbG9nTWVzc2FnZSA9ICJXZWJLaXRHVEsrIGFsZXJ0
IGRpYWxvZyBtZXNzYWdlIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL3Rlc3RzL1dlYlZpZXdUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL3Rlc3RzL1dlYlZpZXdUZXN0LmNwcAppbmRleCAwMGQzYjNlLi5jOTM4YjcyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9XZWJWaWV3VGVz
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvV2ViVmll
d1Rlc3QuY3BwCkBAIC0xMzYsNiArMTM2LDIzIEBAIHZvaWQgV2ViVmlld1Rlc3Q6OndhaXRVbnRp
bExvYWRGaW5pc2hlZCgpCiAgICAgZ19tYWluX2xvb3BfcnVuKG1fbWFpbkxvb3ApOwogfQogCitz
dGF0aWMgdm9pZCB0aXRsZUNoYW5nZWQoV2ViS2l0V2ViVmlldyogd2ViVmlldywgR1BhcmFtU3Bl
YyosIFdlYlZpZXdUZXN0KiB0ZXN0KQoreworICAgIGlmICghdGVzdC0+bV9leHBlY3RlZFRpdGxl
LmlzTnVsbCgpICYmIHRlc3QtPm1fZXhwZWN0ZWRUaXRsZSAhPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0
X3RpdGxlKHdlYlZpZXcpKQorICAgICAgICByZXR1cm47CisKKyAgICBnX3NpZ25hbF9oYW5kbGVy
c19kaXNjb25uZWN0X2J5X2Z1bmMod2ViVmlldywgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4odGl0
bGVDaGFuZ2VkKSwgdGVzdCk7CisgICAgZ19tYWluX2xvb3BfcXVpdCh0ZXN0LT5tX21haW5Mb29w
KTsKK30KKwordm9pZCBXZWJWaWV3VGVzdDo6d2FpdFVudGlsVGl0bGVDaGFuZ2VkKGNvbnN0IGNo
YXIqIGV4cGVjdGVkVGl0bGUpCit7CisgICAgbV9leHBlY3RlZFRpdGxlID0gZXhwZWN0ZWRUaXRs
ZTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KG1fd2ViVmlldywgIm5vdGlmeTo6dGl0bGUiLCBHX0NB
TExCQUNLKHRpdGxlQ2hhbmdlZCksIHRoaXMpOworICAgIGdfbWFpbl9sb29wX3J1bihtX21haW5M
b29wKTsKKyAgICBtX2V4cGVjdGVkVGl0bGUgPSBDU3RyaW5nKCk7Cit9CisKIHN0YXRpYyBnYm9v
bGVhbiBwYXJlbnRXaW5kb3dNYXBwZWQoR3RrV2lkZ2V0KiB3aWRnZXQsIEdka0V2ZW50KiwgV2Vi
Vmlld1Rlc3QqIHRlc3QpCiB7CiAgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9m
dW5jKHdpZGdldCwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4ocGFyZW50V2luZG93TWFwcGVkKSwg
dGVzdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0
cy9XZWJWaWV3VGVzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMv
V2ViVmlld1Rlc3QuaAppbmRleCA5NWE1NjljLi43ODA5OTEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9XZWJWaWV3VGVzdC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1dlYlZpZXdUZXN0LmgKQEAgLTQyLDYg
KzQyLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCB3YWl0KGRvdWJsZSBzZWNvbmRzKTsKICAgICB2
b2lkIHdhaXRVbnRpbExvYWRGaW5pc2hlZCgpOworICAgIHZvaWQgd2FpdFVudGlsVGl0bGVDaGFu
Z2VkKGNvbnN0IGNoYXIqIGV4cGVjdGVkVGl0bGUpOwogICAgIHZvaWQgc2hvd0luV2luZG93QW5k
V2FpdFVudGlsTWFwcGVkKCk7CiAKICAgICB2b2lkIG1vdXNlTW92ZVRvKGludCB4LCBpbnQgeSwg
dW5zaWduZWQgaW50IG1vdXNlTW9kaWZpZXJzID0gMCk7CkBAIC01MCw2ICs1MSw3IEBAIHB1Ymxp
YzoKICAgICBHTWFpbkxvb3AqIG1fbWFpbkxvb3A7CiAgICAgQ1N0cmluZyBtX2FjdGl2ZVVSSTsK
ICAgICBHdGtXaWRnZXQqIG1fcGFyZW50V2luZG93OworICAgIENTdHJpbmcgbV9leHBlY3RlZFRp
dGxlOwogfTsKIAogI2VuZGlmIC8vIFdlYlZpZXdUZXN0X2gK
</data>
<flag name="review"
          id="131847"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>