<?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>58065</bug_id>
          
          <creation_ts>2011-04-07 11:19:41 -0700</creation_ts>
          <short_desc>WebKit2: Support window bounce when panning</short_desc>
          <delta_ts>2011-04-07 12:43:02 -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>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, PlatformOnly</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brian Weinstein">bweinstein</reporter>
          <assigned_to name="Brian Weinstein">bweinstein</assigned_to>
          <cc>aroben</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>381511</commentid>
    <comment_count>0</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-04-07 11:19:41 -0700</bug_when>
    <thetext>When panning, MSDN recommends using window bounce when you hit the end of a scrollable area to improve the panning experience.

http://msdn.microsoft.com/en-us/library/dd562167(v=vs.85).aspx

We support this in WebKit1 (vertically, not horizontally).

&lt;rdar://problem/9244367&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381520</commentid>
    <comment_count>1</comment_count>
      <attachid>88667</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-04-07 11:33:14 -0700</bug_when>
    <thetext>Created attachment 88667
[PATCH] Fix v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381524</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-07 11:34:52 -0700</bug_when>
    <thetext>Attachment 88667 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1

Source/WebKit2/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Source/WebKit2/WebProcess/WebPage/win/WebPageWin.cpp:425:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Source/WebKit2/WebProcess/WebPage/WebPage.h:327:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 3 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381546</commentid>
    <comment_count>3</comment_count>
      <attachid>88667</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-07 11:56:25 -0700</bug_when>
    <thetext>Comment on attachment 88667
[PATCH] Fix v2

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

&gt;&gt; Source/WebKit2/ChangeLog:1
&gt;&gt; +2011-04-07  Brian Weinstein  &lt;bweinstein@apple.com&gt;
&gt; 
&gt; ChangeLog entry has no bug number  [changelog/bugnumber] [5]

Wha? This just seems completely wrong.

&gt; Source/WebKit2/ChangeLog:12
&gt; +        API to bounce the window to give an indication that you are past the an end

Typo: the an end

&gt; Source/WebKit2/ChangeLog:16
&gt; +        (WebKit::WebPageProxy::gestureDidScroll): Pasa a boolean for the reply, and return it.

Typo: Pasa

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:682
&gt; +    bool atBeginningOrEndOfScrollableDocument;
&gt; +    process()-&gt;sendSync(Messages::WebPage::GestureDidScroll(size), Messages::WebPage::GestureDidScroll::Reply(atBeginningOrEndOfScrollableDocument), m_pageID);
&gt; +    return atBeginningOrEndOfScrollableDocument;

If sendSync fails (indicated by returning false), atBeginningOrEndOfScrollableDocument will be uninitialized. That&apos;s bad! (I think gestureWillBegin has the same problem.)

&gt; Source/WebKit2/UIProcess/win/WebView.cpp:543
&gt;      if (!GetGestureInfoPtr() || !CloseGestureInfoHandlePtr()) {
&gt;          handled = false;
&gt;          return 0;
&gt;      }
&gt;  
&gt; +    if (!UpdatePanningFeedbackPtr() || !BeginPanningFeedbackPtr() || !EndPanningFeedbackPtr()) {
&gt; +        handled = false;
&gt; +        return 0;
&gt; +    }

I&apos;d combine these into a single check.

&gt; Source/WebKit2/UIProcess/win/WebView.cpp:588
&gt; +        // FIXME: Support horizontal window bounce - &lt;rdar://problem/7158348&gt;.
&gt; +        // FIXME: Window Bounce doesnt&apos; undo until user releases their finger - &lt;rdar://problem/7158349&gt;.

Typo: doesnt&apos;

Do we have Bugzilla bugs that you can reference here instead?

&gt;&gt; Source/WebKit2/WebProcess/WebPage/WebPage.h:327
&gt;&gt; +    void gestureDidScroll(const WebCore::IntSize&amp; size, bool&amp; atBeginningOrEndOfDocument);
&gt; 
&gt; The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]

You should fix this.

