<?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>35874</bug_id>
          
          <creation_ts>2010-03-08 11:33:38 -0800</creation_ts>
          <short_desc>[Chromium] Adding touch event routing</short_desc>
          <delta_ts>2010-05-12 06:53:48 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>All</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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>37634</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Garret Kelly">gdk</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>benm</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fishd</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>197255</commentid>
    <comment_count>0</comment_count>
    <who name="Garret Kelly">gdk</who>
    <bug_when>2010-03-08 11:33:38 -0800</bug_when>
    <thetext>WebKit-side support for routing WebTouchEvents into the event handler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197256</commentid>
    <comment_count>1</comment_count>
      <attachid>50240</attachid>
    <who name="Garret Kelly">gdk</who>
    <bug_when>2010-03-08 11:38:42 -0800</bug_when>
    <thetext>Created attachment 50240
Initial patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197277</commentid>
    <comment_count>2</comment_count>
      <attachid>50240</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-03-08 13:01:58 -0800</bug_when>
    <thetext>Comment on attachment 50240
Initial patch

&gt; +++ b/WebKit/chromium/src/ChromeClientImpl.h
...
&gt; +#if ENABLE(TOUCH_EVENTS)
&gt; +    virtual void needTouchEvents(bool needTouchEvents) { }
&gt; +#endif

^^^ is there more to be done here?  should there be a FIXME comment?


&gt; +++ b/WebKit/chromium/src/WebViewImpl.cpp
&gt; @@ -609,6 +609,22 @@ bool WebViewImpl::charEvent(const WebKeyboardEvent&amp; event)
&gt;      return true;
&gt;  }
&gt;  
&gt; +#if ENABLE(TOUCH_EVENTS)
&gt; +bool WebViewImpl::touchEvent(const WebTouchEvent&amp; event)
&gt; +{
&gt; +    Frame* focusedFrame = focusedWebCoreFrame();
&gt; +    if (!focusedFrame)
&gt; +        return false;
&gt; +
&gt; +    EventHandler* eventHandler = focusedFrame-&gt;eventHandler();
&gt; +    if (!eventHandler)
&gt; +        return false;
&gt; +
&gt; +    PlatformTouchEventBuilder touchEventBuilder(mainFrameImpl()-&gt;frameView(), event);
&gt; +    return eventHandler-&gt;handleTouchEvent(touchEventBuilder);
&gt; +}

Are you sure that calling handleTouchEvent on the focused frame is correct?
For mouseDown, etc., we use the EventHandler of the main frame.

It looks like an EventHandler for a subframe will still perform a hit test
on the topmost frame if the subframe does not contain the point, so it may
not matter what EventHandler you use.  I was just wondering why you chose
the EventHandler of the focused frame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197321</commentid>
    <comment_count>3</comment_count>
    <who name="Garret Kelly">gdk</who>
    <bug_when>2010-03-08 14:32:16 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 50240 [details])
&gt; &gt; +++ b/WebKit/chromium/src/ChromeClientImpl.h
&gt; ...
&gt; &gt; +#if ENABLE(TOUCH_EVENTS)
&gt; &gt; +    virtual void needTouchEvents(bool needTouchEvents) { }
&gt; &gt; +#endif
&gt; 
&gt; ^^^ is there more to be done here?  should there be a FIXME comment?

Quite right. FIXME added.
 
&gt; &gt; +++ b/WebKit/chromium/src/WebViewImpl.cpp
&gt; &gt; @@ -609,6 +609,22 @@ bool WebViewImpl::charEvent(const WebKeyboardEvent&amp; event)
&gt; &gt;      return true;
&gt; &gt;  }
&gt; &gt;  
&gt; &gt; +#if ENABLE(TOUCH_EVENTS)
&gt; &gt; +bool WebViewImpl::touchEvent(const WebTouchEvent&amp; event)
&gt; &gt; +{
&gt; &gt; +    Frame* focusedFrame = focusedWebCoreFrame();
&gt; &gt; +    if (!focusedFrame)
&gt; &gt; +        return false;
&gt; &gt; +
&gt; &gt; +    EventHandler* eventHandler = focusedFrame-&gt;eventHandler();
&gt; &gt; +    if (!eventHandler)
&gt; &gt; +        return false;
&gt; &gt; +
&gt; &gt; +    PlatformTouchEventBuilder touchEventBuilder(mainFrameImpl()-&gt;frameView(), event);
&gt; &gt; +    return eventHandler-&gt;handleTouchEvent(touchEventBuilder);
&gt; &gt; +}
&gt; 
&gt; Are you sure that calling handleTouchEvent on the focused frame is correct?
&gt; For mouseDown, etc., we use the EventHandler of the main frame.
&gt; 
&gt; It looks like an EventHandler for a subframe will still perform a hit test
&gt; on the topmost frame if the subframe does not contain the point, so it may
&gt; not matter what EventHandler you use.  I was just wondering why you chose
&gt; the EventHandler of the focused frame.

Your right, the hit test shouldn&apos;t start in the focused frame but in the topmost. Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197322</commentid>
    <comment_count>4</comment_count>
      <attachid>50247</attachid>
    <who name="Garret Kelly">gdk</who>
    <bug_when>2010-03-08 14:32:47 -0800</bug_when>
    <thetext>Created attachment 50247
