<?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>110877</bug_id>
          
          <creation_ts>2013-02-26 06:05:41 -0800</creation_ts>
          <short_desc>[WK2][EFL] Encapsulate view states set-up within WebView</short_desc>
          <delta_ts>2013-04-05 01:18:58 -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>WebKit API</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>
          
          <blocked>107657</blocked>
    
    <blocked>107662</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mikhail Pozdnyakov">mikhail.pozdnyakov</reporter>
          <assigned_to name="Mikhail Pozdnyakov">mikhail.pozdnyakov</assigned_to>
          <cc>ap</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>kling</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>841937</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-02-26 06:05:41 -0800</bug_when>
    <thetext>SSIA. Outcome:
1) Reduces usage of EwkView inside WebView class.
2) Reduces direct usage of WebPageProxy inside EwkView class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841941</commentid>
    <comment_count>1</comment_count>
      <attachid>190270</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-02-26 06:19:08 -0800</bug_when>
    <thetext>Created attachment 190270
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841950</commentid>
    <comment_count>2</comment_count>
      <attachid>190270</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-26 06:37:41 -0800</bug_when>
    <thetext>Comment on attachment 190270
patch

LGTM, but are you sure the initial state is correct? any way to test it? Focus issues are hard to debug, so we better be certain</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854287</commentid>
    <comment_count>3</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-03-13 07:35:24 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 190270 [details])
&gt; LGTM, but are you sure the initial state is correct? any way to test it? Focus issues are hard to debug, so we better be certain

Initial states are set by evas callbacks while evas object creation, so the values will be certain anyway. However think, both isFocused and isVisible are better to be set to &apos;false&apos; initially indeed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854288</commentid>
    <comment_count>4</comment_count>
      <attachid>192920</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-03-13 07:37:42 -0700</bug_when>
    <thetext>Created attachment 192920
patch v2

Changed initial values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859262</commentid>
    <comment_count>5</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-03-20 04:47:19 -0700</bug_when>
    <thetext>Ping owner review/sign off.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>863045</commentid>
    <comment_count>6</comment_count>
      <attachid>192920</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-03-25 13:59:56 -0700</bug_when>
    <thetext>Comment on attachment 192920
patch v2

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

&gt; Source/WebKit2/UIProcess/API/C/efl/WKView.cpp:66
&gt; +void WKViewSetFocused(WKViewRef viewRef, bool flag)

Not a fan of &quot;flag&quot; for the argument name.

&gt; Source/WebKit2/UIProcess/API/C/efl/WKView.cpp:76
&gt; +void WKViewSetVisible(WKViewRef viewRef, bool flag)

Ditto.

SetIsVisible maybe?

&gt; Source/WebKit2/UIProcess/efl/WebView.cpp:95
&gt; +void WebView::setFocused(bool focused)
&gt; +{
&gt; +    if (m_focused == focused)
&gt; +        return;
&gt; +
&gt; +    m_focused = focused;
&gt; +    m_page-&gt;viewStateDidChange(WebPageProxy::ViewIsFocused | WebPageProxy::ViewWindowIsActive);
&gt; +}

setFocused(false) call viewStateDidChange(WebPageProxy::ViewIsFocused)???

&gt; Source/WebKit2/UIProcess/efl/WebView.cpp:104
&gt; +void WebView::setVisible(bool visible)
&gt; +{
&gt; +    if (m_visible == visible)
&gt; +        return;
&gt; +
&gt; +    m_visible = visible;
&gt; +    m_page-&gt;viewStateDidChange(WebPageProxy::ViewIsVisible);
&gt; +}

You duplicate states between WebPageProxy and WebView. This is a really bad idea.

&gt; Source/WebKit2/UIProcess/efl/WebView.cpp:305
&gt;  bool WebView::isViewFocused()
&gt;  {
&gt; -    return m_ewkView-&gt;isFocused();
&gt; +    return isFocused();
&gt;  }
&gt;  
&gt;  bool WebView::isViewVisible()
&gt;  {
&gt; -    return m_ewkView-&gt;isVisible();
&gt; +    return isVisible();
&gt;  }

Why don&apos;t you get rid of those APIs?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>863464</commentid>
    <comment_count>7</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-03-26 01:54:19 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 192920 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=192920&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/C/efl/WKView.cpp:66
&gt; &gt; +void WKViewSetFocused(WKViewRef viewRef, bool flag)
&gt; 
&gt; Not a fan of &quot;flag&quot; for the argument name.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/C/efl/WKView.cpp:76
&gt; &gt; +void WKViewSetVisible(WKViewRef viewRef, bool flag)
&gt; 
&gt; Ditto.
&gt; 
&gt; SetIsVisible maybe?

agree, SetIsVisible is better.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/efl/WebView.cpp:95
&gt; &gt; +void WebView::setFocused(bool focused)
&gt; &gt; +{
&gt; &gt; +    if (m_focused == focused)
&gt; &gt; +        return;
&gt; &gt; +
&gt; &gt; +    m_focused = focused;
&gt; &gt; +    m_page-&gt;viewStateDidChange(WebPageProxy::ViewIsFocused | WebPageProxy::ViewWindowIsActive);
&gt; &gt; +}
&gt; 
&gt; setFocused(false) call viewStateDidChange(WebPageProxy::ViewIsFocused)???
right, this code is in page proxy is invoked:

    if (flags &amp; ViewIsFocused)     m_process-&gt;send(Messages::WebPage::SetFocused(m_pageClient-&gt;isViewFocused()), m_pageID);

so it just makes page proxy to query state from page client (web view itself).

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/efl/WebView.cpp:104
&gt; &gt; +void WebView::setVisible(bool visible)
&gt; &gt; +{
&gt; &gt; +    if (m_visible == visible)
&gt; &gt; +        return;
&gt; &gt; +
&gt; &gt; +    m_visible = visible;
&gt; &gt; +    m_page-&gt;viewStateDidChange(WebPageProxy::ViewIsVisible);
&gt; &gt; +}
&gt; 
&gt; You duplicate states between WebPageProxy and WebView. This is a really bad idea.

there is no duplication, as page client is supposed to hold the state.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/efl/WebView.cpp:305
&gt; &gt;  bool WebView::isViewFocused()
&gt; &gt;  {
&gt; &gt; -    return m_ewkView-&gt;isFocused();
&gt; &gt; +    return isFocused();
&gt; &gt;  }
&gt; &gt;  
&gt; &gt;  bool WebView::isViewVisible()
&gt; &gt;  {
&gt; &gt; -    return m_ewkView-&gt;isVisible();
&gt; &gt; +    return isVisible();
&gt; &gt;  }
&gt; 
&gt; Why don&apos;t you get rid of those APIs?
mm.. isViewVisible and isViewFocused are mandatory things to have for page client.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868890</commentid>
    <comment_count>8</comment_count>
      <attachid>196406</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-04-03 14:02:58 -0700</bug_when>
    <thetext>Created attachment 196406
patch v3

Changed API setter function names.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>869355</commentid>
    <comment_count>9</comment_count>
      <attachid>196406</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-04-04 14:14:48 -0700</bug_when>
    <thetext>Comment on attachment 196406
patch v3

Rejecting attachment 196406 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-commit-queue.appspot.com&apos;, &apos;--bot-id=gce-cq-03&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 196406, &apos;--port=chromium-xvfb&apos;]&quot; exit_code: 2 cwd: /mnt/git/webkit-commit-queue

Last 500 characters of output:
ebView.cpp
Hunk #2 succeeded at 104 with fuzz 1 (offset 7 lines).
Hunk #3 succeeded at 321 (offset 13 lines).
patching file Source/WebKit2/UIProcess/efl/WebView.h
Hunk #1 succeeded at 60 with fuzz 2 (offset 3 lines).
Hunk #2 FAILED at 186.
1 out of 2 hunks FAILED -- saving rejects to file Source/WebKit2/UIProcess/efl/WebView.h.rej

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, &apos;Benjamin Poulain&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

Full output: http://webkit-commit-queue.appspot.com/results/17460137</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>869622</commentid>
    <comment_count>10</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-04-05 01:18:58 -0700</bug_when>
    <thetext>Committed r147723: &lt;http://trac.webkit.org/changeset/147723&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190270</attachid>
            <date>2013-02-26 06:19:08 -0800</date>
            <delta_ts>2013-03-13 07:37:42 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug110877</filename>
            <type>text/plain</type>
            <size>8750</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDE4YTE4MzVmNjQzYWZkYjkxZjU2NzI0NGNhNDRhMzc3NWFiZjI2N2QKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VHVlIEZlYiAyNiAxNjoxNDoyNCAyMDEzICswMjAwCgogICAgYnVnMTEwODc3CgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IDNkODY5NTQuLjc2YjIyNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAxMy0w
