<?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>133417</bug_id>
          
          <creation_ts>2014-05-30 21:54:49 -0700</creation_ts>
          <short_desc>[iOS][WK2] Round the UIScrollView content size to device pixel</short_desc>
          <delta_ts>2014-06-02 15:19:33 -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>New Bugs</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1012725</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-05-30 21:54:49 -0700</bug_when>
    <thetext>[iOS][WK2] Round the UIScrollView content size to device pixel</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012726</commentid>
    <comment_count>1</comment_count>
      <attachid>232314</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-05-30 21:56:41 -0700</bug_when>
    <thetext>Created attachment 232314
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012727</commentid>
    <comment_count>2</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-05-30 21:57:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/15922440&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012729</commentid>
    <comment_count>3</comment_count>
      <attachid>232314</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-05-30 22:13:45 -0700</bug_when>
    <thetext>Comment on attachment 232314
Patch

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

&gt; Source/WebKit2/ChangeLog:11
&gt; +        This patch ensure the content size as seen by the API is rounded to device pixels.

rounded or floored?

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:455
&gt; +static inline CGFloat floorFloatToPixels(CGFloat input, float deviceScaleFactor)

We&apos;ve been using roundToDevicePixel, floorToDevicePixel terms in WebCore. Having &apos;float&apos; in the function name doesn&apos;t add any useful information, while it&apos;s missing what the rounding unit is.
Any explanation why we floor instead of round or ceil? (I guess, it&apos;s because you don&apos;t want garbage at the edges, but it&apos;d be helpful to explain it in the changelog)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012735</commentid>
    <comment_count>4</comment_count>
      <attachid>232314</attachid>
    <who name="Ian Henderson">ian</who>
    <bug_when>2014-05-31 01:22:16 -0700</bug_when>
    <thetext>Comment on attachment 232314
Patch

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

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:460
&gt; +static CGSize roundScrollViewCountentSize(const WebKit::WebPageProxy&amp; page, const CGSize&amp; contentSize)

&quot;Countent&quot; -&gt; &quot;Content&quot;

Is there a reason to pass contentSize by const reference instead of by value here?  It seems likely it&apos;ll all be inlined anyway.

Everything else looks good to me, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012740</commentid>
    <comment_count>5</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-05-31 01:31:10 -0700</bug_when>
    <thetext>&gt; Is there a reason to pass contentSize by const reference instead of by value here?  It seems likely it&apos;ll all be inlined anyway.

It is an habit. We pass stuff by const reference when they cannot be passed as registers. The &quot;default&quot; is to use const reference for non POD.

Here the CGSize can be passed by registers, so I should not have used const references.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013014</commentid>
    <comment_count>6</comment_count>
      <attachid>232401</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-06-02 15:00:25 -0700</bug_when>
    <thetext>Created attachment 232401
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013015</commentid>
    <comment_count>7</comment_count>
      <attachid>232401</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-06-02 15:05:04 -0700</bug_when>
    <thetext>Comment on attachment 232401
Patch

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

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:460
&gt; +static CGSize roundScrollViewContentSize(const WebKit::WebPageProxy&amp; page, CGSize contentSize)

Why not just pass in page.deviceScaleFactor()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013019</commentid>
    <comment_count>8</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-06-02 15:10:07 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 232401 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=232401&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:460
&gt; &gt; +static CGSize roundScrollViewContentSize(const WebKit::WebPageProxy&amp; page, CGSize contentSize)
&gt; 
&gt; Why not just pass in page.deviceScaleFactor()?

Too many call sites, the repetition is not worth it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013020</commentid>
    <comment_count>9</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-06-02 15:19:33 -0700</bug_when>
    <thetext>Committed r169549: &lt;http://trac.webkit.org/changeset/169549&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232314</attachid>
            <date>2014-05-30 21:56:41 -0700</date>
            <delta_ts>2014-06-02 15:00:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133417-20140530215550.patch</filename>
            <type>text/plain</type>
            <size>5216</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5NTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggM2MyMDYzN2M5MTVjZjlm