First-round review changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197339</commentid>
    <comment_count>5</comment_count>
      <attachid>50247</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-03-08 15:18:24 -0800</bug_when>
    <thetext>Comment on attachment 50247
First-round review changes

&gt; +++ b/WebKit/chromium/src/WebViewImpl.cpp
...
&gt; +#if ENABLE(TOUCH_EVENTS)
&gt; +bool WebViewImpl::touchEvent(const WebTouchEvent&amp; event)
&gt; +{
&gt; +    if (!mainFrameImpl() || !mainFrameImpl()-&gt;frameView())
&gt; +        return false;
&gt; +
&gt; +    PlatformTouchEventBuilder touchEventBuilder(
&gt; +        mainFrameImpl()-&gt;frameView(), event);
&gt; +
&gt; +    EventHandler* eventHandler = mainFrameImpl()-&gt;frame()-&gt;eventHandler();
&gt; +    return eventHandler-&gt;handleTouchEvent(touchEventBuilder);

nit: it is more common in webkit code to just write this w/o the temporary:

  return mainFrameImpl()-&gt;frame()-&gt;eventHandler()-&gt;handleTouchEvent(touchEventBuilder);

it is OK that lines exceed 80 chars ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197372</commentid>
    <comment_count>6</comment_count>
    <who name="Garret Kelly">gdk</who>
    <bug_when>2010-03-08 15:46:04 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 50247 [details])
&gt; &gt; +++ b/WebKit/chromium/src/WebViewImpl.cpp
&gt; ...
&gt; &gt; +#if ENABLE(TOUCH_EVENTS)
&gt; &gt; +bool WebViewImpl::touchEvent(const WebTouchEvent&amp; event)
&gt; &gt; +{
&gt; &gt; +    if (!mainFrameImpl() || !mainFrameImpl()-&gt;frameView())
&gt; &gt; +        return false;
&gt; &gt; +
&gt; &gt; +    PlatformTouchEventBuilder touchEventBuilder(
&gt; &gt; +        mainFrameImpl()-&gt;frameView(), event);
&gt; &gt; +
&gt; &gt; +    EventHandler* eventHandler = mainFrameImpl()-&gt;frame()-&gt;eventHandler();
&gt; &gt; +    return eventHandler-&gt;handleTouchEvent(touchEventBuilder);
&gt; 
&gt; nit: it is more common in webkit code to just write this w/o the temporary:
&gt; 
&gt;   return
&gt; mainFrameImpl()-&gt;frame()-&gt;eventHandler()-&gt;handleTouchEvent(touchEventBuilder);
&gt; 
&gt; it is OK that lines exceed 80 chars ;-)

Ah, my mistake. Force of habit. ;) Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197373</commentid>
    <comment_count>7</comment_count>
      <attachid>50262</attachid>
    <who name="Garret Kelly">gdk</who>
    <bug_when>2010-03-08 15:46:39 -0800</bug_when>
    <thetext>Created attachment 50262
Second-round review fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198306</commentid>
    <comment_count>8</comment_count>
      <attachid>50262</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-03-10 13:34:39 -0800</bug_when>
    <thetext>Comment on attachment 50262
Second-round review fixes

Clearing flags on attachment: 50262

Committed r55800: &lt;http://trac.webkit.org/changeset/55800&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198308</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-03-10 13:34:43 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50240</attachid>
            <date>2010-03-08 11:38:42 -0800</date>
            <delta_ts>2010-03-08 14:32:47 -0800</delta_ts>
            <desc>Initial patch</desc>
            <filename>upstream-touch-event-routing.patch</filename>
            <type>text/plain</type>
            <size>5025</size>
            <attacher name="Garret Kelly">gdk</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YzJiN2JmNS4uYjU1OTRlYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wMy0wOCAgR2FycmV0IEtlbGx5