Mi0yNiAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4K
KworICAgICAgICBbV0syXVtFRkxdIEVuY2Fwc3VsYXRlIHZpZXcgc3RhdGVzIHNldC11cCB3aXRo
aW4gV2ViVmlldworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTEwODc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVmlldyBzdGF0ZXMgc2V0LXVwIGlzIGVuY2Fwc3VsYXRlZCB3aXRoaW4gV2ViVmlldy4gVGhp
cyBjaGFuZ2UKKyAgICAgICAgcmVkdWNlcyBib3RoIHVzYWdlIG9mIEV3a1ZpZXcgaW5zaWRlIFdl
YlZpZXcgY2xhc3MgYW5kIHVzYWdlIG9mCisgICAgICAgIFdlYlBhZ2VQcm94eSBpbnNpZGUgRXdr
VmlldyBjbGFzcy4KKworICAgICAgICBOZXcgV0tWaWV3IEFQSSB3YXMgYWRkZWQgc28gdGhhdCBF
d2tWaWV3IGNhbiBkZWZpbmUgd2hldGhlciBvciBub3QKKyAgICAgICAgdGhlIHZpZXcgaXMgdmlz
aWJsZSBhbmQgZm9jdXNlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3
LmNwcDoKKyAgICAgICAgKFdLVmlld0lzRm9jdXNlZCk6CisgICAgICAgIChXS1ZpZXdTZXRGb2N1
c2VkKToKKyAgICAgICAgKFdLVmlld0lzVmlzaWJsZSk6CisgICAgICAgIChXS1ZpZXdTZXRWaXNp
YmxlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwOgorICAgICAgICAoOjpoYW5kbGVFdmVudCk6
CisgICAgICAgIChFd2tWaWV3OjpoYW5kbGVFdmFzT2JqZWN0U2hvdyk6CisgICAgICAgIChFd2tW
aWV3OjpoYW5kbGVFd2tWaWV3Rm9jdXNJbik6CisgICAgICAgIChFd2tWaWV3OjpoYW5kbGVFd2tW
aWV3Rm9jdXNPdXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYlZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3OjpXZWJWaWV3KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6c2V0Rm9jdXNlZCk6Cisg
ICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3OjpzZXRWaXNpYmxlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6aXNWaWV3Rm9jdXNlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXc6OmlzVmlld1Zpc2libGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2Vi
Vmlldy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Ojppc0ZvY3VzZWQpOgorICAgICAgICAo
V2ViVmlldyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXc6OmlzVmlzaWJsZSk6CisKIDIwMTMt
MDItMjYgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5AZGlnaWEuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQgdHJpdmlhbCAhRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpIGJ1aWxk
IGZpeApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1Zp
ZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3BwCmlu
ZGV4IDE3NzkxMWYuLjBhZTAwYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9lZmwvV0tWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvZWZsL1dLVmlldy5jcHAKQEAgLTU4LDYgKzU4LDI2IEBAIHZvaWQgV0tWaWV3U2V0Vmlld0Ns
aWVudChXS1ZpZXdSZWYgdmlld1JlZiwgY29uc3QgV0tWaWV3Q2xpZW50KiBjbGllbnQpCiAgICAg
dG9JbXBsKHZpZXdSZWYpLT5pbml0aWFsaXplQ2xpZW50KGNsaWVudCk7CiB9CiAKK2Jvb2wgV0tW
aWV3SXNGb2N1c2VkKFdLVmlld1JlZiB2aWV3UmVmKQoreworICAgIHJldHVybiB0b0ltcGwodmll
d1JlZiktPmlzRm9jdXNlZCgpOworfQorCit2b2lkIFdLVmlld1NldEZvY3VzZWQoV0tWaWV3UmVm
IHZpZXdSZWYsIGJvb2wgZmxhZykKK3sKKyAgICB0b0ltcGwodmlld1JlZiktPnNldEZvY3VzZWQo
ZmxhZyk7Cit9CisKK2Jvb2wgV0tWaWV3SXNWaXNpYmxlKFdLVmlld1JlZiB2aWV3UmVmKQorewor
ICAgIHJldHVybiB0b0ltcGwodmlld1JlZiktPmlzVmlzaWJsZSgpOworfQorCit2b2lkIFdLVmll
d1NldFZpc2libGUoV0tWaWV3UmVmIHZpZXdSZWYsIGJvb2wgZmxhZykKK3sKKyAgICB0b0ltcGwo
dmlld1JlZiktPnNldFZpc2libGUoZmxhZyk7Cit9CisKIHZvaWQgV0tWaWV3U2V0VXNlclZpZXdw
b3J0VHJhbnNsYXRpb24oV0tWaWV3UmVmIHZpZXdSZWYsIGRvdWJsZSB0eCwgZG91YmxlIHR5KQog
ewogICAgIHRvSW1wbCh2aWV3UmVmKS0+c2V0VXNlclZpZXdwb3J0VHJhbnNsYXRpb24odHgsIHR5
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5oCmluZGV4IDcz
NDU1NjYuLmJjZDk5Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9lZmwvV0tWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9X
S1ZpZXcuaApAQCAtNjAsNiArNjAsMTIgQEAgV0tfRVhQT1JUIFdLVmlld1JlZiBXS1ZpZXdDcmVh
dGVXaXRoRml4ZWRMYXlvdXQoRXZhcyogY2FudmFzLCBXS0NvbnRleHRSZWYgY29udGUKIFdLX0VY
UE9SVCB2b2lkIFdLVmlld0luaXRpYWxpemUoV0tWaWV3UmVmKTsKIFdLX0VYUE9SVCB2b2lkIFdL
Vmlld1NldFZpZXdDbGllbnQoV0tWaWV3UmVmLCBjb25zdCBXS1ZpZXdDbGllbnQqKTsKIAorV0tf
RVhQT1JUIGJvb2wgV0tWaWV3SXNGb2N1c2VkKFdLVmlld1JlZik7CitXS19FWFBPUlQgdm9pZCBX
S1ZpZXdTZXRGb2N1c2VkKFdLVmlld1JlZiwgYm9vbCk7CisKK1dLX0VYUE9SVCBib29sIFdLVmll
d0lzVmlzaWJsZShXS1ZpZXdSZWYpOworV0tfRVhQT1JUIHZvaWQgV0tWaWV3U2V0VmlzaWJsZShX
S1ZpZXdSZWYsIGJvb2wpOworCiBXS19FWFBPUlQgdm9pZCBXS1ZpZXdTZXRVc2VyVmlld3BvcnRU
cmFuc2xhdGlvbihXS1ZpZXdSZWYsIGRvdWJsZSB0eCwgZG91YmxlIHR5KTsKIFdLX0VYUE9SVCBX
S1BvaW50IFdLVmlld1VzZXJWaWV3cG9ydFRvQ29udGVudHMoV0tWaWV3UmVmLCBXS1BvaW50KTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcAppbmRleCA4
ZjM0MzliLi5jNDcxNWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9Fd2tWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9F
d2tWaWV3LmNwcApAQCAtMjEzLDE3ICsyMTMsMTQgQEAgdGVtcGxhdGUgPD4KIHZvaWQgRXdrVmll
d0V2ZW50SGFuZGxlcjxFVkFTX0NBTExCQUNLX1NIT1c+OjpoYW5kbGVFdmVudCh2b2lkKiBkYXRh
LCBFdmFzKiwgRXZhc19PYmplY3QqLCB2b2lkKikKIHsKICAgICBFd2tfVmlld19TbWFydF9EYXRh
KiBzbWFydERhdGEgPSBzdGF0aWNfY2FzdDxFd2tfVmlld19TbWFydF9EYXRhKj4oZGF0YSk7Ci0g
ICAgdG9Fd2tWaWV3KHNtYXJ0RGF0YSktPnBhZ2UoKS0+dmlld1N0YXRlRGlkQ2hhbmdlKFdlYlBh
Z2VQcm94eTo6Vmlld0lzVmlzaWJsZSk7CisgICAgV0tWaWV3U2V0VmlzaWJsZSh0b0V3a1ZpZXco
c21hcnREYXRhKS0+d2tWaWV3KCksIHRydWUpOwogfQogCiB0ZW1wbGF0ZSA8Pgogdm9pZCBFd2tW
aWV3RXZlbnRIYW5kbGVyPEVWQVNfQ0FMTEJBQ0tfSElERT46OmhhbmRsZUV2ZW50KHZvaWQqIGRh
dGEsIEV2YXMqLCBFdmFzX09iamVjdCosIHZvaWQqKQogewogICAgIEV3a19WaWV3X1NtYXJ0X0Rh
dGEqIHNtYXJ0RGF0YSA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1NtYXJ0X0RhdGEqPihkYXRhKTsK
LQotICAgIC8vIFdlIG5lZWQgdG8gcGFzcyBWaWV3SXNWaXNpYmxlIGhlcmUuIHZpZXdTdGF0ZURp
ZENoYW5nZSgpIGl0c2VsZiBpcyByZXNwb25zaWJsZSBmb3IgYWN0dWFsbHkgc2V0dGluZyB0aGUg
dmlzaWJpbGl0eSB0byBWaXNpYmxlIG9yIEhpZGRlbgotICAgIC8vIGRlcGVuZGluZyBvbiB3aGF0
IFdlYlBhZ2VQcm94eTo6aXNWaWV3VmlzaWJsZSgpIHJldHVybnMsIHRoaXMgc2ltcGx5IHRyaWdn
ZXJzIHRoZSBwcm9jZXNzLgotICAgIHRvRXdrVmlldyhzbWFydERhdGEpLT5wYWdlKCktPnZpZXdT
dGF0ZURpZENoYW5nZShXZWJQYWdlUHJveHk6OlZpZXdJc1Zpc2libGUpOworICAgIFdLVmlld1Nl
dFZpc2libGUodG9Fd2tWaWV3KHNtYXJ0RGF0YSktPndrVmlldygpLCBmYWxzZSk7CiB9CiAKIC8v
IEV3a1ZpZXcgaW1wbGVtZW50YXRpb24uCkBAIC02MTUsMTYgKzYxMiw2IEBAIHZvaWQgRXdrVmll
dzo6c2V0SW1hZ2VEYXRhKHZvaWQqIGltYWdlRGF0YSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAg
ICBldmFzX29iamVjdF9pbWFnZV9kYXRhX2NvcHlfc2V0KHNkLT5pbWFnZSwgaW1hZ2VEYXRhKTsK
IH0KIAotYm9vbCBFd2tWaWV3Ojppc0ZvY3VzZWQoKSBjb25zdAotewotICAgIHJldHVybiBldmFz
X29iamVjdF9mb2N1c19nZXQobV9ldmFzT2JqZWN0KTsKLX0KLQotYm9vbCBFd2tWaWV3Ojppc1Zp
c2libGUoKSBjb25zdAotewotICAgIHJldHVybiBldmFzX29iamVjdF92aXNpYmxlX2dldChtX2V2
YXNPYmplY3QpOwotfQotCiBjb25zdCBjaGFyKiBFd2tWaWV3Ojp0aXRsZSgpIGNvbnN0CiB7CiAg
ICAgbV90aXRsZSA9IFdLRWluYVNoYXJlZFN0cmluZyhBZG9wdFdLLCBXS1BhZ2VDb3B5VGl0bGUo
d2tQYWdlKCkpKTsKQEAgLTExNDgsMTMgKzExMzUsMTMgQEAgdm9pZCBFd2tWaWV3OjpoYW5kbGVF
dmFzT2JqZWN0Q29sb3JTZXQoRXZhc19PYmplY3QqIGV2YXNPYmplY3QsIGludCByZWQsIGludCBn
cmUKIAogRWluYV9Cb29sIEV3a1ZpZXc6OmhhbmRsZUV3a1ZpZXdGb2N1c0luKEV3a19WaWV3X1Nt
YXJ0X0RhdGEqIHNtYXJ0RGF0YSkKIHsKLSAgICB0b0V3a1ZpZXcoc21hcnREYXRhKS0+cGFnZSgp
LT52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViUGFnZVByb3h5OjpWaWV3SXNGb2N1c2VkIHwgV2ViUGFn
ZVByb3h5OjpWaWV3V2luZG93SXNBY3RpdmUpOworICAgIFdLVmlld1NldEZvY3VzZWQodG9Fd2tW
aWV3KHNtYXJ0RGF0YSktPndrVmlldygpLCB0cnVlKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAog
RWluYV9Cb29sIEV3a1ZpZXc6OmhhbmRsZUV3a1ZpZXdGb2N1c091dChFd2tfVmlld19TbWFydF9E
YXRhKiBzbWFydERhdGEpCiB7Ci0gICAgdG9Fd2tWaWV3KHNtYXJ0RGF0YSktPnBhZ2UoKS0+dmll
d1N0YXRlRGlkQ2hhbmdlKFdlYlBhZ2VQcm94eTo6Vmlld0lzRm9jdXNlZCB8IFdlYlBhZ2VQcm94
eTo6Vmlld1dpbmRvd0lzQWN0aXZlKTsKKyAgICBXS1ZpZXdTZXRGb2N1c2VkKHRvRXdrVmlldyhz
bWFydERhdGEpLT53a1ZpZXcoKSwgZmFsc2UpOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmgKaW5kZXggNzFkYWQyZC4uNTA3
MmI1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmll
dy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaApAQCAt
MTI1LDkgKzEyNSw2IEBAIHB1YmxpYzoKICAgICBFd2tXaW5kb3dGZWF0dXJlcyogd2luZG93RmVh
dHVyZXMoKTsKICAgICBXZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXIqIHBhZ2VWaWV3cG9y
dENvbnRyb2xsZXIoKSB7IHJldHVybiBtX3BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuZ2V0KCk7IH0K
IAotICAgIGJvb2wgaXNGb2N1c2VkKCkgY29uc3Q7Ci0gICAgYm9vbCBpc1Zpc2libGUoKSBjb25z
dDsKLQogICAgIHZvaWQgc2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGUpOwogICAgIGZs
b2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
ZWZsL1dlYlZpZXcuY3BwCmluZGV4IDJhM2FhOWMuLjEzODkxNTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2VmbC9XZWJWaWV3LmNwcApAQCAtNTQsNiArNTQsOCBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIFdlYlZpZXc6OldlYlZpZXcoV2ViQ29udGV4dCogY29udGV4dCwgV2ViUGFnZUdyb3Vw
KiBwYWdlR3JvdXAsIEV3a1ZpZXcqIGV3a1ZpZXcpCiAgICAgOiBtX2V3a1ZpZXcoZXdrVmlldykK
ICAgICAsIG1fcGFnZShjb250ZXh0LT5jcmVhdGVXZWJQYWdlKHRoaXMsIHBhZ2VHcm91cCkpCisg
ICAgLCBtX2ZvY3VzZWQodHJ1ZSkKKyAgICAsIG1fdmlzaWJsZSh0cnVlKQogewogICAgIG1fcGFn
ZS0+cGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCktPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdF
bmFibGVkKHRydWUpOwogICAgIG1fcGFnZS0+cGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCktPnNl
dEZvcmNlQ29tcG9zaXRpbmdNb2RlKHRydWUpOwpAQCAtODMsNiArODUsMjQgQEAgdm9pZCBXZWJW
aWV3Ojppbml0aWFsaXplKCkKICAgICAgICAgc2NlbmUtPnNldEFjdGl2ZSh0cnVlKTsKIH0KIAor
dm9pZCBXZWJWaWV3OjpzZXRGb2N1c2VkKGJvb2wgZm9jdXNlZCkKK3sKKyAgICBpZiAobV9mb2N1
c2VkID09IGZvY3VzZWQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZm9jdXNlZCA9IGZvY3Vz
ZWQ7CisgICAgbV9wYWdlLT52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViUGFnZVByb3h5OjpWaWV3SXNG
b2N1c2VkIHwgV2ViUGFnZVByb3h5OjpWaWV3V2luZG93SXNBY3RpdmUpOworfQorCit2b2lkIFdl
YlZpZXc6OnNldFZpc2libGUoYm9vbCB2aXNpYmxlKQoreworICAgIGlmIChtX3Zpc2libGUgPT0g
dmlzaWJsZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV92aXNpYmxlID0gdmlzaWJsZTsKKyAg
ICBtX3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShXZWJQYWdlUHJveHk6OlZpZXdJc1Zpc2libGUp
OworfQorCiB2b2lkIFdlYlZpZXc6OnNldFVzZXJWaWV3cG9ydFRyYW5zbGF0aW9uKGRvdWJsZSB0
eCwgZG91YmxlIHR5KQogewogICAgIG1fdXNlclZpZXdwb3J0VHJhbnNmb3JtID0gVHJhbnNmb3Jt
YXRpb25NYXRyaXgoKS50cmFuc2xhdGUodHgsIHR5KTsKQEAgLTI4MSwxMiArMzAxLDEyIEBAIGJv
b2wgV2ViVmlldzo6aXNWaWV3V2luZG93QWN0aXZlKCkKIAogYm9vbCBXZWJWaWV3Ojppc1ZpZXdG
b2N1c2VkKCkKIHsKLSAgICByZXR1cm4gbV9ld2tWaWV3LT5pc0ZvY3VzZWQoKTsKKyAgICByZXR1
cm4gaXNGb2N1c2VkKCk7CiB9CiAKIGJvb2wgV2ViVmlldzo6aXNWaWV3VmlzaWJsZSgpCiB7Ci0g
ICAgcmV0dXJuIG1fZXdrVmlldy0+aXNWaXNpYmxlKCk7CisgICAgcmV0dXJuIGlzVmlzaWJsZSgp
OwogfQogCiBib29sIFdlYlZpZXc6OmlzVmlld0luV2luZG93KCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2VmbC9XZWJWaWV3LmgKaW5kZXggNDJjOGQxMy4uNmYyMjg0MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2VmbC9XZWJWaWV3LmgKQEAgLTU1LDYgKzU1LDEyIEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgaW5pdGlhbGl6ZSgpOwogCisgICAgYm9vbCBpc0ZvY3VzZWQoKSBjb25zdCB7IHJldHVy
biBtX2ZvY3VzZWQ7IH0KKyAgICB2b2lkIHNldEZvY3VzZWQoYm9vbCk7CisKKyAgICBib29sIGlz
VmlzaWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlzaWJsZTsgfQorICAgIHZvaWQgc2V0VmlzaWJs
ZShib29sKTsKKwogICAgIHZvaWQgc2V0VXNlclZpZXdwb3J0VHJhbnNsYXRpb24oZG91YmxlIHR4
LCBkb3VibGUgdHkpOwogICAgIFdlYkNvcmU6OkludFBvaW50IHVzZXJWaWV3cG9ydFRvQ29udGVu
dHMoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBjb25zdDsKIApAQCAtMTc5LDYgKzE4NSw4IEBA
IHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYlBhZ2VQcm94eT4gbV9wYWdlOwogICAgIERlZmF1bHRV
bmRvQ29udHJvbGxlciBtX3VuZG9Db250cm9sbGVyOwogICAgIFdlYkNvcmU6OlRyYW5zZm9ybWF0
aW9uTWF0cml4IG1fdXNlclZpZXdwb3J0VHJhbnNmb3JtOworICAgIGJvb2wgbV9mb2N1c2VkOwor
ICAgIGJvb2wgbV92aXNpYmxlOwogfTsKIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192920</attachid>
            <date>2013-03-13 07:37:42 -0700</date>
            <delta_ts>2013-04-03 14:02:58 -0700</delta_ts>
            <desc>patch v2</desc>
            <filename>bug110877_v2</filename>
            <type>text/plain</type>
            <size>8721</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDZkNzMzMjIxZmQ4YzA2MWRkNmZhZjMzZTViMGNjZjkyZTNjNjlmOTkKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VHVlIEZlYiAyNiAxNjoxNDoyNCAyMDEzICswMjAwCgogICAgYnVnMTEwODc3CgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IDYzZTY5OWMuLjZjZDMzNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAxMy0w