ZjQ4NGRmNTc4MGJjNGRhOTUzZjkyZjA1OC4uMzExMmFjNDkwNTQzZDZhZTE2ZTdjZThmMjFkNjlh
MWI0Y2Q2NjY2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI2IEBACiAyMDE0LTA1LTMwICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgogCisgICAgICAgIFtpT1NdW1dLMl0g
Um91bmQgdGhlIFVJU2Nyb2xsVmlldyBjb250ZW50IHNpemUgdG8gZGV2aWNlIHBpeGVsCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzM0MTcKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzE1OTIyNDQwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFdlIHNob3VsZCByZWFsbHkgaGF2ZSB0aGUgc2NhbGVkIGNv
bnRlbnQgc2l6ZSBmbG9vcmVkIHRvIGRldmljZSBwaXhlbHMsIGJ1dCB0aGF0IHdpbGwgYmUgZm9y
IGFub3RoZXIKKyAgICAgICAgdGltZS4KKyAgICAgICAgVGhpcyBwYXRjaCBlbnN1cmUgdGhlIGNv
bnRlbnQgc2l6ZSBhcyBzZWVuIGJ5IHRoZSBBUEkgaXMgcm91bmRlZCB0byBkZXZpY2UgcGl4ZWxz
LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAg
IChmbG9vckZsb2F0VG9QaXhlbHMpOgorICAgICAgICAocm91bmRTY3JvbGxWaWV3Q291bnRlbnRT
aXplKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRIYXNDdXN0b21Db250ZW50Vmlldzpsb2Fk
ZWRNSU1FVHlwZTpXVEY6Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2RpZENvbW1pdExheWVy
VHJlZTpXZWJLaXQ6Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgc2Nyb2xsVmlldzpjb250ZW50
U2l6ZUZvclpvb21TY2FsZTp3aXRoUHJvcG9zZWRTaXplOl0pOgorICAgICAgICAoLVtXS1dlYlZp
ZXcgX2JlZ2luQW5pbWF0ZWRSZXNpemVXaXRoVXBkYXRlczpdKToKKyAgICAgICAgKC1bV0tXZWJW
aWV3IF9lbmRBbmltYXRlZFJlc2l6ZV0pOgorCisyMDE0LTA1LTMwICBCZW5qYW1pbiBQb3VsYWlu
ICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCiAgICAgICAgIFtpT1NdW1dLMl0gV2hlbiBhIHBhZ2Ug
ZG9lcyBub3QgZmluaXNoIHJvdGF0aW9uIGJlZm9yZSB0aGUgZW5kIG9mIHRoZSBhbmltYXRpb24s
IHN5bmNocm9uaXplIGV4cGxpY2l0ZWx5CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMzMzNjQKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE3MDI2MzMz
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpp
bmRleCBiYmIyNTU3ZjQ5YTFmN2NhMDgxNTNiOTJjZDA2ZjM5ZjkyZjA4Y2RjLi41ZjhkYzYwZDlm
ZTU3Yjg4OGJjODY4ZjIzZThiMDJmNTA0NzU3ZDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNDUyLDYgKzQ1MiwxNyBAQCBXS1dl
YlZpZXcqIGZyb21XZWJQYWdlUHJveHkoV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UpCiAgICAg
cmV0dXJuIFtfY29udGVudFZpZXcgYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcl07CiB9CiAKK3N0
YXRpYyBpbmxpbmUgQ0dGbG9hdCBmbG9vckZsb2F0VG9QaXhlbHMoQ0dGbG9hdCBpbnB1dCwgZmxv
YXQgZGV2aWNlU2NhbGVGYWN0b3IpCit7CisgICAgcmV0dXJuIENHRmxvb3IoaW5wdXQgKiBkZXZp
Y2VTY2FsZUZhY3RvcikgLyBkZXZpY2VTY2FsZUZhY3RvcjsKK30KKworc3RhdGljIENHU2l6ZSBy
b3VuZFNjcm9sbFZpZXdDb3VudGVudFNpemUoY29uc3QgV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBh
Z2UsIGNvbnN0IENHU2l6ZSYgY29udGVudFNpemUpCit7CisgICAgZmxvYXQgZGV2aWNlU2NhbGVG
YWN0b3IgPSBwYWdlLmRldmljZVNjYWxlRmFjdG9yKCk7CisgICAgcmV0dXJuIENHU2l6ZU1ha2Uo
Zmxvb3JGbG9hdFRvUGl4ZWxzKGNvbnRlbnRTaXplLndpZHRoLCBkZXZpY2VTY2FsZUZhY3Rvciks
IGZsb29yRmxvYXRUb1BpeGVscyhjb250ZW50U2l6ZS5oZWlnaHQsIGRldmljZVNjYWxlRmFjdG9y
KSk7Cit9CisKIC0gKHZvaWQpX3NldEhhc0N1c3RvbUNvbnRlbnRWaWV3OihCT09MKXBhZ2VIYXND
dXN0b21Db250ZW50VmlldyBsb2FkZWRNSU1FVHlwZTooY29uc3QgV1RGOjpTdHJpbmcmKW1pbWVU
eXBlCiB7CiAgICAgaWYgKHBhZ2VIYXNDdXN0b21Db250ZW50VmlldykgewpAQCAtNDgwLDcgKzQ5
MSw3IEBAIFdLV2ViVmlldyogZnJvbVdlYlBhZ2VQcm94eShXZWJLaXQ6OldlYlBhZ2VQcm94eSYg
cGFnZSkKICAgICAgICAgX2N1c3RvbUNvbnRlbnRGaXhlZE92ZXJsYXlWaWV3ID0gbnVsbHB0cjsK
IAogICAgICAgICBbX3Njcm9sbFZpZXcgYWRkU3VidmlldzpfY29udGVudFZpZXcuZ2V0KCldOwot
ICAgICAgICBbX3Njcm9sbFZpZXcgc2V0Q29udGVudFNpemU6W19jb250ZW50VmlldyBmcmFtZV0u
c2l6ZV07CisgICAgICAgIFtfc2Nyb2xsVmlldyBzZXRDb250ZW50U2l6ZTpyb3VuZFNjcm9sbFZp
ZXdDb3VudGVudFNpemUoKl9wYWdlLCBbX2NvbnRlbnRWaWV3IGZyYW1lXS5zaXplKV07CiAKICAg
ICAgICAgW19jdXN0b21Db250ZW50Rml4ZWRPdmVybGF5VmlldyBzZXRGcmFtZTpzZWxmLmJvdW5k
c107CiAgICAgICAgIFtzZWxmIGFkZFN1YnZpZXc6X2N1c3RvbUNvbnRlbnRGaXhlZE92ZXJsYXlW
aWV3LmdldCgpXTsKQEAgLTU5OSw3ICs2MTAsNyBAQCBzdGF0aWMgQ0dGbG9hdCBjb250ZW50Wm9v
bVNjYWxlKFdLV2ViVmlldyogd2ViVmlldykKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IFtfc2Nyb2xsVmlldyBzZXRDb250ZW50U2l6ZTpbX2NvbnRlbnRWaWV3IGZyYW1lXS5zaXplXTsK
KyAgICBbX3Njcm9sbFZpZXcgc2V0Q29udGVudFNpemU6cm91bmRTY3JvbGxWaWV3Q291bnRlbnRT
aXplKCpfcGFnZSwgW19jb250ZW50VmlldyBmcmFtZV0uc2l6ZSldOwogICAgIFtfc2Nyb2xsVmll
dyBzZXRNaW5pbXVtWm9vbVNjYWxlOmxheWVyVHJlZVRyYW5zYWN0aW9uLm1pbmltdW1TY2FsZUZh
Y3RvcigpXTsKICAgICBbX3Njcm9sbFZpZXcgc2V0TWF4aW11bVpvb21TY2FsZTpsYXllclRyZWVU
cmFuc2FjdGlvbi5tYXhpbXVtU2NhbGVGYWN0b3IoKV07CiAgICAgW19zY3JvbGxWaWV3IHNldFpv
b21FbmFibGVkOmxheWVyVHJlZVRyYW5zYWN0aW9uLmFsbG93c1VzZXJTY2FsaW5nKCldOwpAQCAt
OTI4LDYgKzkzOSwxMSBAQCBzdGF0aWMgV2ViQ29yZTo6RmxvYXRQb2ludCBjb25zdHJhaW5Db250
ZW50T2Zmc2V0KFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udGVudE9mZgogICAgIHJldHVybiAhX2N1
c3RvbUNvbnRlbnRWaWV3OwogfQogCistIChDR1NpemUpc2Nyb2xsVmlldzooVUlTY3JvbGxWaWV3
KilzY3JvbGxWaWV3IGNvbnRlbnRTaXplRm9yWm9vbVNjYWxlOihDR0Zsb2F0KXNjYWxlIHdpdGhQ
cm9wb3NlZFNpemU6KENHU2l6ZSlwcm9wb3NlZFNpemUKK3sKKyAgICByZXR1cm4gcm91bmRTY3Jv
bGxWaWV3Q291bnRlbnRTaXplKCpfcGFnZSwgcHJvcG9zZWRTaXplKTsKK30KKwogLSAoVUlWaWV3
ICopdmlld0Zvclpvb21pbmdJblNjcm9sbFZpZXc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcK
IHsKICAgICBBU1NFUlQoX3Njcm9sbFZpZXcgPT0gc2Nyb2xsVmlldyk7CkBAIC0xNzU3LDcgKzE3
NzMsNyBAQCBzdGF0aWMgaW5saW5lIFdlYktpdDo6RmluZE9wdGlvbnMgdG9GaW5kT3B0aW9ucyhf
V0tGaW5kT3B0aW9ucyB3a0ZpbmRPcHRpb25zKQogICAgICAgICBjb250ZW50T2Zmc2V0LnkgPSAt
X29ic2N1cmVkSW5zZXRzLnRvcDsKIAogICAgIC8vIEZJWE1FOiBpZiB3ZSBoYXZlIGNvbnRlbnQg
Y2VudGVyZWQgYWZ0ZXIgZG91YmxlIHRhcCB0byB6b29tLCB3ZSBzaG91bGQgYWxzbyB0cnkgdG8g
a2VlcCB0aGF0IHJlY3QgaW4gdmlldy4KLSAgICBbX3Njcm9sbFZpZXcgc2V0Q29udGVudFNpemU6
ZnV0dXJlQ29udGVudFNpemVJblNlbGZDb29yZGluYXRlc107CisgICAgW19zY3JvbGxWaWV3IHNl
dENvbnRlbnRTaXplOnJvdW5kU2Nyb2xsVmlld0NvdW50ZW50U2l6ZSgqX3BhZ2UsIGZ1dHVyZUNv
bnRlbnRTaXplSW5TZWxmQ29vcmRpbmF0ZXMpXTsKICAgICBbX3Njcm9sbFZpZXcgc2V0Q29udGVu
dE9mZnNldDpjb250ZW50T2Zmc2V0XTsKIAogICAgIENHUmVjdCB2aXNpYmxlUmVjdEluQ29udGVu
dENvb3JkaW5hdGVzID0gW3NlbGYgY29udmVydFJlY3Q6bmV3Qm91bmRzIHRvVmlldzpfY29udGVu
dFZpZXcuZ2V0KCldOwpAQCAtMTgwOSw3ICsxODI1LDcgQEAgc3RhdGljIGlubGluZSBXZWJLaXQ6
OkZpbmRPcHRpb25zIHRvRmluZE9wdGlvbnMoX1dLRmluZE9wdGlvbnMgd2tGaW5kT3B0aW9ucykK
ICAgICAgICAgZG91YmxlIGhvcml6b250YWxTY3JvbGxBZGp1c3RlbWVudCA9IF9yZXNpemVBbmlt
YXRpb25UcmFuc2Zvcm1BZGp1c3RtZW50cy5tNDEgKiBhbmltYXRpbmdTY2FsZVRhcmdldDsKICAg
ICAgICAgZG91YmxlIHZlcnRpY2FsU2Nyb2xsQWRqdXN0bWVudCA9IF9yZXNpemVBbmltYXRpb25U
cmFuc2Zvcm1BZGp1c3RtZW50cy5tNDIgKiBhbmltYXRpbmdTY2FsZVRhcmdldDsKIAotICAgICAg
ICBbX3Njcm9sbFZpZXcgc2V0Q29udGVudFNpemU6W19jb250ZW50VmlldyBmcmFtZV0uc2l6ZV07
CisgICAgICAgIFtfc2Nyb2xsVmlldyBzZXRDb250ZW50U2l6ZTpyb3VuZFNjcm9sbFZpZXdDb3Vu
dGVudFNpemUoKl9wYWdlLCBbX2NvbnRlbnRWaWV3IGZyYW1lXS5zaXplKV07CiAgICAgICAgIFtf
c2Nyb2xsVmlldyBzZXRDb250ZW50T2Zmc2V0OkNHUG9pbnRNYWtlKGN1cnJlbnRTY3JvbGxPZmZz
ZXQueCAtIGhvcml6b250YWxTY3JvbGxBZGp1c3RlbWVudCwgY3VycmVudFNjcm9sbE9mZnNldC55
IC0gdmVydGljYWxTY3JvbGxBZGp1c3RtZW50KV07CiAKICAgICAgICAgW19yZXNpemVBbmltYXRp
b25WaWV3IHJlbW92ZUZyb21TdXBlcnZpZXddOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232401</attachid>
            <date>2014-06-02 15:00:25 -0700</date>
            <delta_ts>2014-06-02 15:05:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133417-20140602145927.patch</filename>
            <type>text/plain</type>
            <size>5293</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5NTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggM2MyMDYzN2M5MTVjZjlm
