<?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>132114</bug_id>
          
          <creation_ts>2014-04-24 01:35:02 -0700</creation_ts>
          <short_desc>WebKit2 View Gestures: Use a single struct for the snapshot, and pass it around</short_desc>
          <delta_ts>2014-04-24 14:46:39 -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>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1003581</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-04-24 01:35:02 -0700</bug_when>
    <thetext>So that we can persist a few other interesting properties, for future changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003758</commentid>
    <comment_count>1</comment_count>
      <attachid>230100</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-04-24 13:54:41 -0700</bug_when>
    <thetext>Created attachment 230100
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003774</commentid>
    <comment_count>2</comment_count>
      <attachid>230100</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-04-24 14:19:40 -0700</bug_when>
    <thetext>Comment on attachment 230100
patch

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

&gt; Source/WebKit2/UIProcess/mac/ViewSnapshotStore.mm:89
&gt; +#if USE(IOSURFACE)
&gt; +        if (!snapshot-&gt;value.surface)
&gt; +            continue;
&gt; +#else
&gt; +        if (!snapshot-&gt;value.image)
&gt; +            continue;
&gt; +#endif

Put in a member function on Snapshot?

&gt; Source/WebKit2/UIProcess/mac/ViewSnapshotStore.mm:101
&gt; +#if USE(IOSURFACE)
&gt; +        snapshot-&gt;value.surface = nullptr;
&gt; +#else
&gt; +        snapshot-&gt;value.image = nullptr;
&gt; +#endif

Put in a member function on Snapshot?

&gt; Source/WebKit2/UIProcess/mac/ViewSnapshotStore.mm:122
&gt; +#if USE(IOSURFACE)
&gt; +    snapshot-&gt;value.surface = nullptr;
&gt; +#else
&gt; +    snapshot-&gt;value.image = nullptr;
&gt; +#endif

Call said member function?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003783</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-04-24 14:46:39 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/167775</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230100</attachid>
            <date>2014-04-24 13:54:41 -0700</date>
            <delta_ts>2014-04-24 14:19:39 -0700</delta_ts>
            <desc>patch</desc>
            <filename>snapshot-struct.diff</filename>
            <type>text/plain</type>
            <size>13168</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzZTNjMGI1Li4wNTkzZDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkg
QEAKKzIwMTQtMDQtMjQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgV2ViS2l0MiBWaWV3IEdlc3R1cmVzOiBVc2UgYSBzaW5nbGUgc3RydWN0IGZvciB0
aGUgc25hcHNob3QsIGFuZCBwYXNzIGl0IGFyb3VuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyMTE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSGF2ZSBvbmx5IGEgc2luZ2xlIG1hcCBpbiBWaWV3U25h
cHNob3RTdG9yZSwgZnJvbSBiYWNrLWZvcndhcmQgaXRlbQorICAgICAgICB0byBWaWV3U25hcHNo
b3RTdG9yZTo6U25hcHNob3QsIGFuZCByZXR1cm4gdGhlIFNuYXBzaG90IHN0cnVjdCB3aGVuIGxv
b2tpbmcKKyAgICAgICAgdXAgc25hcHNob3RzICh2aWEgZ2V0U25hcHNob3QoKSksIHNvIHRoYXQg
ZnV0dXJlIHBhdGNoZXMgY2FuIHBlcnNpc3QgYWRkaXRpb25hbAorICAgICAgICBpbmZvcm1hdGlv
biBhbG9uZyB3aXRoIHRoZSBzbmFwc2hvdC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvVmll
d0dlc3R1cmVDb250cm9sbGVySU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNv
bnRyb2xsZXI6OmJlZ2luU3dpcGVHZXN0dXJlKToKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1
cmVDb250cm9sbGVyOjplbmRTd2lwZUdlc3R1cmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMv
Vmlld0dlc3R1cmVDb250cm9sbGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9WaWV3R2Vz
dHVyZUNvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJv
bGxlcjo6cmV0cmlldmVTbmFwc2hvdEZvckl0ZW0pOgorICAgICAgICAoV2ViS2l0OjpWaWV3R2Vz
dHVyZUNvbnRyb2xsZXI6OmJlZ2luU3dpcGVHZXN0dXJlKToKKyAgICAgICAgKFdlYktpdDo6Vmll
d0dlc3R1cmVDb250cm9sbGVyOjplbmRTd2lwZUdlc3R1cmUpOgorICAgICAgICBBZG9wdCBnZXRT
bmFwc2hvdCgpIGluc3RlYWQgb2Ygc25hcHNob3RBbmRSZW5kZXJUcmVlU2l6ZSgpLgorICAgICAg
ICBNb3ZlIHJldHJpZXZlU25hcHNob3RGb3JJdGVtIG91dCBpbnRvIGEgc2VwYXJhdGUgZnVuY3Rp
b24gKGZvciBmdXR1cmUgdXNlKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvVmlld1NuYXBz
aG90U3RvcmUuaDoKKyAgICAgICAgKFdlYktpdDo6Vmlld1NuYXBzaG90U3RvcmU6OmRpc2FibGVT
bmFwc2hvdHRpbmcpOgorICAgICAgICAoV2ViS2l0OjpWaWV3U25hcHNob3RTdG9yZTo6ZW5hYmxl
U25hcHNob3R0aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3Jl
Lm1tOgorICAgICAgICAoV2ViS2l0OjpWaWV3U25hcHNob3RTdG9yZTo6cHJ1bmVTbmFwc2hvdHMp
OgorICAgICAgICAoV2ViS2l0OjpWaWV3U25hcHNob3RTdG9yZTo6cmVjb3JkU25hcHNob3QpOgor
ICAgICAgICAoV2ViS2l0OjpWaWV3U25hcHNob3RTdG9yZTo6Z2V0U25hcHNob3QpOgorICAgICAg
ICAoV2ViS2l0OjpWaWV3U25hcHNob3RTdG9yZTo6c25hcHNob3RBbmRSZW5kZXJUcmVlU2l6ZSk6
IERlbGV0ZWQuCisgICAgICAgIE1ha2UgU25hcHNob3Qgc3RydWN0IHB1YmxpYy4KKyAgICAgICAg
R2V0IHJpZCBvZiB0aGUgc2VwYXJhdGUgbWFwIG9mIGJhY2stZm9yd2FyZCBpdGVtcyB0byByZW5k
ZXIgdHJlZSBzaXplcy4KKyAgICAgICAgV2hlbiBldmljdGluZywgaW5zdGVhZCBvZiByZW1vdmlu
ZyB0aGUgZW50cnksIGNsZWFyIG91dCBpdHMgc25hcHNob3QgaW1hZ2U7CisgICAgICAgIHRoaXMg
d2F5LCB3ZSBjYW4ga2VlcCBvdGhlciBzbmFwc2hvdCBtZXRhZGF0YSBhcm91bmQuCisKIDIwMTQt
MDQtMjQgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAg
ICBGb250Q2FjaGU6OmZvbnRDYWNoZSgpIG5ldmVyIHJldHVybnMgbnVsbHB0ciBzbyBpdCBjYW4g
YmUgbWFkZSB0byByZXR1cm4gYSByZWZlcmVuY2UgaW5zdGVhZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJJT1MubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29udHJvbGxlcklPUy5tbQppbmRl
eCBjMzJmOWZhLi4zNGJiYzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1ZpZXdHZXN0dXJlQ29udHJvbGxlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29udHJvbGxlcklPUy5tbQpAQCAtMTUxLDE4ICsxNTEsMTgg
QEAgdm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmJlZ2luU3dpcGVHZXN0dXJlKF9VSU5hdmln
YXRpb25JbnRlcmFjdGl2ZVRyYW5zaXRpb24KIAogICAgIFdlYktpdDo6V2ViQmFja0ZvcndhcmRM
aXN0SXRlbSogdGFyZ2V0SXRlbSA9IGRpcmVjdGlvbiA9PSBTd2lwZURpcmVjdGlvbjo6TGVmdCA/
IG1fd2ViUGFnZVByb3h5LmJhY2tGb3J3YXJkTGlzdCgpLmJhY2tJdGVtKCkgOiBtX3dlYlBhZ2VQ
cm94eS5iYWNrRm9yd2FyZExpc3QoKS5mb3J3YXJkSXRlbSgpOwogCi0gICAgYXV0byBzbmFwc2hv
dCA9IFdlYktpdDo6Vmlld1NuYXBzaG90U3RvcmU6OnNoYXJlZCgpLnNuYXBzaG90QW5kUmVuZGVy
VHJlZVNpemUodGFyZ2V0SXRlbSkuZmlyc3Q7Ci0KICAgICBSZXRhaW5QdHI8VUlWaWV3Q29udHJv
bGxlcj4gc25hcHNob3RWaWV3Q29udHJvbGxlciA9IGFkb3B0TlMoW1tVSVZpZXdDb250cm9sbGVy
IGFsbG9jXSBpbml0XSk7CiAgICAgbV9zbmFwc2hvdFZpZXcgPSBhZG9wdE5TKFtbVUlWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOlttX2xpdmVTd2lwZVZpZXcgZnJhbWVdXSk7Ci0gICAgaWYgKHNu
YXBzaG90KSB7CisKKyAgICBWaWV3U25hcHNob3RTdG9yZTo6U25hcHNob3Qgc25hcHNob3Q7Cisg
ICAgaWYgKFZpZXdTbmFwc2hvdFN0b3JlOjpzaGFyZWQoKS5nZXRTbmFwc2hvdCh0YXJnZXRJdGVt
LCBzbmFwc2hvdCkpIHsKICNpZiBVU0UoSU9TVVJGQUNFKQotICAgICAgICBpZiAoc25hcHNob3Qt
PnNldElzVm9sYXRpbGUoZmFsc2UpID09IElPU3VyZmFjZTo6U3VyZmFjZVN0YXRlOjpWYWxpZCkg
ewotICAgICAgICAgICAgW21fc25hcHNob3RWaWV3IGxheWVyXS5jb250ZW50cyA9IChpZClzbmFw
c2hvdC0+c3VyZmFjZSgpOworICAgICAgICBpZiAoc25hcHNob3Quc3VyZmFjZS0+c2V0SXNWb2xh
dGlsZShmYWxzZSkgPT0gSU9TdXJmYWNlOjpTdXJmYWNlU3RhdGU6OlZhbGlkKSB7CisgICAgICAg
ICAgICBbbV9zbmFwc2hvdFZpZXcgbGF5ZXJdLmNvbnRlbnRzID0gKGlkKXNuYXBzaG90LnN1cmZh
Y2UtPnN1cmZhY2UoKTsKICAgICAgICAgICAgIG1fY3VycmVudFN3aXBlU25hcHNob3RTdXJmYWNl
ID0gc25hcHNob3Q7CiAgICAgICAgIH0KICNlbHNlCi0gICAgICAgIFttX3NuYXBzaG90VmlldyBs
YXllcl0uY29udGVudHMgPSAoaWQpc25hcHNob3QuZ2V0KCk7CisgICAgICAgIFttX3NuYXBzaG90
VmlldyBsYXllcl0uY29udGVudHMgPSAoaWQpc25hcHNob3QuaW1hZ2UuZ2V0KCk7CiAjZW5kaWYK
ICAgICB9CiAgICAgW21fc25hcHNob3RWaWV3IHNldEJhY2tncm91bmRDb2xvcjpbVUlDb2xvciB3
aGl0ZUNvbG9yXV07CkBAIC0yMjMsOSArMjIzLDEyIEBAIHZvaWQgVmlld0dlc3R1cmVDb250cm9s
bGVyOjplbmRTd2lwZUdlc3R1cmUoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogdGFyZ2V0SXRlbSwK
ICAgICAgICAgcmVtb3ZlU3dpcGVTbmFwc2hvdCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQot
ICAgIAotICAgIG1fdGFyZ2V0UmVuZGVyVHJlZVNpemUgPSBWaWV3U25hcHNob3RTdG9yZTo6c2hh
cmVkKCkuc25hcHNob3RBbmRSZW5kZXJUcmVlU2l6ZSh0YXJnZXRJdGVtKS5zZWNvbmQgKiBzd2lw
ZVNuYXBzaG90UmVtb3ZhbFJlbmRlclRyZWVTaXplVGFyZ2V0RnJhY3Rpb247Ci0gICAgCisKKyAg
ICBWaWV3U25hcHNob3RTdG9yZTo6U25hcHNob3Qgc25hcHNob3Q7CisgICAgbV90YXJnZXRSZW5k
ZXJUcmVlU2l6ZSA9IDA7CisgICAgaWYgKFZpZXdTbmFwc2hvdFN0b3JlOjpzaGFyZWQoKS5nZXRT
bmFwc2hvdCh0YXJnZXRJdGVtLCBzbmFwc2hvdCkpCisgICAgICAgIG1fdGFyZ2V0UmVuZGVyVHJl
ZVNpemUgPSBzbmFwc2hvdC5yZW5kZXJUcmVlU2l6ZSAqIHN3aXBlU25hcHNob3RSZW1vdmFsUmVu
ZGVyVHJlZVNpemVUYXJnZXRGcmFjdGlvbjsKKwogICAgIC8vIFdlIGRvbid0IHdhbnQgdG8gcmVw
bGFjZSB0aGUgY3VycmVudCBiYWNrLWZvcndhcmQgaXRlbSdzIHNuYXBzaG90CiAgICAgLy8gbGlr
ZSB3ZSBub3JtYWxseSB3b3VsZCB3aGVuIGdvaW5nIGJhY2sgb3IgZm9yd2FyZCwgYmVjYXVzZSB3
ZSBhcmUKICAgICAvLyBkaXNwbGF5aW5nIHRoZSBkZXN0aW5hdGlvbiBpdGVtJ3Mgc25hcHNob3Qu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29u
dHJvbGxlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRy
b2xsZXIuaAppbmRleCAzNzdjZjAzLi45MTFhMzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyLmgKQEAgLTEzMCw2ICsxMzAs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgZW5kU3dpcGVHZXN0dXJlKFdlYkJhY2tGb3J3YXJkTGlz
dEl0ZW0qIHRhcmdldEl0ZW0sIGJvb2wgY2FuY2VsbGVkKTsKICAgICBib29sIGRlbHRhSXNTdWZm
aWNpZW50VG9CZWdpblN3aXBlKE5TRXZlbnQgKik7CiAgICAgYm9vbCBzY3JvbGxFdmVudENhbkJl
Y29tZVN3aXBlKE5TRXZlbnQgKiwgU3dpcGVEaXJlY3Rpb24mKTsKKyAgICBXZWJDb3JlOjpJT1N1
cmZhY2UqIHJldHJpZXZlU25hcHNob3RGb3JJdGVtKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qKTsK
ICNlbmRpZgogICAgIAogICAgIFdlYlBhZ2VQcm94eSYgbV93ZWJQYWdlUHJveHk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1h
Yy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVy
TWFjLm1tCmluZGV4IGUwNWYxMGIuLmJkZmZhZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyTWFjLm1tCkBAIC00MjYs
NiArNDI2LDIxIEBAIHN0YXRpYyBDQUxheWVyICpsZWFzdENvbW1vbkFuY2VzdG9yTGF5ZXIoVmVj
dG9yPFJldGFpblB0cjxDQUxheWVyPj4mIGxheWVycykKICAgICByZXR1cm4gbGl2ZUxheWVyUGF0
aHNGcm9tUm9vdFswXVtzaG9ydGVzdFBhdGhMZW5ndGhdOwogfQogCitJT1N1cmZhY2UqIFZpZXdH
ZXN0dXJlQ29udHJvbGxlcjo6cmV0cmlldmVTbmFwc2hvdEZvckl0ZW0oV2ViQmFja0ZvcndhcmRM
aXN0SXRlbSogdGFyZ2V0SXRlbSkKK3sKKyAgICBWaWV3U25hcHNob3RTdG9yZTo6U25hcHNob3Qg
c25hcHNob3Q7CisgICAgaWYgKCFWaWV3U25hcHNob3RTdG9yZTo6c2hhcmVkKCkuZ2V0U25hcHNo
b3QodGFyZ2V0SXRlbSwgc25hcHNob3QpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAg
IGlmICghc25hcHNob3Quc3VyZmFjZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBp
ZiAoc25hcHNob3Quc3VyZmFjZS0+c2V0SXNWb2xhdGlsZShmYWxzZSkgIT0gSU9TdXJmYWNlOjpT
dXJmYWNlU3RhdGU6OlZhbGlkKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVy
biBzbmFwc2hvdC5zdXJmYWNlLmdldCgpOworfQorCiB2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxl
cjo6YmVnaW5Td2lwZUdlc3R1cmUoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogdGFyZ2V0SXRlbSwg
U3dpcGVEaXJlY3Rpb24gZGlyZWN0aW9uKQogewogICAgIEFTU0VSVChtX2N1cnJlbnRTd2lwZUxp
dmVMYXllcnMuaXNFbXB0eSgpKTsKQEAgLTQzNyw5ICs0NTIsOSBAQCB2b2lkIFZpZXdHZXN0dXJl
Q29udHJvbGxlcjo6YmVnaW5Td2lwZUdlc3R1cmUoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogdGFy
Z2V0SXRlbQogICAgIG1fc3dpcGVTbmFwc2hvdExheWVyID0gYWRvcHROUyhbW0NBTGF5ZXIgYWxs
b2NdIGluaXRdKTsKICAgICBbbV9zd2lwZVNuYXBzaG90TGF5ZXIgc2V0QmFja2dyb3VuZENvbG9y
OkNHQ29sb3JHZXRDb25zdGFudENvbG9yKGtDR0NvbG9yV2hpdGUpXTsKIAotICAgIFJlZlB0cjxJ
T1N1cmZhY2U+IHNuYXBzaG90ID0gVmlld1NuYXBzaG90U3RvcmU6OnNoYXJlZCgpLnNuYXBzaG90
QW5kUmVuZGVyVHJlZVNpemUodGFyZ2V0SXRlbSkuZmlyc3Q7CisgICAgSU9TdXJmYWNlKiBzbmFw
c2hvdCA9IHJldHJpZXZlU25hcHNob3RGb3JJdGVtKHRhcmdldEl0ZW0pOwogCi0gICAgaWYgKHNu
YXBzaG90ICYmIHNuYXBzaG90LT5zZXRJc1ZvbGF0aWxlKGZhbHNlKSA9PSBJT1N1cmZhY2U6OlN1
cmZhY2VTdGF0ZTo6VmFsaWQpIHsKKyAgICBpZiAoc25hcHNob3QpIHsKICAgICAgICAgbV9jdXJy
ZW50U3dpcGVTbmFwc2hvdFN1cmZhY2UgPSBzbmFwc2hvdDsKICAgICAgICAgW21fc3dpcGVTbmFw
c2hvdExheWVyIHNldENvbnRlbnRzOihpZClzbmFwc2hvdC0+c3VyZmFjZSgpXTsKICAgICB9CkBA
IC01NTcsNyArNTcyLDExIEBAIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjplbmRTd2lwZUdl
c3R1cmUoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogdGFyZ2V0SXRlbSwKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIHVpbnQ2NF90IHJlbmRlclRyZWVTaXplID0gVmlld1NuYXBzaG90U3Rv
cmU6OnNoYXJlZCgpLnNuYXBzaG90QW5kUmVuZGVyVHJlZVNpemUodGFyZ2V0SXRlbSkuc2Vjb25k
OworICAgIFZpZXdTbmFwc2hvdFN0b3JlOjpTbmFwc2hvdCBzbmFwc2hvdDsKKyAgICB1aW50NjRf
dCByZW5kZXJUcmVlU2l6ZSA9IDA7CisgICAgaWYgKFZpZXdTbmFwc2hvdFN0b3JlOjpzaGFyZWQo
KS5nZXRTbmFwc2hvdCh0YXJnZXRJdGVtLCBzbmFwc2hvdCkpCisgICAgICAgIHJlbmRlclRyZWVT
aXplID0gc25hcHNob3QucmVuZGVyVHJlZVNpemU7CisKICAgICBtX3dlYlBhZ2VQcm94eS5wcm9j
ZXNzKCkuc2VuZChNZXNzYWdlczo6Vmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvcjo6U2V0UmVu
ZGVyVHJlZVNpemVOb3RpZmljYXRpb25UaHJlc2hvbGQocmVuZGVyVHJlZVNpemUgKiBzd2lwZVNu
YXBzaG90UmVtb3ZhbFJlbmRlclRyZWVTaXplVGFyZ2V0RnJhY3Rpb24pLCBtX3dlYlBhZ2VQcm94
eS5wYWdlSUQoKSk7CiAKICAgICAvLyBXZSBkb24ndCB3YW50IHRvIHJlcGxhY2UgdGhlIGN1cnJl
bnQgYmFjay1mb3J3YXJkIGl0ZW0ncyBzbmFwc2hvdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5oCmluZGV4IDJmMGVjMTcuLjZkNTkxMjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLmgK
QEAgLTQ2LDE5ICs0Niw2IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBWaWV3U25hcHNob3RTdG9y
ZSYgc2hhcmVkKCk7CiAKLSAgICB2b2lkIHJlY29yZFNuYXBzaG90KFdlYlBhZ2VQcm94eSYpOwot
I2lmIFVTRShJT1NVUkZBQ0UpCi0gICAgc3RkOjpwYWlyPFJlZlB0cjxXZWJDb3JlOjpJT1N1cmZh
Y2U+LCB1aW50NjRfdD4gc25hcHNob3RBbmRSZW5kZXJUcmVlU2l6ZShXZWJCYWNrRm9yd2FyZExp
c3RJdGVtKik7Ci0jZWxzZQotICAgIHN0ZDo6cGFpcjxSZXRhaW5QdHI8Q0dJbWFnZVJlZj4sIHVp
bnQ2NF90PiBzbmFwc2hvdEFuZFJlbmRlclRyZWVTaXplKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0q
KTsKLSNlbmRpZgotCi0gICAgdm9pZCBkaXNhYmxlU25hcHNob3R0aW5nKCkgeyBtX2VuYWJsZWQg
PSBmYWxzZTsgfQotICAgIHZvaWQgZW5hYmxlU25hcHNob3R0aW5nKCkgeyBtX2VuYWJsZWQgPSB0
cnVlOyB9Ci0KLXByaXZhdGU6Ci0gICAgdm9pZCBwcnVuZVNuYXBzaG90cyhXZWJQYWdlUHJveHkm
KTsKLQogICAgIHN0cnVjdCBTbmFwc2hvdCB7CiAjaWYgVVNFKElPU1VSRkFDRSkKICAgICAgICAg
UmVmUHRyPFdlYkNvcmU6OklPU3VyZmFjZT4gc3VyZmFjZTsKQEAgLTY3LDEwICs1NCwxOSBAQCBw
cml2YXRlOgogI2VuZGlmCiAKICAgICAgICAgc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6dGlt
ZV9wb2ludCBjcmVhdGlvblRpbWU7CisgICAgICAgIHVpbnQ2NF90IHJlbmRlclRyZWVTaXplOwog
ICAgIH07CiAKKyAgICB2b2lkIHJlY29yZFNuYXBzaG90KFdlYlBhZ2VQcm94eSYpOworICAgIGJv
b2wgZ2V0U25hcHNob3QoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSosIFNuYXBzaG90Jik7CisKKyAg
ICB2b2lkIGRpc2FibGVTbmFwc2hvdHRpbmcoKSB7IG1fZW5hYmxlZCA9IGZhbHNlOyB9CisgICAg
dm9pZCBlbmFibGVTbmFwc2hvdHRpbmcoKSB7IG1fZW5hYmxlZCA9IHRydWU7IH0KKworcHJpdmF0
ZToKKyAgICB2b2lkIHBydW5lU25hcHNob3RzKFdlYlBhZ2VQcm94eSYpOworCiAgICAgSGFzaE1h
cDxTdHJpbmcsIFNuYXBzaG90PiBtX3NuYXBzaG90TWFwOwotICAgIEhhc2hNYXA8U3RyaW5nLCB1
aW50NjRfdD4gbV9yZW5kZXJUcmVlU2l6ZU1hcDsKIAogICAgIGJvb2wgbV9lbmFibGVkOwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3Rv
cmUubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLm1t
CmluZGV4IGUwZDkyMTguLmM2ODhiODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5tbQpAQCAtNzIsMTQgKzcyLDMzIEBAIHZvaWQgVmll
d1NuYXBzaG90U3RvcmU6OnBydW5lU25hcHNob3RzKFdlYlBhZ2VQcm94eSYgd2ViUGFnZVByb3h5
KQogCiAgICAgICAgIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGl0ZW0gPSBiYWNrRm9yd2FyZEVu
dHJpZXNbaV0uZ2V0KCk7CiAgICAgICAgIFN0cmluZyBzbmFwc2hvdFVVSUQgPSBpdGVtLT5zbmFw
c2hvdFVVSUQoKTsKLSAgICAgICAgaWYgKCFzbmFwc2hvdFVVSUQuaXNFbXB0eSgpICYmIG1fc25h
cHNob3RNYXAuY29udGFpbnMoc25hcHNob3RVVUlEKSkgewotICAgICAgICAgICAgbW9zdERpc3Rh
bnRTbmFwc2hvdHRlZEl0ZW0gPSBpdGVtOwotICAgICAgICAgICAgbWF4RGlzdGFuY2UgPSBkaXN0
YW5jZTsKLSAgICAgICAgfQorICAgICAgICBpZiAoc25hcHNob3RVVUlELmlzRW1wdHkoKSkKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGNvbnN0IGF1dG8mIHNuYXBzaG90ID0gbV9z
bmFwc2hvdE1hcC5maW5kKG1vc3REaXN0YW50U25hcHNob3R0ZWRJdGVtLT5zbmFwc2hvdFVVSUQo
KSk7CisgICAgICAgIGlmIChzbmFwc2hvdCA9PSBtX3NuYXBzaG90TWFwLmVuZCgpKQorICAgICAg
ICAgICAgY29udGludWU7CisKKyAgICAgICAgLy8gV2UncmUgb25seSBpbnRlcmVzdGVkIGluIGV2
aWN0aW5nIHNuYXBzaG90cyB0aGF0IHN0aWxsIGhhdmUgaW1hZ2VzLgorI2lmIFVTRShJT1NVUkZB
Q0UpCisgICAgICAgIGlmICghc25hcHNob3QtPnZhbHVlLnN1cmZhY2UpCisgICAgICAgICAgICBj
b250aW51ZTsKKyNlbHNlCisgICAgICAgIGlmICghc25hcHNob3QtPnZhbHVlLmltYWdlKQorICAg
ICAgICAgICAgY29udGludWU7CisjZW5kaWYKKworICAgICAgICBtb3N0RGlzdGFudFNuYXBzaG90
dGVkSXRlbSA9IGl0ZW07CisgICAgICAgIG1heERpc3RhbmNlID0gZGlzdGFuY2U7CiAgICAgfQog
CiAgICAgaWYgKG1vc3REaXN0YW50U25hcHNob3R0ZWRJdGVtKSB7Ci0gICAgICAgIG1fc25hcHNo
b3RNYXAucmVtb3ZlKG1vc3REaXN0YW50U25hcHNob3R0ZWRJdGVtLT5zbmFwc2hvdFVVSUQoKSk7
CisgICAgICAgIGNvbnN0IGF1dG8mIHNuYXBzaG90ID0gbV9zbmFwc2hvdE1hcC5maW5kKG1vc3RE
aXN0YW50U25hcHNob3R0ZWRJdGVtLT5zbmFwc2hvdFVVSUQoKSk7CisjaWYgVVNFKElPU1VSRkFD
RSkKKyAgICAgICAgc25hcHNob3QtPnZhbHVlLnN1cmZhY2UgPSBudWxscHRyOworI2Vsc2UKKyAg
ICAgICAgc25hcHNob3QtPnZhbHVlLmltYWdlID0gbnVsbHB0cjsKKyNlbmRpZgogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCkBAIC05NSw3ICsxMTQsMTIgQEAgdm9pZCBWaWV3U25hcHNob3RTdG9y
ZTo6cHJ1bmVTbmFwc2hvdHMoV2ViUGFnZVByb3h5JiB3ZWJQYWdlUHJveHkpCiAgICAgICAgIH0K
ICAgICB9CiAKLSAgICBtX3NuYXBzaG90TWFwLnJlbW92ZShvbGRlc3RTbmFwc2hvdFVVSUQpOwor
ICAgIGNvbnN0IGF1dG8mIHNuYXBzaG90ID0gbV9zbmFwc2hvdE1hcC5maW5kKG9sZGVzdFNuYXBz
aG90VVVJRCk7CisjaWYgVVNFKElPU1VSRkFDRSkKKyAgICBzbmFwc2hvdC0+dmFsdWUuc3VyZmFj
ZSA9IG51bGxwdHI7CisjZWxzZQorICAgIHNuYXBzaG90LT52YWx1ZS5pbWFnZSA9IG51bGxwdHI7
CisjZW5kaWYKIH0KIAogI2lmIFVTRShJT1NVUkZBQ0UpCkBAIC0xMzAsMTUgKzE1NCwxNCBAQCB2
b2lkIFZpZXdTbmFwc2hvdFN0b3JlOjpyZWNvcmRTbmFwc2hvdChXZWJQYWdlUHJveHkmIHdlYlBh
Z2VQcm94eSkKICAgICBwcnVuZVNuYXBzaG90cyh3ZWJQYWdlUHJveHkpOwogCiAgICAgU3RyaW5n
IG9sZFNuYXBzaG90VVVJRCA9IGl0ZW0tPnNuYXBzaG90VVVJRCgpOwotICAgIGlmICghb2xkU25h
cHNob3RVVUlELmlzRW1wdHkoKSkgeworICAgIGlmICghb2xkU25hcHNob3RVVUlELmlzRW1wdHko
KSkKICAgICAgICAgbV9zbmFwc2hvdE1hcC5yZW1vdmUob2xkU25hcHNob3RVVUlEKTsKLSAgICAg
ICAgbV9yZW5kZXJUcmVlU2l6ZU1hcC5yZW1vdmUob2xkU25hcHNob3RVVUlEKTsKLSAgICB9CiAK
ICAgICBpdGVtLT5zZXRTbmFwc2hvdFVVSUQoY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpKTsK
ICAgICAKICAgICBTbmFwc2hvdCBzbmFwc2hvdDsKICAgICBzbmFwc2hvdC5jcmVhdGlvblRpbWUg
PSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKTsKKyAgICBzbmFwc2hvdC5yZW5kZXJU
cmVlU2l6ZSA9IHdlYlBhZ2VQcm94eS5yZW5kZXJUcmVlU2l6ZSgpOwogCiAjaWYgVVNFKElPU1VS
RkFDRSkKICAgICBzbmFwc2hvdC5zdXJmYWNlID0gY3JlYXRlSU9TdXJmYWNlRnJvbUltYWdlKHNu
YXBzaG90SW1hZ2UuZ2V0KCkpOwpAQCAtMTQ4LDMyICsxNzEsMTggQEAgdm9pZCBWaWV3U25hcHNo
b3RTdG9yZTo6cmVjb3JkU25hcHNob3QoV2ViUGFnZVByb3h5JiB3ZWJQYWdlUHJveHkpCiAjZW5k
aWYKIAogICAgIG1fc25hcHNob3RNYXAuYWRkKGl0ZW0tPnNuYXBzaG90VVVJRCgpLCBzbmFwc2hv
dCk7Ci0gICAgbV9yZW5kZXJUcmVlU2l6ZU1hcC5hZGQoaXRlbS0+c25hcHNob3RVVUlEKCksIHdl
YlBhZ2VQcm94eS5yZW5kZXJUcmVlU2l6ZSgpKTsKIH0KIAotI2lmIFVTRShJT1NVUkZBQ0UpCi1z
dGQ6OnBhaXI8UmVmUHRyPElPU3VyZmFjZT4sIHVpbnQ2NF90PiBWaWV3U25hcHNob3RTdG9yZTo6
c25hcHNob3RBbmRSZW5kZXJUcmVlU2l6ZShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBpdGVtKQot
I2Vsc2UKLXN0ZDo6cGFpcjxSZXRhaW5QdHI8Q0dJbWFnZVJlZj4sIHVpbnQ2NF90PiBWaWV3U25h
cHNob3RTdG9yZTo6c25hcHNob3RBbmRSZW5kZXJUcmVlU2l6ZShXZWJCYWNrRm9yd2FyZExpc3RJ
dGVtKiBpdGVtKQotI2VuZGlmCitib29sIFZpZXdTbmFwc2hvdFN0b3JlOjpnZXRTbmFwc2hvdChX
ZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBpdGVtLCBWaWV3U25hcHNob3RTdG9yZTo6U25hcHNob3Qm
IHNuYXBzaG90KQogewogICAgIGlmIChpdGVtLT5zbmFwc2hvdFVVSUQoKS5pc0VtcHR5KCkpCi0g
ICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihudWxscHRyLCAwKTsKKyAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0gICAgY29uc3QgYXV0byYgcmVuZGVyVHJlZVNpemUgPSBtX3JlbmRlclRyZWVT
aXplTWFwLmZpbmQoaXRlbS0+c25hcHNob3RVVUlEKCkpOwotICAgIGlmIChyZW5kZXJUcmVlU2l6
ZSA9PSBtX3JlbmRlclRyZWVTaXplTWFwLmVuZCgpKQotICAgICAgICByZXR1cm4gc3RkOjptYWtl
X3BhaXIobnVsbHB0ciwgMCk7Ci0KLSAgICBjb25zdCBhdXRvJiBzbmFwc2hvdCA9IG1fc25hcHNo
b3RNYXAuZmluZChpdGVtLT5zbmFwc2hvdFVVSUQoKSk7Ci0KLSAgICBpZiAoc25hcHNob3QgPT0g
bV9zbmFwc2hvdE1hcC5lbmQoKSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKG51bGxw
dHIsIHJlbmRlclRyZWVTaXplLT52YWx1ZSk7Ci0gICAgCi0jaWYgVVNFKElPU1VSRkFDRSkKLSAg
ICByZXR1cm4gc3RkOjptYWtlX3BhaXIoc25hcHNob3QtPnZhbHVlLnN1cmZhY2UsIHJlbmRlclRy
ZWVTaXplLT52YWx1ZSk7Ci0jZWxzZQotICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihzbmFwc2hv
dC0+dmFsdWUuaW1hZ2UsIHJlbmRlclRyZWVTaXplLT52YWx1ZSk7Ci0jZW5kaWYKKyAgICBjb25z
dCBhdXRvJiBzbmFwc2hvdEl0ZXJhdG9yID0gbV9zbmFwc2hvdE1hcC5maW5kKGl0ZW0tPnNuYXBz
aG90VVVJRCgpKTsKKyAgICBpZiAoc25hcHNob3RJdGVyYXRvciA9PSBtX3NuYXBzaG90TWFwLmVu
ZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgc25hcHNob3QgPSBzbmFwc2hvdEl0ZXJh
dG9yLT52YWx1ZTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
Cg==
</data>
<flag name="review"
          id="254480"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>