Mi0yNiAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4K
KworICAgICAgICBbV0syXVtFRkxdIEVuY2Fwc3VsYXRlIHZpZXcgc3RhdGVzIHNldC11cCB3aXRo
aW4gV2ViVmlldworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTEwODc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVmlldyBzdGF0ZXMgc2V0LXVwIGlzIGVuY2Fwc3VsYXRlZCB3aXRoaW4gV2ViVmlldy4gVGhp
cyBjaGFuZ2UKKyAgICAgICAgcmVkdWNlcyBib3RoIHVzYWdlIG9mIEV3a1ZpZXcgaW5zaWRlIFdl
YlZpZXcgY2xhc3MgYW5kIHVzYWdlIG9mCisgICAgICAgIFdlYlBhZ2VQcm94eSBpbnNpZGUgRXdr
VmlldyBjbGFzcy4KKworICAgICAgICBOZXcgV0tWaWV3IEFQSSB3YXMgYWRkZWQgc28gdGhhdCBF
d2tWaWV3IGNhbiBkZWZpbmUgd2hldGhlciBvciBub3QKKyAgICAgICAgdGhlIHZpZXcgaXMgdmlz
aWJsZSBhbmQgZm9jdXNlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3
LmNwcDoKKyAgICAgICAgKFdLVmlld0lzRm9jdXNlZCk6CisgICAgICAgIChXS1ZpZXdTZXRGb2N1
c2VkKToKKyAgICAgICAgKFdLVmlld0lzVmlzaWJsZSk6CisgICAgICAgIChXS1ZpZXdTZXRWaXNp
YmxlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwOgorICAgICAgICAoOjpoYW5kbGVFdmVudCk6
CisgICAgICAgIChFd2tWaWV3OjpoYW5kbGVFdmFzT2JqZWN0U2hvdyk6CisgICAgICAgIChFd2tW
aWV3OjpoYW5kbGVFd2tWaWV3Rm9jdXNJbik6CisgICAgICAgIChFd2tWaWV3OjpoYW5kbGVFd2tW
aWV3Rm9jdXNPdXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYlZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3OjpXZWJWaWV3KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6c2V0Rm9jdXNlZCk6Cisg
ICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3OjpzZXRWaXNpYmxlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6aXNWaWV3Rm9jdXNlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXc6OmlzVmlld1Zpc2libGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2Vi
Vmlldy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Ojppc0ZvY3VzZWQpOgorICAgICAgICAo
V2ViVmlldyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXc6OmlzVmlzaWJsZSk6CisKIDIwMTMt
MDMtMTMgIEpvY2VseW4gVHVyY290dGUgIDxqb2NlbHluLnR1cmNvdHRlQGRpZ2lhLmNvbT4KIAog
ICAgICAgICBbV0syXVtRdF0gUmVncmVzc2lvbigxNDU1MTcpIFdlYlByb2Nlc3MgYXNzZXJ0cyBp
biBkZWJ1ZyBidWlsZCBvbiBXZWJLaXRUZXN0UnVubmVyIHN0YXJ0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5jcHAKaW5kZXggOWRkNjkxMS4uZTkzMWYwMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3LmNwcApAQCAt
NTgsNiArNTgsMjYgQEAgdm9pZCBXS1ZpZXdTZXRWaWV3Q2xpZW50KFdLVmlld1JlZiB2aWV3UmVm
LCBjb25zdCBXS1ZpZXdDbGllbnQqIGNsaWVudCkKICAgICB0b0ltcGwodmlld1JlZiktPmluaXRp
YWxpemVDbGllbnQoY2xpZW50KTsKIH0KIAorYm9vbCBXS1ZpZXdJc0ZvY3VzZWQoV0tWaWV3UmVm
IHZpZXdSZWYpCit7CisgICAgcmV0dXJuIHRvSW1wbCh2aWV3UmVmKS0+aXNGb2N1c2VkKCk7Cit9
CisKK3ZvaWQgV0tWaWV3U2V0Rm9jdXNlZChXS1ZpZXdSZWYgdmlld1JlZiwgYm9vbCBmbGFnKQor
eworICAgIHRvSW1wbCh2aWV3UmVmKS0+c2V0Rm9jdXNlZChmbGFnKTsKK30KKworYm9vbCBXS1Zp
ZXdJc1Zpc2libGUoV0tWaWV3UmVmIHZpZXdSZWYpCit7CisgICAgcmV0dXJuIHRvSW1wbCh2aWV3
UmVmKS0+aXNWaXNpYmxlKCk7Cit9CisKK3ZvaWQgV0tWaWV3U2V0VmlzaWJsZShXS1ZpZXdSZWYg
dmlld1JlZiwgYm9vbCBmbGFnKQoreworICAgIHRvSW1wbCh2aWV3UmVmKS0+c2V0VmlzaWJsZShm
bGFnKTsKK30KKwogdm9pZCBXS1ZpZXdTZXRVc2VyVmlld3BvcnRUcmFuc2xhdGlvbihXS1ZpZXdS
ZWYgdmlld1JlZiwgZG91YmxlIHR4LCBkb3VibGUgdHkpCiB7CiAgICAgdG9JbXBsKHZpZXdSZWYp
LT5zZXRVc2VyVmlld3BvcnRUcmFuc2xhdGlvbih0eCwgdHkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3LmgKaW5kZXggYTcwOWI0OC4uZDZhMWNkZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5oCkBAIC02NCw2ICs2NCwx
MiBAQCBXS19FWFBPUlQgV0tWaWV3UmVmIFdLVmlld0NyZWF0ZVdpdGhGaXhlZExheW91dChFdmFz
KiBjYW52YXMsIFdLQ29udGV4dFJlZiBjb250ZQogV0tfRVhQT1JUIHZvaWQgV0tWaWV3SW5pdGlh
bGl6ZShXS1ZpZXdSZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tWaWV3U2V0Vmlld0NsaWVudChXS1Zp
ZXdSZWYsIGNvbnN0IFdLVmlld0NsaWVudCopOwogCitXS19FWFBPUlQgYm9vbCBXS1ZpZXdJc0Zv
Y3VzZWQoV0tWaWV3UmVmKTsKK1dLX0VYUE9SVCB2b2lkIFdLVmlld1NldEZvY3VzZWQoV0tWaWV3
UmVmLCBib29sKTsKKworV0tfRVhQT1JUIGJvb2wgV0tWaWV3SXNWaXNpYmxlKFdLVmlld1JlZik7
CitXS19FWFBPUlQgdm9pZCBXS1ZpZXdTZXRWaXNpYmxlKFdLVmlld1JlZiwgYm9vbCk7CisKIFdL
X0VYUE9SVCB2b2lkIFdLVmlld1NldFVzZXJWaWV3cG9ydFRyYW5zbGF0aW9uKFdLVmlld1JlZiwg
ZG91YmxlIHR4LCBkb3VibGUgdHkpOwogV0tfRVhQT1JUIFdLUG9pbnQgV0tWaWV3VXNlclZpZXdw
b3J0VG9Db250ZW50cyhXS1ZpZXdSZWYsIFdLUG9pbnQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCmluZGV4IDA3ZDcyNjYuLmJkZTc1MmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCkBAIC0yMTMsMTcg
KzIxMywxNCBAQCB0ZW1wbGF0ZSA8Pgogdm9pZCBFd2tWaWV3RXZlbnRIYW5kbGVyPEVWQVNfQ0FM
TEJBQ0tfU0hPVz46OmhhbmRsZUV2ZW50KHZvaWQqIGRhdGEsIEV2YXMqLCBFdmFzX09iamVjdCos
IHZvaWQqKQogewogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSA9IHN0YXRpY19j
YXN0PEV3a19WaWV3X1NtYXJ0X0RhdGEqPihkYXRhKTsKLSAgICB0b0V3a1ZpZXcoc21hcnREYXRh
KS0+cGFnZSgpLT52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViUGFnZVByb3h5OjpWaWV3SXNWaXNpYmxl
KTsKKyAgICBXS1ZpZXdTZXRWaXNpYmxlKHRvRXdrVmlldyhzbWFydERhdGEpLT53a1ZpZXcoKSwg
dHJ1ZSk7CiB9CiAKIHRlbXBsYXRlIDw+CiB2b2lkIEV3a1ZpZXdFdmVudEhhbmRsZXI8RVZBU19D
QUxMQkFDS19ISURFPjo6aGFuZGxlRXZlbnQodm9pZCogZGF0YSwgRXZhcyosIEV2YXNfT2JqZWN0
Kiwgdm9pZCopCiB7CiAgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhID0gc3RhdGlj
X2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGRhdGEpOwotCi0gICAgLy8gV2UgbmVlZCB0byBw
YXNzIFZpZXdJc1Zpc2libGUgaGVyZS4gdmlld1N0YXRlRGlkQ2hhbmdlKCkgaXRzZWxmIGlzIHJl
c3BvbnNpYmxlIGZvciBhY3R1YWxseSBzZXR0aW5nIHRoZSB2aXNpYmlsaXR5IHRvIFZpc2libGUg
b3IgSGlkZGVuCi0gICAgLy8gZGVwZW5kaW5nIG9uIHdoYXQgV2ViUGFnZVByb3h5Ojppc1ZpZXdW
aXNpYmxlKCkgcmV0dXJucywgdGhpcyBzaW1wbHkgdHJpZ2dlcnMgdGhlIHByb2Nlc3MuCi0gICAg
dG9Fd2tWaWV3KHNtYXJ0RGF0YSktPnBhZ2UoKS0+dmlld1N0YXRlRGlkQ2hhbmdlKFdlYlBhZ2VQ
cm94eTo6Vmlld0lzVmlzaWJsZSk7CisgICAgV0tWaWV3U2V0VmlzaWJsZSh0b0V3a1ZpZXcoc21h
cnREYXRhKS0+d2tWaWV3KCksIGZhbHNlKTsKIH0KIAogLy8gRXdrVmlldyBpbXBsZW1lbnRhdGlv
bi4KQEAgLTYyNCwxNiArNjIxLDYgQEAgdm9pZCBFd2tWaWV3OjpzZXRXaW5kb3dHZW9tZXRyeShj
b25zdCBXS1JlY3QmIHJlY3QpCiAgICAgfQogfQogCi1ib29sIEV3a1ZpZXc6OmlzRm9jdXNlZCgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIGV2YXNfb2JqZWN0X2ZvY3VzX2dldChtX2V2YXNPYmplY3Qp
OwotfQotCi1ib29sIEV3a1ZpZXc6OmlzVmlzaWJsZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGV2
YXNfb2JqZWN0X3Zpc2libGVfZ2V0KG1fZXZhc09iamVjdCk7Ci19Ci0KIGNvbnN0IGNoYXIqIEV3
a1ZpZXc6OnRpdGxlKCkgY29uc3QKIHsKICAgICBtX3RpdGxlID0gV0tFaW5hU2hhcmVkU3RyaW5n
KEFkb3B0V0ssIFdLUGFnZUNvcHlUaXRsZSh3a1BhZ2UoKSkpOwpAQCAtMTE1NywxMyArMTE0NCwx
MyBAQCB2b2lkIEV3a1ZpZXc6OmhhbmRsZUV2YXNPYmplY3RDb2xvclNldChFdmFzX09iamVjdCog
ZXZhc09iamVjdCwgaW50IHJlZCwgaW50IGdyZQogCiBFaW5hX0Jvb2wgRXdrVmlldzo6aGFuZGxl
RXdrVmlld0ZvY3VzSW4oRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhKQogewotICAgIHRv
RXdrVmlldyhzbWFydERhdGEpLT5wYWdlKCktPnZpZXdTdGF0ZURpZENoYW5nZShXZWJQYWdlUHJv
eHk6OlZpZXdJc0ZvY3VzZWQgfCBXZWJQYWdlUHJveHk6OlZpZXdXaW5kb3dJc0FjdGl2ZSk7Cisg
ICAgV0tWaWV3U2V0Rm9jdXNlZCh0b0V3a1ZpZXcoc21hcnREYXRhKS0+d2tWaWV3KCksIHRydWUp
OwogICAgIHJldHVybiB0cnVlOwogfQogCiBFaW5hX0Jvb2wgRXdrVmlldzo6aGFuZGxlRXdrVmll
d0ZvY3VzT3V0KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKIHsKLSAgICB0b0V3a1Zp
ZXcoc21hcnREYXRhKS0+cGFnZSgpLT52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViUGFnZVByb3h5OjpW
aWV3SXNGb2N1c2VkIHwgV2ViUGFnZVByb3h5OjpWaWV3V2luZG93SXNBY3RpdmUpOworICAgIFdL
Vmlld1NldEZvY3VzZWQodG9Fd2tWaWV3KHNtYXJ0RGF0YSktPndrVmlldygpLCBmYWxzZSk7CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL0V3a1ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3
a1ZpZXcuaAppbmRleCBhNmI1NzA5Li43NDNlNmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvRXdrVmlldy5oCkBAIC0xMjUsOSArMTI1LDYgQEAgcHVibGljOgogICAgIEV3
a1dpbmRvd0ZlYXR1cmVzKiB3aW5kb3dGZWF0dXJlcygpOwogICAgIFdlYktpdDo6UGFnZVZpZXdw
b3J0Q29udHJvbGxlciogcGFnZVZpZXdwb3J0Q29udHJvbGxlcigpIHsgcmV0dXJuIG1fcGFnZVZp
ZXdwb3J0Q29udHJvbGxlci5nZXQoKTsgfQogCi0gICAgYm9vbCBpc0ZvY3VzZWQoKSBjb25zdDsK
LSAgICBib29sIGlzVmlzaWJsZSgpIGNvbnN0OwotCiAgICAgdm9pZCBzZXREZXZpY2VTY2FsZUZh
Y3RvcihmbG9hdCBzY2FsZSk7CiAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlldy5jcHAKaW5kZXggNWMyYjNiYS4u
MDZhYjRjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcuY3BwCkBAIC01
NCw2ICs1NCw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogV2ViVmlldzo6V2ViVmlldyhXZWJDb250
ZXh0KiBjb250ZXh0LCBXZWJQYWdlR3JvdXAqIHBhZ2VHcm91cCwgRXdrVmlldyogZXdrVmlldykK
ICAgICA6IG1fZXdrVmlldyhld2tWaWV3KQogICAgICwgbV9wYWdlKGNvbnRleHQtPmNyZWF0ZVdl
YlBhZ2UodGhpcywgcGFnZUdyb3VwKSkKKyAgICAsIG1fZm9jdXNlZChmYWxzZSkKKyAgICAsIG1f
dmlzaWJsZShmYWxzZSkKIHsKICAgICBtX3BhZ2UtPnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygp
LT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCh0cnVlKTsKICAgICBtX3BhZ2UtPnBh
Z2VHcm91cCgpLT5wcmVmZXJlbmNlcygpLT5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZSh0cnVlKTsK
QEAgLTgzLDYgKzg1LDI0IEBAIHZvaWQgV2ViVmlldzo6aW5pdGlhbGl6ZSgpCiAgICAgICAgIHNj
ZW5lLT5zZXRBY3RpdmUodHJ1ZSk7CiB9CiAKK3ZvaWQgV2ViVmlldzo6c2V0Rm9jdXNlZChib29s
IGZvY3VzZWQpCit7CisgICAgaWYgKG1fZm9jdXNlZCA9PSBmb2N1c2VkKQorICAgICAgICByZXR1
cm47CisKKyAgICBtX2ZvY3VzZWQgPSBmb2N1c2VkOworICAgIG1fcGFnZS0+dmlld1N0YXRlRGlk
Q2hhbmdlKFdlYlBhZ2VQcm94eTo6Vmlld0lzRm9jdXNlZCB8IFdlYlBhZ2VQcm94eTo6Vmlld1dp
bmRvd0lzQWN0aXZlKTsKK30KKwordm9pZCBXZWJWaWV3OjpzZXRWaXNpYmxlKGJvb2wgdmlzaWJs
ZSkKK3sKKyAgICBpZiAobV92aXNpYmxlID09IHZpc2libGUpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fdmlzaWJsZSA9IHZpc2libGU7CisgICAgbV9wYWdlLT52aWV3U3RhdGVEaWRDaGFuZ2Uo
V2ViUGFnZVByb3h5OjpWaWV3SXNWaXNpYmxlKTsKK30KKwogdm9pZCBXZWJWaWV3OjpzZXRVc2Vy
Vmlld3BvcnRUcmFuc2xhdGlvbihkb3VibGUgdHgsIGRvdWJsZSB0eSkKIHsKICAgICBtX3VzZXJW
aWV3cG9ydFRyYW5zZm9ybSA9IFRyYW5zZm9ybWF0aW9uTWF0cml4KCkudHJhbnNsYXRlKHR4LCB0
eSk7CkBAIC0yNzYsMTIgKzI5NiwxMiBAQCBib29sIFdlYlZpZXc6OmlzVmlld1dpbmRvd0FjdGl2
ZSgpCiAKIGJvb2wgV2ViVmlldzo6aXNWaWV3Rm9jdXNlZCgpCiB7Ci0gICAgcmV0dXJuIG1fZXdr
Vmlldy0+aXNGb2N1c2VkKCk7CisgICAgcmV0dXJuIGlzRm9jdXNlZCgpOwogfQogCiBib29sIFdl
YlZpZXc6OmlzVmlld1Zpc2libGUoKQogewotICAgIHJldHVybiBtX2V3a1ZpZXctPmlzVmlzaWJs
ZSgpOworICAgIHJldHVybiBpc1Zpc2libGUoKTsKIH0KIAogYm9vbCBXZWJWaWV3Ojppc1ZpZXdJ
bldpbmRvdygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZp
ZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlldy5oCmluZGV4IDlmNWY2
ZjQuLmEwODc5NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2Vi
Vmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlldy5oCkBAIC01
NSw2ICs1NSwxMiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGluaXRpYWxpemUoKTsKIAorICAgIGJv
b2wgaXNGb2N1c2VkKCkgY29uc3QgeyByZXR1cm4gbV9mb2N1c2VkOyB9CisgICAgdm9pZCBzZXRG
b2N1c2VkKGJvb2wpOworCisgICAgYm9vbCBpc1Zpc2libGUoKSBjb25zdCB7IHJldHVybiBtX3Zp
c2libGU7IH0KKyAgICB2b2lkIHNldFZpc2libGUoYm9vbCk7CisKICAgICB2b2lkIHNldFVzZXJW
aWV3cG9ydFRyYW5zbGF0aW9uKGRvdWJsZSB0eCwgZG91YmxlIHR5KTsKICAgICBXZWJDb3JlOjpJ
bnRQb2ludCB1c2VyVmlld3BvcnRUb0NvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jikg
Y29uc3Q7CiAKQEAgLTE3OSw2ICsxODUsOCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJQYWdl
UHJveHk+IG1fcGFnZTsKICAgICBEZWZhdWx0VW5kb0NvbnRyb2xsZXIgbV91bmRvQ29udHJvbGxl
cjsKICAgICBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX3VzZXJWaWV3cG9ydFRyYW5z
Zm9ybTsKKyAgICBib29sIG1fZm9jdXNlZDsKKyAgICBib29sIG1fdmlzaWJsZTsKIH07CiAKIH0K
</data>
<flag name="review"
          id="214299"
          type_id="1"
          status="-"
          setter="benjamin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>196406</attachid>
            <date>2013-04-03 14:02:58 -0700</date>
            <delta_ts>2013-04-04 14:14:48 -0700</delta_ts>
            <desc>patch v3</desc>
            <filename>bug110877_v3</filename>
            <type>text/plain</type>
            <size>8941</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IGJiM2U3Y2RmMzFmNGJmYTg2ZTc1NzQ1MGJlZmVjMzZlYzhmMmQ3ZDEKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VHVlIEZlYiAyNiAxNjoxNDoyNCAyMDEzICswMjAwCgogICAgYnVnMTEwODc3CgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IDc3OWZjMDUuLjc5YWIyNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAxMy0w