&gt; Source/WebKit2/WebProcess/WebPage/win/WebPageWin.cpp:404
&gt; -void WebPage::gestureDidScroll(const WebCore::IntSize&amp; size)
&gt; +void WebPage::gestureDidScroll(const WebCore::IntSize&amp; size, bool&amp; atBeginningOrEndOfScrollableDocument)

No need for WebCore:: here.

&gt;&gt; Source/WebKit2/WebProcess/WebPage/win/WebPageWin.cpp:425
&gt;&gt; +    atBeginningOrEndOfScrollableDocument = verticalScrollbar-&gt;currentPos() == 0 || verticalScrollbar-&gt;currentPos() &gt;= verticalScrollbar-&gt;maximum();
&gt; 
&gt; Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]

You should fix this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381553</commentid>
    <comment_count>4</comment_count>
      <attachid>88667</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-04-07 12:02:51 -0700</bug_when>
    <thetext>Comment on attachment 88667
[PATCH] Fix v2

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

&gt;&gt;&gt; Source/WebKit2/ChangeLog:1
&gt;&gt;&gt; +2011-04-07  Brian Weinstein  &lt;bweinstein@apple.com&gt;
&gt;&gt; 
&gt;&gt; ChangeLog entry has no bug number  [changelog/bugnumber] [5]
&gt; 
&gt; Wha? This just seems completely wrong.

I typed it by hand, and typed show_big.cgi :-(. It&apos;s fixed.

&gt;&gt; Source/WebKit2/ChangeLog:12
&gt;&gt; +        API to bounce the window to give an indication that you are past the an end
&gt; 
&gt; Typo: the an end

Fixed.

&gt;&gt; Source/WebKit2/ChangeLog:16
&gt;&gt; +        (WebKit::WebPageProxy::gestureDidScroll): Pasa a boolean for the reply, and return it.
&gt; 
&gt; Typo: Pasa

Fixed.

&gt;&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:682
&gt;&gt; +    return atBeginningOrEndOfScrollableDocument;
&gt; 
&gt; If sendSync fails (indicated by returning false), atBeginningOrEndOfScrollableDocument will be uninitialized. That&apos;s bad! (I think gestureWillBegin has the same problem.)

I will initialize them both to false.

&gt;&gt; Source/WebKit2/UIProcess/win/WebView.cpp:543
&gt;&gt; +    }
&gt; 
&gt; I&apos;d combine these into a single check.

Fixed.

&gt;&gt; Source/WebKit2/UIProcess/win/WebView.cpp:588
&gt;&gt; +        // FIXME: Window Bounce doesnt&apos; undo until user releases their finger - &lt;rdar://problem/7158349&gt;.
&gt; 
&gt; Typo: doesnt&apos;
&gt; 
&gt; Do we have Bugzilla bugs that you can reference here instead?

Fixed. I initially made bugzilla bugs for the WebKit1 equivalent, but the bugs don&apos;t seem to exist. I will file Bugzilla bugs.

&gt;&gt;&gt; Source/WebKit2/WebProcess/WebPage/WebPage.h:327
&gt;&gt;&gt; +    void gestureDidScroll(const WebCore::IntSize&amp; size, bool&amp; atBeginningOrEndOfDocument);
&gt;&gt; 
&gt;&gt; The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
&gt; 
&gt; You should fix this.

And I did.

&gt;&gt; Source/WebKit2/WebProcess/WebPage/win/WebPageWin.cpp:404
&gt;&gt; +void WebPage::gestureDidScroll(const WebCore::IntSize&amp; size, bool&amp; atBeginningOrEndOfScrollableDocument)
&gt; 
&gt; No need for WebCore:: here.

Fixed.

&gt;&gt;&gt; Source/WebKit2/WebProcess/WebPage/win/WebPageWin.cpp:425
&gt;&gt;&gt; +    atBeginningOrEndOfScrollableDocument = verticalScrollbar-&gt;currentPos() == 0 || verticalScrollbar-&gt;currentPos() &gt;= verticalScrollbar-&gt;maximum();
&gt;&gt; 
&gt;&gt; Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
&gt; 
&gt; You should fix this.