ICA8Z2RrQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRpbmcgYWxsIG9mIHRoZSB0b3VjaC1yZWxhdGVkIHNvdXJjZXMgaW50
byBDaHJvbWl1bSdzIFdlYkNvcmUgYnVpbGQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zNTg3NAorCisgICAgICAgIFBhdGNoIHRlc3RlZCBhZ2FpbnN0
IHRoZSB0cnkgYm90cywgYnV0IHRoZSBmZWF0dXJlIGlzIGV4ZXJjaXNlZCBpbiB0aGUKKyAgICAg
ICAgZmFzdC9ldmVudHMvdG91Y2ggdGVzdHMuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisK
IDIwMTAtMDMtMDggIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IERtaXRyeSBUaXRvdi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBp
IGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggODdhNTU3Yy4uMDQ4NmRjMyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTEy
MDMsNiArMTIwMywxMSBAQAogICAgICAgICAgICAgJ2RvbS9UZXh0LmgnLAogICAgICAgICAgICAg
J2RvbS9UZXh0RXZlbnQuY3BwJywKICAgICAgICAgICAgICdkb20vVGV4dEV2ZW50LmgnLAorICAg
ICAgICAgICAgJ2RvbS9Ub3VjaC5jcHAnLAorICAgICAgICAgICAgJ2RvbS9Ub3VjaC5oJywKKyAg
ICAgICAgICAgICdkb20vVG91Y2hFdmVudC5jcHAnLAorICAgICAgICAgICAgJ2RvbS9Ub3VjaExp
c3QuY3BwJywKKyAgICAgICAgICAgICdkb20vVG91Y2hMaXN0LmgnLAogICAgICAgICAgICAgJ2Rv
bS9Ub2tlbml6ZXIuaCcsCiAgICAgICAgICAgICAnZG9tL1RyYW5zZm9ybVNvdXJjZUxpYnhzbHQu
Y3BwJywKICAgICAgICAgICAgICdkb20vVHJhbnNmb3JtU291cmNlLmgnLApkaWZmIC0tZ2l0IGEv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5k
ZXggMDAxMTQyNy4uM2UyNWJlZiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTAt
MDMtMDggIEdhcnJldCBLZWxseSAgPGdka0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGNvbnZlcnRp
bmcgV2ViVG91Y2hFdmVudHMgdG8gUGxhdGZvcm1Ub3VjaEV2ZW50cyBhbmQKKyAgICAgICAgcm91
dGluZyB0aGVtIGludG8gdGhlIEV2ZW50SGFuZGxlciBmb3IgdGhlIGZyYW1lIGluIHdoaWNoIHRo
ZXkKKyAgICAgICAgb3JpZ2luYXRlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzU4NzQKKworICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmg6
CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6Om5lZWRUb3VjaEV2ZW50cyk6Cisg
ICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OnRvdWNoRXZlbnQpOiBIYW5kbGUgaW5jb21pbmcgV2ViVG91Y2hFdmVudHMsCisgICAgICAg
IGNvbnZlcnRpbmcgdGhlbSB0byBQbGF0Zm9ybVRvdWNoRXZlbnRzIGFuZCBzZW5kaW5nIHRoZW0g
dG8gdGhlCisgICAgICAgIEV2ZW50SGFuZGxlci4KKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OmhhbmRsZUlucHV0RXZlbnQpOiBOb3cgcm91dGVzIFdlYlRvdWNoRXZlbnRzIHRvCisgICAg
ICAgIHRoZSB0b3VjaEV2ZW50IGhhbmRsZXIuCisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6
CisKIDIwMTAtMDMtMDggIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IERtaXRyeSBUaXRvdi4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9z
cmMvQ2hyb21lQ2xpZW50SW1wbC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJ
bXBsLmgKaW5kZXggNWJmOTM4Mi4uNDQ0MjljMiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVt
L3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVD
bGllbnRJbXBsLmgKQEAgLTEyOCw2ICsxMjgsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29s
IHNldEN1cnNvcihXZWJDb3JlOjpQbGF0Zm9ybUN1cnNvckhhbmRsZSkgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIHZvaWQgZm9ybVN0YXRlRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6Ok5v
ZGUqKTsKICAgICB2aXJ0dWFsIFBhc3NPd25QdHI8V2ViQ29yZTo6SFRNTFBhcnNlclF1aXJrcz4g
Y3JlYXRlSFRNTFBhcnNlclF1aXJrcygpIHsgcmV0dXJuIDA7IH0KKyNpZiBFTkFCTEUoVE9VQ0hf
RVZFTlRTKQorICAgIHZpcnR1YWwgdm9pZCBuZWVkVG91Y2hFdmVudHMoYm9vbCBuZWVkVG91Y2hF
dmVudHMpIHsgfQorI2VuZGlmCiAKICAgICAvLyBDaHJvbWVDbGllbnRDaHJvbWl1bSBtZXRob2Rz
OgogICAgIHZpcnR1YWwgdm9pZCBwb3B1cE9wZW5lZChXZWJDb3JlOjpQb3B1cENvbnRhaW5lciog
cG9wdXBDb250YWluZXIsCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IDYzNDVj
ZDEuLjJiYTYxYzQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwu
Y3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC02MDksNiAr
NjA5LDIyIEBAIGJvb2wgV2ViVmlld0ltcGw6OmNoYXJFdmVudChjb25zdCBXZWJLZXlib2FyZEV2
ZW50JiBldmVudCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorI2lmIEVOQUJMRShUT1VDSF9FVkVO
VFMpCitib29sIFdlYlZpZXdJbXBsOjp0b3VjaEV2ZW50KGNvbnN0IFdlYlRvdWNoRXZlbnQmIGV2
ZW50KQoreworICAgIEZyYW1lKiBmb2N1c2VkRnJhbWUgPSBmb2N1c2VkV2ViQ29yZUZyYW1lKCk7
CisgICAgaWYgKCFmb2N1c2VkRnJhbWUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEV2
ZW50SGFuZGxlciogZXZlbnRIYW5kbGVyID0gZm9jdXNlZEZyYW1lLT5ldmVudEhhbmRsZXIoKTsK
KyAgICBpZiAoIWV2ZW50SGFuZGxlcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgUGxh
dGZvcm1Ub3VjaEV2ZW50QnVpbGRlciB0b3VjaEV2ZW50QnVpbGRlcihtYWluRnJhbWVJbXBsKCkt
PmZyYW1lVmlldygpLCBldmVudCk7CisgICAgcmV0dXJuIGV2ZW50SGFuZGxlci0+aGFuZGxlVG91
Y2hFdmVudCh0b3VjaEV2ZW50QnVpbGRlcik7Cit9CisjZW5kaWYKKwogLy8gVGhlIFdlYlZpZXdJ
bXBsOjpTZW5kQ29udGV4dE1lbnVFdmVudCBmdW5jdGlvbiBpcyBiYXNlZCBvbiB0aGUgV2Via2l0
CiAvLyBmdW5jdGlvbgogLy8gYm9vbCBXZWJWaWV3OjpoYW5kbGVDb250ZXh0TWVudUV2ZW50KFdQ
QVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pIGluCkBAIC05NDEsNiArOTU3LDE1IEBAIGJvb2wg
V2ViVmlld0ltcGw6OmhhbmRsZUlucHV0RXZlbnQoY29uc3QgV2ViSW5wdXRFdmVudCYgaW5wdXRF
dmVudCkKICAgICAgICAgaGFuZGxlZCA9IGNoYXJFdmVudCgqc3RhdGljX2Nhc3Q8Y29uc3QgV2Vi
S2V5Ym9hcmRFdmVudCo+KCZpbnB1dEV2ZW50KSk7CiAgICAgICAgIGJyZWFrOwogCisjaWYgRU5B
QkxFKFRPVUNIX0VWRU5UUykKKyAgICBjYXNlIFdlYklucHV0RXZlbnQ6OlRvdWNoU3RhcnQ6Cisg
ICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpUb3VjaE1vdmU6CisgICAgY2FzZSBXZWJJbnB1dEV2ZW50
OjpUb3VjaEVuZDoKKyAgICBjYXNlIFdlYklucHV0RXZlbnQ6OlRvdWNoQ2FuY2VsOgorICAgICAg
ICBoYW5kbGVkID0gdG91Y2hFdmVudCgqc3RhdGljX2Nhc3Q8Y29uc3QgV2ViVG91Y2hFdmVudCo+
KCZpbnB1dEV2ZW50KSk7CisgICAgICAgIGJyZWFrOworI2VuZGlmCisKICAgICBkZWZhdWx0Ogog
ICAgICAgICBoYW5kbGVkID0gZmFsc2U7CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5o
CmluZGV4IDI4NmFjNDMuLmM3ZDU3ZWQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKQEAg
LTc2LDYgKzc2LDcgQEAgY2xhc3MgV2ViS2V5Ym9hcmRFdmVudDsKIGNsYXNzIFdlYk1vdXNlRXZl
bnQ7CiBjbGFzcyBXZWJNb3VzZVdoZWVsRXZlbnQ7CiBjbGFzcyBXZWJTZXR0aW5nc0ltcGw7Citj
bGFzcyBXZWJUb3VjaEV2ZW50OwogCiBjbGFzcyBXZWJWaWV3SW1wbCA6IHB1YmxpYyBXZWJWaWV3
LCBwdWJsaWMgUmVmQ291bnRlZDxXZWJWaWV3SW1wbD4gewogcHVibGljOgpAQCAtMjI5LDYgKzIz
MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG1vdXNlV2hlZWwoY29uc3QgV2ViTW91c2VXaGVlbEV2
ZW50Jik7CiAgICAgYm9vbCBrZXlFdmVudChjb25zdCBXZWJLZXlib2FyZEV2ZW50Jik7CiAgICAg
Ym9vbCBjaGFyRXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYpOworICAgIGJvb2wgdG91Y2hF
dmVudChjb25zdCBXZWJUb3VjaEV2ZW50Jik7CiAKICAgICAvLyBIYW5kbGVzIGNvbnRleHQgbWVu
dSBldmVudHMgb3JpZ25hdGVkIHZpYSB0aGUgdGhlIGtleWJvYXJkLiBUaGVzZQogICAgIC8vIGlu
Y2x1ZGUgdGhlIFZLX0FQUFMgdmlydHVhbCBrZXkgYW5kIHRoZSBTaGlmdCtGMTAgY29tYmluZS4g
IENvZGUgaXMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50247</attachid>
            <date>2010-03-08 14:32:47 -0800</date>
            <delta_ts>2010-03-08 15:46:39 -0800</delta_ts>
            <desc>First-round review changes</desc>
            <filename>upstream-touch-event-routing.patch</filename>
            <type>text/plain</type>
            <size>5071</size>
            <attacher name="Garret Kelly">gdk</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MjY2MGU4Yi4uMmU1MmEwOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wMy0wOCAgR2FycmV0IEtlbGx5
