<?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>158933</bug_id>
          
          <creation_ts>2016-06-20 00:52:39 -0700</creation_ts>
          <short_desc>[iOS][WK2] When an animation frame is missed, the UI process should immediately notify the Web process once a frame is committed</short_desc>
          <delta_ts>2016-06-21 13:53:59 -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>Animations</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1203716</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-06-20 00:52:39 -0700</bug_when>
    <thetext>When a frame is committed, the UI process schedules a CADisplayLink and waits until the next didRefreshDisplay event is fired. This causes more delay in the scenario where there are frames are dropped. didRefreshDisplay() should be called immediately when commitLayerTree message is received and the last frame was dropped.

The fix is to have the CADisplayLink active all the times. It should be paused only when we detect at least one frame is dropped. In this case we should not send a message to the UI process since it has not sent the last requested LayerTree. Also we should not waste the CPU time by scheduling a new CADisplayLink since we have not processed the last event. We should resume CADisplayLink timer once a commitLayerTree message is received.

We are going to introduce the state variable m_didUpdateMessageState to RemoteLayerTreeDrawingAreaProxy whose value is one of the following: { NotSent, Sent, MissedCommit }. Here is its state table. The only events that affect its value are commitLayerTree() and didRefreshDisplay()


CurrentValue           commitLayerTree                            didRefreshDisplay
  NotSent                  NotSent                                  Sent          (message is sent to the WebProcess)
  Sent                     NotSent                                  MissedCommit  (no message is sent and the CADisplayLink is paused)
  MissedCommit             NotSent (call didRefreshDisplay())       MissedCommit  (no message)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203717</commentid>
    <comment_count>1</comment_count>
      <attachid>281637</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-06-20 01:00:55 -0700</bug_when>
    <thetext>Created attachment 281637
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203786</commentid>
    <comment_count>2</comment_count>
      <attachid>281637</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-06-20 10:31:51 -0700</bug_when>
    <thetext>Comment on attachment 281637
Patch

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