ZjQ4NGRmNTc4MGJjNGRhOTUzZjkyZjA1OC4uYjczNTc5OTQ2MTA3ZTEzNDBiMWFiYTBmNDkzMTFi
NzViZDBlODEzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI3IEBACiAyMDE0LTA1LTMwICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgogCisgICAgICAgIFtpT1NdW1dLMl0g
Um91bmQgdGhlIFVJU2Nyb2xsVmlldyBjb250ZW50IHNpemUgdG8gZGV2aWNlIHBpeGVsCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzM0MTcKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzE1OTIyNDQwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFdlIHNob3VsZCByZWFsbHkgaGF2ZSB0aGUgc2NhbGVkIGNv
bnRlbnQgc2l6ZSBmbG9vcmVkIHRvIGRldmljZSBwaXhlbHMsIGJ1dCB0aGF0IHdpbGwgYmUgZm9y
IGFub3RoZXIKKyAgICAgICAgdGltZS4KKyAgICAgICAgVGhpcyBwYXRjaCBlbnN1cmUgdGhlIGNv
bnRlbnQgc2l6ZSBhcyBzZWVuIGJ5IHRoZSBBUEkgaXMgcm91bmRlZCB0byBkZXZpY2UgcGl4ZWxz
LiBUaGUgdmFsdWUgaXMgZmxvb3JlZAorICAgICAgICB0byBhdm9pZCBzaG93aW5nIHBhcnRpYWwg
cGl4ZWxzIHdoZW4gdGhlIGNvbnRlbnQgaXMgc3RhYmxlLgorCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgIChmbG9vckZsb2F0VG9QaXhlbHMpOgor
ICAgICAgICAocm91bmRTY3JvbGxWaWV3Q291bnRlbnRTaXplKToKKyAgICAgICAgKC1bV0tXZWJW
aWV3IF9zZXRIYXNDdXN0b21Db250ZW50Vmlldzpsb2FkZWRNSU1FVHlwZTpXVEY6Ol0pOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX2RpZENvbW1pdExheWVyVHJlZTpXZWJLaXQ6Ol0pOgorICAgICAg
ICAoLVtXS1dlYlZpZXcgc2Nyb2xsVmlldzpjb250ZW50U2l6ZUZvclpvb21TY2FsZTp3aXRoUHJv
cG9zZWRTaXplOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2JlZ2luQW5pbWF0ZWRSZXNpemVX
aXRoVXBkYXRlczpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9lbmRBbmltYXRlZFJlc2l6ZV0p
OgorCisyMDE0LTA1LTMwICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgor
CiAgICAgICAgIFtpT1NdW1dLMl0gV2hlbiBhIHBhZ2UgZG9lcyBub3QgZmluaXNoIHJvdGF0aW9u
IGJlZm9yZSB0aGUgZW5kIG9mIHRoZSBhbmltYXRpb24sIHN5bmNocm9uaXplIGV4cGxpY2l0ZWx5
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzMzNjQK
ICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE3MDI2MzMzPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCBiYmIyNTU3ZjQ5YTFmN2NhMDgx
NTNiOTJjZDA2ZjM5ZjkyZjA4Y2RjLi4xZmY5NmRlZDkyNTAwM2Y3YWJmMDllYjVhOWE5M2M5Y2I5
N2U1ZjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbQpAQCAtNDUyLDYgKzQ1MiwxNyBAQCBXS1dlYlZpZXcqIGZyb21XZWJQYWdlUHJveHko
V2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UpCiAgICAgcmV0dXJuIFtfY29udGVudFZpZXcgYnJv
d3NpbmdDb250ZXh0Q29udHJvbGxlcl07CiB9CiAKK3N0YXRpYyBpbmxpbmUgQ0dGbG9hdCBmbG9v
clRvRGV2aWNlUGl4ZWwoQ0dGbG9hdCBpbnB1dCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCit7
CisgICAgcmV0dXJuIENHRmxvb3IoaW5wdXQgKiBkZXZpY2VTY2FsZUZhY3RvcikgLyBkZXZpY2VT
Y2FsZUZhY3RvcjsKK30KKworc3RhdGljIENHU2l6ZSByb3VuZFNjcm9sbFZpZXdDb250ZW50U2l6
ZShjb25zdCBXZWJLaXQ6OldlYlBhZ2VQcm94eSYgcGFnZSwgQ0dTaXplIGNvbnRlbnRTaXplKQor
eworICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yID0gcGFnZS5kZXZpY2VTY2FsZUZhY3Rvcigp
OworICAgIHJldHVybiBDR1NpemVNYWtlKGZsb29yVG9EZXZpY2VQaXhlbChjb250ZW50U2l6ZS53
aWR0aCwgZGV2aWNlU2NhbGVGYWN0b3IpLCBmbG9vclRvRGV2aWNlUGl4ZWwoY29udGVudFNpemUu
aGVpZ2h0LCBkZXZpY2VTY2FsZUZhY3RvcikpOworfQorCiAtICh2b2lkKV9zZXRIYXNDdXN0b21D
b250ZW50VmlldzooQk9PTClwYWdlSGFzQ3VzdG9tQ29udGVudFZpZXcgbG9hZGVkTUlNRVR5cGU6
KGNvbnN0IFdURjo6U3RyaW5nJiltaW1lVHlwZQogewogICAgIGlmIChwYWdlSGFzQ3VzdG9tQ29u
dGVudFZpZXcpIHsKQEAgLTQ4MCw3ICs0OTEsNyBAQCBXS1dlYlZpZXcqIGZyb21XZWJQYWdlUHJv
eHkoV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UpCiAgICAgICAgIF9jdXN0b21Db250ZW50Rml4
ZWRPdmVybGF5VmlldyA9IG51bGxwdHI7CiAKICAgICAgICAgW19zY3JvbGxWaWV3IGFkZFN1YnZp
ZXc6X2NvbnRlbnRWaWV3LmdldCgpXTsKLSAgICAgICAgW19zY3JvbGxWaWV3IHNldENvbnRlbnRT
aXplOltfY29udGVudFZpZXcgZnJhbWVdLnNpemVdOworICAgICAgICBbX3Njcm9sbFZpZXcgc2V0
Q29udGVudFNpemU6cm91bmRTY3JvbGxWaWV3Q29udGVudFNpemUoKl9wYWdlLCBbX2NvbnRlbnRW
aWV3IGZyYW1lXS5zaXplKV07CiAKICAgICAgICAgW19jdXN0b21Db250ZW50Rml4ZWRPdmVybGF5
VmlldyBzZXRGcmFtZTpzZWxmLmJvdW5kc107CiAgICAgICAgIFtzZWxmIGFkZFN1YnZpZXc6X2N1
c3RvbUNvbnRlbnRGaXhlZE92ZXJsYXlWaWV3LmdldCgpXTsKQEAgLTU5OSw3ICs2MTAsNyBAQCBz
dGF0aWMgQ0dGbG9hdCBjb250ZW50Wm9vbVNjYWxlKFdLV2ViVmlldyogd2ViVmlldykKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIFtfc2Nyb2xsVmlldyBzZXRDb250ZW50U2l6ZTpbX2Nv
bnRlbnRWaWV3IGZyYW1lXS5zaXplXTsKKyAgICBbX3Njcm9sbFZpZXcgc2V0Q29udGVudFNpemU6
cm91bmRTY3JvbGxWaWV3Q29udGVudFNpemUoKl9wYWdlLCBbX2NvbnRlbnRWaWV3IGZyYW1lXS5z
aXplKV07CiAgICAgW19zY3JvbGxWaWV3IHNldE1pbmltdW1ab29tU2NhbGU6bGF5ZXJUcmVlVHJh
bnNhY3Rpb24ubWluaW11bVNjYWxlRmFjdG9yKCldOwogICAgIFtfc2Nyb2xsVmlldyBzZXRNYXhp
bXVtWm9vbVNjYWxlOmxheWVyVHJlZVRyYW5zYWN0aW9uLm1heGltdW1TY2FsZUZhY3RvcigpXTsK
ICAgICBbX3Njcm9sbFZpZXcgc2V0Wm9vbUVuYWJsZWQ6bGF5ZXJUcmVlVHJhbnNhY3Rpb24uYWxs
b3dzVXNlclNjYWxpbmcoKV07CkBAIC05MjgsNiArOTM5LDExIEBAIHN0YXRpYyBXZWJDb3JlOjpG
bG9hdFBvaW50IGNvbnN0cmFpbkNvbnRlbnRPZmZzZXQoV2ViQ29yZTo6RmxvYXRQb2ludCBjb250
ZW50T2ZmCiAgICAgcmV0dXJuICFfY3VzdG9tQ29udGVudFZpZXc7CiB9CiAKKy0gKENHU2l6ZSlz
Y3JvbGxWaWV3OihVSVNjcm9sbFZpZXcqKXNjcm9sbFZpZXcgY29udGVudFNpemVGb3Jab29tU2Nh
bGU6KENHRmxvYXQpc2NhbGUgd2l0aFByb3Bvc2VkU2l6ZTooQ0dTaXplKXByb3Bvc2VkU2l6ZQor
eworICAgIHJldHVybiByb3VuZFNjcm9sbFZpZXdDb250ZW50U2l6ZSgqX3BhZ2UsIHByb3Bvc2Vk
U2l6ZSk7Cit9CisKIC0gKFVJVmlldyAqKXZpZXdGb3Jab29taW5nSW5TY3JvbGxWaWV3OihVSVNj
cm9sbFZpZXcgKilzY3JvbGxWaWV3CiB7CiAgICAgQVNTRVJUKF9zY3JvbGxWaWV3ID09IHNjcm9s
bFZpZXcpOwpAQCAtMTc1Nyw3ICsxNzczLDcgQEAgc3RhdGljIGlubGluZSBXZWJLaXQ6OkZpbmRP
cHRpb25zIHRvRmluZE9wdGlvbnMoX1dLRmluZE9wdGlvbnMgd2tGaW5kT3B0aW9ucykKICAgICAg
ICAgY29udGVudE9mZnNldC55ID0gLV9vYnNjdXJlZEluc2V0cy50b3A7CiAKICAgICAvLyBGSVhN
RTogaWYgd2UgaGF2ZSBjb250ZW50IGNlbnRlcmVkIGFmdGVyIGRvdWJsZSB0YXAgdG8gem9vbSwg
d2Ugc2hvdWxkIGFsc28gdHJ5IHRvIGtlZXAgdGhhdCByZWN0IGluIHZpZXcuCi0gICAgW19zY3Jv
bGxWaWV3IHNldENvbnRlbnRTaXplOmZ1dHVyZUNvbnRlbnRTaXplSW5TZWxmQ29vcmRpbmF0ZXNd
OworICAgIFtfc2Nyb2xsVmlldyBzZXRDb250ZW50U2l6ZTpyb3VuZFNjcm9sbFZpZXdDb250ZW50
U2l6ZSgqX3BhZ2UsIGZ1dHVyZUNvbnRlbnRTaXplSW5TZWxmQ29vcmRpbmF0ZXMpXTsKICAgICBb
X3Njcm9sbFZpZXcgc2V0Q29udGVudE9mZnNldDpjb250ZW50T2Zmc2V0XTsKIAogICAgIENHUmVj
dCB2aXNpYmxlUmVjdEluQ29udGVudENvb3JkaW5hdGVzID0gW3NlbGYgY29udmVydFJlY3Q6bmV3
Qm91bmRzIHRvVmlldzpfY29udGVudFZpZXcuZ2V0KCldOwpAQCAtMTgwOSw3ICsxODI1LDcgQEAg
c3RhdGljIGlubGluZSBXZWJLaXQ6OkZpbmRPcHRpb25zIHRvRmluZE9wdGlvbnMoX1dLRmluZE9w
dGlvbnMgd2tGaW5kT3B0aW9ucykKICAgICAgICAgZG91YmxlIGhvcml6b250YWxTY3JvbGxBZGp1
c3RlbWVudCA9IF9yZXNpemVBbmltYXRpb25UcmFuc2Zvcm1BZGp1c3RtZW50cy5tNDEgKiBhbmlt
YXRpbmdTY2FsZVRhcmdldDsKICAgICAgICAgZG91YmxlIHZlcnRpY2FsU2Nyb2xsQWRqdXN0bWVu
dCA9IF9yZXNpemVBbmltYXRpb25UcmFuc2Zvcm1BZGp1c3RtZW50cy5tNDIgKiBhbmltYXRpbmdT
Y2FsZVRhcmdldDsKIAotICAgICAgICBbX3Njcm9sbFZpZXcgc2V0Q29udGVudFNpemU6W19jb250
ZW50VmlldyBmcmFtZV0uc2l6ZV07CisgICAgICAgIFtfc2Nyb2xsVmlldyBzZXRDb250ZW50U2l6
ZTpyb3VuZFNjcm9sbFZpZXdDb250ZW50U2l6ZSgqX3BhZ2UsIFtfY29udGVudFZpZXcgZnJhbWVd
LnNpemUpXTsKICAgICAgICAgW19zY3JvbGxWaWV3IHNldENvbnRlbnRPZmZzZXQ6Q0dQb2ludE1h
a2UoY3VycmVudFNjcm9sbE9mZnNldC54IC0gaG9yaXpvbnRhbFNjcm9sbEFkanVzdGVtZW50LCBj
dXJyZW50U2Nyb2xsT2Zmc2V0LnkgLSB2ZXJ0aWNhbFNjcm9sbEFkanVzdG1lbnQpXTsKIAogICAg
ICAgICBbX3Jlc2l6ZUFuaW1hdGlvblZpZXcgcmVtb3ZlRnJvbVN1cGVydmlld107Cg==
</data>
<flag name="review"
          id="256901"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>