ICA8Z2RrQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRpbmcgYWxsIG9mIHRoZSB0b3VjaC1yZWxhdGVkIHNvdXJjZXMgaW50
byBDaHJvbWl1bSdzIFdlYkNvcmUgYnVpbGQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zNTg3NAorCisgICAgICAgIFBhdGNoIHRlc3RlZCBhZ2FpbnN0
IHRoZSB0cnkgYm90cywgYnV0IHRoZSBmZWF0dXJlIGlzIGV4ZXJjaXNlZCBpbiB0aGUKKyAgICAg
ICAgZmFzdC9ldmVudHMvdG91Y2ggdGVzdHMuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisK
IDIwMTAtMDMtMDIgIEFkYW0gVHJlYXQgIDxhdHJlYXRAcmltLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBEYXZlIEh5YXR0LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBkMDVmOGQ5Li4yYzc0ZDliIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTIwMyw2
ICsxMjAzLDExIEBACiAgICAgICAgICAgICAnZG9tL1RleHQuaCcsCiAgICAgICAgICAgICAnZG9t
L1RleHRFdmVudC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9UZXh0RXZlbnQuaCcsCisgICAgICAg
ICAgICAnZG9tL1RvdWNoLmNwcCcsCisgICAgICAgICAgICAnZG9tL1RvdWNoLmgnLAorICAgICAg
ICAgICAgJ2RvbS9Ub3VjaEV2ZW50LmNwcCcsCisgICAgICAgICAgICAnZG9tL1RvdWNoTGlzdC5j
cHAnLAorICAgICAgICAgICAgJ2RvbS9Ub3VjaExpc3QuaCcsCiAgICAgICAgICAgICAnZG9tL1Rv
a2VuaXplci5oJywKICAgICAgICAgICAgICdkb20vVHJhbnNmb3JtU291cmNlTGlieHNsdC5jcHAn
LAogICAgICAgICAgICAgJ2RvbS9UcmFuc2Zvcm1Tb3VyY2UuaCcsCmRpZmYgLS1naXQgYS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA3
MmFhODIyLi4wNGNjMjQ5IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wMy0w
OCAgR2FycmV0IEtlbGx5ICA8Z2RrQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgY29udmVydGluZyBX
ZWJUb3VjaEV2ZW50cyB0byBQbGF0Zm9ybVRvdWNoRXZlbnRzIGFuZAorICAgICAgICByb3V0aW5n
IHRoZW0gaW50byB0aGUgRXZlbnRIYW5kbGVyIGZvciB0aGUgZnJhbWUgaW4gd2hpY2ggdGhleQor
ICAgICAgICBvcmlnaW5hdGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNTg3NAorCisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuaDoKKyAg
ICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6bmVlZFRvdWNoRXZlbnRzKToKKyAgICAg
ICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
dG91Y2hFdmVudCk6IEhhbmRsZSBpbmNvbWluZyBXZWJUb3VjaEV2ZW50cywKKyAgICAgICAgY29u
dmVydGluZyB0aGVtIHRvIFBsYXRmb3JtVG91Y2hFdmVudHMgYW5kIHNlbmRpbmcgdGhlbSB0byB0
aGUKKyAgICAgICAgRXZlbnRIYW5kbGVyLgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
aGFuZGxlSW5wdXRFdmVudCk6IE5vdyByb3V0ZXMgV2ViVG91Y2hFdmVudHMgdG8KKyAgICAgICAg
dGhlIHRvdWNoRXZlbnQgaGFuZGxlci4KKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDoKKwog
MjAxMC0wMy0wMiAgQWRhbSBUcmVhdCAgPGF0cmVhdEByaW0uY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERhdmUgSHlhdHQuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9t
ZUNsaWVudEltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCmlu
ZGV4IDNlMmY2OTIuLmEzNjlmNDkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hy
b21lQ2xpZW50SW1wbC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1w
bC5oCkBAIC0xMjksNiArMTI5LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2V0Q3Vy
c29yKFdlYkNvcmU6OlBsYXRmb3JtQ3Vyc29ySGFuZGxlKSB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZpcnR1YWwgdm9pZCBmb3JtU3RhdGVEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6Tm9kZSopOwog
ICAgIHZpcnR1YWwgUGFzc093blB0cjxXZWJDb3JlOjpIVE1MUGFyc2VyUXVpcmtzPiBjcmVhdGVI
VE1MUGFyc2VyUXVpcmtzKCkgeyByZXR1cm4gMDsgfQorI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMp
CisgICAgLy8gRklYTUU6IEFsbCB0b3VjaCBldmVudHMgYXJlIGZvcndhcmRlZCByZWdhcmRsZXNz
IG9mIHdoZXRoZXIgb3Igbm90IHRoZXkgYXJlIG5lZWRlZC4KKyAgICB2aXJ0dWFsIHZvaWQgbmVl
ZFRvdWNoRXZlbnRzKGJvb2wgbmVlZFRvdWNoRXZlbnRzKSB7IH0KKyNlbmRpZgogCiAgICAgLy8g
Q2hyb21lQ2xpZW50Q2hyb21pdW0gbWV0aG9kczoKICAgICB2aXJ0dWFsIHZvaWQgcG9wdXBPcGVu
ZWQoV2ViQ29yZTo6UG9wdXBDb250YWluZXIqIHBvcHVwQ29udGFpbmVyLApkaWZmIC0tZ2l0IGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmNwcAppbmRleCA2MzQ1Y2QxLi43NjVlMTgxIDEwMDY0NAotLS0gYS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmNwcApAQCAtNjA5LDYgKzYwOSwyMCBAQCBib29sIFdlYlZpZXdJbXBsOjpj
aGFyRXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYgZXZlbnQpCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorYm9vbCBXZWJWaWV3SW1wbDo6dG91Y2hF
dmVudChjb25zdCBXZWJUb3VjaEV2ZW50JiBldmVudCkKK3sKKyAgICBpZiAoIW1haW5GcmFtZUlt
cGwoKSB8fCAhbWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZpZXcoKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgUGxhdGZvcm1Ub3VjaEV2ZW50QnVpbGRlciB0b3VjaEV2ZW50QnVpbGRlcigK
KyAgICAgICAgbWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZpZXcoKSwgZXZlbnQpOworCisgICAgRXZl
bnRIYW5kbGVyKiBldmVudEhhbmRsZXIgPSBtYWluRnJhbWVJbXBsKCktPmZyYW1lKCktPmV2ZW50
SGFuZGxlcigpOworICAgIHJldHVybiBldmVudEhhbmRsZXItPmhhbmRsZVRvdWNoRXZlbnQodG91
Y2hFdmVudEJ1aWxkZXIpOworfQorI2VuZGlmCisKIC8vIFRoZSBXZWJWaWV3SW1wbDo6U2VuZENv
bnRleHRNZW51RXZlbnQgZnVuY3Rpb24gaXMgYmFzZWQgb24gdGhlIFdlYmtpdAogLy8gZnVuY3Rp
b24KIC8vIGJvb2wgV2ViVmlldzo6aGFuZGxlQ29udGV4dE1lbnVFdmVudChXUEFSQU0gd1BhcmFt
LCBMUEFSQU0gbFBhcmFtKSBpbgpAQCAtOTQxLDYgKzk1NSwxNSBAQCBib29sIFdlYlZpZXdJbXBs
OjpoYW5kbGVJbnB1dEV2ZW50KGNvbnN0IFdlYklucHV0RXZlbnQmIGlucHV0RXZlbnQpCiAgICAg
ICAgIGhhbmRsZWQgPSBjaGFyRXZlbnQoKnN0YXRpY19jYXN0PGNvbnN0IFdlYktleWJvYXJkRXZl
bnQqPigmaW5wdXRFdmVudCkpOwogICAgICAgICBicmVhazsKIAorI2lmIEVOQUJMRShUT1VDSF9F
VkVOVFMpCisgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpUb3VjaFN0YXJ0OgorICAgIGNhc2UgV2Vi
SW5wdXRFdmVudDo6VG91Y2hNb3ZlOgorICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6VG91Y2hFbmQ6
CisgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpUb3VjaENhbmNlbDoKKyAgICAgICAgaGFuZGxlZCA9
IHRvdWNoRXZlbnQoKnN0YXRpY19jYXN0PGNvbnN0IFdlYlRvdWNoRXZlbnQqPigmaW5wdXRFdmVu
dCkpOworICAgICAgICBicmVhazsKKyNlbmRpZgorCiAgICAgZGVmYXVsdDoKICAgICAgICAgaGFu
ZGxlZCA9IGZhbHNlOwogICAgIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAppbmRleCAyODZh
YzQzLi5jN2Q1N2VkIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCkBAIC03Niw2ICs3Niw3
IEBAIGNsYXNzIFdlYktleWJvYXJkRXZlbnQ7CiBjbGFzcyBXZWJNb3VzZUV2ZW50OwogY2xhc3Mg
V2ViTW91c2VXaGVlbEV2ZW50OwogY2xhc3MgV2ViU2V0dGluZ3NJbXBsOworY2xhc3MgV2ViVG91
Y2hFdmVudDsKIAogY2xhc3MgV2ViVmlld0ltcGwgOiBwdWJsaWMgV2ViVmlldywgcHVibGljIFJl
ZkNvdW50ZWQ8V2ViVmlld0ltcGw+IHsKIHB1YmxpYzoKQEAgLTIyOSw2ICsyMzAsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBtb3VzZVdoZWVsKGNvbnN0IFdlYk1vdXNlV2hlZWxFdmVudCYpOwogICAg
IGJvb2wga2V5RXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYpOwogICAgIGJvb2wgY2hhckV2
ZW50KGNvbnN0IFdlYktleWJvYXJkRXZlbnQmKTsKKyAgICBib29sIHRvdWNoRXZlbnQoY29uc3Qg
V2ViVG91Y2hFdmVudCYpOwogCiAgICAgLy8gSGFuZGxlcyBjb250ZXh0IG1lbnUgZXZlbnRzIG9y
aWduYXRlZCB2aWEgdGhlIHRoZSBrZXlib2FyZC4gVGhlc2UKICAgICAvLyBpbmNsdWRlIHRoZSBW
S19BUFBTIHZpcnR1YWwga2V5IGFuZCB0aGUgU2hpZnQrRjEwIGNvbWJpbmUuICBDb2RlIGlzCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50262</attachid>
            <date>2010-03-08 15:46:39 -0800</date>
            <delta_ts>2010-03-10 13:34:39 -0800</delta_ts>
            <desc>Second-round review fixes</desc>
            <filename>upstream-touch-event-routing.patch</filename>
            <type>text/plain</type>
            <size>5028</size>
            <attacher name="Garret Kelly">gdk</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NzQ1NmIyMC4uMjE2MzAyYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wMy0wOCAgR2FycmV0IEtlbGx5
