<?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>130984</bug_id>
          
          <creation_ts>2014-03-31 13:00:02 -0700</creation_ts>
          <short_desc>Synchronize Web process remote layer tree commits with CoreAnimation commits in the UI process</short_desc>
          <delta_ts>2014-03-31 15:53:24 -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>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>995961</commentid>
    <comment_count>0</comment_count>
      <attachid>228193</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-03-31 13:00:02 -0700</bug_when>
    <thetext>Created attachment 228193
patch

There&apos;s no reason for the Web process to paint faster than the UI process
can apply to and commit the CoreAnimation layer tree.

Also, once we get proper double-buffering and purgeable back buffers, we
will need the ability to make some assumptions about in-use surfaces.

Unfortunately, we can&apos;t actually tell when the render server commits, 
as this is an asynchronous operation in a process we don&apos;t control, so
for now, this is only an approximation.

This also means that the assumptions we would like to make won&apos;t be
strong guarantees yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995964</commentid>
    <comment_count>1</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-31 13:02:24 -0700</bug_when>
    <thetext>Attachment 228193 did not pass style-queue:


ERROR: Source/WebKit2/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Total errors found: 1 in 7 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>995976</commentid>
    <comment_count>2</comment_count>
      <attachid>228193</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-03-31 13:49:30 -0700</bug_when>
    <thetext>Comment on attachment 228193
patch

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

&gt; Source/WebKit2/UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:293
&gt; +    m_layerCommitObserver = adoptCF(CFRunLoopObserverCreate(0, kCFRunLoopBeforeWaiting | kCFRunLoopExit, true, DidCommitLayersRunLoopOrder, coreAnimationDidCommitLayersCallback, &amp;context));

Do we need to explicitly invalidate this guy in the destructor?

&gt; Source/WebKit2/WebProcess/WebPage/DrawingArea.h:144
&gt; +    virtual void didSwapBackingStore() { }

Not super keen on this name.

&gt; Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:116
&gt; +    bool m_hasFlushDeferredWhileWaitingForBackingStoreSwap;

hadFlushDeferredWhileWaitingForBackingStoreSwap?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>996032</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-03-31 15:53:24 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/166540</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228193</attachid>
            <date>2014-03-31 13:00:02 -0700</date>
            <delta_ts>2014-03-31 13:49:30 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0004-Synchronize-Web-process-remote-layer-tree-commits-wi.patch</filename>
            <type>text/plain</type>
            <size>12188</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">RnJvbSBjYjcyOWY0YTFmYWE3NjcyYzg2M2VjZGExNTQ3NjQxZDA3NmIyOTZkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUaW0gSG9ydG9uIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+