Mi0yNiAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4K
KworICAgICAgICBbV0syXVtFRkxdIEVuY2Fwc3VsYXRlIHZpZXcgc3RhdGVzIHNldC11cCB3aXRo
aW4gV2ViVmlldworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTEwODc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVmlldyBzdGF0ZXMgc2V0LXVwIGlzIGVuY2Fwc3VsYXRlZCB3aXRoaW4gV2ViVmlldy4gVGhp
cyBjaGFuZ2UKKyAgICAgICAgcmVkdWNlcyBib3RoIHVzYWdlIG9mIEV3a1ZpZXcgaW5zaWRlIFdl
YlZpZXcgY2xhc3MgYW5kIHVzYWdlIG9mCisgICAgICAgIFdlYlBhZ2VQcm94eSBpbnNpZGUgRXdr
VmlldyBjbGFzcy4KKworICAgICAgICBOZXcgV0tWaWV3IEFQSSB3YXMgYWRkZWQgc28gdGhhdCBF
d2tWaWV3IGNhbiBkZWZpbmUgd2hldGhlciBvciBub3QKKyAgICAgICAgdGhlIHZpZXcgaXMgdmlz
aWJsZSBhbmQgZm9jdXNlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3
LmNwcDoKKyAgICAgICAgKFdLVmlld0lzRm9jdXNlZCk6CisgICAgICAgIChXS1ZpZXdTZXRJc0Zv
Y3VzZWQpOgorICAgICAgICAoV0tWaWV3SXNWaXNpYmxlKToKKyAgICAgICAgKFdLVmlld1NldElz
VmlzaWJsZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcDoKKyAgICAgICAgKDo6aGFuZGxlRXZl
bnQpOgorICAgICAgICAoRXdrVmlldzo6aGFuZGxlRXZhc09iamVjdFNob3cpOgorICAgICAgICAo
RXdrVmlldzo6aGFuZGxlRXdrVmlld0ZvY3VzSW4pOgorICAgICAgICAoRXdrVmlldzo6aGFuZGxl
RXdrVmlld0ZvY3VzT3V0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlldzo6V2ViVmlldyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXc6OnNldEZvY3VzZWQp
OgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6c2V0VmlzaWJs
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXc6OmlzVmlld0ZvY3VzZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3Ojppc1ZpZXdWaXNpYmxlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZs
L1dlYlZpZXcuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6aXNGb2N1c2VkKToKKyAgICAg
ICAgKFdlYlZpZXcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Ojppc1Zpc2libGUpOgorCiAy
MDEzLTA0LTAyICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAg
ICAgQmUgbW9yZSByb2J1c3QgYWdhaW5zdCBlbXB0eSBtZXNzYWdlIHJlY2VpdmVyIG5hbWVzIGlu
IGluY29taW5nIG1lc3NhZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvZWZsL1dLVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZs
L1dLVmlldy5jcHAKaW5kZXggNjkxZjZhMS4uYTY4ZGI0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3LmNwcApAQCAtNDUsNiArNDUsMjYgQEAgdm9pZCBX
S1ZpZXdTZXRWaWV3Q2xpZW50KFdLVmlld1JlZiB2aWV3UmVmLCBjb25zdCBXS1ZpZXdDbGllbnQq
IGNsaWVudCkKICAgICB0b0ltcGwodmlld1JlZiktPmluaXRpYWxpemVDbGllbnQoY2xpZW50KTsK
IH0KIAorYm9vbCBXS1ZpZXdJc0ZvY3VzZWQoV0tWaWV3UmVmIHZpZXdSZWYpCit7CisgICAgcmV0
dXJuIHRvSW1wbCh2aWV3UmVmKS0+aXNGb2N1c2VkKCk7Cit9CisKK3ZvaWQgV0tWaWV3U2V0SXNG
b2N1c2VkKFdLVmlld1JlZiB2aWV3UmVmLCBib29sIGlzRm9jdXNlZCkKK3sKKyAgICB0b0ltcGwo
dmlld1JlZiktPnNldEZvY3VzZWQoaXNGb2N1c2VkKTsKK30KKworYm9vbCBXS1ZpZXdJc1Zpc2li
bGUoV0tWaWV3UmVmIHZpZXdSZWYpCit7CisgICAgcmV0dXJuIHRvSW1wbCh2aWV3UmVmKS0+aXNW
aXNpYmxlKCk7Cit9CisKK3ZvaWQgV0tWaWV3U2V0SXNWaXNpYmxlKFdLVmlld1JlZiB2aWV3UmVm
LCBib29sIGlzVmlzaWJsZSkKK3sKKyAgICB0b0ltcGwodmlld1JlZiktPnNldFZpc2libGUoaXNW
aXNpYmxlKTsKK30KKwogdm9pZCBXS1ZpZXdTZXRVc2VyVmlld3BvcnRUcmFuc2xhdGlvbihXS1Zp
ZXdSZWYgdmlld1JlZiwgZG91YmxlIHR4LCBkb3VibGUgdHkpCiB7CiAgICAgdG9JbXBsKHZpZXdS
ZWYpLT5zZXRVc2VyVmlld3BvcnRUcmFuc2xhdGlvbih0eCwgdHkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3LmgKaW5kZXggY2EzNGJhNC4uZGI5MGZjNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5oCkBAIC01NCw2ICs1
NCwxMiBAQCBXS19FWFBPUlQgV0tWaWV3UmVmIFdLVmlld0NyZWF0ZShXS0NvbnRleHRSZWYgY29u
dGV4dCwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwKQogV0tfRVhQT1JUIHZvaWQgV0tWaWV3SW5p
dGlhbGl6ZShXS1ZpZXdSZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tWaWV3U2V0Vmlld0NsaWVudChX
S1ZpZXdSZWYsIGNvbnN0IFdLVmlld0NsaWVudCopOwogCitXS19FWFBPUlQgYm9vbCBXS1ZpZXdJ
c0ZvY3VzZWQoV0tWaWV3UmVmKTsKK1dLX0VYUE9SVCB2b2lkIFdLVmlld1NldElzRm9jdXNlZChX
S1ZpZXdSZWYsIGJvb2wpOworCitXS19FWFBPUlQgYm9vbCBXS1ZpZXdJc1Zpc2libGUoV0tWaWV3
UmVmKTsKK1dLX0VYUE9SVCB2b2lkIFdLVmlld1NldElzVmlzaWJsZShXS1ZpZXdSZWYsIGJvb2wp
OworCiBXS19FWFBPUlQgdm9pZCBXS1ZpZXdTZXRVc2VyVmlld3BvcnRUcmFuc2xhdGlvbihXS1Zp
ZXdSZWYsIGRvdWJsZSB0eCwgZG91YmxlIHR5KTsKIFdLX0VYUE9SVCBXS1BvaW50IFdLVmlld1Vz
ZXJWaWV3cG9ydFRvQ29udGVudHMoV0tWaWV3UmVmLCBXS1BvaW50KTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcAppbmRleCAwNjJhMzkyLi5kMWMzOWIy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcApAQCAt
MjE0LDE3ICsyMTQsMTQgQEAgdGVtcGxhdGUgPD4KIHZvaWQgRXdrVmlld0V2ZW50SGFuZGxlcjxF
VkFTX0NBTExCQUNLX1NIT1c+OjpoYW5kbGVFdmVudCh2b2lkKiBkYXRhLCBFdmFzKiwgRXZhc19P
YmplY3QqLCB2b2lkKikKIHsKICAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEgPSBz
dGF0aWNfY2FzdDxFd2tfVmlld19TbWFydF9EYXRhKj4oZGF0YSk7Ci0gICAgdG9Fd2tWaWV3KHNt
YXJ0RGF0YSktPnBhZ2UoKS0+dmlld1N0YXRlRGlkQ2hhbmdlKFdlYlBhZ2VQcm94eTo6Vmlld0lz
VmlzaWJsZSk7CisgICAgV0tWaWV3U2V0SXNWaXNpYmxlKHRvRXdrVmlldyhzbWFydERhdGEpLT53
a1ZpZXcoKSwgdHJ1ZSk7CiB9CiAKIHRlbXBsYXRlIDw+CiB2b2lkIEV3a1ZpZXdFdmVudEhhbmRs
ZXI8RVZBU19DQUxMQkFDS19ISURFPjo6aGFuZGxlRXZlbnQodm9pZCogZGF0YSwgRXZhcyosIEV2
YXNfT2JqZWN0Kiwgdm9pZCopCiB7CiAgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRh
ID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGRhdGEpOwotCi0gICAgLy8gV2Ug
bmVlZCB0byBwYXNzIFZpZXdJc1Zpc2libGUgaGVyZS4gdmlld1N0YXRlRGlkQ2hhbmdlKCkgaXRz
ZWxmIGlzIHJlc3BvbnNpYmxlIGZvciBhY3R1YWxseSBzZXR0aW5nIHRoZSB2aXNpYmlsaXR5IHRv
IFZpc2libGUgb3IgSGlkZGVuCi0gICAgLy8gZGVwZW5kaW5nIG9uIHdoYXQgV2ViUGFnZVByb3h5
Ojppc1ZpZXdWaXNpYmxlKCkgcmV0dXJucywgdGhpcyBzaW1wbHkgdHJpZ2dlcnMgdGhlIHByb2Nl
c3MuCi0gICAgdG9Fd2tWaWV3KHNtYXJ0RGF0YSktPnBhZ2UoKS0+dmlld1N0YXRlRGlkQ2hhbmdl
KFdlYlBhZ2VQcm94eTo6Vmlld0lzVmlzaWJsZSk7CisgICAgV0tWaWV3U2V0SXNWaXNpYmxlKHRv
RXdrVmlldyhzbWFydERhdGEpLT53a1ZpZXcoKSwgZmFsc2UpOwogfQogCiB0eXBlZGVmIEhhc2hN
YXA8V0tQYWdlUmVmLCBFdmFzX09iamVjdCo+IFdLUGFnZVRvRXZhc09iamVjdE1hcDsKQEAgLTYz
MywxNiArNjMwLDYgQEAgdm9pZCBFd2tWaWV3OjpzZXRXaW5kb3dHZW9tZXRyeShjb25zdCBXS1Jl
Y3QmIHJlY3QpCiAgICAgfQogfQogCi1ib29sIEV3a1ZpZXc6OmlzRm9jdXNlZCgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIGV2YXNfb2JqZWN0X2ZvY3VzX2dldChtX2V2YXNPYmplY3QpOwotfQotCi1i
b29sIEV3a1ZpZXc6OmlzVmlzaWJsZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGV2YXNfb2JqZWN0
X3Zpc2libGVfZ2V0KG1fZXZhc09iamVjdCk7Ci19Ci0KIGNvbnN0IGNoYXIqIEV3a1ZpZXc6OnRp
dGxlKCkgY29uc3QKIHsKICAgICBtX3RpdGxlID0gV0tFaW5hU2hhcmVkU3RyaW5nKEFkb3B0V0ss
IFdLUGFnZUNvcHlUaXRsZSh3a1BhZ2UoKSkpOwpAQCAtMTE3MSwxMyArMTE1OCwxMyBAQCB2b2lk
IEV3a1ZpZXc6OmhhbmRsZUV2YXNPYmplY3RDb2xvclNldChFdmFzX09iamVjdCogZXZhc09iamVj
dCwgaW50IHJlZCwgaW50IGdyZQogCiBFaW5hX0Jvb2wgRXdrVmlldzo6aGFuZGxlRXdrVmlld0Zv
Y3VzSW4oRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhKQogewotICAgIHRvRXdrVmlldyhz
bWFydERhdGEpLT5wYWdlKCktPnZpZXdTdGF0ZURpZENoYW5nZShXZWJQYWdlUHJveHk6OlZpZXdJ
c0ZvY3VzZWQgfCBXZWJQYWdlUHJveHk6OlZpZXdXaW5kb3dJc0FjdGl2ZSk7CisgICAgV0tWaWV3
U2V0SXNGb2N1c2VkKHRvRXdrVmlldyhzbWFydERhdGEpLT53a1ZpZXcoKSwgdHJ1ZSk7CiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKIEVpbmFfQm9vbCBFd2tWaWV3OjpoYW5kbGVFd2tWaWV3Rm9jdXNP
dXQoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhKQogewotICAgIHRvRXdrVmlldyhzbWFy
dERhdGEpLT5wYWdlKCktPnZpZXdTdGF0ZURpZENoYW5nZShXZWJQYWdlUHJveHk6OlZpZXdJc0Zv
Y3VzZWQgfCBXZWJQYWdlUHJveHk6OlZpZXdXaW5kb3dJc0FjdGl2ZSk7CisgICAgV0tWaWV3U2V0
SXNGb2N1c2VkKHRvRXdrVmlldyhzbWFydERhdGEpLT53a1ZpZXcoKSwgZmFsc2UpOwogICAgIHJl
dHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9Fd2tWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3
LmgKaW5kZXggMDFlYzU0OC4uMmZhZDVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL0V3a1ZpZXcuaApAQCAtMTE5LDkgKzExOSw2IEBAIHB1YmxpYzoKICAgICBFd2tXaW5k
b3dGZWF0dXJlcyogd2luZG93RmVhdHVyZXMoKTsKICAgICBXZWJLaXQ6OlBhZ2VWaWV3cG9ydENv
bnRyb2xsZXIqIHBhZ2VWaWV3cG9ydENvbnRyb2xsZXIoKSB7IHJldHVybiBtX3BhZ2VWaWV3cG9y
dENvbnRyb2xsZXIuZ2V0KCk7IH0KIAotICAgIGJvb2wgaXNGb2N1c2VkKCkgY29uc3Q7Ci0gICAg
Ym9vbCBpc1Zpc2libGUoKSBjb25zdDsKLQogICAgIHZvaWQgc2V0RGV2aWNlU2NhbGVGYWN0b3Io
ZmxvYXQgc2NhbGUpOwogICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Q7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcuY3BwCmluZGV4IGU1ZTgwYzIuLjE2YThl
ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlldy5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmNwcApAQCAtNTQsNiAr
NTQsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIFdlYlZpZXc6OldlYlZpZXcoV2ViQ29udGV4dCog
Y29udGV4dCwgV2ViUGFnZUdyb3VwKiBwYWdlR3JvdXApCiAgICAgOiBtX2V3a1ZpZXcoMCkKICAg
ICAsIG1fcGFnZShjb250ZXh0LT5jcmVhdGVXZWJQYWdlKHRoaXMsIHBhZ2VHcm91cCkpCisgICAg
LCBtX2ZvY3VzZWQoZmFsc2UpCisgICAgLCBtX3Zpc2libGUoZmFsc2UpCiB7CiAgICAgbV9wYWdl
LT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS0+c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Vu
YWJsZWQodHJ1ZSk7CiAgICAgbV9wYWdlLT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS0+c2V0
Rm9yY2VDb21wb3NpdGluZ01vZGUodHJ1ZSk7CkBAIC05NSw2ICs5NywyNCBAQCB2b2lkIFdlYlZp
ZXc6OmluaXRpYWxpemUoKQogICAgICAgICBzY2VuZS0+c2V0QWN0aXZlKHRydWUpOwogfQogCit2
b2lkIFdlYlZpZXc6OnNldEZvY3VzZWQoYm9vbCBmb2N1c2VkKQoreworICAgIGlmIChtX2ZvY3Vz
ZWQgPT0gZm9jdXNlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9mb2N1c2VkID0gZm9jdXNl
ZDsKKyAgICBtX3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShXZWJQYWdlUHJveHk6OlZpZXdJc0Zv
Y3VzZWQgfCBXZWJQYWdlUHJveHk6OlZpZXdXaW5kb3dJc0FjdGl2ZSk7Cit9CisKK3ZvaWQgV2Vi
Vmlldzo6c2V0VmlzaWJsZShib29sIHZpc2libGUpCit7CisgICAgaWYgKG1fdmlzaWJsZSA9PSB2
aXNpYmxlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Zpc2libGUgPSB2aXNpYmxlOworICAg
IG1fcGFnZS0+dmlld1N0YXRlRGlkQ2hhbmdlKFdlYlBhZ2VQcm94eTo6Vmlld0lzVmlzaWJsZSk7
Cit9CisKIHZvaWQgV2ViVmlldzo6c2V0VXNlclZpZXdwb3J0VHJhbnNsYXRpb24oZG91YmxlIHR4
LCBkb3VibGUgdHkpCiB7CiAgICAgbV91c2VyVmlld3BvcnRUcmFuc2Zvcm0gPSBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCgpLnRyYW5zbGF0ZSh0eCwgdHkpOwpAQCAtMjg4LDIwICszMDgsMTIgQEAgYm9v
bCBXZWJWaWV3Ojppc1ZpZXdXaW5kb3dBY3RpdmUoKQogCiBib29sIFdlYlZpZXc6OmlzVmlld0Zv
Y3VzZWQoKQogewotICAgIC8vIEZJWE1FOiBVbm5lZWRlZCBhZnRlciB3ZWJraXQub3JnL2IvMTEw
ODc3Ci0gICAgaWYgKCFtX2V3a1ZpZXcpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJl
dHVybiBtX2V3a1ZpZXctPmlzRm9jdXNlZCgpOworICAgIHJldHVybiBpc0ZvY3VzZWQoKTsKIH0K
IAogYm9vbCBXZWJWaWV3Ojppc1ZpZXdWaXNpYmxlKCkKIHsKLSAgICAvLyBGSVhNRTogVW5uZWVk
ZWQgYWZ0ZXIgd2Via2l0Lm9yZy9iLzExMDg3NwotICAgIGlmICghbV9ld2tWaWV3KQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gbV9ld2tWaWV3LT5pc1Zpc2libGUoKTsKKyAg
ICByZXR1cm4gaXNWaXNpYmxlKCk7CiB9CiAKIGJvb2wgV2ViVmlldzo6aXNWaWV3SW5XaW5kb3co
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcuaAppbmRleCA3ODE2MDQyLi4xNmQ1
ZGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcuaApAQCAtNTcsNiArNTcs
MTIgQEAgcHVibGljOgogCiAgICAgdm9pZCBpbml0aWFsaXplKCk7CiAKKyAgICBib29sIGlzRm9j
dXNlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9jdXNlZDsgfQorICAgIHZvaWQgc2V0Rm9jdXNlZChi
b29sKTsKKworICAgIGJvb2wgaXNWaXNpYmxlKCkgY29uc3QgeyByZXR1cm4gbV92aXNpYmxlOyB9
CisgICAgdm9pZCBzZXRWaXNpYmxlKGJvb2wpOworCiAgICAgdm9pZCBzZXRVc2VyVmlld3BvcnRU
cmFuc2xhdGlvbihkb3VibGUgdHgsIGRvdWJsZSB0eSk7CiAgICAgV2ViQ29yZTo6SW50UG9pbnQg
dXNlclZpZXdwb3J0VG9Db250ZW50cyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIGNvbnN0Owog
CkBAIC0xODAsNiArMTg2LDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViUGFnZVByb3h5PiBt
X3BhZ2U7CiAgICAgRGVmYXVsdFVuZG9Db250cm9sbGVyIG1fdW5kb0NvbnRyb2xsZXI7CiAgICAg
V2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXggbV91c2VyVmlld3BvcnRUcmFuc2Zvcm07Cisg
ICAgYm9vbCBtX2ZvY3VzZWQ7CisgICAgYm9vbCBtX3Zpc2libGU7CiB9OwogCiB9Cg==
</data>
<flag name="review"
          id="218470"
          type_id="1"
          status="+"
          setter="benjamin"
    />
    <flag name="commit-queue"
          id="218613"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>