ICA8Z2RrQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRpbmcgYWxsIG9mIHRoZSB0b3VjaC1yZWxhdGVkIHNvdXJjZXMgaW50
byBDaHJvbWl1bSdzIFdlYkNvcmUgYnVpbGQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zNTg3NAorCisgICAgICAgIFBhdGNoIHRlc3RlZCBhZ2FpbnN0
IHRoZSB0cnkgYm90cywgYnV0IHRoZSBmZWF0dXJlIGlzIGV4ZXJjaXNlZCBpbiB0aGUKKyAgICAg
ICAgZmFzdC9ldmVudHMvdG91Y2ggdGVzdHMuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisK
IDIwMTAtMDMtMDggIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEpvbiBIb25leWN1dHQuCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGQwNWY4ZDkuLjJjNzRkOWIgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0x
MjAzLDYgKzEyMDMsMTEgQEAKICAgICAgICAgICAgICdkb20vVGV4dC5oJywKICAgICAgICAgICAg
ICdkb20vVGV4dEV2ZW50LmNwcCcsCiAgICAgICAgICAgICAnZG9tL1RleHRFdmVudC5oJywKKyAg
ICAgICAgICAgICdkb20vVG91Y2guY3BwJywKKyAgICAgICAgICAgICdkb20vVG91Y2guaCcsCisg
ICAgICAgICAgICAnZG9tL1RvdWNoRXZlbnQuY3BwJywKKyAgICAgICAgICAgICdkb20vVG91Y2hM
aXN0LmNwcCcsCisgICAgICAgICAgICAnZG9tL1RvdWNoTGlzdC5oJywKICAgICAgICAgICAgICdk
b20vVG9rZW5pemVyLmgnLAogICAgICAgICAgICAgJ2RvbS9UcmFuc2Zvcm1Tb3VyY2VMaWJ4c2x0
LmNwcCcsCiAgICAgICAgICAgICAnZG9tL1RyYW5zZm9ybVNvdXJjZS5oJywKZGlmZiAtLWdpdCBh
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmlu
ZGV4IDQ5MWJmNmMuLmRmOTM1MTIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEw
LTAzLTA4ICBHYXJyZXQgS2VsbHkgIDxnZGtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBjb252ZXJ0
aW5nIFdlYlRvdWNoRXZlbnRzIHRvIFBsYXRmb3JtVG91Y2hFdmVudHMgYW5kCisgICAgICAgIHJv
dXRpbmcgdGhlbSBpbnRvIHRoZSBFdmVudEhhbmRsZXIgZm9yIHRoZSBmcmFtZSBpbiB3aGljaCB0
aGV5CisgICAgICAgIG9yaWdpbmF0ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTM1ODc0CisKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5o
OgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpuZWVkVG91Y2hFdmVudHMpOgor
ICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjp0b3VjaEV2ZW50KTogSGFuZGxlIGluY29taW5nIFdlYlRvdWNoRXZlbnRzLAorICAgICAg
ICBjb252ZXJ0aW5nIHRoZW0gdG8gUGxhdGZvcm1Ub3VjaEV2ZW50cyBhbmQgc2VuZGluZyB0aGVt
IHRvIHRoZQorICAgICAgICBFdmVudEhhbmRsZXIuCisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjpoYW5kbGVJbnB1dEV2ZW50KTogTm93IHJvdXRlcyBXZWJUb3VjaEV2ZW50cyB0bworICAg
ICAgICB0aGUgdG91Y2hFdmVudCBoYW5kbGVyLgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5o
OgorCiAyMDEwLTAzLTA4ICBNaWNoYWVsIE5vcmRtYW4gIDxtaWNoYWVsbkBnb29nbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KZGlmZiAtLWdpdCBhL1dlYktpdC9j
aHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJv
bWVDbGllbnRJbXBsLmgKaW5kZXggM2UyZjY5Mi4uYTM2OWY0OSAxMDA2NDQKLS0tIGEvV2ViS2l0
L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9DaHJvbWVDbGllbnRJbXBsLmgKQEAgLTEyOSw2ICsxMjksMTAgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBzZXRDdXJzb3IoV2ViQ29yZTo6UGxhdGZvcm1DdXJzb3JIYW5kbGUpIHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIGZvcm1TdGF0ZURpZENoYW5nZShjb25zdCBX
ZWJDb3JlOjpOb2RlKik7CiAgICAgdmlydHVhbCBQYXNzT3duUHRyPFdlYkNvcmU6OkhUTUxQYXJz
ZXJRdWlya3M+IGNyZWF0ZUhUTUxQYXJzZXJRdWlya3MoKSB7IHJldHVybiAwOyB9CisjaWYgRU5B
QkxFKFRPVUNIX0VWRU5UUykKKyAgICAvLyBGSVhNRTogQWxsIHRvdWNoIGV2ZW50cyBhcmUgZm9y
d2FyZGVkIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBvciBub3QgdGhleSBhcmUgbmVlZGVkLgorICAg
IHZpcnR1YWwgdm9pZCBuZWVkVG91Y2hFdmVudHMoYm9vbCBuZWVkVG91Y2hFdmVudHMpIHsgfQor
I2VuZGlmCiAKICAgICAvLyBDaHJvbWVDbGllbnRDaHJvbWl1bSBtZXRob2RzOgogICAgIHZpcnR1
YWwgdm9pZCBwb3B1cE9wZW5lZChXZWJDb3JlOjpQb3B1cENvbnRhaW5lciogcG9wdXBDb250YWlu
ZXIsCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IDYzNDVjZDEuLjEwMTZmMTEg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC02MDksNiArNjA5LDE3IEBAIGJv
b2wgV2ViVmlld0ltcGw6OmNoYXJFdmVudChjb25zdCBXZWJLZXlib2FyZEV2ZW50JiBldmVudCkK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCitib29sIFdl
YlZpZXdJbXBsOjp0b3VjaEV2ZW50KGNvbnN0IFdlYlRvdWNoRXZlbnQmIGV2ZW50KQoreworICAg
IGlmICghbWFpbkZyYW1lSW1wbCgpIHx8ICFtYWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBQbGF0Zm9ybVRvdWNoRXZlbnRCdWlsZGVyIHRv
dWNoRXZlbnRCdWlsZGVyKG1haW5GcmFtZUltcGwoKS0+ZnJhbWVWaWV3KCksIGV2ZW50KTsKKyAg
ICByZXR1cm4gbWFpbkZyYW1lSW1wbCgpLT5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxl
VG91Y2hFdmVudCh0b3VjaEV2ZW50QnVpbGRlcik7Cit9CisjZW5kaWYKKwogLy8gVGhlIFdlYlZp
ZXdJbXBsOjpTZW5kQ29udGV4dE1lbnVFdmVudCBmdW5jdGlvbiBpcyBiYXNlZCBvbiB0aGUgV2Vi
a2l0CiAvLyBmdW5jdGlvbgogLy8gYm9vbCBXZWJWaWV3OjpoYW5kbGVDb250ZXh0TWVudUV2ZW50
KFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pIGluCkBAIC05NDEsNiArOTUyLDE1IEBAIGJv
b2wgV2ViVmlld0ltcGw6OmhhbmRsZUlucHV0RXZlbnQoY29uc3QgV2ViSW5wdXRFdmVudCYgaW5w
dXRFdmVudCkKICAgICAgICAgaGFuZGxlZCA9IGNoYXJFdmVudCgqc3RhdGljX2Nhc3Q8Y29uc3Qg
V2ViS2V5Ym9hcmRFdmVudCo+KCZpbnB1dEV2ZW50KSk7CiAgICAgICAgIGJyZWFrOwogCisjaWYg
RU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICBjYXNlIFdlYklucHV0RXZlbnQ6OlRvdWNoU3RhcnQ6
CisgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpUb3VjaE1vdmU6CisgICAgY2FzZSBXZWJJbnB1dEV2
ZW50OjpUb3VjaEVuZDoKKyAgICBjYXNlIFdlYklucHV0RXZlbnQ6OlRvdWNoQ2FuY2VsOgorICAg
ICAgICBoYW5kbGVkID0gdG91Y2hFdmVudCgqc3RhdGljX2Nhc3Q8Y29uc3QgV2ViVG91Y2hFdmVu
dCo+KCZpbnB1dEV2ZW50KSk7CisgICAgICAgIGJyZWFrOworI2VuZGlmCisKICAgICBkZWZhdWx0
OgogICAgICAgICBoYW5kbGVkID0gZmFsc2U7CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5oCmluZGV4IDI4NmFjNDMuLmM3ZDU3ZWQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgK
QEAgLTc2LDYgKzc2LDcgQEAgY2xhc3MgV2ViS2V5Ym9hcmRFdmVudDsKIGNsYXNzIFdlYk1vdXNl
RXZlbnQ7CiBjbGFzcyBXZWJNb3VzZVdoZWVsRXZlbnQ7CiBjbGFzcyBXZWJTZXR0aW5nc0ltcGw7
CitjbGFzcyBXZWJUb3VjaEV2ZW50OwogCiBjbGFzcyBXZWJWaWV3SW1wbCA6IHB1YmxpYyBXZWJW
aWV3LCBwdWJsaWMgUmVmQ291bnRlZDxXZWJWaWV3SW1wbD4gewogcHVibGljOgpAQCAtMjI5LDYg
KzIzMCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG1vdXNlV2hlZWwoY29uc3QgV2ViTW91c2VXaGVl
bEV2ZW50Jik7CiAgICAgYm9vbCBrZXlFdmVudChjb25zdCBXZWJLZXlib2FyZEV2ZW50Jik7CiAg
ICAgYm9vbCBjaGFyRXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYpOworICAgIGJvb2wgdG91
Y2hFdmVudChjb25zdCBXZWJUb3VjaEV2ZW50Jik7CiAKICAgICAvLyBIYW5kbGVzIGNvbnRleHQg
bWVudSBldmVudHMgb3JpZ25hdGVkIHZpYSB0aGUgdGhlIGtleWJvYXJkLiBUaGVzZQogICAgIC8v
IGluY2x1ZGUgdGhlIFZLX0FQUFMgdmlydHVhbCBrZXkgYW5kIHRoZSBTaGlmdCtGMTAgY29tYmlu
ZS4gIENvZGUgaXMK
</data>

          </attachment>
      

    </bug>

</bugzilla>