I thought it was more readable this way, but will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381585</commentid>
    <comment_count>5</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-04-07 12:43:02 -0700</bug_when>
    <thetext>Landed in r83197.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88667</attachid>
            <date>2011-04-07 11:33:14 -0700</date>
            <delta_ts>2011-04-07 12:02:51 -0700</delta_ts>
            <desc>[PATCH] Fix v2</desc>
            <filename>window_bounce.patch</filename>
            <type>text/plain</type>
            <size>8951</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgzMTkwKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTEtMDQtMDcgIEJyaWFuIFdl
aW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYktpdDI6IFN1cHBvcnQgd2luZG93IGJvdW5jZSB3
aGVuIHBhbm5pbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYmlnLmNn
aT9pZD01ODA2NQorICAgICAgICAKKyAgICAgICAgTWFrZSBnZXN0dXJlRGlkU2Nyb2xsIHN5bmNo
cm9ub3VzLCBhcyBvbmNlIHdlIHNjcm9sbCwgd2UgbmVlZCB0byBrbm93CisgICAgICAgIHdoZXRo
ZXIgb3Igbm90IHdlIGFyZSBhdCB0aGUgYmVnaW5uaW5nIG9yIGVuZCBvZiB0aGUgc2Nyb2xsYWJs
ZSBkb2N1bWVudC4KKyAgICAgICAgCisgICAgICAgIElmIHdlIGFyZSBhdCBlaXRoZXIgZW5kIG9m
IHRoZSBzY3JvbGxhYmxlIGRvY3VtZW50LCB3ZSBjYWxsIHRoZSBXaW5kb3dzIDcKKyAgICAgICAg
QVBJIHRvIGJvdW5jZSB0aGUgd2luZG93IHRvIGdpdmUgYW4gaW5kaWNhdGlvbiB0aGF0IHlvdSBh
cmUgcGFzdCB0aGUgYW4gZW5kCisgICAgICAgIG9mIHRoZSBkb2N1bWVudC4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6Omdlc3R1cmVEaWRTY3JvbGwpOiBQYXNhIGEgYm9vbGVhbiBmb3IgdGhlIHJlcGx5LCBhbmQg
cmV0dXJuIGl0LgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3Mvd2luL1dlYlZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3OjpX
ZWJWaWV3KTogSW5pdGl0YWxpemUgYSBuZXcgdmFyaWFibGUuCisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXc6Om9uR2VzdHVyZSk6IE9uY2Ugd2Ugc2VuZCB0aGUgbWVzc2FnZSB0byBzY3JvbGwsIGNo
ZWNrIGlmIGhhdmUgZ29uZSB0bworICAgICAgICAgICAgYW4gZW5kIG9mIHRoZSBkb2N1bWVudCwg
YW5kIGlmIHdlIGhhdmUsIGJvdW5jZSB0aGUgd2luZG93LgorICAgICAgICAqIFVJUHJvY2Vzcy93
aW4vV2ViVmlldy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46IEdlc3R1cmVE
aWRTY3JvbGwgaXMgbm93IHN5bmMuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3dpbi9X
ZWJQYWdlV2luLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2VzdHVyZURpZFNjcm9s
bCk6IFdoZW4gd2UgYXJlIGRvbmUgc2Nyb2xsaW5nLCBjaGVjayBpZiB3ZSBoYXZlIGEgdmVydGlj
YWwKKyAgICAgICAgICAgIHNjcm9sbGJhciBhbmQgaWYgd2UgYXJlIGF0IHRoZSBiZWdpbm5pbmcg
b3IgdGhlIGVuZCBvZiB0aGUgc2Nyb2xsYWJsZSBkb2N1bWVudC4KKwogMjAxMS0wNC0wNyAgSmVz
c2llIEJlcmxpbiAgPGpiZXJsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFk
YW0gUm9iZW4uCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAkocmV2aXNpb24gODMxMjUpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjc1LDkgKzY3NSwxMSBAQCBib29sIFdlYlBhZ2VQ
cm94eTo6Z2VzdHVyZVdpbGxCZWdpbihjb25zCiAgICAgcmV0dXJuIGNhbkJlZ2luUGFubmluZzsK
IH0KIAotdm9pZCBXZWJQYWdlUHJveHk6Omdlc3R1cmVEaWRTY3JvbGwoY29uc3QgSW50U2l6ZSYg
c2l6ZSkKK2Jvb2wgV2ViUGFnZVByb3h5OjpnZXN0dXJlRGlkU2Nyb2xsKGNvbnN0IEludFNpemUm
IHNpemUpCiB7Ci0gICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXN0dXJl
RGlkU2Nyb2xsKHNpemUpLCBtX3BhZ2VJRCk7CisgICAgYm9vbCBhdEJlZ2lubmluZ09yRW5kT2ZT
Y3JvbGxhYmxlRG9jdW1lbnQ7CisgICAgcHJvY2VzcygpLT5zZW5kU3luYyhNZXNzYWdlczo6V2Vi
UGFnZTo6R2VzdHVyZURpZFNjcm9sbChzaXplKSwgTWVzc2FnZXM6OldlYlBhZ2U6Okdlc3R1cmVE
aWRTY3JvbGw6OlJlcGx5KGF0QmVnaW5uaW5nT3JFbmRPZlNjcm9sbGFibGVEb2N1bWVudCksIG1f
cGFnZUlEKTsKKyAgICByZXR1cm4gYXRCZWdpbm5pbmdPckVuZE9mU2Nyb2xsYWJsZURvY3VtZW50
OwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6Z2VzdHVyZURpZEVuZCgpCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCShyZXZpc2lvbiA4MzEyNSkKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtMjc0
LDcgKzI3NCw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgZ2V0U2VsZWN0ZWRUZXh0KCk7CiAKICAg
ICBib29sIGdlc3R1cmVXaWxsQmVnaW4oY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKLSAgICB2
b2lkIGdlc3R1cmVEaWRTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOworICAgIGJvb2wg
Z2VzdHVyZURpZFNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CiAgICAgdm9pZCBnZXN0
dXJlRGlkRW5kKCk7CiAjZW5kaWYKICNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcAkocmV2aXNpb24gODMx
MjUpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC03NCw2ICs3NCwxMSBAQCBTT0ZUX0xJTktfT1BUSU9OQUwoVVNFUjMyLCBHZXRH
ZXN0dXJlSW5mCiBTT0ZUX0xJTktfT1BUSU9OQUwoVVNFUjMyLCBTZXRHZXN0dXJlQ29uZmlnLCBC
T09MLCBXSU5BUEksIChIV05ELCBEV09SRCwgVUlOVCwgUEdFU1RVUkVDT05GSUcsIFVJTlQpKTsK
IFNPRlRfTElOS19PUFRJT05BTChVU0VSMzIsIENsb3NlR2VzdHVyZUluZm9IYW5kbGUsIEJPT0ws
IFdJTkFQSSwgKEhHRVNUVVJFSU5GTykpOwogCitTT0ZUX0xJTktfTElCUkFSWShVeHRoZW1lKTsK
K1NPRlRfTElOS19PUFRJT05BTChVeHRoZW1lLCBCZWdpblBhbm5pbmdGZWVkYmFjaywgQk9PTCwg
V0lOQVBJLCAoSFdORCkpOworU09GVF9MSU5LX09QVElPTkFMKFV4dGhlbWUsIEVuZFBhbm5pbmdG
ZWVkYmFjaywgQk9PTCwgV0lOQVBJLCAoSFdORCwgQk9PTCkpOworU09GVF9MSU5LX09QVElPTkFM
KFV4dGhlbWUsIFVwZGF0ZVBhbm5pbmdGZWVkYmFjaywgQk9PTCwgV0lOQVBJLCAoSFdORCwgTE9O
RywgTE9ORywgQk9PTCkpOworCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNl
IFdlYktpdCB7CkBAIC0yNjksNiArMjc0LDcgQEAgV2ViVmlldzo6V2ViVmlldyhSRUNUIHJlY3Qs
IFdlYkNvbnRleHQqIAogICAgICwgbV9maW5kSW5kaWNhdG9yQ2FsbGJhY2tDb250ZXh0KDApCiAg
ICAgLCBtX2xhc3RQYW5YKDApCiAgICAgLCBtX2xhc3RQYW5ZKDApCisgICAgLCBtX292ZXJQYW5Z
KDApCiB7CiAgICAgcmVnaXN0ZXJXZWJWaWV3V2luZG93Q2xhc3MoKTsKIApAQCAtNTIyLDEyICs1
MjgsMjAgQEAgTFJFU1VMVCBXZWJWaWV3Ojpvbkdlc3R1cmUoSFdORCBoV25kLCBVSQogewogICAg
IEFTU0VSVChHZXRHZXN0dXJlSW5mb1B0cigpKTsKICAgICBBU1NFUlQoQ2xvc2VHZXN0dXJlSW5m
b0hhbmRsZVB0cigpKTsKKyAgICBBU1NFUlQoVXBkYXRlUGFubmluZ0ZlZWRiYWNrUHRyKCkpOwor
ICAgIEFTU0VSVChCZWdpblBhbm5pbmdGZWVkYmFja1B0cigpKTsKKyAgICBBU1NFUlQoRW5kUGFu
bmluZ0ZlZWRiYWNrUHRyKCkpOwogCiAgICAgaWYgKCFHZXRHZXN0dXJlSW5mb1B0cigpIHx8ICFD
bG9zZUdlc3R1cmVJbmZvSGFuZGxlUHRyKCkpIHsKICAgICAgICAgaGFuZGxlZCA9IGZhbHNlOwog
ICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKKyAgICBpZiAoIVVwZGF0ZVBhbm5pbmdGZWVkYmFj
a1B0cigpIHx8ICFCZWdpblBhbm5pbmdGZWVkYmFja1B0cigpIHx8ICFFbmRQYW5uaW5nRmVlZGJh
Y2tQdHIoKSkgeworICAgICAgICBoYW5kbGVkID0gZmFsc2U7CisgICAgICAgIHJldHVybiAwOwor
ICAgIH0KKwogICAgIEhHRVNUVVJFSU5GTyBnZXN0dXJlSGFuZGxlID0gcmVpbnRlcnByZXRfY2Fz
dDxIR0VTVFVSRUlORk8+KGxQYXJhbSk7CiAgICAgR0VTVFVSRUlORk8gZ2kgPSB7MH07CiAgICAg
Z2kuY2JTaXplID0gc2l6ZW9mKEdFU1RVUkVJTkZPKTsKQEAgLTU1NywxMiArNTcxLDI0IEBAIExS
RVNVTFQgV2ViVmlldzo6b25HZXN0dXJlKEhXTkQgaFduZCwgVUkKICAgICAgICAgbV9sYXN0UGFu
WCA9IGN1cnJlbnRYOwogICAgICAgICBtX2xhc3RQYW5ZID0gY3VycmVudFk7CiAKLSAgICAgICAg
bV9wYWdlLT5nZXN0dXJlRGlkU2Nyb2xsKEludFNpemUoZGVsdGFYLCBkZWx0YVkpKTsKKyAgICAg
ICAgLy8gQ2FsY3VsYXRlIHRoZSBvdmVycGFuIGZvciB3aW5kb3cgYm91bmNlLgorICAgICAgICBt
X292ZXJQYW5ZIC09IGRlbHRhWTsKKworICAgICAgICBib29sIHNob3VsZEJvdW5jZVdpbmRvdyA9
IG1fcGFnZS0+Z2VzdHVyZURpZFNjcm9sbChJbnRTaXplKGRlbHRhWCwgZGVsdGFZKSk7CisKKyAg
ICAgICAgaWYgKGdpLmR3RmxhZ3MgJiBHRl9CRUdJTikgeworICAgICAgICAgICAgQmVnaW5QYW5u
aW5nRmVlZGJhY2tQdHIoKShtX3dpbmRvdyk7CisgICAgICAgICAgICBtX292ZXJQYW5ZID0gMDsK
KyAgICAgICAgfSBlbHNlIGlmIChnaS5kd0ZsYWdzICYgR0ZfRU5EKSB7CisgICAgICAgICAgICBF
bmRQYW5uaW5nRmVlZGJhY2tQdHIoKShtX3dpbmRvdywgdHJ1ZSk7CisgICAgICAgICAgICBtX292
ZXJQYW5ZID0gMDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZJWE1FOiBTdXBwb3J0IGhvcml6
b250YWwgd2luZG93IGJvdW5jZSAtIDxyZGFyOi8vcHJvYmxlbS83MTU4MzQ4Pi4KKyAgICAgICAg
Ly8gRklYTUU6IFdpbmRvdyBCb3VuY2UgZG9lc250JyB1bmRvIHVudGlsIHVzZXIgcmVsZWFzZXMg
dGhlaXIgZmluZ2VyIC0gPHJkYXI6Ly9wcm9ibGVtLzcxNTgzNDk+LgogCi0gICAgICAgIC8vIEZJ
WE1FIDxyZGFyOi8vcHJvYmxlbS85MjQ0MzY3PjogU3VwcG9ydCB3aW5kb3cgYm91bmNlIChib3Ro
IGhvcml6b250YWwgYW5kIHZlcnRpY2FsKSwgCi0gICAgICAgIC8vIGlmIHRoZSB1ZXNyIGhhcyBz
Y3JvbGxlZCBwYXN0IHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50LiBzY29sbEJ5UGFuR2VzdHVyZSB3
b3VsZCBuZWVkIHRvIAotICAgICAgICAvLyBiZSBhIHN5bmMgbWVzc2FnZSB0byBzdXBwb3J0IHRo
aXMsIGJlY2F1c2Ugd2Ugd291bGQgbmVlZCB0byBrbm93IGhvdyBmYXIgd2Ugc2Nyb2xsZWQgCi0g
ICAgICAgIC8vIHBhc3QgdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQuCisgICAgICAgIGlmIChzaG91
bGRCb3VuY2VXaW5kb3cpCisgICAgICAgICAgICBVcGRhdGVQYW5uaW5nRmVlZGJhY2tQdHIoKSht
X3dpbmRvdywgMCwgbV9vdmVyUGFuWSwgZ2kuZHdGbGFncyAmIEdGX0lORVJUSUEpOwogCiAgICAg
ICAgIENsb3NlR2VzdHVyZUluZm9IYW5kbGVQdHIoKShnZXN0dXJlSGFuZGxlKTsKIApJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmgJKHJldmlzaW9uIDgzMTI1KQorKysg
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAg
LTIyNCw2ICsyMjQsOCBAQCBwcml2YXRlOgogCiAgICAgaW50IG1fbGFzdFBhblg7CiAgICAgaW50
IG1fbGFzdFBhblk7CisKKyAgICBpbnQgbV9vdmVyUGFuWTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCShyZXZpc2lvbiA4MzEyNSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyNCw3ICszMjQsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBnZXRTZWxlY3RlZFRleHQoV1RGOjpTdHJpbmcmKTsKIAogICAgIHZvaWQgZ2VzdHVy
ZVdpbGxCZWdpbihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9pbnQsIGJvb2wmIGNhbkJlZ2lu
UGFubmluZyk7Ci0gICAgdm9pZCBnZXN0dXJlRGlkU2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFNp
emUmIHNpemUpOworICAgIHZvaWQgZ2VzdHVyZURpZFNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiBzaXplLCBib29sJiBhdEJlZ2lubmluZ09yRW5kT2ZEb2N1bWVudCk7CiAgICAgdm9pZCBn
ZXN0dXJlRGlkRW5kKCk7CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4JKHJldmlzaW9uIDgzMTI1
KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW4JKHdvcmtpbmcgY29weSkKQEAgLTIwMyw3ICsyMDMsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdl
IHsKICAgICBHZXRTZWxlY3RlZFRleHQoKSAtPiAoV1RGOjpTdHJpbmcgdGV4dCkKIAogICAgIEdl
c3R1cmVXaWxsQmVnaW4oV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQpIC0+IChib29sIGNhbkJlZ2lu
UGFubmluZykKLSAgICBHZXN0dXJlRGlkU2Nyb2xsKFdlYkNvcmU6OkludFNpemUgc2l6ZSkKKyAg
ICBHZXN0dXJlRGlkU2Nyb2xsKFdlYkNvcmU6OkludFNpemUgc2l6ZSkgLT4gKGJvb2wgYXRCZWdp
bm5pbmdPckVuZE9mU2Nyb2xsYWJsZURvY3VtZW50KQogICAgIEdlc3R1cmVEaWRFbmQoKQogI2Vu
ZGlmCiAjaWYgUExBVEZPUk0oUVQpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2Uvd2luL1dlYlBhZ2VXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5jcHAJKHJldmlzaW9uIDgzMTI1KQorKysg
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dpbi9XZWJQYWdlV2luLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDAxLDEyICs0MDEsMjggQEAgdm9pZCBXZWJQYWdlOjpnZXN0dXJlV2ls
bEJlZ2luKGNvbnN0IFdlYgogICAgIGNhbkJlZ2luUGFubmluZyA9IGZhbHNlOwogfQogCi12b2lk
IFdlYlBhZ2U6Omdlc3R1cmVEaWRTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSkK
K3ZvaWQgV2ViUGFnZTo6Z2VzdHVyZURpZFNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBz
aXplLCBib29sJiBhdEJlZ2lubmluZ09yRW5kT2ZTY3JvbGxhYmxlRG9jdW1lbnQpCiB7CisgICAg
YXRCZWdpbm5pbmdPckVuZE9mU2Nyb2xsYWJsZURvY3VtZW50ID0gZmFsc2U7CisKICAgICBpZiAo
IW1fZ2VzdHVyZVRhcmdldE5vZGUgfHwgIW1fZ2VzdHVyZVRhcmdldE5vZGUtPnJlbmRlcmVyKCkg
fHwgIW1fZ2VzdHVyZVRhcmdldE5vZGUtPnJlbmRlcmVyKCktPmVuY2xvc2luZ0xheWVyKCkpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIG1fZ2VzdHVyZVRhcmdldE5vZGUtPnJlbmRlcmVyKCktPmVu
Y2xvc2luZ0xheWVyKCktPnNjcm9sbEJ5UmVjdXJzaXZlbHkoc2l6ZS53aWR0aCgpLCBzaXplLmhl
aWdodCgpKTsKKworICAgIEZyYW1lKiBmcmFtZSA9IG1fcGFnZS0+bWFpbkZyYW1lKCk7CisgICAg
aWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU2Nyb2xsVmlldyogdmlldyA9IGZy
YW1lLT52aWV3KCk7CisgICAgaWYgKCF2aWV3KQorICAgICAgICByZXR1cm47CisKKyAgICBTY3Jv
bGxiYXIqIHZlcnRpY2FsU2Nyb2xsYmFyID0gdmlldy0+dmVydGljYWxTY3JvbGxiYXIoKTsKKyAg
ICBpZiAoIXZlcnRpY2FsU2Nyb2xsYmFyKQorICAgICAgICByZXR1cm47CisKKyAgICBhdEJlZ2lu
bmluZ09yRW5kT2ZTY3JvbGxhYmxlRG9jdW1lbnQgPSB2ZXJ0aWNhbFNjcm9sbGJhci0+Y3VycmVu
dFBvcygpID09IDAgfHwgdmVydGljYWxTY3JvbGxiYXItPmN1cnJlbnRQb3MoKSA+PSB2ZXJ0aWNh
bFNjcm9sbGJhci0+bWF4aW11bSgpOwogfQogCiB2b2lkIFdlYlBhZ2U6Omdlc3R1cmVEaWRFbmQo
KQo=
</data>
<flag name="review"
          id="81211"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>