&gt; Source/WebKit2/ChangeLog:30
&gt; +        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
&gt; +        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
&gt; +        (-[WKOneShotDisplayLinkHandler pause]):
&gt; +        (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
&gt; +        (WebKit::RemoteLayerTreeDrawingAreaProxy::didRefreshDisplay):
&gt; +        (-[WKOneShotDisplayLinkHandler displayLinkFired:]): Deleted.
&gt; +        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
&gt; +        (WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::flush):
&gt; +        We should clear the graphics contexts when the drawing layers are flushed
&gt; +        in the commitQueue thread instead of delaying this to be done in the main
&gt; +        thread when the old m_pendingBackingStoreFlusher is released.

This should probably happen in a different patch so we can separate the performance impact of the two unrelated changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203865</commentid>
    <comment_count>3</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-06-20 13:25:53 -0700</bug_when>
    <thetext>&lt;rdar://problem/23490249&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204254</commentid>
    <comment_count>4</comment_count>
      <attachid>281768</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-06-21 12:20:54 -0700</bug_when>
    <thetext>Created attachment 281768
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204255</commentid>
    <comment_count>5</comment_count>
      <attachid>281637</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-06-21 12:22:44 -0700</bug_when>
    <thetext>Comment on attachment 281637
Patch

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

&gt;&gt; Source/WebKit2/ChangeLog:30
&gt;&gt; +        thread when the old m_pendingBackingStoreFlusher is released.
&gt; 
&gt; This should probably happen in a different patch so we can separate the performance impact of the two unrelated changes.

This part was removed but I did not notice much difference in MotionMark score between adding it or removing it. So I am mot sure if it is worth adding it a separate patch even.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204256</commentid>
    <comment_count>6</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-06-21 12:32:44 -0700</bug_when>
    <thetext>This patch shows 8% progression in MotionMark score on iPad Air.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204268</commentid>
    <comment_count>7</comment_count>
      <attachid>281768</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-21 13:53:55 -0700</bug_when>
    <thetext>Comment on attachment 281768
Patch

Clearing flags on attachment: 281768

Committed r202291: &lt;http://trac.webkit.org/changeset/202291&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204269</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-21 13:53:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281637</attachid>
            <date>2016-06-20 01:00:55 -0700</date>
            <delta_ts>2016-06-21 12:20:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158933-20160620010050.patch</filename>
            <type>text/plain</type>
            <size>5588</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyMTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZGRjNWY0ZDY5YTQ5MmQx
Y2JiNjY5NTlkYzhkMDE5ZGQzNTZkYzM0YS4uMjRhYzk0NDM1NWQyMzVjOTc2OTFlOGZkYmQ0OTY2
NTQ0OTg1MTQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE2LTA2LTIwICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZSxjb20+CisKKyAgICAgICAgW2lPU11b
V0syXSBXaGVuIGFuIGFuaW1hdGlvbiBmcmFtZSBpcyBtaXNzZWQsIHRoZSBVSSBwcm9jZXNzIHNo
b3VsZCBpbW1lZGlhdGVseSBub3RpZnkgdGhlIFdlYiBwcm9jZXNzIG9uY2UgYSBmcmFtZSBpcyBj
b21taXR0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1ODkzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFdoZW4gYSBmcmFtZSBpcyBjb21taXR0ZWQsIHRoZSBVSSBwcm9jZXNzIHNjaGVkdWxlcyBhIENB
RGlzcGxheUxpbmsgYW5kIHdhaXRzIHVudGlsCisgICAgICAgIHRoZSBuZXh0IGRpZFJlZnJlc2hE
aXNwbGF5IGV2ZW50IGlzIGZpcmVkLiBUaGlzIGNhdXNlcyBtb3JlIGRlbGF5IGluIHRoZSBzY2Vu
YXJpbworICAgICAgICB3aGVyZSB0aGVyZSBhcmUgZnJhbWVzIGFyZSBkcm9wcGVkLiBkaWRSZWZy
ZXNoRGlzcGxheSgpIHNob3VsZCBiZSBjYWxsZWQgaW1tZWRpYXRlbHkKKyAgICAgICAgd2hlbiBj
b21taXRMYXllclRyZWUgbWVzc2FnZSBpcyByZWNlaXZlZCBhbmQgdGhlIGxhc3QgZnJhbWUgd2Fz
IGRyb3BwZWQuCisKKyAgICAgICAgVGhlIGZpeCBpcyB0byBoYXZlIHRoZSBDQURpc3BsYXlMaW5r
IGFjdGl2ZSBhbGwgdGhlIHRpbWVzLiBJdCBzaG91bGQgYmUgcGF1c2VkCisgICAgICAgIG9ubHkg
d2hlbiB3ZSBkZXRlY3QgYXQgbGVhc3Qgb25lIGZyYW1lIGlzIGRyb3BwZWQuIEluIHRoaXMgY2Fz
ZSB3ZSBzaG91bGQgbm90CisgICAgICAgIHNlbmQgYSBtZXNzYWdlIHRvIHRoZSBVSSBwcm9jZXNz
IHNpbmNlIGl0IGhhcyBub3Qgc2VudCB0aGUgbGFzdCByZXF1ZXN0ZWQgTGF5ZXJUcmVlLgorICAg
ICAgICBBbHNvIHdlIHNob3VsZCBub3Qgd2FzdGUgdGhlIENQVSB0aW1lIGJ5IHNjaGVkdWxpbmcg
YSBuZXcgQ0FEaXNwbGF5TGluayBzaW5jZSB3ZQorICAgICAgICBoYXZlIG5vdCBwcm9jZXNzZWQg
dGhlIGxhc3QgZXZlbnQuIFdlIHNob3VsZCByZXN1bWUgQ0FEaXNwbGF5TGluayB0aW1lciBvbmNl
IGEKKyAgICAgICAgY29tbWl0TGF5ZXJUcmVlIG1lc3NhZ2UgaXMgcmVjZWl2ZWQuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW06
CisgICAgICAgICgtW1dLT25lU2hvdERpc3BsYXlMaW5rSGFuZGxlciBwYXVzZV0pOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpjb21taXRMYXllclRy
ZWUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpk
aWRSZWZyZXNoRGlzcGxheSk6CisgICAgICAgICgtW1dLT25lU2hvdERpc3BsYXlMaW5rSGFuZGxl
ciBkaXNwbGF5TGlua0ZpcmVkOl0pOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW06CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpCYWNraW5nU3RvcmVGbHVzaGVyOjpmbHVzaCk6
CisgICAgICAgIFdlIHNob3VsZCBjbGVhciB0aGUgZ3JhcGhpY3MgY29udGV4dHMgd2hlbiB0aGUg
ZHJhd2luZyBsYXllcnMgYXJlIGZsdXNoZWQKKyAgICAgICAgaW4gdGhlIGNvbW1pdFF1ZXVlIHRo
cmVhZCBpbnN0ZWFkIG9mIGRlbGF5aW5nIHRoaXMgdG8gYmUgZG9uZSBpbiB0aGUgbWFpbgorICAg
ICAgICB0aHJlYWQgd2hlbiB0aGUgb2xkIG1fcGVuZGluZ0JhY2tpbmdTdG9yZUZsdXNoZXIgaXMg
cmVsZWFzZWQuCisKIDIwMTYtMDYtMTUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBEcm9wIHNvbWUgdW5uZWNlc3NhcnkgaGVhZGVyIGluY2x1ZGVzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eS5oCmluZGV4IGNlNjI3OGE4OWJjMGRjMDIyMmRiM2I2YTkxYzc2Mjdk
ZGRjZjUzYWIuLjBlZGU5MDk5YmUzNDFjNTc2ZmQwMTY4MmEzODI2NTNlMDA3NWY2ZjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWFQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCkBAIC05MSw3ICs5MSw4IEBAIHByaXZhdGU6CiAKICAg
ICBSZW1vdGVMYXllclRyZWVIb3N0IG1fcmVtb3RlTGF5ZXJUcmVlSG9zdDsKICAgICBib29sIG1f
aXNXYWl0aW5nRm9yRGlkVXBkYXRlR2VvbWV0cnkgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9oYXZl
U2VudERpZFVwZGF0ZVNpbmNlTGFzdENvbW1pdCB7IGZhbHNlIH07CisgICAgZW51bSBEaWRVcGRh
dGVNZXNzYWdlU3RhdGUgeyBOb3RTZW50LCBTZW50LCBNaXNzZWRDb21taXQgfTsKKyAgICBEaWRV
cGRhdGVNZXNzYWdlU3RhdGUgbV9kaWRVcGRhdGVNZXNzYWdlU3RhdGUgeyBOb3RTZW50IH07CiAK
ICAgICBXZWJDb3JlOjpJbnRTaXplIG1fbGFzdFNlbnRTaXplOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHku
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHkubW0KaW5kZXggMjFkMjAzMjI2NDRiMTczN2Q4YjE3YzNiMTdlZjcyYTVhOGE5NWU0
MC4uMWFhMzJiNzAwZDk3YzgyZGM2MTZjN2E1OGNjYTYwZDlkYzc2NzFmYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVBy
b3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eS5tbQpAQCAtODEsNyArODEsNiBAQCAtICh2b2lkKWRpc3BsYXlMaW5r
RmlyZWQ6KENBRGlzcGxheUxpbmsgKilzZW5kZXIKIHsKICAgICBBU1NFUlQoaXNVSVRocmVhZCgp
KTsKICAgICBfZHJhd2luZ0FyZWFQcm94eS0+ZGlkUmVmcmVzaERpc3BsYXkoc2VuZGVyLnRpbWVz
dGFtcCk7Ci0gICAgX2Rpc3BsYXlMaW5rLnBhdXNlZCA9IFlFUzsKIH0KIAogLSAodm9pZClpbnZh
bGlkYXRlCkBAIC05NSw2ICs5NCwxMSBAQCAtICh2b2lkKXNjaGVkdWxlCiAgICAgX2Rpc3BsYXlM
aW5rLnBhdXNlZCA9IE5POwogfQogCistICh2b2lkKXBhdXNlCit7CisgICAgX2Rpc3BsYXlMaW5r
LnBhdXNlZCA9IFlFUzsKK30KKwogQGVuZAogI2VuZGlmCiAKQEAgLTIxOSwxMSArMjIzLDEyIEBA
IHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6Y29tbWl0TGF5ZXJUcmVlKGNv
bnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zCiAKICAgICBtX3dlYlBhZ2VQcm94eS5sYXllclRyZWVD
b21taXRDb21wbGV0ZSgpOwogCi0gICAgbV9oYXZlU2VudERpZFVwZGF0ZVNpbmNlTGFzdENvbW1p
dCA9IGZhbHNlOwotCiAjaWYgUExBVEZPUk0oSU9TKQorICAgIGlmIChzdGQ6OmV4Y2hhbmdlKG1f
ZGlkVXBkYXRlTWVzc2FnZVN0YXRlLCBOb3RTZW50KSA9PSBNaXNzZWRDb21taXQpCisgICAgICAg
IGRpZFJlZnJlc2hEaXNwbGF5KG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsKICAgICBb
bV9kaXNwbGF5TGlua0hhbmRsZXIgc2NoZWR1bGVdOwogI2Vsc2UKKyAgICBtX2RpZFVwZGF0ZU1l
c3NhZ2VTdGF0ZSA9IE5vdFNlbnQ7CiAgICAgZGlkUmVmcmVzaERpc3BsYXkobW9ub3RvbmljYWxs
eUluY3JlYXNpbmdUaW1lKCkpOwogI2VuZGlmCiAKQEAgLTM5MSwxMCArMzk2LDE1IEBAIHZvaWQg
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6ZGlkUmVmcmVzaERpc3BsYXkoZG91Ymxl
KQogICAgIGlmICghbV93ZWJQYWdlUHJveHkuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBpZiAobV9oYXZlU2VudERpZFVwZGF0ZVNpbmNlTGFzdENvbW1pdCkKKyAgICBpZiAobV9k
aWRVcGRhdGVNZXNzYWdlU3RhdGUgIT0gTm90U2VudCkgeworICAgICAgICBtX2RpZFVwZGF0ZU1l
c3NhZ2VTdGF0ZSA9IE1pc3NlZENvbW1pdDsKKyNpZiBQTEFURk9STShJT1MpCisgICAgICAgIFtt
X2Rpc3BsYXlMaW5rSGFuZGxlciBwYXVzZV07CisjZW5kaWYKICAgICAgICAgcmV0dXJuOworICAg
IH0KICAgICAKLSAgICBtX2hhdmVTZW50RGlkVXBkYXRlU2luY2VMYXN0Q29tbWl0ID0gdHJ1ZTsK
KyAgICBtX2RpZFVwZGF0ZU1lc3NhZ2VTdGF0ZSA9IFNlbnQ7CiAKICAgICAvLyBXYWl0aW5nIGZv
ciBDQSB0byBjb21taXQgaXMgaW5zdWZmaWNpZW50LCBiZWNhdXNlIHRoZSByZW5kZXIgc2VydmVy
IGNhbiBzdGlsbCBiZQogICAgIC8vIHVzaW5nIG91ciBiYWNraW5nIHN0b3JlLiBXZSBjYW4gaW1w
cm92ZSB0aGlzIGJ5IHdhaXRpbmcgZm9yIHRoZSByZW5kZXIgc2VydmVyIHRvIGNvbW1pdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KaW5kZXggZmZlOGNjZjQ4MjJmM2FlNjc5
NzM4NGQ1NDM0NzFjNDg2MzkzODYzZi4uYTU0NzYyNjE3OTk4NDcyMGJiZjYwMjcyY2M3NTFhY2Qx
N2Q5NmY0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCkBAIC00ODcs
NiArNDg3LDkgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6QmFja2luZ1N0b3Jl
Rmx1c2hlcjo6Zmx1c2goKQogCiAgICAgZm9yIChhdXRvJiBjb250ZXh0IDogbV9jb250ZXh0c1Rv
Rmx1c2gpCiAgICAgICAgIENHQ29udGV4dEZsdXNoKGNvbnRleHQuZ2V0KCkpOworICAgIAorICAg
IG1fY29udGV4dHNUb0ZsdXNoLmNsZWFyKCk7CisKICAgICBtX2hhc0ZsdXNoZWQgPSB0cnVlOwog
CiAgICAgbV9jb25uZWN0aW9uLT5zZW5kTWVzc2FnZShXVEZNb3ZlKG1fY29tbWl0RW5jb2Rlcikp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281768</attachid>
            <date>2016-06-21 12:20:54 -0700</date>
            <delta_ts>2016-06-21 13:53:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158933-20160621122050.patch</filename>
            <type>text/plain</type>
            <size>4240</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMjExMCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDE2LTA2LTIxICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZSxjb20+CisKKyAgICAgICAgW2lPU11bV0sy
XSBXaGVuIGFuIGFuaW1hdGlvbiBmcmFtZSBpcyBtaXNzZWQsIHRoZSBVSSBwcm9jZXNzIHNob3Vs
ZCBpbW1lZGlhdGVseSBub3RpZnkgdGhlIFdlYiBwcm9jZXNzIG9uY2UgYSBmcmFtZSBpcyBjb21t
aXR0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
ODkzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdo
ZW4gYSBmcmFtZSBpcyBjb21taXR0ZWQsIHRoZSBVSSBwcm9jZXNzIHNjaGVkdWxlcyBhIENBRGlz
cGxheUxpbmsgYW5kIHdhaXRzIHVudGlsCisgICAgICAgIHRoZSBuZXh0IGRpZFJlZnJlc2hEaXNw
bGF5IGV2ZW50IGlzIGZpcmVkLiBUaGlzIGNhdXNlcyBtb3JlIGRlbGF5IGluIHRoZSBzY2VuYXJp
bworICAgICAgICB3aGVyZSB0aGVyZSBhcmUgZnJhbWVzIGFyZSBkcm9wcGVkLiBkaWRSZWZyZXNo
RGlzcGxheSgpIHNob3VsZCBiZSBjYWxsZWQgaW1tZWRpYXRlbHkKKyAgICAgICAgd2hlbiBjb21t
aXRMYXllclRyZWUgbWVzc2FnZSBpcyByZWNlaXZlZCBhbmQgdGhlIGxhc3QgZnJhbWUgd2FzIGRy
b3BwZWQuCisKKyAgICAgICAgVGhlIGZpeCBpcyB0byBoYXZlIHRoZSBDQURpc3BsYXlMaW5rIGFj
dGl2ZSBhbGwgdGhlIHRpbWVzLiBJdCBzaG91bGQgYmUgcGF1c2VkCisgICAgICAgIG9ubHkgd2hl
biB3ZSBkZXRlY3QgYXQgbGVhc3Qgb25lIGZyYW1lIGlzIGRyb3BwZWQuIEluIHRoaXMgY2FzZSB3
ZSBzaG91bGQgbm90CisgICAgICAgIHNlbmQgYSBtZXNzYWdlIHRvIHRoZSBVSSBwcm9jZXNzIHNp
bmNlIGl0IGhhcyBub3Qgc2VudCB0aGUgbGFzdCByZXF1ZXN0ZWQgTGF5ZXJUcmVlLgorICAgICAg
ICBBbHNvIHdlIHNob3VsZCBub3Qgd2FzdGUgdGhlIENQVSB0aW1lIGJ5IHNjaGVkdWxpbmcgYSBu
ZXcgQ0FEaXNwbGF5TGluayBzaW5jZSB3ZQorICAgICAgICBoYXZlIG5vdCBwcm9jZXNzZWQgdGhl
IGxhc3QgZXZlbnQuIFdlIHNob3VsZCByZXN1bWUgQ0FEaXNwbGF5TGluayB0aW1lciBvbmNlIGEK
KyAgICAgICAgY29tbWl0TGF5ZXJUcmVlIG1lc3NhZ2UgaXMgcmVjZWl2ZWQuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW06Cisg
ICAgICAgICgtW1dLT25lU2hvdERpc3BsYXlMaW5rSGFuZGxlciBwYXVzZV0pOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpjb21taXRMYXllclRyZWUp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpkaWRS
ZWZyZXNoRGlzcGxheSk6CisgICAgICAgICgtW1dLT25lU2hvdERpc3BsYXlMaW5rSGFuZGxlciBk
aXNwbGF5TGlua0ZpcmVkOl0pOgorCiAyMDE2LTA2LTE1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CiAKICAgICAgICAgRHJvcCBzb21lIHVubmVjZXNzYXJ5IGhlYWRlciBpbmNsdWRl
cwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYVByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmgJKHJldmlzaW9uIDIwMjExMCkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC05MSw3ICs5MSw4IEBAIHByaXZhdGU6CiAKICAgICBS
ZW1vdGVMYXllclRyZWVIb3N0IG1fcmVtb3RlTGF5ZXJUcmVlSG9zdDsKICAgICBib29sIG1faXNX
YWl0aW5nRm9yRGlkVXBkYXRlR2VvbWV0cnkgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9oYXZlU2Vu
dERpZFVwZGF0ZVNpbmNlTGFzdENvbW1pdCB7IGZhbHNlIH07CisgICAgZW51bSBEaWRVcGRhdGVN
ZXNzYWdlU3RhdGUgeyBOb3RTZW50LCBTZW50LCBNaXNzZWRDb21taXQgfTsKKyAgICBEaWRVcGRh
dGVNZXNzYWdlU3RhdGUgbV9kaWRVcGRhdGVNZXNzYWdlU3RhdGUgeyBOb3RTZW50IH07CiAKICAg
ICBXZWJDb3JlOjpJbnRTaXplIG1fbGFzdFNlbnRTaXplOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYVByb3h5Lm1tCShyZXZpc2lvbiAyMDIxMTApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTgxLDcgKzgxLDYgQEAgLSAodm9pZClkaXNwbGF5TGlua0ZpcmVkOihDQURpc3BsYXlM
aW5rIAogewogICAgIEFTU0VSVChpc1VJVGhyZWFkKCkpOwogICAgIF9kcmF3aW5nQXJlYVByb3h5
LT5kaWRSZWZyZXNoRGlzcGxheShzZW5kZXIudGltZXN0YW1wKTsKLSAgICBfZGlzcGxheUxpbmsu
cGF1c2VkID0gWUVTOwogfQogCiAtICh2b2lkKWludmFsaWRhdGUKQEAgLTk1LDYgKzk0LDExIEBA
IC0gKHZvaWQpc2NoZWR1bGUKICAgICBfZGlzcGxheUxpbmsucGF1c2VkID0gTk87CiB9CiAKKy0g
KHZvaWQpcGF1c2UKK3sKKyAgICBfZGlzcGxheUxpbmsucGF1c2VkID0gWUVTOworfQorCiBAZW5k
CiAjZW5kaWYKIApAQCAtMjE5LDExICsyMjMsMTIgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYVByb3h5OjpjbwogCiAgICAgbV93ZWJQYWdlUHJveHkubGF5ZXJUcmVlQ29tbWl0Q29t
cGxldGUoKTsKIAotICAgIG1faGF2ZVNlbnREaWRVcGRhdGVTaW5jZUxhc3RDb21taXQgPSBmYWxz
ZTsKLQogI2lmIFBMQVRGT1JNKElPUykKKyAgICBpZiAoc3RkOjpleGNoYW5nZShtX2RpZFVwZGF0
ZU1lc3NhZ2VTdGF0ZSwgTm90U2VudCkgPT0gTWlzc2VkQ29tbWl0KQorICAgICAgICBkaWRSZWZy
ZXNoRGlzcGxheShtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSk7CiAgICAgW21fZGlzcGxh
eUxpbmtIYW5kbGVyIHNjaGVkdWxlXTsKICNlbHNlCisgICAgbV9kaWRVcGRhdGVNZXNzYWdlU3Rh
dGUgPSBOb3RTZW50OwogICAgIGRpZFJlZnJlc2hEaXNwbGF5KG1vbm90b25pY2FsbHlJbmNyZWFz
aW5nVGltZSgpKTsKICNlbmRpZgogCkBAIC0zOTEsMTAgKzM5NiwxNSBAQCB2b2lkIFJlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmRpCiAgICAgaWYgKCFtX3dlYlBhZ2VQcm94eS5pc1Zh
bGlkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX2hhdmVTZW50RGlkVXBkYXRlU2lu
Y2VMYXN0Q29tbWl0KQorICAgIGlmIChtX2RpZFVwZGF0ZU1lc3NhZ2VTdGF0ZSAhPSBOb3RTZW50
KSB7CisgICAgICAgIG1fZGlkVXBkYXRlTWVzc2FnZVN0YXRlID0gTWlzc2VkQ29tbWl0OworI2lm
IFBMQVRGT1JNKElPUykKKyAgICAgICAgW21fZGlzcGxheUxpbmtIYW5kbGVyIHBhdXNlXTsKKyNl
bmRpZgogICAgICAgICByZXR1cm47CisgICAgfQogICAgIAotICAgIG1faGF2ZVNlbnREaWRVcGRh
dGVTaW5jZUxhc3RDb21taXQgPSB0cnVlOworICAgIG1fZGlkVXBkYXRlTWVzc2FnZVN0YXRlID0g
U2VudDsKIAogICAgIC8vIFdhaXRpbmcgZm9yIENBIHRvIGNvbW1pdCBpcyBpbnN1ZmZpY2llbnQs
IGJlY2F1c2UgdGhlIHJlbmRlciBzZXJ2ZXIgY2FuIHN0aWxsIGJlCiAgICAgLy8gdXNpbmcgb3Vy
IGJhY2tpbmcgc3RvcmUuIFdlIGNhbiBpbXByb3ZlIHRoaXMgYnkgd2FpdGluZyBmb3IgdGhlIHJl
bmRlciBzZXJ2ZXIgdG8gY29tbWl0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>