CkRhdGU6IFN1biwgMzAgTWFyIDIwMTQgMjA6MDM6MDUgLTA3MDAKU3ViamVjdDogW1BBVENIIDA0
LzEwXSBTeW5jaHJvbml6ZSBXZWIgcHJvY2VzcyByZW1vdGUgbGF5ZXIgdHJlZSBjb21taXRzIHdp
dGgKIENvcmVBbmltYXRpb24gY29tbWl0cyBpbiB0aGUgVUkgcHJvY2VzcwoKLS0tCiBTb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDQzICsrKysrKysr
KysrKysrKysrKysrCiAuLi4vbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaCAg
ICAgICAgICB8ICA2ICsrKwogLi4uL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
Lm1tICAgICAgICAgfCA0NiArKysrKysrKysrKysrKysrKysrKystCiBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaCAgICB8ICAyICsKIC4uLi9XZWJQcm9jZXNz
L1dlYlBhZ2UvRHJhd2luZ0FyZWEubWVzc2FnZXMuaW4gICAgIHwgIDMgKysKIC4uLi9XZWJQYWdl
L21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oICAgICAgIHwgIDUgKysrCiAuLi4vV2Vi
UGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0gICAgICB8IDIzICsrKysrKysr
KystCiA3IGZpbGVzIGNoYW5nZWQsIDEyNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA4N2NjMWFlLi4wODg2NTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYg
QEAKKzIwMTQtMDMtMzAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgU3luY2hyb25pemUgV2ViIHByb2Nlc3MgcmVtb3RlIGxheWVyIHRyZWUgY29tbWl0
cyB3aXRoIENvcmVBbmltYXRpb24gY29tbWl0cyBpbiB0aGUgVUkgcHJvY2VzcworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXJlJ3Mgbm8gcmVhc29u
IGZvciB0aGUgV2ViIHByb2Nlc3MgdG8gcGFpbnQgZmFzdGVyIHRoYW4gdGhlIFVJIHByb2Nlc3MK
KyAgICAgICAgY2FuIGFwcGx5IHRvIGFuZCBjb21taXQgdGhlIENvcmVBbmltYXRpb24gbGF5ZXIg
dHJlZS4KKworICAgICAgICBBbHNvLCBvbmNlIHdlIGdldCBwcm9wZXIgZG91YmxlLWJ1ZmZlcmlu
ZyBhbmQgcHVyZ2VhYmxlIGJhY2sgYnVmZmVycywgd2UKKyAgICAgICAgd2lsbCBuZWVkIHRoZSBh
YmlsaXR5IHRvIG1ha2Ugc29tZSBhc3N1bXB0aW9ucyBhYm91dCBpbi11c2Ugc3VyZmFjZXMuCisK
KyAgICAgICAgVW5mb3J0dW5hdGVseSwgd2UgY2FuJ3QgYWN0dWFsbHkgdGVsbCB3aGVuIHRoZSBy
ZW5kZXIgc2VydmVyIGNvbW1pdHMsIAorICAgICAgICBhcyB0aGlzIGlzIGFuIGFzeW5jaHJvbm91
cyBvcGVyYXRpb24gaW4gYSBwcm9jZXNzIHdlIGRvbid0IGNvbnRyb2wsIHNvCisgICAgICAgIGZv
ciBub3csIHRoaXMgaXMgb25seSBhbiBhcHByb3hpbWF0aW9uLgorCisgICAgICAgIFRoaXMgYWxz
byBtZWFucyB0aGF0IHRoZSBhc3N1bXB0aW9ucyB3ZSB3b3VsZCBsaWtlIHRvIG1ha2Ugd29uJ3Qg
YmUKKyAgICAgICAgc3Ryb25nIGd1YXJhbnRlZXMgeWV0LgorCisgICAgICAgICogVUlQcm9jZXNz
L21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpjb21taXRMYXllclRyZWUpOgor
ICAgICAgICBXaGVuIHdlIGNvbW1pdCwgaW5zdGFsbCBhIHJ1biBsb29wIG9ic2VydmVyIHRvIGZp
cmUgaW1tZWRpYXRlbHkgYWZ0ZXIgQ29yZUFuaW1hdGlvbiBjb21taXRzLgorCisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OnNob3dEZWJ1Z0luZGljYXRv
cik6CisgICAgICAgIEZpeCBhIHR5cG8gKCdjbXBvbmVudHMnKS4KKworICAgICAgICAoV2ViS2l0
Ojpjb3JlQW5pbWF0aW9uRGlkQ29tbWl0TGF5ZXJzQ2FsbGJhY2spOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpzY2hlZHVsZUNvcmVBbmltYXRpb25M
YXllckNvbW1pdE9ic2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWFQcm94eTo6Y29yZUFuaW1hdGlvbkRpZENvbW1pdExheWVycyk6CisgICAgICAgIFdo
ZW4gQ0EgY29tbWl0cywgc2VuZCBhIG1lc3NhZ2UgdG8gdGhlIFdlYiBwcm9jZXNzIGxldHRpbmcg
aXQga25vdyB0aGF0IHdlCisgICAgICAgIHN3YXBwZWQgdG8gdGhlIG5ldyBiYWNraW5nIHN0b3Jl
LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmg6CisgICAgICAg
IChXZWJLaXQ6OkRyYXdpbmdBcmVhOjpkaWRTd2FwQmFja2luZ1N0b3JlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEubWVzc2FnZXMuaW46CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW06
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhOjpmbHVzaExheWVycyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhOjpkaWRTd2FwQmFja2luZ1N0b3JlKToKKyAgICAgICAgRGVmZXIgcmVtb3RlIGxh
eWVyIHRyZWUgY29tbWl0cyB1bnRpbCB3ZSBnZXQgZGlkU3dhcEJhY2tpbmdTdG9yZSgpIGZyb20g
dGhlIFVJIHByb2Nlc3MuCisKIDIwMTQtMDMtMjcgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2Nh
QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgXyBwcmVmaXggdG8gV0tSZW1vdGVPYmplY3RSZWdp
c3RlcnkgYW5kIFdLUmVtb3RlT2JqZWN0SW50ZXJmYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eS5oCmluZGV4IGRjZGU3NGEuLjllOGIyM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5o
CkBAIC00NCw2ICs0NCw4IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFJlbW90ZUxheWVyVHJlZUhv
c3QmIHJlbW90ZUxheWVyVHJlZUhvc3QoKSBjb25zdCB7IHJldHVybiBtX3JlbW90ZUxheWVyVHJl
ZUhvc3Q7IH0KIAorICAgIHZvaWQgY29yZUFuaW1hdGlvbkRpZENvbW1pdExheWVycygpOworCiBw
cml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzaXplRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCB2b2lkIGRldmljZVNjYWxlRmFjdG9yRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CkBAIC03
MSw2ICs3Myw4IEBAIHByaXZhdGU6CiAgICAgCiAgICAgdm9pZCBzZW5kVXBkYXRlR2VvbWV0cnko
KTsKIAorICAgIHZvaWQgc2NoZWR1bGVDb3JlQW5pbWF0aW9uTGF5ZXJDb21taXRPYnNlcnZlcigp
OworCiAgICAgUmVtb3RlTGF5ZXJUcmVlSG9zdCBtX3JlbW90ZUxheWVyVHJlZUhvc3Q7CiAgICAg
Ym9vbCBtX2lzV2FpdGluZ0ZvckRpZFVwZGF0ZUdlb21ldHJ5OwogCkBAIC04MCw2ICs4NCw4IEBA
IHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUxheWVyVHJlZUhvc3Q+IG1fZGVi
dWdJbmRpY2F0b3JMYXllclRyZWVIb3N0OwogICAgIFJldGFpblB0cjxDQUxheWVyPiBtX3RpbGVN
YXBIb3N0TGF5ZXI7CiAgICAgUmV0YWluUHRyPENBTGF5ZXI+IG1fZXhwb3NlZFJlY3RJbmRpY2F0
b3JMYXllcjsKKworICAgIFJldGFpblB0cjxDRlJ1bkxvb3BPYnNlcnZlclJlZj4gbV9sYXllckNv
bW1pdE9ic2VydmVyOwogfTsKIAogRFJBV0lOR19BUkVBX1BST1hZX1RZUEVfQ0FTVFMoUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eSwgdHlwZSgpID09IERyYXdpbmdBcmVhVHlwZVJlbW90
ZUxheWVyVHJlZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1Jl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0KaW5kZXggMzQxZDg1Ni4u
ZTgxMzA5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQpAQCAtMzQsNiArMzQsOSBA
QAogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVD
QUxheWVyRXh0cmFzLmg+CiAKK3N0YXRpYyBjb25zdCBDRkluZGV4IENvcmVBbmltYXRpb25Db21t
aXRSdW5Mb29wT3JkZXIgPSAyMDAwMDAwOworc3RhdGljIGNvbnN0IENGSW5kZXggRGlkQ29tbWl0
TGF5ZXJzUnVuTG9vcE9yZGVyID0gQ29yZUFuaW1hdGlvbkNvbW1pdFJ1bkxvb3BPcmRlciArIDE7
CisKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTEy
OSw2ICsxMzIsOCBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmNvbW1p
dExheWVyVHJlZShjb25zdCBSZW1vdGVMYXllclRyZWVUcmFucwogICAgICAgICB1cGRhdGVEZWJ1
Z0luZGljYXRvcihsYXllclRyZWVUcmFuc2FjdGlvbi5jb250ZW50c1NpemUoKSwgcm9vdExheWVy
Q2hhbmdlZCwgc2NhbGUpOwogICAgICAgICBhc0xheWVyKG1fZGVidWdJbmRpY2F0b3JMYXllclRy
ZWVIb3N0LT5yb290TGF5ZXIoKSkubmFtZSA9IEAiSW5kaWNhdG9yIGhvc3Qgcm9vdCI7CiAgICAg
fQorCisgICAgc2NoZWR1bGVDb3JlQW5pbWF0aW9uTGF5ZXJDb21taXRPYnNlcnZlcigpOwogfQog
CiBzdGF0aWMgY29uc3QgZmxvYXQgaW5kaWNhdG9ySW5zZXQgPSAxMDsKQEAgLTI1Myw4ICsyNTgs
OCBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OnNob3dEZWJ1Z0luZGlj
YXRvcihib29sIHNob3cpCiAgICAgICAgIFJldGFpblB0cjxDR0NvbG9yUmVmPiBjb2xvciA9IGFk
b3B0Q0YoQ0dDb2xvckNyZWF0ZShjb2xvclNwYWNlLmdldCgpLCBjb21wb25lbnRzKSk7CiAgICAg
ICAgIFttX3RpbGVNYXBIb3N0TGF5ZXIgc2V0QmFja2dyb3VuZENvbG9yOmNvbG9yLmdldCgpXTsK
IAotICAgICAgICBjb25zdCBDR0Zsb2F0IGJvcmRlckNtcG9uZW50c1tdID0geyAwLCAwLCAwLCAx
IH07Ci0gICAgICAgIFJldGFpblB0cjxDR0NvbG9yUmVmPiBib3JkZXJDb2xvciA9IGFkb3B0Q0Yo
Q0dDb2xvckNyZWF0ZShjb2xvclNwYWNlLmdldCgpLCBib3JkZXJDbXBvbmVudHMpKTsKKyAgICAg
ICAgY29uc3QgQ0dGbG9hdCBib3JkZXJDb21wb25lbnRzW10gPSB7IDAsIDAsIDAsIDEgfTsKKyAg
ICAgICAgUmV0YWluUHRyPENHQ29sb3JSZWY+IGJvcmRlckNvbG9yID0gYWRvcHRDRihDR0NvbG9y
Q3JlYXRlKGNvbG9yU3BhY2UuZ2V0KCksIGJvcmRlckNvbXBvbmVudHMpKTsKICAgICAgICAgW21f
dGlsZU1hcEhvc3RMYXllciBzZXRCb3JkZXJDb2xvcjpib3JkZXJDb2xvci5nZXQoKV07CiAgICAg
fQogICAgIApAQCAtMjY5LDQgKzI3NCw0MSBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHk6OnNob3dEZWJ1Z0luZGljYXRvcihib29sIHNob3cpCiAgICAgfQogfQogCitzdGF0
aWMgdm9pZCBjb3JlQW5pbWF0aW9uRGlkQ29tbWl0TGF5ZXJzQ2FsbGJhY2soQ0ZSdW5Mb29wT2Jz
ZXJ2ZXJSZWYsIENGUnVuTG9vcEFjdGl2aXR5LCB2b2lkKiBjb250ZXh0KQoreworICAgIHN0YXRp
Y19jYXN0PFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkqPihjb250ZXh0KS0+Y29yZUFu
aW1hdGlvbkRpZENvbW1pdExheWVycygpOworfQorCit2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHk6OnNjaGVkdWxlQ29yZUFuaW1hdGlvbkxheWVyQ29tbWl0T2JzZXJ2ZXIoKQor
eworICAgIGlmIChtX2xheWVyQ29tbWl0T2JzZXJ2ZXIpCisgICAgICAgIHJldHVybjsKKworICAg
IENGUnVuTG9vcFJlZiBydW5Mb29wID0gQ0ZSdW5Mb29wR2V0Q3VycmVudCgpOworCisgICAgLy8g
TWFrZSBzdXJlIHdlIHdha2UgdXAgdGhlIGxvb3Agb3IgdGhlIG9ic2VydmVyIGNvdWxkIGJlIGRl
bGF5ZWQgdW50aWwgc29tZSBvdGhlciBzb3VyY2UgZmlyZXMuCisgICAgQ0ZSdW5Mb29wV2FrZVVw
KHJ1bkxvb3ApOworCisgICAgQ0ZSdW5Mb29wT2JzZXJ2ZXJDb250ZXh0IGNvbnRleHQgPSB7IDAs
IHRoaXMsIDAsIDAsIDAgfTsKKyAgICBtX2xheWVyQ29tbWl0T2JzZXJ2ZXIgPSBhZG9wdENGKENG
UnVuTG9vcE9ic2VydmVyQ3JlYXRlKDAsIGtDRlJ1bkxvb3BCZWZvcmVXYWl0aW5nIHwga0NGUnVu
TG9vcEV4aXQsIHRydWUsIERpZENvbW1pdExheWVyc1J1bkxvb3BPcmRlciwgY29yZUFuaW1hdGlv
bkRpZENvbW1pdExheWVyc0NhbGxiYWNrLCAmY29udGV4dCkpOworCisgICAgQ0ZSdW5Mb29wQWRk
T2JzZXJ2ZXIocnVuTG9vcCwgbV9sYXllckNvbW1pdE9ic2VydmVyLmdldCgpLCBrQ0ZSdW5Mb29w
Q29tbW9uTW9kZXMpOworfQorCit2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6
OmNvcmVBbmltYXRpb25EaWRDb21taXRMYXllcnMoKQoreworICAgIGlmIChtX2xheWVyQ29tbWl0
T2JzZXJ2ZXIpIHsKKyAgICAgICAgQ0ZSdW5Mb29wT2JzZXJ2ZXJJbnZhbGlkYXRlKG1fbGF5ZXJD
b21taXRPYnNlcnZlci5nZXQoKSk7CisgICAgICAgIG1fbGF5ZXJDb21taXRPYnNlcnZlciA9IG51
bGxwdHI7CisgICAgfQorCisgICAgaWYgKCFtX3dlYlBhZ2VQcm94eS0+aXNWYWxpZCgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICAvLyBXYWl0aW5nIGZvciBDQSB0byBjb21taXQgaXMgaW5zdWZm
aWNpZW50LCBiZWNhdXNlIHRoZSByZW5kZXIgc2VydmVyIGNhbiBzdGlsbCBiZQorICAgIC8vIHVz
aW5nIG91ciBiYWNraW5nIHN0b3JlLiBXZSBjYW4gaW1wcm92ZSB0aGlzIGJ5IHdhaXRpbmcgZm9y
IHRoZSByZW5kZXIgc2VydmVyIHRvIGNvbW1pdAorICAgIC8vIGlmIHdlIGZpbmQgQVBJIHRvIGRv
IHNvLCBidXQgZm9yIG5vdyB3ZSB3aWxsIG1ha2UgZXh0cmEgYnVmZmVycyBpZiBuZWVkIGJlLgor
ICAgIG1fd2ViUGFnZVByb3h5LT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6RHJhd2luZ0FyZWE6
OkRpZFN3YXBCYWNraW5nU3RvcmUoKSwgbV93ZWJQYWdlUHJveHktPnBhZ2VJRCgpKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9EcmF3aW5nQXJlYS5oCmluZGV4IDQ3ZWM1NWIuLmUwNjczZGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCkBAIC0xNDAsNiArMTQw
LDggQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RUcmFuc2llbnRab29tKGRv
dWJsZSBzY2FsZSwgV2ViQ29yZTo6RmxvYXRQb2ludCBvcmlnaW4pIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBjb21taXRUcmFuc2llbnRab29tKGRvdWJsZSBzY2FsZSwgV2ViQ29yZTo6RmxvYXRQb2lu
dCBvcmlnaW4pIHsgfQorCisgICAgdmlydHVhbCB2b2lkIGRpZFN3YXBCYWNraW5nU3RvcmUoKSB7
IH0KICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluCmluZGV4IDkxYmNhZjQuLmRhZTBjZjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJl
YS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJh
d2luZ0FyZWEubWVzc2FnZXMuaW4KQEAgLTMzLDUgKzMzLDggQEAgbWVzc2FnZXMgLT4gRHJhd2lu
Z0FyZWEgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgQWRqdXN0VHJhbnNpZW50Wm9vbShkb3VibGUg
c2NhbGUsIFdlYkNvcmU6OkZsb2F0UG9pbnQgb3JpZ2luKQogICAgIENvbW1pdFRyYW5zaWVudFpv
b20oZG91YmxlIHNjYWxlLCBXZWJDb3JlOjpGbG9hdFBvaW50IG9yaWdpbikKKyAgICAKKyAgICAv
LyBVc2VkIGJ5IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLgorICAgIERpZFN3YXBCYWNraW5n
U3RvcmUoKQogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgKaW5k
ZXggNGU3MjJjMC4uZWZiZWU0NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
LmgKQEAgLTc5LDYgKzc5LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc2V0RXhwb3Nl
ZENvbnRlbnRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIG92ZXJyaWRlOwogI2VuZGlm
CiAKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3dhcEJhY2tpbmdTdG9yZSgpIG92ZXJyaWRlOworCiAg
ICAgLy8gV2ViQ29yZTo6R3JhcGhpY3NMYXllckNsaWVudAogICAgIHZpcnR1YWwgdm9pZCBub3Rp
ZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUg
dGltZSkgb3ZlcnJpZGUgeyB9CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQo
Y29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRlIHsgfQpAQCAtMTA5LDYgKzEx
MSw5IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6VGltZXI8UmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWE+IG1fbGF5ZXJGbHVzaFRpbWVyOwogICAgIGJvb2wgbV9pc0ZsdXNoaW5nU3VzcGVuZGVk
OwogICAgIGJvb2wgbV9oYXNEZWZlcnJlZEZsdXNoOworCisgICAgYm9vbCBtX3dhaXRpbmdGb3JC
YWNraW5nU3RvcmVTd2FwOworICAgIGJvb2wgbV9oYXNGbHVzaERlZmVycmVkV2hpbGVXYWl0aW5n
Rm9yQmFja2luZ1N0b3JlU3dhcDsKIH07CiAKIERSQVdJTkdfQVJFQV9UWVBFX0NBU1RTKFJlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhLCB0eXBlKCkgPT0gRHJhd2luZ0FyZWFUeXBlUmVtb3RlTGF5
ZXJUcmVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCmluZGV4IDExNjhh
ZWQuLjllZWY4NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQpAQCAt
NTEsNiArNTEsOCBAQCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6UmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWEoV2ViUGFnZSogd2ViUGFnZSwgY29uc3QgVwogICAgICwgbV9sYXllckZsdXNo
VGltZXIodGhpcywgJlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpsYXllckZsdXNoVGltZXJG
aXJlZCkKICAgICAsIG1faXNGbHVzaGluZ1N1c3BlbmRlZChmYWxzZSkKICAgICAsIG1faGFzRGVm
ZXJyZWRGbHVzaChmYWxzZSkKKyAgICAsIG1fd2FpdGluZ0ZvckJhY2tpbmdTdG9yZVN3YXAoZmFs
c2UpCisgICAgLCBtX2hhc0ZsdXNoRGVmZXJyZWRXaGlsZVdhaXRpbmdGb3JCYWNraW5nU3RvcmVT
d2FwKGZhbHNlKQogewogICAgIHdlYlBhZ2UtPmNvcmVQYWdlKCktPnNldHRpbmdzKCkuc2V0Rm9y
Y2VDb21wb3NpdGluZ01vZGUodHJ1ZSk7CiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtMzEyLDEzICsz
MTQsMTYgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6Zmx1c2hMYXllcnMoKQog
ICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKG1fd2FpdGluZ0ZvckJhY2tpbmdTdG9y
ZVN3YXApIHsKKyAgICAgICAgbV9oYXNGbHVzaERlZmVycmVkV2hpbGVXYWl0aW5nRm9yQmFja2lu
Z1N0b3JlU3dhcCA9IHRydWU7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBtX3dlYlBh
Z2UtPmxheW91dElmTmVlZGVkKCk7CiAgICAgbV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5tYWluRnJh
bWUoKS52aWV3KCktPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUluY2x1ZGluZ1N1YmZyYW1lcygpOwog
CiAgICAgbV9yZW1vdGVMYXllclRyZWVDb250ZXh0LT5mbHVzaE91dE9mVHJlZUxheWVycygpOwog
Ci0gICAgQVNTRVJUKG1fcm9vdExheWVyKTsKLQogICAgIC8vIEZJWE1FOiBtaW5pemUgdGhlc2Ug
dHJhbnNhY3Rpb25zIGlmIG5vdGhpbmcgY2hhbmdlZC4KICAgICBSZW1vdGVMYXllclRyZWVUcmFu
c2FjdGlvbiBsYXllclRyYW5zYWN0aW9uOwogICAgIG1fcmVtb3RlTGF5ZXJUcmVlQ29udGV4dC0+
YnVpbGRUcmFuc2FjdGlvbihsYXllclRyYW5zYWN0aW9uLCAqbV9yb290TGF5ZXIpOwpAQCAtMzMw
LDcgKzMzNSwyMSBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpmbHVzaExheWVy
cygpCiAgICAgICAgIHRvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IobV93ZWJQYWdlLT5zY3Jv
bGxpbmdDb29yZGluYXRvcigpKS0+YnVpbGRUcmFuc2FjdGlvbihzY3JvbGxpbmdUcmFuc2FjdGlv
bik7CiAjZW5kaWYKIAorICAgIG1fd2FpdGluZ0ZvckJhY2tpbmdTdG9yZVN3YXAgPSB0cnVlOwog
ICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eTo6Q29tbWl0TGF5ZXJUcmVlKGxheWVyVHJhbnNhY3Rpb24sIHNjcm9sbGluZ1RyYW5zYWN0
aW9uKSk7CiB9CiAKK3ZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmRpZFN3YXBCYWNr
aW5nU3RvcmUoKQoreworICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCB1c2UgYSBjb3VudGVkIHJl
cGxhY2VtZW50IGZvciBzZXRMYXllclRyZWVTdGF0ZUlzRnJvemVuLCBidXQKKyAgICAvLyB0aGUg
Y2FsbGVycyBvZiB0aGF0IGZ1bmN0aW9uIGFyZSBub3Qgc3RyaWN0bHkgcGFpcmVkLgorCisgICAg
bV93YWl0aW5nRm9yQmFja2luZ1N0b3JlU3dhcCA9IGZhbHNlOworCisgICAgaWYgKG1faGFzRmx1
c2hEZWZlcnJlZFdoaWxlV2FpdGluZ0ZvckJhY2tpbmdTdG9yZVN3YXApIHsKKyAgICAgICAgc2No
ZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKTsKKyAgICAgICAgbV9oYXNGbHVzaERlZmVycmVk
V2hpbGVXYWl0aW5nRm9yQmFja2luZ1N0b3JlU3dhcCA9IGZhbHNlOworICAgIH0KK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0Ci0tIAoxLjguNS4yIChBcHBsZSBHaXQtNDgpCgo=
</data>
<flag name="review"
          id="252477"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>