<?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>106708</bug_id>
          
          <creation_ts>2013-01-11 15:31:52 -0800</creation_ts>
          <short_desc>[WK2] Make it possible to send sync messages from secondary threads</short_desc>
          <delta_ts>2013-01-13 01:28:16 -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>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>106729</dependson>
    
    <dependson>106739</dependson>
    
    <dependson>106740</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>andersca</cc>
    
    <cc>levin+threading</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>805680</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-01-11 15:31:52 -0800</bug_when>
    <thetext>It&apos;s much easier to send sync messages from background threads, because one doesn&apos;t need to be concerned about blocking incoming messages. But it&apos;s not currently possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805691</commentid>
    <comment_count>1</comment_count>
      <attachid>182434</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-01-11 15:38:48 -0800</bug_when>
    <thetext>Created attachment 182434
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805698</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-11 15:42:10 -0800</bug_when>
    <thetext>Attachment 182434 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1
Source/WebKit2/Platform/CoreIPC/Connection.h:185:  Local variables should never be PassOwnPtr (see http://webkit.org/coding/RefPtr.html).  [readability/pass_ptr] [5]
Total errors found: 1 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805699</commentid>
    <comment_count>3</comment_count>
      <attachid>182434</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-01-11 15:44:12 -0800</bug_when>
    <thetext>Comment on attachment 182434
proposed patch

Attachment 182434 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/15832068</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805705</commentid>
    <comment_count>4</comment_count>
      <attachid>182434</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-01-11 15:53:53 -0800</bug_when>
    <thetext>Comment on attachment 182434
proposed patch

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

&gt; Source/WebKit2/Platform/CoreIPC/Connection.cpp:98
&gt; +    // The reply decoder, will be null if there was an error processing the sync
&gt; +    // message on the other side.

No need to break this comment.

&gt; Source/WebKit2/Platform/CoreIPC/Connection.cpp:435
&gt; +        didFailToSendSyncMessage();

I think&apos;s weird that didFailToSendSyncMessage can now be called from any thread. I think just returning null is better.

&gt; Source/WebKit2/Platform/CoreIPC/Connection.cpp:469
&gt; +    if (!pendingReply.replyDecoder)
&gt; +        didFailToSendSyncMessage();

Ditto.

&gt; Source/WebKit2/Platform/CoreIPC/Connection.cpp:557
&gt; +    // If it&apos;s not a reply to any primary thread message, check if it is a reply to a secondary thread one.
&gt; +    SecondaryThreadPendingSyncReplyMap::iterator secondaryThreadReplyMapItem = m_secondaryThreadPendingSyncReplyMap.find(decoder-&gt;destinationID());
&gt; +    if (secondaryThreadReplyMapItem != m_secondaryThreadPendingSyncReplyMap.end()) {
&gt; +        SecondaryThreadPendingSyncReply* reply = secondaryThreadReplyMapItem-&gt;value;
&gt; +        ASSERT(!reply-&gt;replyDecoder);
&gt; +        reply-&gt;replyDecoder = decoder.leakPtr();
&gt; +        reply-&gt;semaphore.signal();
&gt; +    }

I think this needs to be protected by the mutex m_syncReplyState mutex.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805719</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-01-11 16:06:51 -0800</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/r139514&gt; and &lt;http://trac.webkit.org/r139515&gt;.

&gt; I think&apos;s weird that didFailToSendSyncMessage can now be called from any thread. I think just returning null is better.

OK. Also, this will be used by new code that will hopefully be prepared for connection failures.

&gt; I think this needs to be protected by the mutex m_syncReplyState mutex.

Actually, the whole function is protected with this mutex.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805859</commentid>
    <comment_count>6</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-01-12 03:12:44 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Committed &lt;http://trac.webkit.org/r139514&gt; and &lt;http://trac.webkit.org/r139515&gt;.

It broke all GCC WK2 builds, please see https://bugs.webkit.org/show_bug.cgi?id=106729. I uploaded the proposed fix into it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805950</commentid>
    <comment_count>7</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-01-13 01:28:16 -0800</bug_when>
    <thetext>MIPS GCC still needs fix: https://bugs.webkit.org/show_bug.cgi?id=106739
Windows still needs fix: https://bugs.webkit.org/show_bug.cgi?id=106740</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182434</attachid>
            <date>2013-01-11 15:38:48 -0800</date>
            <delta_ts>2013-01-11 15:53:53 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>SendSync.txt</filename>
            <type>text/plain</type>
            <size>8708</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzOTUwOSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAxLTExICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIE1ha2UgaXQgcG9z
c2libGUgdG8gc2VuZCBzeW5jIG1lc3NhZ2VzIGZyb20gc2Vjb25kYXJ5IHRocmVhZHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjcwOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IGlzIGh1Z2VseSBi
ZW5lZmljaWFsIHRvIGltcGxlbWVudCBzeW5jIG1lc3NhZ2VzIGF0IENvbm5lY3Rpb24gbGV2ZWws
IGJlY2F1c2UKKyAgICAgICAgYWQgaG9jIGNvZGUgdGhhdCBibG9ja3MgYSB0aHJlYWQgYW5kIHdh
a2VzIGl0IHVwIHdoZW4gYSByZXBseSBhcnJpdmVzIG9uIG1haW4KKyAgICAgICAgdGhyZWFkIGNh
bid0IGJlIG1hZGUgZXF1YWxseSBwZXJmb3JtYW50LiBBIENvcmVPUEMgTWVzc2FnZURlY29kZXIg
Y2FuIGJlIG1vdmVkIGFjcm9zcworICAgICAgICB0aHJlYWRzLCB3aGljaCBjYW4ndCBiZSBkb25l
IHdpdGggYSBkZWNvZGVkIGFyZ3VtZW50IHBhc3NlZCBieSByZWZlcmVuY2UgdG8gY2xpZW50IGNv
ZGUuCisKKyAgICAgICAgU3luYyBtZXNzYWdlcyBmcm9tIHNlY29uZGFyeSB0aHJlYWRzIGFyZSB0
cmFja2VkIGluIG11Y2ggc2ltcGxlciBkYXRhIHN0cnVjdHVyZQorICAgICAgICB0aGFuIGNsaWVu
dCB0aHJlYWQgb25lcywgYmVjYXVzZSB3ZSBkb24ndCBuZWVkIHRvIGJlIGNvbmNlcm5lZCB3aXRo
IGluY29taW5nIG1lc3NhZ2VzLgorCisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0
aW9uLmNwcDoKKyAgICAgICAgKENvbm5lY3Rpb246OlNlY29uZGFyeVRocmVhZFBlbmRpbmdTeW5j
UmVwbHkpOgorICAgICAgICAoQ29yZUlQQzo6Q29ubmVjdGlvbjo6U2Vjb25kYXJ5VGhyZWFkUGVu
ZGluZ1N5bmNSZXBseTo6U2Vjb25kYXJ5VGhyZWFkUGVuZGluZ1N5bmNSZXBseSk6CisgICAgICAg
IChDb3JlSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVTeW5jTWVzc2FnZUVuY29kZXIpOgorICAgICAg
ICAoQ29yZUlQQzo6Q29ubmVjdGlvbjo6c2VuZFN5bmNNZXNzYWdlKToKKyAgICAgICAgKENvcmVJ
UEM6OkNvbm5lY3Rpb246OnNlbmRTeW5jTWVzc2FnZUZyb21TZWNvbmRhcnlUaHJlYWQpOgorICAg
ICAgICAoQ29yZUlQQzo6Q29ubmVjdGlvbjo6cHJvY2Vzc0luY29taW5nU3luY1JlcGx5KToKKyAg
ICAgICAgKENvcmVJUEM6OkNvbm5lY3Rpb246OmNvbm5lY3Rpb25EaWRDbG9zZSk6CisKKyAgICAg
ICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaDogQWxzbyBjb3JyZWN0ZWQgYSBtaXNs
ZWFkaW5nIGNvbW1lbnQuCisKIDIwMTMtMDEtMTEgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxl
LmNvbT4KIAogICAgICAgICBFeGNsdWRlIHVudXNlZCByZXNvdXJjZXMuCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAJKHJldmlzaW9uIDEz
OTA4MikKKysrIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTg5LDYgKzg5LDE5IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPENv
bm5lY3Rpb25BbmRJbmNvbWluZ01lc3NhZ2U+IG1fbWVzc2FnZXNUb0Rpc3BhdGNoV2hpbGVXYWl0
aW5nRm9yU3luY1JlcGx5OwogfTsKIAorY2xhc3MgQ29ubmVjdGlvbjo6U2Vjb25kYXJ5VGhyZWFk
UGVuZGluZ1N5bmNSZXBseSB7CitXVEZfTUFLRV9OT05DT1BZQUJMRShTZWNvbmRhcnlUaHJlYWRQ
ZW5kaW5nU3luY1JlcGx5KTsKK3B1YmxpYzoKKyAgICBTZWNvbmRhcnlUaHJlYWRQZW5kaW5nU3lu
Y1JlcGx5KCkgOiByZXBseURlY29kZXIoMCkgeyB9CisKKyAgICAvLyBUaGUgcmVwbHkgZGVjb2Rl
ciwgd2lsbCBiZSBudWxsIGlmIHRoZXJlIHdhcyBhbiBlcnJvciBwcm9jZXNzaW5nIHRoZSBzeW5j
CisgICAgLy8gbWVzc2FnZSBvbiB0aGUgb3RoZXIgc2lkZS4KKyAgICBNZXNzYWdlRGVjb2Rlciog
cmVwbHlEZWNvZGVyOworCisgICAgQmluYXJ5U2VtYXBob3JlIHNlbWFwaG9yZTsKK307CisKKwog
UGFzc1JlZlB0cjxDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRlPiBDb25uZWN0aW9uOjpTeW5j
TWVzc2FnZVN0YXRlOjpnZXRPckNyZWF0ZShSdW5Mb29wKiBydW5Mb29wKQogewogICAgIE11dGV4
TG9ja2VyIGxvY2tlcihzeW5jTWVzc2FnZVN0YXRlTWFwTXV0ZXgoKSk7CkBAIC0yODEsNyArMjk0
LDggQEAgUGFzc093blB0cjxNZXNzYWdlRW5jb2Rlcj4gQ29ubmVjdGlvbjo6YwogICAgIE93blB0
cjxNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlciA9IE1lc3NhZ2VFbmNvZGVyOjpjcmVhdGUobWVzc2Fn
ZVJlY2VpdmVyTmFtZSwgbWVzc2FnZU5hbWUsIGRlc3RpbmF0aW9uSUQpOwogCiAgICAgLy8gRW5j
b2RlIHRoZSBzeW5jIHJlcXVlc3QgSUQuCi0gICAgc3luY1JlcXVlc3RJRCA9ICsrbV9zeW5jUmVx
dWVzdElEOworICAgIENPTVBJTEVfQVNTRVJUKHNpemVvZihtX3N5bmNSZXF1ZXN0SUQpID09IHNp
emVvZihpbnQ2NF90KSwgQ2FuVXNlQXRvbWljSW5jcmVtZW50KTsKKyAgICBzeW5jUmVxdWVzdElE
ID0gYXRvbWljSW5jcmVtZW50KHJlaW50ZXJwcmV0X2Nhc3Q8aW50NjRfdCo+KCZtX3N5bmNSZXF1
ZXN0SUQpKTsKICAgICBlbmNvZGVyLT5lbmNvZGUoc3luY1JlcXVlc3RJRCk7CiAKICAgICByZXR1
cm4gZW5jb2Rlci5yZWxlYXNlKCk7CkBAIC0zNzAsOCArMzg0LDExIEBAIFBhc3NPd25QdHI8TWVz
c2FnZURlY29kZXI+IENvbm5lY3Rpb246OncKIAogUGFzc093blB0cjxNZXNzYWdlRGVjb2Rlcj4g
Q29ubmVjdGlvbjo6c2VuZFN5bmNNZXNzYWdlKE1lc3NhZ2VJRCBtZXNzYWdlSUQsIHVpbnQ2NF90
IHN5bmNSZXF1ZXN0SUQsIFBhc3NPd25QdHI8TWVzc2FnZUVuY29kZXI+IGVuY29kZXIsIGRvdWJs
ZSB0aW1lb3V0LCB1bnNpZ25lZCBzeW5jU2VuZEZsYWdzKQogewotICAgIC8vIFdlIG9ubHkgYWxs
b3cgc2VuZGluZyBzeW5jIG1lc3NhZ2VzIGZyb20gdGhlIGNsaWVudCBydW4gbG9vcC4KLSAgICBB
U1NFUlQoUnVuTG9vcDo6Y3VycmVudCgpID09IG1fY2xpZW50UnVuTG9vcCk7CisgICAgaWYgKFJ1
bkxvb3A6OmN1cnJlbnQoKSAhPSBtX2NsaWVudFJ1bkxvb3ApIHsKKyAgICAgICAgLy8gTm8gZmxh
Z3MgYXJlIHN1cHBvcnRlZCBmb3Igc3luY2hyb25vdXMgbWVzc2FnZXMgc2VudCBmcm9tIHNlY29u
ZGFyeSB0aHJlYWRzLgorICAgICAgICBBU1NFUlQoIXN5bmNTZW5kRmxhZ3MpOworICAgICAgICBy
ZXR1cm4gc2VuZFN5bmNNZXNzYWdlRnJvbVNlY29uZGFyeVRocmVhZChtZXNzYWdlSUQsIHN5bmNS
ZXF1ZXN0SUQsIGVuY29kZXIsIHRpbWVvdXQpOworICAgIH0KIAogICAgIGlmICghaXNWYWxpZCgp
KSB7CiAgICAgICAgIGRpZEZhaWxUb1NlbmRTeW5jTWVzc2FnZSgpOwpAQCAtNDEwLDYgKzQyNyw1
MCBAQCBQYXNzT3duUHRyPE1lc3NhZ2VEZWNvZGVyPiBDb25uZWN0aW9uOjpzCiAgICAgcmV0dXJu
IHJlcGx5LnJlbGVhc2UoKTsKIH0KIAorUGFzc093blB0cjxNZXNzYWdlRGVjb2Rlcj4gQ29ubmVj
dGlvbjo6c2VuZFN5bmNNZXNzYWdlRnJvbVNlY29uZGFyeVRocmVhZChNZXNzYWdlSUQgbWVzc2Fn
ZUlELCB1aW50NjRfdCBzeW5jUmVxdWVzdElELCBQYXNzT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiBl
bmNvZGVyLCBkb3VibGUgdGltZW91dCkKK3sKKyAgICBBU1NFUlQoUnVuTG9vcDo6Y3VycmVudCgp
ICE9IG1fY2xpZW50UnVuTG9vcCk7CisKKyAgICBpZiAoIWlzVmFsaWQoKSkgeworICAgICAgICBk
aWRGYWlsVG9TZW5kU3luY01lc3NhZ2UoKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
fQorCisgICAgU2Vjb25kYXJ5VGhyZWFkUGVuZGluZ1N5bmNSZXBseSBwZW5kaW5nUmVwbHk7CisK
KyAgICAvLyBQdXNoIHRoZSBwZW5kaW5nIHN5bmMgcmVwbHkgaW5mb3JtYXRpb24gb24gb3VyIHN0
YWNrLgorICAgIHsKKyAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVN
dXRleCk7CisgICAgICAgIGlmICghbV9zaG91bGRXYWl0Rm9yU3luY1JlcGxpZXMpIHsKKyAgICAg
ICAgICAgIGRpZEZhaWxUb1NlbmRTeW5jTWVzc2FnZSgpOworICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgICAgIH0KKworICAgICAgICBBU1NFUlQoIW1fc2Vjb25kYXJ5VGhyZWFkUGVu
ZGluZ1N5bmNSZXBseU1hcC5jb250YWlucyhzeW5jUmVxdWVzdElEKSk7CisgICAgICAgIG1fc2Vj
b25kYXJ5VGhyZWFkUGVuZGluZ1N5bmNSZXBseU1hcC5hZGQoc3luY1JlcXVlc3RJRCwgJnBlbmRp
bmdSZXBseSk7CisgICAgfQorCisgICAgc2VuZE1lc3NhZ2UobWVzc2FnZUlELm1lc3NhZ2VJRFdp
dGhBZGRlZEZsYWdzKE1lc3NhZ2VJRDo6U3luY01lc3NhZ2UpLCBlbmNvZGVyLCAwKTsKKworICAg
IC8vIFVzZSBhIHJlYWxseSBsb25nIHRpbWVvdXQuCisgICAgaWYgKHRpbWVvdXQgPT0gTm9UaW1l
b3V0KQorICAgICAgICB0aW1lb3V0ID0gMWUxMDsKKworICAgIHBlbmRpbmdSZXBseS5zZW1hcGhv
cmUud2FpdCh0aW1lb3V0KTsKKworICAgIC8vIEZpbmFsbHksIHBvcCB0aGUgcGVuZGluZyBzeW5j
IHJlcGx5IGluZm9ybWF0aW9uLgorICAgIHsKKyAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
c3luY1JlcGx5U3RhdGVNdXRleCk7CisgICAgICAgIEFTU0VSVChtX3NlY29uZGFyeVRocmVhZFBl
bmRpbmdTeW5jUmVwbHlNYXAuY29udGFpbnMoc3luY1JlcXVlc3RJRCkpOworICAgICAgICBtX3Nl
Y29uZGFyeVRocmVhZFBlbmRpbmdTeW5jUmVwbHlNYXAucmVtb3ZlKHN5bmNSZXF1ZXN0SUQpOwor
ICAgIH0KKworICAgIGlmICghcGVuZGluZ1JlcGx5LnJlcGx5RGVjb2RlcikKKyAgICAgICAgZGlk
RmFpbFRvU2VuZFN5bmNNZXNzYWdlKCk7CisKKyAgICByZXR1cm4gYWRvcHRQdHIocGVuZGluZ1Jl
cGx5LnJlcGx5RGVjb2Rlcik7Cit9CisKIFBhc3NPd25QdHI8TWVzc2FnZURlY29kZXI+IENvbm5l
Y3Rpb246OndhaXRGb3JTeW5jUmVwbHkodWludDY0X3Qgc3luY1JlcXVlc3RJRCwgZG91YmxlIHRp
bWVvdXQsIHVuc2lnbmVkIHN5bmNTZW5kRmxhZ3MpCiB7CiAgICAgLy8gVXNlIGEgcmVhbGx5IGxv
bmcgdGltZW91dC4KQEAgLTQ4Niw3ICs1NDcsMTYgQEAgdm9pZCBDb25uZWN0aW9uOjpwcm9jZXNz
SW5jb21pbmdTeW5jUmVwbAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gSWYgd2Ug
Z2V0IGhlcmUsIGl0IG1lYW5zIHdlIGdvdCBhIHJlcGx5IGZvciBhIG1lc3NhZ2UgdGhhdCB3YXNu
J3QgaW4gdGhlIHN5bmMgcmVxdWVzdCBzdGFjay4KKyAgICAvLyBJZiBpdCdzIG5vdCBhIHJlcGx5
IHRvIGFueSBwcmltYXJ5IHRocmVhZCBtZXNzYWdlLCBjaGVjayBpZiBpdCBpcyBhIHJlcGx5IHRv
IGEgc2Vjb25kYXJ5IHRocmVhZCBvbmUuCisgICAgU2Vjb25kYXJ5VGhyZWFkUGVuZGluZ1N5bmNS
ZXBseU1hcDo6aXRlcmF0b3Igc2Vjb25kYXJ5VGhyZWFkUmVwbHlNYXBJdGVtID0gbV9zZWNvbmRh
cnlUaHJlYWRQZW5kaW5nU3luY1JlcGx5TWFwLmZpbmQoZGVjb2Rlci0+ZGVzdGluYXRpb25JRCgp
KTsKKyAgICBpZiAoc2Vjb25kYXJ5VGhyZWFkUmVwbHlNYXBJdGVtICE9IG1fc2Vjb25kYXJ5VGhy
ZWFkUGVuZGluZ1N5bmNSZXBseU1hcC5lbmQoKSkgeworICAgICAgICBTZWNvbmRhcnlUaHJlYWRQ
ZW5kaW5nU3luY1JlcGx5KiByZXBseSA9IHNlY29uZGFyeVRocmVhZFJlcGx5TWFwSXRlbS0+dmFs
dWU7CisgICAgICAgIEFTU0VSVCghcmVwbHktPnJlcGx5RGVjb2Rlcik7CisgICAgICAgIHJlcGx5
LT5yZXBseURlY29kZXIgPSBkZWNvZGVyLmxlYWtQdHIoKTsKKyAgICAgICAgcmVwbHktPnNlbWFw
aG9yZS5zaWduYWwoKTsKKyAgICB9CisKKyAgICAvLyBJZiB3ZSBnZXQgaGVyZSwgaXQgbWVhbnMg
d2UgZ290IGEgcmVwbHkgZm9yIGEgbWVzc2FnZSB0aGF0IHdhc24ndCBpbiB0aGUgc3luYyByZXF1
ZXN0IHN0YWNrIG9yIG1hcC4KICAgICAvLyBUaGlzIGNhbiBoYXBwZW4gaWYgdGhlIHNlbmQgdGlt
ZWQgb3V0LCBzbyBpdCdzIGZpbmUgdG8gaWdub3JlLgogfQogCkBAIC01NTQsNiArNjI0LDkgQEAg
dm9pZCBDb25uZWN0aW9uOjpjb25uZWN0aW9uRGlkQ2xvc2UoKQogCiAgICAgICAgIGlmICghbV9w
ZW5kaW5nU3luY1JlcGxpZXMuaXNFbXB0eSgpKQogICAgICAgICAgICAgbV9zeW5jTWVzc2FnZVN0
YXRlLT53YWtlVXBDbGllbnRSdW5Mb29wKCk7CisKKyAgICAgICAgZm9yIChTZWNvbmRhcnlUaHJl
YWRQZW5kaW5nU3luY1JlcGx5TWFwOjppdGVyYXRvciBpdGVyID0gbV9zZWNvbmRhcnlUaHJlYWRQ
ZW5kaW5nU3luY1JlcGx5TWFwLmJlZ2luKCk7IGl0ZXIgIT0gbV9zZWNvbmRhcnlUaHJlYWRQZW5k
aW5nU3luY1JlcGx5TWFwLmVuZCgpOyArK2l0ZXIpCisgICAgICAgICAgICBpdGVyLT52YWx1ZS0+
c2VtYXBob3JlLnNpZ25hbCgpOwogICAgIH0KIAogICAgIGlmIChtX2RpZENsb3NlT25Db25uZWN0
aW9uV29ya1F1ZXVlQ2FsbGJhY2spCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0Nvbm5lY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9D
b3JlSVBDL0Nvbm5lY3Rpb24uaAkocmV2aXNpb24gMTM5MDgyKQorKysgU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTE4Miw2ICsx
ODIsNyBAQCBwdWJsaWM6CiAgICAgUGFzc093blB0cjxNZXNzYWdlRW5jb2Rlcj4gY3JlYXRlU3lu
Y01lc3NhZ2VFbmNvZGVyKFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBTdHJp
bmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQsIHVpbnQ2NF90
JiBzeW5jUmVxdWVzdElEKTsKICAgICBib29sIHNlbmRNZXNzYWdlKE1lc3NhZ2VJRCwgUGFzc093
blB0cjxNZXNzYWdlRW5jb2Rlcj4sIHVuc2lnbmVkIG1lc3NhZ2VTZW5kRmxhZ3MgPSAwKTsKICAg
ICBQYXNzT3duUHRyPE1lc3NhZ2VEZWNvZGVyPiBzZW5kU3luY01lc3NhZ2UoTWVzc2FnZUlELCB1
aW50NjRfdCBzeW5jUmVxdWVzdElELCBQYXNzT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiwgZG91Ymxl
IHRpbWVvdXQsIHVuc2lnbmVkIHN5bmNTZW5kRmxhZ3MgPSAwKTsKKyAgICBQYXNzT3duUHRyPE1l
c3NhZ2VEZWNvZGVyPiBzZW5kU3luY01lc3NhZ2VGcm9tU2Vjb25kYXJ5VGhyZWFkKE1lc3NhZ2VJ
RCwgdWludDY0X3Qgc3luY1JlcXVlc3RJRCwgUGFzc093blB0cjxNZXNzYWdlRW5jb2Rlcj4sIGRv
dWJsZSB0aW1lb3V0KTsKICAgICBib29sIHNlbmRTeW5jUmVwbHkoUGFzc093blB0cjxNZXNzYWdl
RW5jb2Rlcj4pOwogCiAgICAgdm9pZCB3YWtlVXBSdW5Mb29wKCk7CkBAIC0zMDUsNyArMzA2LDcg
QEAgcHJpdmF0ZToKICAgICAgICAgLy8gbWVzc2FnZSBvbiB0aGUgb3RoZXIgc2lkZS4KICAgICAg
ICAgTWVzc2FnZURlY29kZXIqIHJlcGx5RGVjb2RlcjsKIAotICAgICAgICAvLyBXaWxsIGJlIHNl
dCB0byB0cnVlIG9uY2UgYSByZXBseSBoYXMgYmVlbiByZWNlaXZlZCBvciBhbiBlcnJvciBvY2N1
cnJlZC4KKyAgICAgICAgLy8gV2lsbCBiZSBzZXQgdG8gdHJ1ZSBvbmNlIGEgcmVwbHkgaGFzIGJl
ZW4gcmVjZWl2ZWQuCiAgICAgICAgIGJvb2wgZGlkUmVjZWl2ZVJlcGx5OwogICAgIAogICAgICAg
ICBQZW5kaW5nU3luY1JlcGx5KCkKQEAgLTMzMCw3ICszMzEsNyBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgcmV0dXJuIHJlcGx5LnJlbGVhc2UoKTsKICAgICAgICAgfQogICAgIH07Ci0gICAgCisK
ICAgICBjbGFzcyBTeW5jTWVzc2FnZVN0YXRlOwogICAgIGZyaWVuZCBjbGFzcyBTeW5jTWVzc2Fn
ZVN0YXRlOwogICAgIFJlZlB0cjxTeW5jTWVzc2FnZVN0YXRlPiBtX3N5bmNNZXNzYWdlU3RhdGU7
CkBAIC0zMzksNiArMzQwLDEwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZFdhaXRGb3JT
eW5jUmVwbGllczsKICAgICBWZWN0b3I8UGVuZGluZ1N5bmNSZXBseT4gbV9wZW5kaW5nU3luY1Jl
cGxpZXM7CiAKKyAgICBjbGFzcyBTZWNvbmRhcnlUaHJlYWRQZW5kaW5nU3luY1JlcGx5OworICAg
IHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgU2Vjb25kYXJ5VGhyZWFkUGVuZGluZ1N5bmNSZXBs
eSo+IFNlY29uZGFyeVRocmVhZFBlbmRpbmdTeW5jUmVwbHlNYXA7CisgICAgU2Vjb25kYXJ5VGhy
ZWFkUGVuZGluZ1N5bmNSZXBseU1hcCBtX3NlY29uZGFyeVRocmVhZFBlbmRpbmdTeW5jUmVwbHlN
YXA7CisKICNpZiBPUyhEQVJXSU4pCiAgICAgLy8gQ2FsbGVkIG9uIHRoZSBjb25uZWN0aW9uIHF1
ZXVlLgogICAgIHZvaWQgcmVjZWl2ZVNvdXJjZUV2ZW50SGFuZGxlcigpOwo=
</data>
<flag name="review"
          id="200431"
          type_id="1"
          status="+"
          setter="andersca"
    />
    <flag name="commit-queue"
          id="200432"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
      

    </bug>

</bugzilla>