<?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>109946</bug_id>
          
          <creation_ts>2013-02-15 08:18:59 -0800</creation_ts>
          <short_desc>[Chromium] Add support for emulating legacy Android WebView &apos;setInitialScale&apos; method</short_desc>
          <delta_ts>2013-02-22 08:48:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Android</rep_platform>
          <op_sys>Android</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mikhail Naganov">mnaganov</reporter>
          <assigned_to name="Mikhail Naganov">mnaganov</assigned_to>
          <cc>abarth</cc>
    
    <cc>aelias</cc>
    
    <cc>benm</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>wjmaclean</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>834043</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2013-02-15 08:18:59 -0800</bug_when>
    <thetext>Android WebView has a method called &apos;setInitialScale&apos; which allows to override any page scale that WebKit would apply based on the scaling logic or page&apos;s viewport meta tag. The setting is effective on next page load.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834047</commentid>
    <comment_count>1</comment_count>
      <attachid>188578</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2013-02-15 08:23:16 -0800</bug_when>
    <thetext>Created attachment 188578
Patch

Adam, Alexandre, another WebView blast, please take a look. I&apos;m open to any proposals about naming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834089</commentid>
    <comment_count>2</comment_count>
      <attachid>188578</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-15 09:13:19 -0800</bug_when>
    <thetext>Comment on attachment 188578
Patch

Attachment 188578 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16580885

New failing tests:
platform/chromium/fast/repaint/fixed-layout-360x240.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834117</commentid>
    <comment_count>3</comment_count>
      <attachid>188590</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2013-02-15 09:49:40 -0800</bug_when>
    <thetext>Created attachment 188590
Fixed layout test failure</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834137</commentid>
    <comment_count>4</comment_count>
      <attachid>188590</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-15 10:15:20 -0800</bug_when>
    <thetext>Comment on attachment 188590
Fixed layout test failure

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

&gt; Source/WebKit/chromium/public/WebView.h:234
&gt; +    virtual void setInitialPageScaleFactorPermanently(float) = 0;

How does this function relate to setPageScaleFactorLimits?  It seems similar in the sense that it bounds what the viewport meta tag can do, but just in a different parameter.

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:3831
&gt; +    } else if (isFixedLayoutModeEnabled()) {
&gt; +        computePageScaleFactorLimits();
&gt;      }

No { } in WebKit style.

&gt; Source/WebKit/chromium/src/WebViewImpl.h:762
&gt;      float m_minimumPageScaleFactor;
&gt;      float m_maximumPageScaleFactor;
&gt;      float m_initialPageScaleFactor;
&gt; +    bool m_initialPageScaleFactorIsPermanent;
&gt;      bool m_ignoreViewportTagMaximumScale;
&gt;      bool m_pageScaleFactorIsSet;

Should we move all this page-scale related state into a sub object?  The relationship between all these floats and bools is getting pretty complex.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834138</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-15 10:16:28 -0800</bug_when>
    <thetext>This patch seems fine.  I suspect aelias has thoughts on naming.  This patch makes me think we should factor all this page-scale related state and logic into a separate class, but we don&apos;t necessarily need to do that in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834214</commentid>
    <comment_count>6</comment_count>
      <attachid>188590</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2013-02-15 11:32:08 -0800</bug_when>
    <thetext>Comment on attachment 188590
Fixed layout test failure

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

How about:

virtual void setInitialPageScaleOverride(float) = 0;

and in WebViewImpl:
float m_initialPageScaleFactorOverride;

(instead of the bool; we can also continue to keep separately the viewport-tag value but just prioritize the other one in computePageScaleFactorLimits).

&gt;&gt; Source/WebKit/chromium/public/WebView.h:234
&gt;&gt; +    virtual void setInitialPageScaleFactorPermanently(float) = 0;
&gt; 
&gt; How does this function relate to setPageScaleFactorLimits?  It seems similar in the sense that it bounds what the viewport meta tag can do, but just in a different parameter.

We may want to call it &quot;setInitialPageScaleOverride&quot;.

On a side topic, note that setPageScaleFactorLimits() as called from the embedder does *not* bound what the viewport tag can do.  It&apos;s currently only used when viewport tag is disabled.  I&apos;m considering removing setPageScaleFactorLimits from WebView.h.

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2959
&gt; +    m_pageScaleFactorIsSet = false;

Are you sure you want to clear m_pageScaleFactorIsSet?  You say you want it to take effect on the next page load, but this may make it happen earlier than that.  I recommend not touching m_pageScaleFactorIsSet based on your description.

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:3829
&gt; +    } else if (isFixedLayoutModeEnabled()) {

Please delete this clause and put || isFixedLayoutModeEnabled() in the earlier if() statement.

Also, one of your unit tests should have viewportEnabled == false since you care about this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834320</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-15 13:19:48 -0800</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835409</commentid>
    <comment_count>8</comment_count>
      <attachid>188868</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2013-02-18 06:02:13 -0800</bug_when>
    <thetext>Created attachment 188868
Comments addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835415</commentid>
    <comment_count>9</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2013-02-18 06:08:10 -0800</bug_when>
    <thetext>Thanks for comments!

(In reply to comment #6)
&gt; (From update of attachment 188590 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=188590&amp;action=review
&gt; 
&gt; How about:
&gt; 
&gt; virtual void setInitialPageScaleOverride(float) = 0;
&gt; 
&gt; and in WebViewImpl:
&gt; float m_initialPageScaleFactorOverride;
&gt; 
&gt; (instead of the bool; we can also continue to keep separately the viewport-tag value but just prioritize the other one in computePageScaleFactorLimits).
&gt;

Done. The code has become easier indeed, thanks for the suggestion!
 
&gt; &gt;&gt; Source/WebKit/chromium/public/WebView.h:234
&gt; &gt;&gt; +    virtual void setInitialPageScaleFactorPermanently(float) = 0;
&gt; &gt; 
&gt; &gt; How does this function relate to setPageScaleFactorLimits?  It seems similar in the sense that it bounds what the viewport meta tag can do, but just in a different parameter.
&gt; 
&gt; We may want to call it &quot;setInitialPageScaleOverride&quot;.
&gt; 
&gt; On a side topic, note that setPageScaleFactorLimits() as called from the embedder does *not* bound what the viewport tag can do.  It&apos;s currently only used when viewport tag is disabled.  I&apos;m considering removing setPageScaleFactorLimits from WebView.h.
&gt; 
&gt; &gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2959
&gt; &gt; +    m_pageScaleFactorIsSet = false;
&gt; 
&gt; Are you sure you want to clear m_pageScaleFactorIsSet?  You say you want it to take effect on the next page load, but this may make it happen earlier than that.  I recommend not touching m_pageScaleFactorIsSet based on your description.
&gt;

Not quite. I need the change to be effective at least on the next page load, if it will be applied sooner, that&apos;s not a problem. I don&apos;t see a better way of making the renderer to apply the changed override on the next reload of the same page other than resetting the `m_pageScaleFactorIsSet&apos; flag.
 
&gt; &gt; Source/WebKit/chromium/src/WebViewImpl.cpp:3829
&gt; &gt; +    } else if (isFixedLayoutModeEnabled()) {
&gt; 
&gt; Please delete this clause and put || isFixedLayoutModeEnabled() in the earlier if() statement.
&gt; 

This is what I did in my first patch, and this broke a layout test, because during the call to `dispatchViewportPropertiesDidChange&apos; fixed layout size was recalculated. Although, I changed the code, please take a look.

&gt; Also, one of your unit tests should have viewportEnabled == false since you care about this case.

Yes, it is there--in `setInitialPageScaleFactorPermanently&apos; I&apos;m not setting viewportEnabled to `true&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835699</commentid>
    <comment_count>10</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2013-02-18 12:56:05 -0800</bug_when>
    <thetext>This mixed &quot;fixed layout on&quot;, &quot;viewport off&quot; mode is getting confusing, let&apos;s revisit that before going further with this.  I think we can avoid this mixed mode entirely now.

In https://bugs.webkit.org/show_bug.cgi?id=106021 you had to take the approach that you did because WebViewImpl::size() was in physical pixels, but it&apos;s now in DIP pixels.  So I think we can change dispatchViewportPropertiesDidChange() to early-return if !viewportEnabled() like it did before.  And if UseWideViewport is set, you can disable both enableViewport and enableFixedLayoutMode.  Then we can avoid all the if(fixedLayoutMode()).

If a WebFrameTest is failing because it specifies only fixed-layout mode, you may need to change it to enable viewport as well.

Can you give that a try and see if it works as you expect?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836387</commentid>
    <comment_count>11</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2013-02-19 07:44:20 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; This mixed &quot;fixed layout on&quot;, &quot;viewport off&quot; mode is getting confusing, let&apos;s revisit that before going further with this.  I think we can avoid this mixed mode entirely now.
&gt; 
&gt; In https://bugs.webkit.org/show_bug.cgi?id=106021 you had to take the approach that you did because WebViewImpl::size() was in physical pixels, but it&apos;s now in DIP pixels.  So I think we can change dispatchViewportPropertiesDidChange() to early-return if !viewportEnabled() like it did before.  And if UseWideViewport is set, you can disable both enableViewport and enableFixedLayoutMode.  Then we can avoid all the if(fixedLayoutMode()).
&gt; 
&gt; If a WebFrameTest is failing because it specifies only fixed-layout mode, you may need to change it to enable viewport as well.
&gt; 
&gt; Can you give that a try and see if it works as you expect?

Thanks for the suggestion! Yes, it looks like now we can turn on and off viewport and fixedlayout simultaneously and get rid of the &quot;special&quot; case when fixedlayout is on, but viewport is off.

I&apos;m working on finalizing the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837320</commentid>
    <comment_count>12</comment_count>
      <attachid>189282</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2013-02-20 03:54:00 -0800</bug_when>
    <thetext>Created attachment 189282
Eliminate &quot;fixed layout enabled, viewport disabled&quot; mode

Alexandre, please take a look.

I had a trouble calling computePageScaleFactorLimits when having viewport disabled, because computePageScaleFactorLimits expects m_pageDefined*ScaleFactor to be set. As you have mentioned, you are inclined to remove setPageScaleFactorLimits, so I went ahead and made computePageScaleFactorLimits to work without them, this doesn&apos;t seem to break anything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837424</commentid>
    <comment_count>13</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2013-02-20 06:38:14 -0800</bug_when>
    <thetext>BTW, is it true that &quot;viewport enabled&quot; settings has become redundant and the logic that is currently checking it should really check &quot;isFixedLayoutModeEnabled&quot;? Otherwise, it seems confusing to have two settings that must be kept in a synchronized state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837619</commentid>
    <comment_count>14</comment_count>
      <attachid>189282</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2013-02-20 11:52:19 -0800</bug_when>
    <thetext>Comment on attachment 189282
Eliminate &quot;fixed layout enabled, viewport disabled&quot; mode

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

General approach looks good.  I agree it should be safe to get rid of the m_pageDefinedMinimumScaleFactor != -1 early-return.

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2964
&gt; +void WebViewImpl::setInitialPageScaleOverride(float initialPageScaleFactor)

Call this variable initialPageScaleFactorOverride

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2965
&gt; +{

Please start this method with:

if (m_initialPageScaleFactorOverride == initialPageScaleFactorOverride)
    return;

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2968
&gt; +    if (m_initialPageScaleFactorOverride == -1 &amp;&amp; !settings()-&gt;viewportEnabled())

This is messy, particularly the viewportEnabled() check I don&apos;t like.  And are you sure you can&apos;t just early-return after &quot;m_initialPageScaleFactorOverride = initialPageScaleFactor;&quot; in this case?  Do users actually expect anything to happen right away when they clear this value?

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:3180
&gt; +        m_minimumPageScaleFactor = min(minPageScaleFactor, maxPageScaleFactor);

Just do:
m_minimumPageScaleFactor = minPageScaleFactor;
m_maximumPageScaleFactor = maxPageScaleFactor;

as those are constants.

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:3203
&gt; +    if (!m_pageScaleFactorIsSet &amp;&amp; (m_initialPageScaleFactorOverride != -1 || m_initialPageScaleFactor != -1)) {

This is a bit too verbose, I suggest reformulating:

float initialPageScaleFactor = (m_initialPageScaleFactorOverride != -1) ? m_initialPageScaleFactorOverride : m_initialPageScaleFactor;
if (!m_pageScaleFactorIsSet &amp;&amp; initialPageScaleFactor != -1) {
    newPageScaleFactor = m_initialPageScaleFactor;
    m_pageScaleFactorIsSet = true;
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837622</commentid>
    <comment_count>15</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2013-02-20 11:53:56 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; BTW, is it true that &quot;viewport enabled&quot; settings has become redundant and the logic that is currently checking it should really check &quot;isFixedLayoutModeEnabled&quot;? Otherwise, it seems confusing to have two settings that must be kept in a synchronized state.

They are indeed redundant, we should get rid of one or the other.  I was thinking of getting rid of isFixedLayoutModeEnabled because that is an implementation detail whereas viewport tag is the high-level feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837704</commentid>
    <comment_count>16</comment_count>
      <attachid>189282</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2013-02-20 13:33:27 -0800</bug_when>
    <thetext>Comment on attachment 189282
Eliminate &quot;fixed layout enabled, viewport disabled&quot; mode

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

&gt;&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2968
&gt;&gt; +    if (m_initialPageScaleFactorOverride == -1 &amp;&amp; !settings()-&gt;viewportEnabled())
&gt; 
&gt; This is messy, particularly the viewportEnabled() check I don&apos;t like.  And are you sure you can&apos;t just early-return after &quot;m_initialPageScaleFactorOverride = initialPageScaleFactor;&quot; in this case?  Do users actually expect anything to happen right away when they clear this value?

The current version of WebView jumps back to computed page scale once the user sets the override to the &quot;use default&quot; value. Without this code, our version does that only when viewport is enabled. This happens, because if viewport is disabled, ChromeClientImpl::dispatchViewportPropertiesDidChange bails out and doesn&apos;t update initialPageScaleFactor to the computed value. Thus, m_initialPageScaleFactor is never get updated from the default value, and having that m_initialPageScaleFactorOverride is also being set to -1, newPageScaleFactor in computePageScaleFactorLimits only receives the current page scale value.

Using page scale factor of 1 in the viewport disabled case is a good choice for now, because page width can only be set to viewport width in CSS pixels in this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837705</commentid>
    <comment_count>17</comment_count>
      <attachid>189282</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2013-02-20 13:33:30 -0800</bug_when>
    <thetext>Comment on attachment 189282
Eliminate &quot;fixed layout enabled, viewport disabled&quot; mode

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

&gt;&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2968
&gt;&gt; +    if (m_initialPageScaleFactorOverride == -1 &amp;&amp; !settings()-&gt;viewportEnabled())
&gt; 
&gt; This is messy, particularly the viewportEnabled() check I don&apos;t like.  And are you sure you can&apos;t just early-return after &quot;m_initialPageScaleFactorOverride = initialPageScaleFactor;&quot; in this case?  Do users actually expect anything to happen right away when they clear this value?

The current version of WebView jumps back to computed page scale once the user sets the override to the &quot;use default&quot; value. Without this code, our version does that only when viewport is enabled. This happens, because if viewport is disabled, ChromeClientImpl::dispatchViewportPropertiesDidChange bails out and doesn&apos;t update initialPageScaleFactor to the computed value. Thus, m_initialPageScaleFactor is never get updated from the default value, and having that m_initialPageScaleFactorOverride is also being set to -1, newPageScaleFactor in computePageScaleFactorLimits only receives the current page scale value.

Using page scale factor of 1 in the viewport disabled case is a good choice for now, because page width can only be set to viewport width in CSS pixels in this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837732</commentid>
    <comment_count>18</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2013-02-20 14:05:22 -0800</bug_when>
    <thetext>OK.  m_initialPageScale needs to be 1 when viewport is disabled in general, I think.  Let&apos;s do that in a more general manner.  I think this would actually fix a bug in desktop Chrome pinch zoom (http://crbug.com/162482 ).

We could make the block in computePageScaleFactorLimits look like:

float initialPageScaleFactor = m_initialPageScaleFactor;
if (!settings()-&gt;viewportEnabled())
   initialPageScaleFactor = 1;
if (m_initialPageScaleFactorOverride != -1)
   initialPageScaleFactor = m_initialPageScaleFactorOverride;
if (!m_pageScaleFactorIsSet &amp;&amp; initialPageScaleFactor != -1) {
    newPageScaleFactor = m_initialPageScaleFactor;
    m_pageScaleFactorIsSet = true;
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837736</commentid>
    <comment_count>19</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2013-02-20 14:08:26 -0800</bug_when>
    <thetext>Adding wjmaclean@ as an FYI that we expect to fix http://crbug.com/162482 with this.

Please also add a unit test for the viewport tag disabled case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838243</commentid>
    <comment_count>20</comment_count>
      <attachid>189486</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2013-02-21 02:16:56 -0800</bug_when>
    <thetext>Created attachment 189486
Alexandre&apos;s comments addressed (again)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838247</commentid>
    <comment_count>21</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2013-02-21 02:18:35 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 189282 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=189282&amp;action=review
&gt; 
&gt; General approach looks good.  I agree it should be safe to get rid of the m_pageDefinedMinimumScaleFactor != -1 early-return.
&gt; 
&gt; &gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2964
&gt; &gt; +void WebViewImpl::setInitialPageScaleOverride(float initialPageScaleFactor)
&gt; 
&gt; Call this variable initialPageScaleFactorOverride
&gt; 

Done.

&gt; &gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2965
&gt; &gt; +{
&gt; 
&gt; Please start this method with:
&gt; 
&gt; if (m_initialPageScaleFactorOverride == initialPageScaleFactorOverride)
&gt;     return;
&gt;

Done.
 
&gt; &gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2968
&gt; &gt; +    if (m_initialPageScaleFactorOverride == -1 &amp;&amp; !settings()-&gt;viewportEnabled())
&gt; 
&gt; This is messy, particularly the viewportEnabled() check I don&apos;t like.  And are you sure you can&apos;t just early-return after &quot;m_initialPageScaleFactorOverride = initialPageScaleFactor;&quot; in this case?  Do users actually expect anything to happen right away when they clear this value?
&gt;

Fixed as proposed in the comment #18
 
&gt; &gt; Source/WebKit/chromium/src/WebViewImpl.cpp:3180
&gt; &gt; +        m_minimumPageScaleFactor = min(minPageScaleFactor, maxPageScaleFactor);
&gt; 
&gt; Just do:
&gt; m_minimumPageScaleFactor = minPageScaleFactor;
&gt; m_maximumPageScaleFactor = maxPageScaleFactor;
&gt; 
&gt; as those are constants.
&gt;

Right, stupid me. Fixed.
 
&gt; &gt; Source/WebKit/chromium/src/WebViewImpl.cpp:3203
&gt; &gt; +    if (!m_pageScaleFactorIsSet &amp;&amp; (m_initialPageScaleFactorOverride != -1 || m_initialPageScaleFactor != -1)) {
&gt; 
&gt; This is a bit too verbose, I suggest reformulating:
&gt; 
&gt; float initialPageScaleFactor = (m_initialPageScaleFactorOverride != -1) ? m_initialPageScaleFactorOverride : m_initialPageScaleFactor;
&gt; if (!m_pageScaleFactorIsSet &amp;&amp; initialPageScaleFactor != -1) {
&gt;     newPageScaleFactor = m_initialPageScaleFactor;
&gt;     m_pageScaleFactorIsSet = true;
&gt; }

Fixed as proposed in the comment #18</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838249</commentid>
    <comment_count>22</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2013-02-21 02:22:29 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; Adding wjmaclean@ as an FYI that we expect to fix http://crbug.com/162482 with this.
&gt; 

I&apos;m not sure how to verify this. I can enable pinch zoom via the flag, but not sure how to emulate pinch zoom using a single mouse.

&gt; Please also add a unit test for the viewport tag disabled case.

In WebFrameTest.setInitialPageScaleFactorPermanently, I&apos;m flipping the viewport state back and forth. Do you have any other scenario in mind?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839315</commentid>
    <comment_count>23</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2013-02-22 00:09:42 -0800</bug_when>
    <thetext>LGTM, looks much cleaner now.  Adam?


(In reply to comment #22)
&gt; (In reply to comment #19)
&gt; &gt; Adding wjmaclean@ as an FYI that we expect to fix http://crbug.com/162482 with this.
&gt; &gt; 
&gt; 
&gt; I&apos;m not sure how to verify this. I can enable pinch zoom via the flag, but not sure how to emulate pinch zoom using a single mouse.

Here are all the magic flags.  With this you can pinch zoom by holding right-click and dragging vertically:

out/Release/chrome --force-compositing-mode --enable-threaded-compositing --simulate-touch-screen-with-mouse --enable-pinch --enable-viewport --enable-fixed-layout

&gt; 
&gt; &gt; Please also add a unit test for the viewport tag disabled case.
&gt; 
&gt; In WebFrameTest.setInitialPageScaleFactorPermanently, I&apos;m flipping the viewport state back and forth. Do you have any other scenario in mind?

Looks good actually, thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839596</commentid>
    <comment_count>24</comment_count>
      <attachid>189486</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-22 08:32:10 -0800</bug_when>
    <thetext>Comment on attachment 189486
Alexandre&apos;s comments addressed (again)

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839615</commentid>
    <comment_count>25</comment_count>
      <attachid>189486</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-22 08:48:43 -0800</bug_when>
    <thetext>Comment on attachment 189486
Alexandre&apos;s comments addressed (again)

Clearing flags on attachment: 189486

Committed r143735: &lt;http://trac.webkit.org/changeset/143735&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839616</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-22 08:48:48 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188578</attachid>
            <date>2013-02-15 08:23:16 -0800</date>
            <delta_ts>2013-02-15 09:49:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wk-109946.patch</filename>
            <type>text/plain</type>
            <size>8676</size>
            <attacher name="Mikhail Naganov">mnaganov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggM2I3YjkwOS4uYzk4MjM1YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMy0wMi0xNSAgTWlraGFpbCBO
YWdhbm92ICA8bW5hZ2Fub3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gQWRk
IHN1cHBvcnQgZm9yIGVtdWxhdGluZyBsZWdhY3kgQW5kcm9pZCBXZWJWaWV3ICdzZXRJbml0aWFs
U2NhbGUnIG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA5OTQ2CisKKyAgICAgICAgQWRkaW5nIGEgV2ViVmlldyBtZXRob2QgZm9yIHBlcm1h
bmVudGx5IHNldHRpbmcgaW5pdGlhbCBwYWdlIHNjYWxlLgorICAgICAgICBUaGlzIG92ZXJyaWRl
IGhhcyBoaWdoZXIgcHJpb3JpdHkgdGhhbiBhbnkgY2FsY3VsYXRlZCBwYWdlIHNjYWxlCisgICAg
ICAgIGFuZCB2aWV3cG9ydCBtZXRhIHRhZyB2YWx1ZS4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Lmg6CisgICAgICAgIChX
ZWJWaWV3KToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6c2V0SW5pdGlhbFBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJLaXQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0SW5pdGlhbFBhZ2VTY2FsZUZhY3RvclBlcm1hbmVu
dGx5KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmxheW91dFVwZGF0ZWQpOgorICAg
ICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
aW5pdGlhbFBhZ2VTY2FsZUZhY3RvcklzUGVybWFuZW50KToKKyAgICAgICAgKFdlYlZpZXdJbXBs
KToKKyAgICAgICAgKiB0ZXN0cy9XZWJGcmFtZVRlc3QuY3BwOgorCiAyMDEzLTAyLTE0ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQg
Y2hyb21pdW0gdGVzdCBmaXg6IGluY29ycmVjdCBmaWVsZCB3YXMgdXNlZCBmb3IgVUlTb3VyY2VD
b2RlIHVybC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZp
ZXcuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAppbmRleCBkYzEw
YmY1Li43NjM0NjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCkBA
IC0yMjksNiArMjI5LDEwIEBAIHB1YmxpYzoKICAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBkb3Vi
bGUgem9vbUxldmVsVG9ab29tRmFjdG9yKGRvdWJsZSB6b29tTGV2ZWwpOwogICAgIFdFQktJVF9F
WFBPUlQgc3RhdGljIGRvdWJsZSB6b29tRmFjdG9yVG9ab29tTGV2ZWwoZG91YmxlIGZhY3Rvcik7
CiAKKyAgICAvLyBTZXRzIHRoZSBpbml0aWFsIHBhZ2Ugc2NhbGUgdG8gdGhlIGdpdmVuIGZhY3Rv
ci4gVGhpcyBzY2FsZSBzZXR0aW5nIG92ZXJyaWRlcworICAgIC8vIHBhZ2Ugc2NhbGUgc2V0IGlu
IHRoZSBwYWdlJ3Mgdmlld3BvcnQgbWV0YSB0YWcuCisgICAgdmlydHVhbCB2b2lkIHNldEluaXRp
YWxQYWdlU2NhbGVGYWN0b3JQZXJtYW5lbnRseShmbG9hdCkgPSAwOworCiAgICAgLy8gR2V0cyB0
aGUgc2NhbGUgZmFjdG9yIG9mIHRoZSBwYWdlLCB3aGVyZSAxLjAgaXMgdGhlIG5vcm1hbCBzaXpl
LCA+IDEuMAogICAgIC8vIGlzIHNjYWxlZCB1cCwgPCAxLjAgaXMgc2NhbGVkIGRvd24uCiAgICAg
dmlydHVhbCBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggZDdkZTg2OS4uMzU1OGM4YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtMzk2LDYgKzM5
Niw3IEBAIFdlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbChXZWJWaWV3Q2xpZW50KiBjbGllbnQpCiAg
ICAgLCBtX21pbmltdW1QYWdlU2NhbGVGYWN0b3IobWluUGFnZVNjYWxlRmFjdG9yKQogICAgICwg
bV9tYXhpbXVtUGFnZVNjYWxlRmFjdG9yKG1heFBhZ2VTY2FsZUZhY3RvcikKICAgICAsIG1faW5p
dGlhbFBhZ2VTY2FsZUZhY3RvcigtMSkKKyAgICAsIG1faW5pdGlhbFBhZ2VTY2FsZUZhY3Rvcklz
UGVybWFuZW50KGZhbHNlKQogICAgICwgbV9pZ25vcmVWaWV3cG9ydFRhZ01heGltdW1TY2FsZShm
YWxzZSkKICAgICAsIG1fcGFnZVNjYWxlRmFjdG9ySXNTZXQoZmFsc2UpCiAgICAgLCBtX3NhdmVk
UGFnZVNjYWxlRmFjdG9yKDApCkBAIC0yOTQ1LDYgKzI5NDYsMTkgQEAgZG91YmxlIFdlYlZpZXc6
Onpvb21GYWN0b3JUb1pvb21MZXZlbChkb3VibGUgZmFjdG9yKQogICAgIHJldHVybiBsb2coZmFj
dG9yKSAvIGxvZyh0ZXh0U2l6ZU11bHRpcGxpZXJSYXRpbyk7CiB9CiAKK3ZvaWQgV2ViVmlld0lt
cGw6OnNldEluaXRpYWxQYWdlU2NhbGVGYWN0b3IoZmxvYXQgaW5pdGlhbFBhZ2VTY2FsZUZhY3Rv
cikKK3sKKyAgICBpZiAoIW1faW5pdGlhbFBhZ2VTY2FsZUZhY3RvcklzUGVybWFuZW50KQorICAg
ICAgICBtX2luaXRpYWxQYWdlU2NhbGVGYWN0b3IgPSBpbml0aWFsUGFnZVNjYWxlRmFjdG9yOwor
fQorCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRJbml0aWFsUGFnZVNjYWxlRmFjdG9yUGVybWFuZW50
bHkoZmxvYXQgaW5pdGlhbFBhZ2VTY2FsZUZhY3RvcikKK3sKKyAgICBtX2luaXRpYWxQYWdlU2Nh
bGVGYWN0b3IgPSBpbml0aWFsUGFnZVNjYWxlRmFjdG9yOworICAgIG1faW5pdGlhbFBhZ2VTY2Fs
ZUZhY3RvcklzUGVybWFuZW50ID0gaW5pdGlhbFBhZ2VTY2FsZUZhY3RvciAhPSAtMTsKKyAgICBt
X3BhZ2VTY2FsZUZhY3RvcklzU2V0ID0gZmFsc2U7Cit9CisKIGZsb2F0IFdlYlZpZXdJbXBsOjpw
YWdlU2NhbGVGYWN0b3IoKSBjb25zdAogewogICAgIGlmICghcGFnZSgpKQpAQCAtMzc5NSw3ICsz
ODA5LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6bGF5b3V0VXBkYXRlZChXZWJGcmFtZUltcGwqIHdl
YmZyYW1lKQogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKHNldHRpbmdzKCktPnZpZXdwb3J0
RW5hYmxlZCgpKSB7CisgICAgaWYgKHNldHRpbmdzKCktPnZpZXdwb3J0RW5hYmxlZCgpIHx8IGlz
Rml4ZWRMYXlvdXRNb2RlRW5hYmxlZCgpKSB7CiAgICAgICAgIGlmICghaXNQYWdlU2NhbGVGYWN0
b3JTZXQoKSkgewogICAgICAgICAgICAgLy8gSWYgdGhlIHZpZXdwb3J0IHRhZyBmYWlsZWQgdG8g
YmUgcHJvY2Vzc2VkIGVhcmxpZXIsIHdlIG5lZWQKICAgICAgICAgICAgIC8vIHRvIHJlY29tcHV0
ZSBpdCBub3cuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3
SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAppbmRleCBh
OTUxOTZjLi4wYjFlNmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmgKQEAgLTIyMiw2ICsyMjIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBkb3VibGUgc2V0Wm9v
bUxldmVsKGJvb2wgdGV4dE9ubHksIGRvdWJsZSB6b29tTGV2ZWwpOwogICAgIHZpcnR1YWwgdm9p
ZCB6b29tTGltaXRzQ2hhbmdlZChkb3VibGUgbWluaW11bVpvb21MZXZlbCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIG1heGltdW1ab29tTGV2ZWwpOworICAgIHZp
cnR1YWwgdm9pZCBzZXRJbml0aWFsUGFnZVNjYWxlRmFjdG9yUGVybWFuZW50bHkoZmxvYXQpOwog
ICAgIHZpcnR1YWwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3Q7CiAgICAgdmlydHVhbCBi
b29sIGlzUGFnZVNjYWxlRmFjdG9yU2V0KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldFBh
Z2VTY2FsZUZhY3RvclByZXNlcnZpbmdTY3JvbGxPZmZzZXQoZmxvYXQpOwpAQCAtNDgyLDggKzQ4
Myw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fZW11bGF0ZWRUZXh0Wm9vbUZhY3RvcjsK
ICAgICB9CiAKLSAgICB2b2lkIHNldEluaXRpYWxQYWdlU2NhbGVGYWN0b3IoZmxvYXQgaW5pdGlh
bFBhZ2VTY2FsZUZhY3RvcikgeyBtX2luaXRpYWxQYWdlU2NhbGVGYWN0b3IgPSBpbml0aWFsUGFn
ZVNjYWxlRmFjdG9yOyB9CisgICAgYm9vbCBpbml0aWFsUGFnZVNjYWxlRmFjdG9ySXNQZXJtYW5l
bnQoKSBjb25zdCB7IHJldHVybiBtX2luaXRpYWxQYWdlU2NhbGVGYWN0b3JJc1Blcm1hbmVudDsg
fQogICAgIGJvb2wgaWdub3JlVmlld3BvcnRUYWdNYXhpbXVtU2NhbGUoKSBjb25zdCB7IHJldHVy
biBtX2lnbm9yZVZpZXdwb3J0VGFnTWF4aW11bVNjYWxlOyB9CisgICAgdm9pZCBzZXRJbml0aWFs
UGFnZVNjYWxlRmFjdG9yKGZsb2F0KTsKIAogICAgIC8vIERldGVybWluZXMgd2hldGhlciBhIHBh
Z2Ugc2hvdWxkIGUuZy4gYmUgb3BlbmVkIGluIGEgYmFja2dyb3VuZCB0YWIuCiAgICAgLy8gUmV0
dXJucyBmYWxzZSBpZiBpdCBoYXMgbm8gb3BpbmlvbiwgaW4gd2hpY2ggY2FzZSBpdCBkb2Vzbid0
IHNldCAqcG9saWN5LgpAQCAtNzU1LDYgKzc1Nyw3IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9t
aW5pbXVtUGFnZVNjYWxlRmFjdG9yOwogICAgIGZsb2F0IG1fbWF4aW11bVBhZ2VTY2FsZUZhY3Rv
cjsKICAgICBmbG9hdCBtX2luaXRpYWxQYWdlU2NhbGVGYWN0b3I7CisgICAgYm9vbCBtX2luaXRp
YWxQYWdlU2NhbGVGYWN0b3JJc1Blcm1hbmVudDsKICAgICBib29sIG1faWdub3JlVmlld3BvcnRU
YWdNYXhpbXVtU2NhbGU7CiAgICAgYm9vbCBtX3BhZ2VTY2FsZUZhY3RvcklzU2V0OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkZyYW1lVGVzdC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkZyYW1lVGVzdC5jcHAKaW5kZXggMzhlZDQ4
My4uZWMxMTU5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJG
cmFtZVRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJhbWVU
ZXN0LmNwcApAQCAtMzk0LDYgKzM5NCw3NSBAQCBURVNUX0YoV2ViRnJhbWVUZXN0LCBQYWdlVmll
d3BvcnRJbml0aWFsU2NhbGVPdmVycmlkZXNJbml0aWFsaXplQXRNaW5pbXVtU2NhbGUpCiAgICAg
RVhQRUNUX0VRKDIuMGYsIG1fd2ViVmlldy0+cGFnZVNjYWxlRmFjdG9yKCkpOwogfQogCitURVNU
X0YoV2ViRnJhbWVUZXN0LCBzZXRJbml0aWFsUGFnZVNjYWxlRmFjdG9yUGVybWFuZW50bHkpCit7
CisgICAgcmVnaXN0ZXJNb2NrZWRIdHRwVVJMTG9hZCgiZml4ZWRfbGF5b3V0Lmh0bWwiKTsKKwor
ICAgIEZpeGVkTGF5b3V0VGVzdFdlYlZpZXdDbGllbnQgY2xpZW50OworICAgIGNsaWVudC5tX3Nj
cmVlbkluZm8uZGV2aWNlU2NhbGVGYWN0b3IgPSAxOworICAgIGludCB2aWV3cG9ydFdpZHRoID0g
NjQwOworICAgIGludCB2aWV3cG9ydEhlaWdodCA9IDQ4MDsKKyAgICBmbG9hdCBlbmZvcmNlZFBh
Z2VTY2FsZVBhY3RvciA9IDIuMGY7CisKKyAgICBtX3dlYlZpZXcgPSBGcmFtZVRlc3RIZWxwZXJz
OjpjcmVhdGVXZWJWaWV3QW5kTG9hZChtX2Jhc2VVUkwgKyAiZml4ZWRfbGF5b3V0Lmh0bWwiLCB0
cnVlLCAwLCAmY2xpZW50KTsKKyAgICBtX3dlYlZpZXctPnNldHRpbmdzKCktPnNldEFwcGx5RGV2
aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IodHJ1ZSk7CisgICAgbV93ZWJWaWV3LT5zZXR0aW5n
cygpLT5zZXRBcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcih0cnVlKTsKKyAgICBtX3dl
YlZpZXctPmVuYWJsZUZpeGVkTGF5b3V0TW9kZSh0cnVlKTsKKyAgICBtX3dlYlZpZXctPnNldElu
aXRpYWxQYWdlU2NhbGVGYWN0b3JQZXJtYW5lbnRseShlbmZvcmNlZFBhZ2VTY2FsZVBhY3Rvcik7
CisgICAgbV93ZWJWaWV3LT5yZXNpemUoV2ViU2l6ZSh2aWV3cG9ydFdpZHRoLCB2aWV3cG9ydEhl
aWdodCkpOworCisgICAgRVhQRUNUX0VRKGVuZm9yY2VkUGFnZVNjYWxlUGFjdG9yLCBtX3dlYlZp
ZXctPnBhZ2VTY2FsZUZhY3RvcigpKTsKKworICAgIG1fd2ViVmlldy0+c2V0dGluZ3MoKS0+c2V0
Vmlld3BvcnRFbmFibGVkKHRydWUpOworICAgIG1fd2ViVmlldy0+cmVzZXRTY3JvbGxBbmRTY2Fs
ZVN0YXRlKCk7CisgICAgbV93ZWJWaWV3LT5sYXlvdXQoKTsKKworICAgIEVYUEVDVF9FUShlbmZv
cmNlZFBhZ2VTY2FsZVBhY3RvciwgbV93ZWJWaWV3LT5wYWdlU2NhbGVGYWN0b3IoKSk7Cit9CisK
K1RFU1RfRihXZWJGcmFtZVRlc3QsIFBlcm1hbmVudEluaXRpYWxQYWdlU2NhbGVGYWN0b3JPdmVy
cmlkZXNJbml0aWFsaXplQXRNaW5pbXVtU2NhbGUpCit7CisgICAgcmVnaXN0ZXJNb2NrZWRIdHRw
VVJMTG9hZCgidmlld3BvcnQtYXV0by1pbml0aWFsLXNjYWxlLmh0bWwiKTsKKworICAgIEZpeGVk
TGF5b3V0VGVzdFdlYlZpZXdDbGllbnQgY2xpZW50OworICAgIGNsaWVudC5tX3NjcmVlbkluZm8u
ZGV2aWNlU2NhbGVGYWN0b3IgPSAxOworICAgIGludCB2aWV3cG9ydFdpZHRoID0gNjQwOworICAg
IGludCB2aWV3cG9ydEhlaWdodCA9IDQ4MDsKKyAgICBmbG9hdCBlbmZvcmNlZFBhZ2VTY2FsZVBh
Y3RvciA9IDAuNWY7CisKKyAgICBtX3dlYlZpZXcgPSBGcmFtZVRlc3RIZWxwZXJzOjpjcmVhdGVX
ZWJWaWV3QW5kTG9hZChtX2Jhc2VVUkwgKyAidmlld3BvcnQtYXV0by1pbml0aWFsLXNjYWxlLmh0
bWwiLCB0cnVlLCAwLCAmY2xpZW50KTsKKyAgICBtX3dlYlZpZXctPnNldHRpbmdzKCktPnNldEFw
cGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IodHJ1ZSk7CisgICAgbV93ZWJWaWV3LT5z
ZXR0aW5ncygpLT5zZXRBcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcih0cnVlKTsKKyAg
ICBtX3dlYlZpZXctPmVuYWJsZUZpeGVkTGF5b3V0TW9kZSh0cnVlKTsKKyAgICBtX3dlYlZpZXct
PnNldHRpbmdzKCktPnNldFZpZXdwb3J0RW5hYmxlZCh0cnVlKTsKKyAgICBtX3dlYlZpZXctPnNl
dHRpbmdzKCktPnNldEluaXRpYWxpemVBdE1pbmltdW1QYWdlU2NhbGUoZmFsc2UpOworICAgIG1f
d2ViVmlldy0+c2V0SW5pdGlhbFBhZ2VTY2FsZUZhY3RvclBlcm1hbmVudGx5KGVuZm9yY2VkUGFn
ZVNjYWxlUGFjdG9yKTsKKyAgICBtX3dlYlZpZXctPnJlc2l6ZShXZWJTaXplKHZpZXdwb3J0V2lk
dGgsIHZpZXdwb3J0SGVpZ2h0KSk7CisKKyAgICBFWFBFQ1RfRVEoZW5mb3JjZWRQYWdlU2NhbGVQ
YWN0b3IsIG1fd2ViVmlldy0+cGFnZVNjYWxlRmFjdG9yKCkpOworfQorCitURVNUX0YoV2ViRnJh
bWVUZXN0LCBQZXJtYW5lbnRJbml0aWFsUGFnZVNjYWxlRmFjdG9yT3ZlcnJpZGVzUGFnZVZpZXdw
b3J0SW5pdGlhbFNjYWxlKQoreworICAgIHJlZ2lzdGVyTW9ja2VkSHR0cFVSTExvYWQoInZpZXdw
b3J0LTJ4LWluaXRpYWwtc2NhbGUuaHRtbCIpOworCisgICAgRml4ZWRMYXlvdXRUZXN0V2ViVmll
d0NsaWVudCBjbGllbnQ7CisgICAgY2xpZW50Lm1fc2NyZWVuSW5mby5kZXZpY2VTY2FsZUZhY3Rv
ciA9IDE7CisgICAgaW50IHZpZXdwb3J0V2lkdGggPSA2NDA7CisgICAgaW50IHZpZXdwb3J0SGVp
Z2h0ID0gNDgwOworICAgIGZsb2F0IGVuZm9yY2VkUGFnZVNjYWxlUGFjdG9yID0gMC41ZjsKKwor
ICAgIG1fd2ViVmlldyA9IEZyYW1lVGVzdEhlbHBlcnM6OmNyZWF0ZVdlYlZpZXdBbmRMb2FkKG1f
YmFzZVVSTCArICJ2aWV3cG9ydC0yeC1pbml0aWFsLXNjYWxlLmh0bWwiLCB0cnVlLCAwLCAmY2xp
ZW50KTsKKyAgICBtX3dlYlZpZXctPnNldHRpbmdzKCktPnNldEFwcGx5RGV2aWNlU2NhbGVGYWN0
b3JJbkNvbXBvc2l0b3IodHJ1ZSk7CisgICAgbV93ZWJWaWV3LT5zZXR0aW5ncygpLT5zZXRBcHBs
eVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcih0cnVlKTsKKyAgICBtX3dlYlZpZXctPmVuYWJs
ZUZpeGVkTGF5b3V0TW9kZSh0cnVlKTsKKyAgICBtX3dlYlZpZXctPnNldHRpbmdzKCktPnNldFZp
ZXdwb3J0RW5hYmxlZCh0cnVlKTsKKyAgICBtX3dlYlZpZXctPnNldEluaXRpYWxQYWdlU2NhbGVG
YWN0b3JQZXJtYW5lbnRseShlbmZvcmNlZFBhZ2VTY2FsZVBhY3Rvcik7CisgICAgbV93ZWJWaWV3
LT5yZXNpemUoV2ViU2l6ZSh2aWV3cG9ydFdpZHRoLCB2aWV3cG9ydEhlaWdodCkpOworCisgICAg
RVhQRUNUX0VRKGVuZm9yY2VkUGFnZVNjYWxlUGFjdG9yLCBtX3dlYlZpZXctPnBhZ2VTY2FsZUZh
Y3RvcigpKTsKK30KKwogVEVTVF9GKFdlYkZyYW1lVGVzdCwgU2NhbGVGYWN0b3JTaG91bGROb3RP
c2NpbGxhdGUpCiB7CiAgICAgcmVnaXN0ZXJNb2NrZWRIdHRwVVJMTG9hZCgic2NhbGVfb3NjaWxs
YXRlLmh0bWwiKTsK
</data>
<flag name="commit-queue"
          id="208731"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188590</attachid>
            <date>2013-02-15 09:49:40 -0800</date>
            <delta_ts>2013-02-18 06:02:13 -0800</delta_ts>
            <desc>Fixed layout test failure</desc>
            <filename>wk-109946.patch</filename>
            <type>text/plain</type>
            <size>8647</size>
            <attacher name="Mikhail Naganov">mnaganov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggM2I3YjkwOS4uYzk4MjM1YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMy0wMi0xNSAgTWlraGFpbCBO
YWdhbm92ICA8bW5hZ2Fub3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gQWRk
IHN1cHBvcnQgZm9yIGVtdWxhdGluZyBsZWdhY3kgQW5kcm9pZCBXZWJWaWV3ICdzZXRJbml0aWFs
U2NhbGUnIG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA5OTQ2CisKKyAgICAgICAgQWRkaW5nIGEgV2ViVmlldyBtZXRob2QgZm9yIHBlcm1h
bmVudGx5IHNldHRpbmcgaW5pdGlhbCBwYWdlIHNjYWxlLgorICAgICAgICBUaGlzIG92ZXJyaWRl
IGhhcyBoaWdoZXIgcHJpb3JpdHkgdGhhbiBhbnkgY2FsY3VsYXRlZCBwYWdlIHNjYWxlCisgICAg
ICAgIGFuZCB2aWV3cG9ydCBtZXRhIHRhZyB2YWx1ZS4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Lmg6CisgICAgICAgIChX
ZWJWaWV3KToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6c2V0SW5pdGlhbFBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJLaXQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0SW5pdGlhbFBhZ2VTY2FsZUZhY3RvclBlcm1hbmVu
dGx5KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmxheW91dFVwZGF0ZWQpOgorICAg
ICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
aW5pdGlhbFBhZ2VTY2FsZUZhY3RvcklzUGVybWFuZW50KToKKyAgICAgICAgKFdlYlZpZXdJbXBs
KToKKyAgICAgICAgKiB0ZXN0cy9XZWJGcmFtZVRlc3QuY3BwOgorCiAyMDEzLTAyLTE0ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQg
Y2hyb21pdW0gdGVzdCBmaXg6IGluY29ycmVjdCBmaWVsZCB3YXMgdXNlZCBmb3IgVUlTb3VyY2VD
b2RlIHVybC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZp
ZXcuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAppbmRleCBkYzEw
YmY1Li43NjM0NjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCkBA
IC0yMjksNiArMjI5LDEwIEBAIHB1YmxpYzoKICAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBkb3Vi
bGUgem9vbUxldmVsVG9ab29tRmFjdG9yKGRvdWJsZSB6b29tTGV2ZWwpOwogICAgIFdFQktJVF9F
WFBPUlQgc3RhdGljIGRvdWJsZSB6b29tRmFjdG9yVG9ab29tTGV2ZWwoZG91YmxlIGZhY3Rvcik7
CiAKKyAgICAvLyBTZXRzIHRoZSBpbml0aWFsIHBhZ2Ugc2NhbGUgdG8gdGhlIGdpdmVuIGZhY3Rv
ci4gVGhpcyBzY2FsZSBzZXR0aW5nIG92ZXJyaWRlcworICAgIC8vIHBhZ2Ugc2NhbGUgc2V0IGlu
IHRoZSBwYWdlJ3Mgdmlld3BvcnQgbWV0YSB0YWcuCisgICAgdmlydHVhbCB2b2lkIHNldEluaXRp
YWxQYWdlU2NhbGVGYWN0b3JQZXJtYW5lbnRseShmbG9hdCkgPSAwOworCiAgICAgLy8gR2V0cyB0
aGUgc2NhbGUgZmFjdG9yIG9mIHRoZSBwYWdlLCB3aGVyZSAxLjAgaXMgdGhlIG5vcm1hbCBzaXpl
LCA+IDEuMAogICAgIC8vIGlzIHNjYWxlZCB1cCwgPCAxLjAgaXMgc2NhbGVkIGRvd24uCiAgICAg
dmlydHVhbCBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggZDdkZTg2OS4uMDdjODg3YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtMzk2LDYgKzM5
Niw3IEBAIFdlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbChXZWJWaWV3Q2xpZW50KiBjbGllbnQpCiAg
ICAgLCBtX21pbmltdW1QYWdlU2NhbGVGYWN0b3IobWluUGFnZVNjYWxlRmFjdG9yKQogICAgICwg
bV9tYXhpbXVtUGFnZVNjYWxlRmFjdG9yKG1heFBhZ2VTY2FsZUZhY3RvcikKICAgICAsIG1faW5p
dGlhbFBhZ2VTY2FsZUZhY3RvcigtMSkKKyAgICAsIG1faW5pdGlhbFBhZ2VTY2FsZUZhY3Rvcklz
UGVybWFuZW50KGZhbHNlKQogICAgICwgbV9pZ25vcmVWaWV3cG9ydFRhZ01heGltdW1TY2FsZShm
YWxzZSkKICAgICAsIG1fcGFnZVNjYWxlRmFjdG9ySXNTZXQoZmFsc2UpCiAgICAgLCBtX3NhdmVk
UGFnZVNjYWxlRmFjdG9yKDApCkBAIC0yOTQ1LDYgKzI5NDYsMTkgQEAgZG91YmxlIFdlYlZpZXc6
Onpvb21GYWN0b3JUb1pvb21MZXZlbChkb3VibGUgZmFjdG9yKQogICAgIHJldHVybiBsb2coZmFj
dG9yKSAvIGxvZyh0ZXh0U2l6ZU11bHRpcGxpZXJSYXRpbyk7CiB9CiAKK3ZvaWQgV2ViVmlld0lt
cGw6OnNldEluaXRpYWxQYWdlU2NhbGVGYWN0b3IoZmxvYXQgaW5pdGlhbFBhZ2VTY2FsZUZhY3Rv
cikKK3sKKyAgICBpZiAoIW1faW5pdGlhbFBhZ2VTY2FsZUZhY3RvcklzUGVybWFuZW50KQorICAg
ICAgICBtX2luaXRpYWxQYWdlU2NhbGVGYWN0b3IgPSBpbml0aWFsUGFnZVNjYWxlRmFjdG9yOwor
fQorCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRJbml0aWFsUGFnZVNjYWxlRmFjdG9yUGVybWFuZW50
bHkoZmxvYXQgaW5pdGlhbFBhZ2VTY2FsZUZhY3RvcikKK3sKKyAgICBtX2luaXRpYWxQYWdlU2Nh
bGVGYWN0b3IgPSBpbml0aWFsUGFnZVNjYWxlRmFjdG9yOworICAgIG1faW5pdGlhbFBhZ2VTY2Fs
ZUZhY3RvcklzUGVybWFuZW50ID0gaW5pdGlhbFBhZ2VTY2FsZUZhY3RvciAhPSAtMTsKKyAgICBt
X3BhZ2VTY2FsZUZhY3RvcklzU2V0ID0gZmFsc2U7Cit9CisKIGZsb2F0IFdlYlZpZXdJbXBsOjpw
YWdlU2NhbGVGYWN0b3IoKSBjb25zdAogewogICAgIGlmICghcGFnZSgpKQpAQCAtMzgxMiw2ICsz
ODI2LDggQEAgdm9pZCBXZWJWaWV3SW1wbDo6bGF5b3V0VXBkYXRlZChXZWJGcmFtZUltcGwqIHdl
YmZyYW1lKQogICAgICAgICBGcmFtZVZpZXcqIHZpZXcgPSBtYWluRnJhbWVJbXBsKCktPmZyYW1l
VmlldygpOwogICAgICAgICBpZiAodmlldyAmJiB2aWV3LT5uZWVkc0xheW91dCgpKQogICAgICAg
ICAgICAgdmlldy0+bGF5b3V0KCk7CisgICAgfSBlbHNlIGlmIChpc0ZpeGVkTGF5b3V0TW9kZUVu
YWJsZWQoKSkgeworICAgICAgICBjb21wdXRlUGFnZVNjYWxlRmFjdG9yTGltaXRzKCk7CiAgICAg
fQogCiAgICAgbV9jbGllbnQtPmRpZFVwZGF0ZUxheW91dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmgKaW5kZXggYTk1MTk2Yy4uMGIxZTZjMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCkBAIC0yMjIsNiArMjIyLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgZG91YmxlIHNldFpvb21MZXZlbChib29sIHRleHRPbmx5LCBkb3VibGUg
em9vbUxldmVsKTsKICAgICB2aXJ0dWFsIHZvaWQgem9vbUxpbWl0c0NoYW5nZWQoZG91YmxlIG1p
bmltdW1ab29tTGV2ZWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJs
ZSBtYXhpbXVtWm9vbUxldmVsKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SW5pdGlhbFBhZ2VTY2Fs
ZUZhY3RvclBlcm1hbmVudGx5KGZsb2F0KTsKICAgICB2aXJ0dWFsIGZsb2F0IHBhZ2VTY2FsZUZh
Y3RvcigpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc1BhZ2VTY2FsZUZhY3RvclNldCgpIGNv
bnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXRQYWdlU2NhbGVGYWN0b3JQcmVzZXJ2aW5nU2Nyb2xs
T2Zmc2V0KGZsb2F0KTsKQEAgLTQ4Miw4ICs0ODMsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBtX2VtdWxhdGVkVGV4dFpvb21GYWN0b3I7CiAgICAgfQogCi0gICAgdm9pZCBzZXRJbml0aWFs
UGFnZVNjYWxlRmFjdG9yKGZsb2F0IGluaXRpYWxQYWdlU2NhbGVGYWN0b3IpIHsgbV9pbml0aWFs
UGFnZVNjYWxlRmFjdG9yID0gaW5pdGlhbFBhZ2VTY2FsZUZhY3RvcjsgfQorICAgIGJvb2wgaW5p
dGlhbFBhZ2VTY2FsZUZhY3RvcklzUGVybWFuZW50KCkgY29uc3QgeyByZXR1cm4gbV9pbml0aWFs
UGFnZVNjYWxlRmFjdG9ySXNQZXJtYW5lbnQ7IH0KICAgICBib29sIGlnbm9yZVZpZXdwb3J0VGFn
TWF4aW11bVNjYWxlKCkgY29uc3QgeyByZXR1cm4gbV9pZ25vcmVWaWV3cG9ydFRhZ01heGltdW1T
Y2FsZTsgfQorICAgIHZvaWQgc2V0SW5pdGlhbFBhZ2VTY2FsZUZhY3RvcihmbG9hdCk7CiAKICAg
ICAvLyBEZXRlcm1pbmVzIHdoZXRoZXIgYSBwYWdlIHNob3VsZCBlLmcuIGJlIG9wZW5lZCBpbiBh
IGJhY2tncm91bmQgdGFiLgogICAgIC8vIFJldHVybnMgZmFsc2UgaWYgaXQgaGFzIG5vIG9waW5p
b24sIGluIHdoaWNoIGNhc2UgaXQgZG9lc24ndCBzZXQgKnBvbGljeS4KQEAgLTc1NSw2ICs3NTcs
NyBAQCBwcml2YXRlOgogICAgIGZsb2F0IG1fbWluaW11bVBhZ2VTY2FsZUZhY3RvcjsKICAgICBm
bG9hdCBtX21heGltdW1QYWdlU2NhbGVGYWN0b3I7CiAgICAgZmxvYXQgbV9pbml0aWFsUGFnZVNj
YWxlRmFjdG9yOworICAgIGJvb2wgbV9pbml0aWFsUGFnZVNjYWxlRmFjdG9ySXNQZXJtYW5lbnQ7
CiAgICAgYm9vbCBtX2lnbm9yZVZpZXdwb3J0VGFnTWF4aW11bVNjYWxlOwogICAgIGJvb2wgbV9w
YWdlU2NhbGVGYWN0b3JJc1NldDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9XZWJGcmFtZVRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9X
ZWJGcmFtZVRlc3QuY3BwCmluZGV4IDM4ZWQ0ODMuLmVjMTE1OTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL1dlYkZyYW1lVGVzdC5jcHAKQEAgLTM5NCw2ICszOTQsNzUgQEAg
VEVTVF9GKFdlYkZyYW1lVGVzdCwgUGFnZVZpZXdwb3J0SW5pdGlhbFNjYWxlT3ZlcnJpZGVzSW5p
dGlhbGl6ZUF0TWluaW11bVNjYWxlKQogICAgIEVYUEVDVF9FUSgyLjBmLCBtX3dlYlZpZXctPnBh
Z2VTY2FsZUZhY3RvcigpKTsKIH0KIAorVEVTVF9GKFdlYkZyYW1lVGVzdCwgc2V0SW5pdGlhbFBh
Z2VTY2FsZUZhY3RvclBlcm1hbmVudGx5KQoreworICAgIHJlZ2lzdGVyTW9ja2VkSHR0cFVSTExv
YWQoImZpeGVkX2xheW91dC5odG1sIik7CisKKyAgICBGaXhlZExheW91dFRlc3RXZWJWaWV3Q2xp
ZW50IGNsaWVudDsKKyAgICBjbGllbnQubV9zY3JlZW5JbmZvLmRldmljZVNjYWxlRmFjdG9yID0g
MTsKKyAgICBpbnQgdmlld3BvcnRXaWR0aCA9IDY0MDsKKyAgICBpbnQgdmlld3BvcnRIZWlnaHQg
PSA0ODA7CisgICAgZmxvYXQgZW5mb3JjZWRQYWdlU2NhbGVQYWN0b3IgPSAyLjBmOworCisgICAg
bV93ZWJWaWV3ID0gRnJhbWVUZXN0SGVscGVyczo6Y3JlYXRlV2ViVmlld0FuZExvYWQobV9iYXNl
VVJMICsgImZpeGVkX2xheW91dC5odG1sIiwgdHJ1ZSwgMCwgJmNsaWVudCk7CisgICAgbV93ZWJW
aWV3LT5zZXR0aW5ncygpLT5zZXRBcHBseURldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKHRy
dWUpOworICAgIG1fd2ViVmlldy0+c2V0dGluZ3MoKS0+c2V0QXBwbHlQYWdlU2NhbGVGYWN0b3JJ
bkNvbXBvc2l0b3IodHJ1ZSk7CisgICAgbV93ZWJWaWV3LT5lbmFibGVGaXhlZExheW91dE1vZGUo
dHJ1ZSk7CisgICAgbV93ZWJWaWV3LT5zZXRJbml0aWFsUGFnZVNjYWxlRmFjdG9yUGVybWFuZW50
bHkoZW5mb3JjZWRQYWdlU2NhbGVQYWN0b3IpOworICAgIG1fd2ViVmlldy0+cmVzaXplKFdlYlNp
emUodmlld3BvcnRXaWR0aCwgdmlld3BvcnRIZWlnaHQpKTsKKworICAgIEVYUEVDVF9FUShlbmZv
cmNlZFBhZ2VTY2FsZVBhY3RvciwgbV93ZWJWaWV3LT5wYWdlU2NhbGVGYWN0b3IoKSk7CisKKyAg
ICBtX3dlYlZpZXctPnNldHRpbmdzKCktPnNldFZpZXdwb3J0RW5hYmxlZCh0cnVlKTsKKyAgICBt
X3dlYlZpZXctPnJlc2V0U2Nyb2xsQW5kU2NhbGVTdGF0ZSgpOworICAgIG1fd2ViVmlldy0+bGF5
b3V0KCk7CisKKyAgICBFWFBFQ1RfRVEoZW5mb3JjZWRQYWdlU2NhbGVQYWN0b3IsIG1fd2ViVmll
dy0+cGFnZVNjYWxlRmFjdG9yKCkpOworfQorCitURVNUX0YoV2ViRnJhbWVUZXN0LCBQZXJtYW5l
bnRJbml0aWFsUGFnZVNjYWxlRmFjdG9yT3ZlcnJpZGVzSW5pdGlhbGl6ZUF0TWluaW11bVNjYWxl
KQoreworICAgIHJlZ2lzdGVyTW9ja2VkSHR0cFVSTExvYWQoInZpZXdwb3J0LWF1dG8taW5pdGlh
bC1zY2FsZS5odG1sIik7CisKKyAgICBGaXhlZExheW91dFRlc3RXZWJWaWV3Q2xpZW50IGNsaWVu
dDsKKyAgICBjbGllbnQubV9zY3JlZW5JbmZvLmRldmljZVNjYWxlRmFjdG9yID0gMTsKKyAgICBp
bnQgdmlld3BvcnRXaWR0aCA9IDY0MDsKKyAgICBpbnQgdmlld3BvcnRIZWlnaHQgPSA0ODA7Cisg
ICAgZmxvYXQgZW5mb3JjZWRQYWdlU2NhbGVQYWN0b3IgPSAwLjVmOworCisgICAgbV93ZWJWaWV3
ID0gRnJhbWVUZXN0SGVscGVyczo6Y3JlYXRlV2ViVmlld0FuZExvYWQobV9iYXNlVVJMICsgInZp
ZXdwb3J0LWF1dG8taW5pdGlhbC1zY2FsZS5odG1sIiwgdHJ1ZSwgMCwgJmNsaWVudCk7CisgICAg
bV93ZWJWaWV3LT5zZXR0aW5ncygpLT5zZXRBcHBseURldmljZVNjYWxlRmFjdG9ySW5Db21wb3Np
dG9yKHRydWUpOworICAgIG1fd2ViVmlldy0+c2V0dGluZ3MoKS0+c2V0QXBwbHlQYWdlU2NhbGVG
YWN0b3JJbkNvbXBvc2l0b3IodHJ1ZSk7CisgICAgbV93ZWJWaWV3LT5lbmFibGVGaXhlZExheW91
dE1vZGUodHJ1ZSk7CisgICAgbV93ZWJWaWV3LT5zZXR0aW5ncygpLT5zZXRWaWV3cG9ydEVuYWJs
ZWQodHJ1ZSk7CisgICAgbV93ZWJWaWV3LT5zZXR0aW5ncygpLT5zZXRJbml0aWFsaXplQXRNaW5p
bXVtUGFnZVNjYWxlKGZhbHNlKTsKKyAgICBtX3dlYlZpZXctPnNldEluaXRpYWxQYWdlU2NhbGVG
YWN0b3JQZXJtYW5lbnRseShlbmZvcmNlZFBhZ2VTY2FsZVBhY3Rvcik7CisgICAgbV93ZWJWaWV3
LT5yZXNpemUoV2ViU2l6ZSh2aWV3cG9ydFdpZHRoLCB2aWV3cG9ydEhlaWdodCkpOworCisgICAg
RVhQRUNUX0VRKGVuZm9yY2VkUGFnZVNjYWxlUGFjdG9yLCBtX3dlYlZpZXctPnBhZ2VTY2FsZUZh
Y3RvcigpKTsKK30KKworVEVTVF9GKFdlYkZyYW1lVGVzdCwgUGVybWFuZW50SW5pdGlhbFBhZ2VT
Y2FsZUZhY3Rvck92ZXJyaWRlc1BhZ2VWaWV3cG9ydEluaXRpYWxTY2FsZSkKK3sKKyAgICByZWdp
c3Rlck1vY2tlZEh0dHBVUkxMb2FkKCJ2aWV3cG9ydC0yeC1pbml0aWFsLXNjYWxlLmh0bWwiKTsK
KworICAgIEZpeGVkTGF5b3V0VGVzdFdlYlZpZXdDbGllbnQgY2xpZW50OworICAgIGNsaWVudC5t
X3NjcmVlbkluZm8uZGV2aWNlU2NhbGVGYWN0b3IgPSAxOworICAgIGludCB2aWV3cG9ydFdpZHRo
ID0gNjQwOworICAgIGludCB2aWV3cG9ydEhlaWdodCA9IDQ4MDsKKyAgICBmbG9hdCBlbmZvcmNl
ZFBhZ2VTY2FsZVBhY3RvciA9IDAuNWY7CisKKyAgICBtX3dlYlZpZXcgPSBGcmFtZVRlc3RIZWxw
ZXJzOjpjcmVhdGVXZWJWaWV3QW5kTG9hZChtX2Jhc2VVUkwgKyAidmlld3BvcnQtMngtaW5pdGlh
bC1zY2FsZS5odG1sIiwgdHJ1ZSwgMCwgJmNsaWVudCk7CisgICAgbV93ZWJWaWV3LT5zZXR0aW5n
cygpLT5zZXRBcHBseURldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKHRydWUpOworICAgIG1f
d2ViVmlldy0+c2V0dGluZ3MoKS0+c2V0QXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3Io
dHJ1ZSk7CisgICAgbV93ZWJWaWV3LT5lbmFibGVGaXhlZExheW91dE1vZGUodHJ1ZSk7CisgICAg
bV93ZWJWaWV3LT5zZXR0aW5ncygpLT5zZXRWaWV3cG9ydEVuYWJsZWQodHJ1ZSk7CisgICAgbV93
ZWJWaWV3LT5zZXRJbml0aWFsUGFnZVNjYWxlRmFjdG9yUGVybWFuZW50bHkoZW5mb3JjZWRQYWdl
U2NhbGVQYWN0b3IpOworICAgIG1fd2ViVmlldy0+cmVzaXplKFdlYlNpemUodmlld3BvcnRXaWR0
aCwgdmlld3BvcnRIZWlnaHQpKTsKKworICAgIEVYUEVDVF9FUShlbmZvcmNlZFBhZ2VTY2FsZVBh
Y3RvciwgbV93ZWJWaWV3LT5wYWdlU2NhbGVGYWN0b3IoKSk7Cit9CisKIFRFU1RfRihXZWJGcmFt
ZVRlc3QsIFNjYWxlRmFjdG9yU2hvdWxkTm90T3NjaWxsYXRlKQogewogICAgIHJlZ2lzdGVyTW9j
a2VkSHR0cFVSTExvYWQoInNjYWxlX29zY2lsbGF0ZS5odG1sIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188868</attachid>
            <date>2013-02-18 06:02:13 -0800</date>
            <delta_ts>2013-02-20 03:54:00 -0800</delta_ts>
            <desc>Comments addressed</desc>
            <filename>wk-109946.patch</filename>
            <type>text/plain</type>
            <size>9255</size>
            <attacher name="Mikhail Naganov">mnaganov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMzQ5NGZiOC4uZGM5OGYxYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMy0wMi0xOCAgTWlraGFpbCBO
YWdhbm92ICA8bW5hZ2Fub3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gQWRk
IHN1cHBvcnQgZm9yIGVtdWxhdGluZyBsZWdhY3kgQW5kcm9pZCBXZWJWaWV3ICdzZXRJbml0aWFs
U2NhbGUnIG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA5OTQ2CisKKyAgICAgICAgQWRkaW5nIGEgV2ViVmlldyBtZXRob2QgZm9yIHBlcm1h
bmVudGx5IHNldHRpbmcgaW5pdGlhbCBwYWdlIHNjYWxlLgorICAgICAgICBUaGlzIG92ZXJyaWRl
IGhhcyBoaWdoZXIgcHJpb3JpdHkgdGhhbiBhbnkgY2FsY3VsYXRlZCBwYWdlIHNjYWxlCisgICAg
ICAgIGFuZCB2aWV3cG9ydCBtZXRhIHRhZyB2YWx1ZS4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Lmg6CisgICAgICAgIChX
ZWJWaWV3KToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6c2V0SW5pdGlhbFBhZ2VTY2FsZU92ZXJyaWRlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpjb21wdXRlUGFnZVNjYWxlRmFjdG9yTGltaXRzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmxheW91dFVwZGF0ZWQpOgorICAgICAgICAq
IHNyYy9XZWJWaWV3SW1wbC5oOgorICAgICAgICAqIHRlc3RzL1dlYkZyYW1lVGVzdC5jcHA6CisK
IDIwMTMtMDItMTUgIEFsZWMgRmxldHQgIDxhbGVjZmxldHRAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIEluZGV4ZWREQjogU3R1YiBvdXQgU2hhcmVkQnVmZmVyIHZlcnNpb24gb2YgZ2V0KCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAppbmRleCBkYzEwYmY1Li4yODViOWI2
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaApAQCAtMjI5LDYgKzIy
OSwxMCBAQCBwdWJsaWM6CiAgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgZG91YmxlIHpvb21MZXZl
bFRvWm9vbUZhY3Rvcihkb3VibGUgem9vbUxldmVsKTsKICAgICBXRUJLSVRfRVhQT1JUIHN0YXRp
YyBkb3VibGUgem9vbUZhY3RvclRvWm9vbUxldmVsKGRvdWJsZSBmYWN0b3IpOwogCisgICAgLy8g
U2V0cyB0aGUgaW5pdGlhbCBwYWdlIHNjYWxlIHRvIHRoZSBnaXZlbiBmYWN0b3IuIFRoaXMgc2Nh
bGUgc2V0dGluZyBvdmVycmlkZXMKKyAgICAvLyBwYWdlIHNjYWxlIHNldCBpbiB0aGUgcGFnZSdz
IHZpZXdwb3J0IG1ldGEgdGFnLgorICAgIHZpcnR1YWwgdm9pZCBzZXRJbml0aWFsUGFnZVNjYWxl
T3ZlcnJpZGUoZmxvYXQpID0gMDsKKwogICAgIC8vIEdldHMgdGhlIHNjYWxlIGZhY3RvciBvZiB0
aGUgcGFnZSwgd2hlcmUgMS4wIGlzIHRoZSBub3JtYWwgc2l6ZSwgPiAxLjAKICAgICAvLyBpcyBz
Y2FsZWQgdXAsIDwgMS4wIGlzIHNjYWxlZCBkb3duLgogICAgIHZpcnR1YWwgZmxvYXQgcGFnZVNj
YWxlRmFjdG9yKCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuY3BwCmluZGV4IGIyZTRiNzcuLmQ3NDVjMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTM5NSw2ICszOTUsNyBAQCBXZWJWaWV3SW1wbDo6
V2ViVmlld0ltcGwoV2ViVmlld0NsaWVudCogY2xpZW50KQogICAgICwgbV9wYWdlRGVmaW5lZE1h
eGltdW1QYWdlU2NhbGVGYWN0b3IoLTEpCiAgICAgLCBtX21pbmltdW1QYWdlU2NhbGVGYWN0b3Io
bWluUGFnZVNjYWxlRmFjdG9yKQogICAgICwgbV9tYXhpbXVtUGFnZVNjYWxlRmFjdG9yKG1heFBh
Z2VTY2FsZUZhY3RvcikKKyAgICAsIG1faW5pdGlhbFBhZ2VTY2FsZUZhY3Rvck92ZXJyaWRlKC0x
KQogICAgICwgbV9pbml0aWFsUGFnZVNjYWxlRmFjdG9yKC0xKQogICAgICwgbV9pZ25vcmVWaWV3
cG9ydFRhZ01heGltdW1TY2FsZShmYWxzZSkKICAgICAsIG1fcGFnZVNjYWxlRmFjdG9ySXNTZXQo
ZmFsc2UpCkBAIC0yOTQ0LDYgKzI5NDUsMTIgQEAgZG91YmxlIFdlYlZpZXc6Onpvb21GYWN0b3JU
b1pvb21MZXZlbChkb3VibGUgZmFjdG9yKQogICAgIHJldHVybiBsb2coZmFjdG9yKSAvIGxvZyh0
ZXh0U2l6ZU11bHRpcGxpZXJSYXRpbyk7CiB9CiAKK3ZvaWQgV2ViVmlld0ltcGw6OnNldEluaXRp
YWxQYWdlU2NhbGVPdmVycmlkZShmbG9hdCBpbml0aWFsUGFnZVNjYWxlRmFjdG9yKQoreworICAg
IG1faW5pdGlhbFBhZ2VTY2FsZUZhY3Rvck92ZXJyaWRlID0gaW5pdGlhbFBhZ2VTY2FsZUZhY3Rv
cjsKKyAgICBtX3BhZ2VTY2FsZUZhY3RvcklzU2V0ID0gZmFsc2U7Cit9CisKIGZsb2F0IFdlYlZp
ZXdJbXBsOjpwYWdlU2NhbGVGYWN0b3IoKSBjb25zdAogewogICAgIGlmICghcGFnZSgpKQpAQCAt
MzE3Miw4ICszMTc5LDExIEBAIHZvaWQgV2ViVmlld0ltcGw6OmNvbXB1dGVQYWdlU2NhbGVGYWN0
b3JMaW1pdHMoKQogCiAgICAgLy8gSW5pdGlhbGl6ZSBhbmQvb3IgY2xhbXAgdGhlIHBhZ2Ugc2Nh
bGUgZmFjdG9yIGlmIG5lZWRlZC4KICAgICBmbG9hdCBuZXdQYWdlU2NhbGVGYWN0b3IgPSBwYWdl
U2NhbGVGYWN0b3IoKTsKLSAgICBpZiAoIW1fcGFnZVNjYWxlRmFjdG9ySXNTZXQgJiYgbV9pbml0
aWFsUGFnZVNjYWxlRmFjdG9yICE9IC0xKSB7Ci0gICAgICAgIG5ld1BhZ2VTY2FsZUZhY3RvciA9
IG1faW5pdGlhbFBhZ2VTY2FsZUZhY3RvcjsKKyAgICBpZiAoIW1fcGFnZVNjYWxlRmFjdG9ySXNT
ZXQgJiYgKG1faW5pdGlhbFBhZ2VTY2FsZUZhY3Rvck92ZXJyaWRlICE9IC0xIHx8IG1faW5pdGlh
bFBhZ2VTY2FsZUZhY3RvciAhPSAtMSkpIHsKKyAgICAgICAgaWYgKG1faW5pdGlhbFBhZ2VTY2Fs
ZUZhY3RvciAhPSAtMSkKKyAgICAgICAgICAgIG5ld1BhZ2VTY2FsZUZhY3RvciA9IG1faW5pdGlh
bFBhZ2VTY2FsZUZhY3RvcjsKKyAgICAgICAgaWYgKG1faW5pdGlhbFBhZ2VTY2FsZUZhY3Rvck92
ZXJyaWRlICE9IC0xKQorICAgICAgICAgICAgbmV3UGFnZVNjYWxlRmFjdG9yID0gbV9pbml0aWFs
UGFnZVNjYWxlRmFjdG9yT3ZlcnJpZGU7CiAgICAgICAgIG1fcGFnZVNjYWxlRmFjdG9ySXNTZXQg
PSB0cnVlOwogICAgIH0KICAgICBuZXdQYWdlU2NhbGVGYWN0b3IgPSBjbGFtcFBhZ2VTY2FsZUZh
Y3RvclRvTGltaXRzKG5ld1BhZ2VTY2FsZUZhY3Rvcik7CkBAIC0zNzk0LDE0ICszODA0LDE0IEBA
IHZvaWQgV2ViVmlld0ltcGw6OmxheW91dFVwZGF0ZWQoV2ViRnJhbWVJbXBsKiB3ZWJmcmFtZSkK
ICAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChzZXR0aW5ncygpLT52aWV3cG9ydEVuYWJsZWQo
KSkgewotICAgICAgICBpZiAoIWlzUGFnZVNjYWxlRmFjdG9yU2V0KCkpIHsKLSAgICAgICAgICAg
IC8vIElmIHRoZSB2aWV3cG9ydCB0YWcgZmFpbGVkIHRvIGJlIHByb2Nlc3NlZCBlYXJsaWVyLCB3
ZSBuZWVkCi0gICAgICAgICAgICAvLyB0byByZWNvbXB1dGUgaXQgbm93LgotICAgICAgICAgICAg
Vmlld3BvcnRBcmd1bWVudHMgdmlld3BvcnRBcmd1bWVudHMgPSBtYWluRnJhbWVJbXBsKCktPmZy
YW1lKCktPmRvY3VtZW50KCktPnZpZXdwb3J0QXJndW1lbnRzKCk7Ci0gICAgICAgICAgICBtX3Bh
Z2UtPmNocm9tZSgpLT5jbGllbnQoKS0+ZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFu
Z2Uodmlld3BvcnRBcmd1bWVudHMpOwotICAgICAgICB9CisgICAgaWYgKHNldHRpbmdzKCktPnZp
ZXdwb3J0RW5hYmxlZCgpICYmICFpc1BhZ2VTY2FsZUZhY3RvclNldCgpKSB7CisgICAgICAgIC8v
IElmIHRoZSB2aWV3cG9ydCB0YWcgZmFpbGVkIHRvIGJlIHByb2Nlc3NlZCBlYXJsaWVyLCB3ZSBu
ZWVkCisgICAgICAgIC8vIHRvIHJlY29tcHV0ZSBpdCBub3cuCisgICAgICAgIFZpZXdwb3J0QXJn
dW1lbnRzIHZpZXdwb3J0QXJndW1lbnRzID0gbWFpbkZyYW1lSW1wbCgpLT5mcmFtZSgpLT5kb2N1
bWVudCgpLT52aWV3cG9ydEFyZ3VtZW50cygpOworICAgICAgICBtX3BhZ2UtPmNocm9tZSgpLT5j
bGllbnQoKS0+ZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2Uodmlld3BvcnRBcmd1
bWVudHMpOworICAgIH0KIAorICAgIGlmIChzZXR0aW5ncygpLT52aWV3cG9ydEVuYWJsZWQoKSB8
fCBpc0ZpeGVkTGF5b3V0TW9kZUVuYWJsZWQoKSkgewogICAgICAgICAvLyBDb250ZW50cyBzaXpl
IGlzIGFuIGlucHV0IHRvIHRoZSBwYWdlIHNjYWxlIGxpbWl0cywgc28gYSBnb29kIHRpbWUgdG8K
ICAgICAgICAgLy8gcmVjYWxjdWxhdGUgaXMgYWZ0ZXIgbGF5b3V0IGhhcyBvY2N1cnJlZC4KICAg
ICAgICAgY29tcHV0ZVBhZ2VTY2FsZUZhY3RvckxpbWl0cygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmgKaW5kZXggYTk1MTk2Yy4uZjIwYmVlNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCkBAIC0yMjIsNiArMjIyLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgZG91YmxlIHNldFpvb21MZXZlbChib29sIHRleHRPbmx5LCBkb3VibGUg
em9vbUxldmVsKTsKICAgICB2aXJ0dWFsIHZvaWQgem9vbUxpbWl0c0NoYW5nZWQoZG91YmxlIG1p
bmltdW1ab29tTGV2ZWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJs
ZSBtYXhpbXVtWm9vbUxldmVsKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SW5pdGlhbFBhZ2VTY2Fs
ZU92ZXJyaWRlKGZsb2F0KTsKICAgICB2aXJ0dWFsIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcigpIGNv
bnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc1BhZ2VTY2FsZUZhY3RvclNldCgpIGNvbnN0OwogICAg
IHZpcnR1YWwgdm9pZCBzZXRQYWdlU2NhbGVGYWN0b3JQcmVzZXJ2aW5nU2Nyb2xsT2Zmc2V0KGZs
b2F0KTsKQEAgLTc1NCw2ICs3NTUsNyBAQCBwcml2YXRlOgogICAgIGZsb2F0IG1fcGFnZURlZmlu
ZWRNYXhpbXVtUGFnZVNjYWxlRmFjdG9yOwogICAgIGZsb2F0IG1fbWluaW11bVBhZ2VTY2FsZUZh
Y3RvcjsKICAgICBmbG9hdCBtX21heGltdW1QYWdlU2NhbGVGYWN0b3I7CisgICAgZmxvYXQgbV9p
bml0aWFsUGFnZVNjYWxlRmFjdG9yT3ZlcnJpZGU7CiAgICAgZmxvYXQgbV9pbml0aWFsUGFnZVNj
YWxlRmFjdG9yOwogICAgIGJvb2wgbV9pZ25vcmVWaWV3cG9ydFRhZ01heGltdW1TY2FsZTsKICAg
ICBib29sIG1fcGFnZVNjYWxlRmFjdG9ySXNTZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL1dlYkZyYW1lVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL1dlYkZyYW1lVGVzdC5jcHAKaW5kZXggMzhlZDQ4My4uMDQwZTk0YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJGcmFtZVRlc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNwcApAQCAtMzk0LDYgKzM5
NCw3NSBAQCBURVNUX0YoV2ViRnJhbWVUZXN0LCBQYWdlVmlld3BvcnRJbml0aWFsU2NhbGVPdmVy
cmlkZXNJbml0aWFsaXplQXRNaW5pbXVtU2NhbGUpCiAgICAgRVhQRUNUX0VRKDIuMGYsIG1fd2Vi
Vmlldy0+cGFnZVNjYWxlRmFjdG9yKCkpOwogfQogCitURVNUX0YoV2ViRnJhbWVUZXN0LCBzZXRJ
bml0aWFsUGFnZVNjYWxlRmFjdG9yUGVybWFuZW50bHkpCit7CisgICAgcmVnaXN0ZXJNb2NrZWRI
dHRwVVJMTG9hZCgiZml4ZWRfbGF5b3V0Lmh0bWwiKTsKKworICAgIEZpeGVkTGF5b3V0VGVzdFdl
YlZpZXdDbGllbnQgY2xpZW50OworICAgIGNsaWVudC5tX3NjcmVlbkluZm8uZGV2aWNlU2NhbGVG
YWN0b3IgPSAxOworICAgIGludCB2aWV3cG9ydFdpZHRoID0gNjQwOworICAgIGludCB2aWV3cG9y
dEhlaWdodCA9IDQ4MDsKKyAgICBmbG9hdCBlbmZvcmNlZFBhZ2VTY2FsZVBhY3RvciA9IDIuMGY7
CisKKyAgICBtX3dlYlZpZXcgPSBGcmFtZVRlc3RIZWxwZXJzOjpjcmVhdGVXZWJWaWV3QW5kTG9h
ZChtX2Jhc2VVUkwgKyAiZml4ZWRfbGF5b3V0Lmh0bWwiLCB0cnVlLCAwLCAmY2xpZW50KTsKKyAg
ICBtX3dlYlZpZXctPnNldHRpbmdzKCktPnNldEFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBv
c2l0b3IodHJ1ZSk7CisgICAgbV93ZWJWaWV3LT5zZXR0aW5ncygpLT5zZXRBcHBseVBhZ2VTY2Fs
ZUZhY3RvckluQ29tcG9zaXRvcih0cnVlKTsKKyAgICBtX3dlYlZpZXctPmVuYWJsZUZpeGVkTGF5
b3V0TW9kZSh0cnVlKTsKKyAgICBtX3dlYlZpZXctPnNldEluaXRpYWxQYWdlU2NhbGVPdmVycmlk
ZShlbmZvcmNlZFBhZ2VTY2FsZVBhY3Rvcik7CisgICAgbV93ZWJWaWV3LT5yZXNpemUoV2ViU2l6
ZSh2aWV3cG9ydFdpZHRoLCB2aWV3cG9ydEhlaWdodCkpOworCisgICAgRVhQRUNUX0VRKGVuZm9y
Y2VkUGFnZVNjYWxlUGFjdG9yLCBtX3dlYlZpZXctPnBhZ2VTY2FsZUZhY3RvcigpKTsKKworICAg
IG1fd2ViVmlldy0+c2V0dGluZ3MoKS0+c2V0Vmlld3BvcnRFbmFibGVkKHRydWUpOworICAgIG1f
d2ViVmlldy0+cmVzZXRTY3JvbGxBbmRTY2FsZVN0YXRlKCk7CisgICAgbV93ZWJWaWV3LT5sYXlv
dXQoKTsKKworICAgIEVYUEVDVF9FUShlbmZvcmNlZFBhZ2VTY2FsZVBhY3RvciwgbV93ZWJWaWV3
LT5wYWdlU2NhbGVGYWN0b3IoKSk7Cit9CisKK1RFU1RfRihXZWJGcmFtZVRlc3QsIFBlcm1hbmVu
dEluaXRpYWxQYWdlU2NhbGVGYWN0b3JPdmVycmlkZXNJbml0aWFsaXplQXRNaW5pbXVtU2NhbGUp
Cit7CisgICAgcmVnaXN0ZXJNb2NrZWRIdHRwVVJMTG9hZCgidmlld3BvcnQtYXV0by1pbml0aWFs
LXNjYWxlLmh0bWwiKTsKKworICAgIEZpeGVkTGF5b3V0VGVzdFdlYlZpZXdDbGllbnQgY2xpZW50
OworICAgIGNsaWVudC5tX3NjcmVlbkluZm8uZGV2aWNlU2NhbGVGYWN0b3IgPSAxOworICAgIGlu
dCB2aWV3cG9ydFdpZHRoID0gNjQwOworICAgIGludCB2aWV3cG9ydEhlaWdodCA9IDQ4MDsKKyAg
ICBmbG9hdCBlbmZvcmNlZFBhZ2VTY2FsZVBhY3RvciA9IDAuNWY7CisKKyAgICBtX3dlYlZpZXcg
PSBGcmFtZVRlc3RIZWxwZXJzOjpjcmVhdGVXZWJWaWV3QW5kTG9hZChtX2Jhc2VVUkwgKyAidmll
d3BvcnQtYXV0by1pbml0aWFsLXNjYWxlLmh0bWwiLCB0cnVlLCAwLCAmY2xpZW50KTsKKyAgICBt
X3dlYlZpZXctPnNldHRpbmdzKCktPnNldEFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0
b3IodHJ1ZSk7CisgICAgbV93ZWJWaWV3LT5zZXR0aW5ncygpLT5zZXRBcHBseVBhZ2VTY2FsZUZh
Y3RvckluQ29tcG9zaXRvcih0cnVlKTsKKyAgICBtX3dlYlZpZXctPmVuYWJsZUZpeGVkTGF5b3V0
TW9kZSh0cnVlKTsKKyAgICBtX3dlYlZpZXctPnNldHRpbmdzKCktPnNldFZpZXdwb3J0RW5hYmxl
ZCh0cnVlKTsKKyAgICBtX3dlYlZpZXctPnNldHRpbmdzKCktPnNldEluaXRpYWxpemVBdE1pbmlt
dW1QYWdlU2NhbGUoZmFsc2UpOworICAgIG1fd2ViVmlldy0+c2V0SW5pdGlhbFBhZ2VTY2FsZU92
ZXJyaWRlKGVuZm9yY2VkUGFnZVNjYWxlUGFjdG9yKTsKKyAgICBtX3dlYlZpZXctPnJlc2l6ZShX
ZWJTaXplKHZpZXdwb3J0V2lkdGgsIHZpZXdwb3J0SGVpZ2h0KSk7CisKKyAgICBFWFBFQ1RfRVEo
ZW5mb3JjZWRQYWdlU2NhbGVQYWN0b3IsIG1fd2ViVmlldy0+cGFnZVNjYWxlRmFjdG9yKCkpOwor
fQorCitURVNUX0YoV2ViRnJhbWVUZXN0LCBQZXJtYW5lbnRJbml0aWFsUGFnZVNjYWxlRmFjdG9y
T3ZlcnJpZGVzUGFnZVZpZXdwb3J0SW5pdGlhbFNjYWxlKQoreworICAgIHJlZ2lzdGVyTW9ja2Vk
SHR0cFVSTExvYWQoInZpZXdwb3J0LTJ4LWluaXRpYWwtc2NhbGUuaHRtbCIpOworCisgICAgRml4
ZWRMYXlvdXRUZXN0V2ViVmlld0NsaWVudCBjbGllbnQ7CisgICAgY2xpZW50Lm1fc2NyZWVuSW5m
by5kZXZpY2VTY2FsZUZhY3RvciA9IDE7CisgICAgaW50IHZpZXdwb3J0V2lkdGggPSA2NDA7Cisg
ICAgaW50IHZpZXdwb3J0SGVpZ2h0ID0gNDgwOworICAgIGZsb2F0IGVuZm9yY2VkUGFnZVNjYWxl
UGFjdG9yID0gMC41ZjsKKworICAgIG1fd2ViVmlldyA9IEZyYW1lVGVzdEhlbHBlcnM6OmNyZWF0
ZVdlYlZpZXdBbmRMb2FkKG1fYmFzZVVSTCArICJ2aWV3cG9ydC0yeC1pbml0aWFsLXNjYWxlLmh0
bWwiLCB0cnVlLCAwLCAmY2xpZW50KTsKKyAgICBtX3dlYlZpZXctPnNldHRpbmdzKCktPnNldEFw
cGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IodHJ1ZSk7CisgICAgbV93ZWJWaWV3LT5z
ZXR0aW5ncygpLT5zZXRBcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcih0cnVlKTsKKyAg
ICBtX3dlYlZpZXctPmVuYWJsZUZpeGVkTGF5b3V0TW9kZSh0cnVlKTsKKyAgICBtX3dlYlZpZXct
PnNldHRpbmdzKCktPnNldFZpZXdwb3J0RW5hYmxlZCh0cnVlKTsKKyAgICBtX3dlYlZpZXctPnNl
dEluaXRpYWxQYWdlU2NhbGVPdmVycmlkZShlbmZvcmNlZFBhZ2VTY2FsZVBhY3Rvcik7CisgICAg
bV93ZWJWaWV3LT5yZXNpemUoV2ViU2l6ZSh2aWV3cG9ydFdpZHRoLCB2aWV3cG9ydEhlaWdodCkp
OworCisgICAgRVhQRUNUX0VRKGVuZm9yY2VkUGFnZVNjYWxlUGFjdG9yLCBtX3dlYlZpZXctPnBh
Z2VTY2FsZUZhY3RvcigpKTsKK30KKwogVEVTVF9GKFdlYkZyYW1lVGVzdCwgU2NhbGVGYWN0b3JT
aG91bGROb3RPc2NpbGxhdGUpCiB7CiAgICAgcmVnaXN0ZXJNb2NrZWRIdHRwVVJMTG9hZCgic2Nh
bGVfb3NjaWxsYXRlLmh0bWwiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189282</attachid>
            <date>2013-02-20 03:54:00 -0800</date>
            <delta_ts>2013-02-21 02:16:56 -0800</delta_ts>
            <desc>Eliminate &quot;fixed layout enabled, viewport disabled&quot; mode</desc>
            <filename>wk-109946.patch</filename>
            <type>text/plain</type>
            <size>11778</size>
            <attacher name="Mikhail Naganov">mnaganov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggODY2YjZiZi4uMGYxZjk4MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMy0wMi0yMCAgTWlraGFpbCBO
YWdhbm92ICA8bW5hZ2Fub3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gQWRk
IHN1cHBvcnQgZm9yIGVtdWxhdGluZyBsZWdhY3kgQW5kcm9pZCBXZWJWaWV3ICdzZXRJbml0aWFs
U2NhbGUnIG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA5OTQ2CisKKyAgICAgICAgQWRkaW5nIGEgV2ViVmlldyBtZXRob2QgZm9yIHBlcm1h
bmVudGx5IHNldHRpbmcgaW5pdGlhbCBwYWdlIHNjYWxlLgorICAgICAgICBUaGlzIG92ZXJyaWRl
IGhhcyBoaWdoZXIgcHJpb3JpdHkgdGhhbiBhbnkgY2FsY3VsYXRlZCBwYWdlIHNjYWxlCisgICAg
ICAgIGFuZCB2aWV3cG9ydCBtZXRhIHRhZyB2YWx1ZS4KKworICAgICAgICBBbHNvLCB0aGlzIHBh
dGNoIGVsaW1pbmF0ZXMgYSBkdWJpb3VzICJmaXhlZCBsYXlvdXQgZW5hYmxlZCwgdmlld3BvcnQg
ZGlzYWJsZWQiIG1vZGUKKyAgICAgICAgcHJldmlvdXNseSB1c2VkIGJ5IEFuZHJvaWQgV2ViVmll
dy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1
YmxpYy9XZWJWaWV3Lmg6CisgICAgICAgIChXZWJWaWV3KToKKyAgICAgICAgKiBzcmMvQ2hyb21l
Q2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OmRpc3Bh
dGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0lt
cGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0SW5pdGlhbFBhZ2VTY2FsZU92ZXJyaWRlKToK
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpjb21wdXRl
UGFnZVNjYWxlRmFjdG9yTGltaXRzKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDoKKyAg
ICAgICAgKiB0ZXN0cy9XZWJGcmFtZVRlc3QuY3BwOgorCiAyMDEzLTAyLTE5ICBBZHJpZW5uZSBX
YWxrZXIgIDxlbm5lQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByMTQzMzgyIGFuZCByMTQzNDAxLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViVmlldy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
Vmlldy5oCmluZGV4IGRjMTBiZjUuLjI4NWI5YjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViVmlldy5oCkBAIC0yMjksNiArMjI5LDEwIEBAIHB1YmxpYzoKICAgICBXRUJLSVRf
RVhQT1JUIHN0YXRpYyBkb3VibGUgem9vbUxldmVsVG9ab29tRmFjdG9yKGRvdWJsZSB6b29tTGV2
ZWwpOwogICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIGRvdWJsZSB6b29tRmFjdG9yVG9ab29tTGV2
ZWwoZG91YmxlIGZhY3Rvcik7CiAKKyAgICAvLyBTZXRzIHRoZSBpbml0aWFsIHBhZ2Ugc2NhbGUg
dG8gdGhlIGdpdmVuIGZhY3Rvci4gVGhpcyBzY2FsZSBzZXR0aW5nIG92ZXJyaWRlcworICAgIC8v
IHBhZ2Ugc2NhbGUgc2V0IGluIHRoZSBwYWdlJ3Mgdmlld3BvcnQgbWV0YSB0YWcuCisgICAgdmly
dHVhbCB2b2lkIHNldEluaXRpYWxQYWdlU2NhbGVPdmVycmlkZShmbG9hdCkgPSAwOworCiAgICAg
Ly8gR2V0cyB0aGUgc2NhbGUgZmFjdG9yIG9mIHRoZSBwYWdlLCB3aGVyZSAxLjAgaXMgdGhlIG5v
cm1hbCBzaXplLCA+IDEuMAogICAgIC8vIGlzIHNjYWxlZCB1cCwgPCAxLjAgaXMgc2NhbGVkIGRv
d24uCiAgICAgdmlydHVhbCBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdCA9IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCmluZGV4IGU1
Mjc2ZmYuLjdiZTAxMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0No
cm9tZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9t
ZUNsaWVudEltcGwuY3BwCkBAIC02NDEsNyArNjQxLDcgQEAgdm9pZCBDaHJvbWVDbGllbnRJbXBs
OjpzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYgdG9vbHRpcFRleHQsIFRleHREaXJlY3Rpb24gZGly
KQogdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpkaXNwYXRjaFZpZXdwb3J0UHJvcGVydGllc0RpZENo
YW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgYXJndW1lbnRzKSBjb25zdAogewogI2lmIEVO
QUJMRShWSUVXUE9SVCkKLSAgICBpZiAoIW1fd2ViVmlldy0+aXNGaXhlZExheW91dE1vZGVFbmFi
bGVkKCkgfHwgIW1fd2ViVmlldy0+Y2xpZW50KCkgfHwgIW1fd2ViVmlldy0+cGFnZSgpKQorICAg
IGlmICghbV93ZWJWaWV3LT5zZXR0aW5ncygpLT52aWV3cG9ydEVuYWJsZWQoKSB8fCAhbV93ZWJW
aWV3LT5pc0ZpeGVkTGF5b3V0TW9kZUVuYWJsZWQoKSB8fCAhbV93ZWJWaWV3LT5jbGllbnQoKSB8
fCAhbV93ZWJWaWV3LT5wYWdlKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIEludFNpemUgdmll
d3BvcnRTaXplID0gbV93ZWJWaWV3LT5kaXBTaXplKCk7CkBAIC02NTEsMTUgKzY1MSw3IEBAIHZv
aWQgQ2hyb21lQ2xpZW50SW1wbDo6ZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2Uo
Y29uc3QgVmlld3BvcnRBcmd1bWVuCiAgICAgaWYgKCF2aWV3cG9ydFNpemUud2lkdGgoKSB8fCAh
dmlld3BvcnRTaXplLmhlaWdodCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBWaWV3cG9ydEF0
dHJpYnV0ZXMgY29tcHV0ZWQ7Ci0gICAgaWYgKG1fd2ViVmlldy0+c2V0dGluZ3MoKS0+dmlld3Bv
cnRFbmFibGVkKCkpIHsKLSAgICAgICAgY29tcHV0ZWQgPSBhcmd1bWVudHMucmVzb2x2ZSh2aWV3
cG9ydFNpemUsIHZpZXdwb3J0U2l6ZSwgbV93ZWJWaWV3LT5wYWdlKCktPnNldHRpbmdzKCktPmxh
eW91dEZhbGxiYWNrV2lkdGgoKSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gSWYgdmlld3Bv
cnQgdGFnIGlzIGRpc2FibGVkIGJ1dCBmaXhlZCBsYXlvdXQgaXMgc3RpbGwgZW5hYmxlZCwgKGZv
cgotICAgICAgICAvLyBleGFtcGxlLCBvbiBBbmRyb2lkIFdlYlZpZXcgd2l0aCBVc2VXaWRlVmll
d3BvcnQgZmFsc2UpLCBjb21wdXRlCi0gICAgICAgIC8vIGJhc2VkIG9uIHRoZSBkZWZhdWx0IHZp
ZXdwb3J0IGFyZ3VtZW50cy4KLSAgICAgICAgY29tcHV0ZWQgPSBWaWV3cG9ydEFyZ3VtZW50cygp
LnJlc29sdmUodmlld3BvcnRTaXplLCB2aWV3cG9ydFNpemUsIHZpZXdwb3J0U2l6ZS53aWR0aCgp
KTsKLSAgICB9CisgICAgVmlld3BvcnRBdHRyaWJ1dGVzIGNvbXB1dGVkID0gYXJndW1lbnRzLnJl
c29sdmUodmlld3BvcnRTaXplLCB2aWV3cG9ydFNpemUsIG1fd2ViVmlldy0+cGFnZSgpLT5zZXR0
aW5ncygpLT5sYXlvdXRGYWxsYmFja1dpZHRoKCkpOwogICAgIHJlc3RyaWN0U2NhbGVGYWN0b3JU
b0luaXRpYWxTY2FsZUlmTm90VXNlclNjYWxhYmxlKGNvbXB1dGVkKTsKIAogICAgIGlmIChtX3dl
YlZpZXctPmlnbm9yZVZpZXdwb3J0VGFnTWF4aW11bVNjYWxlKCkpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCBhMzcxZGYwLi41ZDJhN2I0MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtMzk1LDYgKzM5
NSw3IEBAIFdlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbChXZWJWaWV3Q2xpZW50KiBjbGllbnQpCiAg
ICAgLCBtX3BhZ2VEZWZpbmVkTWF4aW11bVBhZ2VTY2FsZUZhY3RvcigtMSkKICAgICAsIG1fbWlu
aW11bVBhZ2VTY2FsZUZhY3RvcihtaW5QYWdlU2NhbGVGYWN0b3IpCiAgICAgLCBtX21heGltdW1Q
YWdlU2NhbGVGYWN0b3IobWF4UGFnZVNjYWxlRmFjdG9yKQorICAgICwgbV9pbml0aWFsUGFnZVNj
YWxlRmFjdG9yT3ZlcnJpZGUoLTEpCiAgICAgLCBtX2luaXRpYWxQYWdlU2NhbGVGYWN0b3IoLTEp
CiAgICAgLCBtX2lnbm9yZVZpZXdwb3J0VGFnTWF4aW11bVNjYWxlKGZhbHNlKQogICAgICwgbV9w
YWdlU2NhbGVGYWN0b3JJc1NldChmYWxzZSkKQEAgLTI5NjAsNiArMjk2MSwxNSBAQCBkb3VibGUg
V2ViVmlldzo6em9vbUZhY3RvclRvWm9vbUxldmVsKGRvdWJsZSBmYWN0b3IpCiAgICAgcmV0dXJu
IGxvZyhmYWN0b3IpIC8gbG9nKHRleHRTaXplTXVsdGlwbGllclJhdGlvKTsKIH0KIAordm9pZCBX
ZWJWaWV3SW1wbDo6c2V0SW5pdGlhbFBhZ2VTY2FsZU92ZXJyaWRlKGZsb2F0IGluaXRpYWxQYWdl
U2NhbGVGYWN0b3IpCit7CisgICAgbV9pbml0aWFsUGFnZVNjYWxlRmFjdG9yT3ZlcnJpZGUgPSBp
bml0aWFsUGFnZVNjYWxlRmFjdG9yOworICAgIG1fcGFnZVNjYWxlRmFjdG9ySXNTZXQgPSBmYWxz
ZTsKKyAgICBpZiAobV9pbml0aWFsUGFnZVNjYWxlRmFjdG9yT3ZlcnJpZGUgPT0gLTEgJiYgIXNl
dHRpbmdzKCktPnZpZXdwb3J0RW5hYmxlZCgpKQorICAgICAgICBtX2luaXRpYWxQYWdlU2NhbGVG
YWN0b3IgPSAxOworICAgIGNvbXB1dGVQYWdlU2NhbGVGYWN0b3JMaW1pdHMoKTsKK30KKwogZmxv
YXQgV2ViVmlld0ltcGw6OnBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0CiB7CiAgICAgaWYgKCFwYWdl
KCkpCkBAIC0zMTYxLDE2ICszMTcxLDE4IEBAIEludFNpemUgV2ViVmlld0ltcGw6OmxheW91dFNp
emUoKSBjb25zdAogCiB2b2lkIFdlYlZpZXdJbXBsOjpjb21wdXRlUGFnZVNjYWxlRmFjdG9yTGlt
aXRzKCkKIHsKLSAgICBpZiAobV9wYWdlRGVmaW5lZE1pbmltdW1QYWdlU2NhbGVGYWN0b3IgPT0g
LTEgfHwgbV9wYWdlRGVmaW5lZE1heGltdW1QYWdlU2NhbGVGYWN0b3IgPT0gLTEpCi0gICAgICAg
IHJldHVybjsKLQogICAgIGlmICghbWFpbkZyYW1lKCkgfHwgIXBhZ2UoKSB8fCAhcGFnZSgpLT5t
YWluRnJhbWUoKSB8fCAhcGFnZSgpLT5tYWluRnJhbWUoKS0+dmlldygpKQogICAgICAgICByZXR1
cm47CiAKICAgICBGcmFtZVZpZXcqIHZpZXcgPSBwYWdlKCktPm1haW5GcmFtZSgpLT52aWV3KCk7
CiAKLSAgICBtX21pbmltdW1QYWdlU2NhbGVGYWN0b3IgPSBtaW4obWF4KG1fcGFnZURlZmluZWRN
aW5pbXVtUGFnZVNjYWxlRmFjdG9yLCBtaW5QYWdlU2NhbGVGYWN0b3IpLCBtYXhQYWdlU2NhbGVG
YWN0b3IpOwotICAgIG1fbWF4aW11bVBhZ2VTY2FsZUZhY3RvciA9IG1heChtaW4obV9wYWdlRGVm
aW5lZE1heGltdW1QYWdlU2NhbGVGYWN0b3IsIG1heFBhZ2VTY2FsZUZhY3RvciksIG1pblBhZ2VT
Y2FsZUZhY3Rvcik7CisgICAgaWYgKG1fcGFnZURlZmluZWRNaW5pbXVtUGFnZVNjYWxlRmFjdG9y
ID09IC0xIHx8IG1fcGFnZURlZmluZWRNYXhpbXVtUGFnZVNjYWxlRmFjdG9yID09IC0xKSB7Cisg
ICAgICAgIG1fbWluaW11bVBhZ2VTY2FsZUZhY3RvciA9IG1pbihtaW5QYWdlU2NhbGVGYWN0b3Is
IG1heFBhZ2VTY2FsZUZhY3Rvcik7CisgICAgICAgIG1fbWF4aW11bVBhZ2VTY2FsZUZhY3RvciA9
IG1heChtYXhQYWdlU2NhbGVGYWN0b3IsIG1pblBhZ2VTY2FsZUZhY3Rvcik7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgbV9taW5pbXVtUGFnZVNjYWxlRmFjdG9yID0gbWluKG1heChtX3BhZ2VEZWZp
bmVkTWluaW11bVBhZ2VTY2FsZUZhY3RvciwgbWluUGFnZVNjYWxlRmFjdG9yKSwgbWF4UGFnZVNj
YWxlRmFjdG9yKTsKKyAgICAgICAgbV9tYXhpbXVtUGFnZVNjYWxlRmFjdG9yID0gbWF4KG1pbiht
X3BhZ2VEZWZpbmVkTWF4aW11bVBhZ2VTY2FsZUZhY3RvciwgbWF4UGFnZVNjYWxlRmFjdG9yKSwg
bWluUGFnZVNjYWxlRmFjdG9yKTsKKyAgICB9CiAKICAgICBpZiAoc2V0dGluZ3MoKS0+dmlld3Bv
cnRFbmFibGVkKCkpIHsKICAgICAgICAgaWYgKCFjb250ZW50c1NpemUoKS53aWR0aCgpIHx8ICFt
X3NpemUud2lkdGgpCkBAIC0zMTg4LDggKzMyMDAsMTEgQEAgdm9pZCBXZWJWaWV3SW1wbDo6Y29t
cHV0ZVBhZ2VTY2FsZUZhY3RvckxpbWl0cygpCiAKICAgICAvLyBJbml0aWFsaXplIGFuZC9vciBj
bGFtcCB0aGUgcGFnZSBzY2FsZSBmYWN0b3IgaWYgbmVlZGVkLgogICAgIGZsb2F0IG5ld1BhZ2VT
Y2FsZUZhY3RvciA9IHBhZ2VTY2FsZUZhY3RvcigpOwotICAgIGlmICghbV9wYWdlU2NhbGVGYWN0
b3JJc1NldCAmJiBtX2luaXRpYWxQYWdlU2NhbGVGYWN0b3IgIT0gLTEpIHsKLSAgICAgICAgbmV3
UGFnZVNjYWxlRmFjdG9yID0gbV9pbml0aWFsUGFnZVNjYWxlRmFjdG9yOworICAgIGlmICghbV9w
YWdlU2NhbGVGYWN0b3JJc1NldCAmJiAobV9pbml0aWFsUGFnZVNjYWxlRmFjdG9yT3ZlcnJpZGUg
IT0gLTEgfHwgbV9pbml0aWFsUGFnZVNjYWxlRmFjdG9yICE9IC0xKSkgeworICAgICAgICBpZiAo
bV9pbml0aWFsUGFnZVNjYWxlRmFjdG9yICE9IC0xKQorICAgICAgICAgICAgbmV3UGFnZVNjYWxl
RmFjdG9yID0gbV9pbml0aWFsUGFnZVNjYWxlRmFjdG9yOworICAgICAgICBpZiAobV9pbml0aWFs
UGFnZVNjYWxlRmFjdG9yT3ZlcnJpZGUgIT0gLTEpCisgICAgICAgICAgICBuZXdQYWdlU2NhbGVG
YWN0b3IgPSBtX2luaXRpYWxQYWdlU2NhbGVGYWN0b3JPdmVycmlkZTsKICAgICAgICAgbV9wYWdl
U2NhbGVGYWN0b3JJc1NldCA9IHRydWU7CiAgICAgfQogICAgIG5ld1BhZ2VTY2FsZUZhY3RvciA9
IGNsYW1wUGFnZVNjYWxlRmFjdG9yVG9MaW1pdHMobmV3UGFnZVNjYWxlRmFjdG9yKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCmluZGV4IDZkY2M0NzMuLmM0NjU1ZWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApAQCAtMjIyLDYgKzIy
Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGRvdWJsZSBzZXRab29tTGV2ZWwoYm9vbCB0ZXh0
T25seSwgZG91YmxlIHpvb21MZXZlbCk7CiAgICAgdmlydHVhbCB2b2lkIHpvb21MaW1pdHNDaGFu
Z2VkKGRvdWJsZSBtaW5pbXVtWm9vbUxldmVsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkb3VibGUgbWF4aW11bVpvb21MZXZlbCk7CisgICAgdmlydHVhbCB2b2lkIHNldElu
aXRpYWxQYWdlU2NhbGVPdmVycmlkZShmbG9hdCk7CiAgICAgdmlydHVhbCBmbG9hdCBwYWdlU2Nh
bGVGYWN0b3IoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNQYWdlU2NhbGVGYWN0b3JTZXQo
KSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGFnZVNjYWxlRmFjdG9yUHJlc2VydmluZ1Nj
cm9sbE9mZnNldChmbG9hdCk7CkBAIC03NTgsNiArNzU5LDcgQEAgcHJpdmF0ZToKICAgICBmbG9h
dCBtX3BhZ2VEZWZpbmVkTWF4aW11bVBhZ2VTY2FsZUZhY3RvcjsKICAgICBmbG9hdCBtX21pbmlt
dW1QYWdlU2NhbGVGYWN0b3I7CiAgICAgZmxvYXQgbV9tYXhpbXVtUGFnZVNjYWxlRmFjdG9yOwor
ICAgIGZsb2F0IG1faW5pdGlhbFBhZ2VTY2FsZUZhY3Rvck92ZXJyaWRlOwogICAgIGZsb2F0IG1f
aW5pdGlhbFBhZ2VTY2FsZUZhY3RvcjsKICAgICBib29sIG1faWdub3JlVmlld3BvcnRUYWdNYXhp
bXVtU2NhbGU7CiAgICAgYm9vbCBtX3BhZ2VTY2FsZUZhY3RvcklzU2V0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJGcmFtZVRlc3QuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9XZWJGcmFtZVRlc3QuY3BwCmluZGV4IGFjOTM3ZmQuLjEyNzI2
OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkZyYW1lVGVzdC5jcHAK
QEAgLTM5NCw2ICszOTQsODQgQEAgVEVTVF9GKFdlYkZyYW1lVGVzdCwgUGFnZVZpZXdwb3J0SW5p
dGlhbFNjYWxlT3ZlcnJpZGVzSW5pdGlhbGl6ZUF0TWluaW11bVNjYWxlKQogICAgIEVYUEVDVF9F
USgyLjBmLCBtX3dlYlZpZXctPnBhZ2VTY2FsZUZhY3RvcigpKTsKIH0KIAorVEVTVF9GKFdlYkZy
YW1lVGVzdCwgc2V0SW5pdGlhbFBhZ2VTY2FsZUZhY3RvclBlcm1hbmVudGx5KQoreworICAgIHJl
Z2lzdGVyTW9ja2VkSHR0cFVSTExvYWQoImZpeGVkX2xheW91dC5odG1sIik7CisKKyAgICBGaXhl
ZExheW91dFRlc3RXZWJWaWV3Q2xpZW50IGNsaWVudDsKKyAgICBjbGllbnQubV9zY3JlZW5JbmZv
LmRldmljZVNjYWxlRmFjdG9yID0gMTsKKyAgICBmbG9hdCBlbmZvcmNlZFBhZ2VTY2FsZVBhY3Rv
ciA9IDIuMGY7CisKKyAgICBtX3dlYlZpZXcgPSBGcmFtZVRlc3RIZWxwZXJzOjpjcmVhdGVXZWJW
aWV3QW5kTG9hZChtX2Jhc2VVUkwgKyAiZml4ZWRfbGF5b3V0Lmh0bWwiLCB0cnVlLCAwLCAmY2xp
ZW50KTsKKyAgICBtX3dlYlZpZXctPnNldHRpbmdzKCktPnNldEFwcGx5RGV2aWNlU2NhbGVGYWN0
b3JJbkNvbXBvc2l0b3IodHJ1ZSk7CisgICAgbV93ZWJWaWV3LT5zZXR0aW5ncygpLT5zZXRBcHBs
eVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcih0cnVlKTsKKyAgICBtX3dlYlZpZXctPnNldElu
aXRpYWxQYWdlU2NhbGVPdmVycmlkZShlbmZvcmNlZFBhZ2VTY2FsZVBhY3Rvcik7CisKKyAgICBF
WFBFQ1RfRVEoZW5mb3JjZWRQYWdlU2NhbGVQYWN0b3IsIG1fd2ViVmlldy0+cGFnZVNjYWxlRmFj
dG9yKCkpOworCisgICAgaW50IHZpZXdwb3J0V2lkdGggPSA2NDA7CisgICAgaW50IHZpZXdwb3J0
SGVpZ2h0ID0gNDgwOworICAgIG1fd2ViVmlldy0+ZW5hYmxlRml4ZWRMYXlvdXRNb2RlKHRydWUp
OworICAgIG1fd2ViVmlldy0+c2V0dGluZ3MoKS0+c2V0Vmlld3BvcnRFbmFibGVkKHRydWUpOwor
ICAgIG1fd2ViVmlldy0+cmVzaXplKFdlYlNpemUodmlld3BvcnRXaWR0aCwgdmlld3BvcnRIZWln
aHQpKTsKKyAgICBtX3dlYlZpZXctPmxheW91dCgpOworCisgICAgRVhQRUNUX0VRKGVuZm9yY2Vk
UGFnZVNjYWxlUGFjdG9yLCBtX3dlYlZpZXctPnBhZ2VTY2FsZUZhY3RvcigpKTsKKworICAgIG1f
d2ViVmlldy0+ZW5hYmxlRml4ZWRMYXlvdXRNb2RlKGZhbHNlKTsKKyAgICBtX3dlYlZpZXctPnNl
dHRpbmdzKCktPnNldFZpZXdwb3J0RW5hYmxlZChmYWxzZSk7CisgICAgbV93ZWJWaWV3LT5sYXlv
dXQoKTsKKworICAgIEVYUEVDVF9FUShlbmZvcmNlZFBhZ2VTY2FsZVBhY3RvciwgbV93ZWJWaWV3
LT5wYWdlU2NhbGVGYWN0b3IoKSk7CisKKyAgICBtX3dlYlZpZXctPnNldEluaXRpYWxQYWdlU2Nh
bGVPdmVycmlkZSgtMSk7CisgICAgbV93ZWJWaWV3LT5sYXlvdXQoKTsKKyAgICBFWFBFQ1RfRVEo
MS4wZiwgbV93ZWJWaWV3LT5wYWdlU2NhbGVGYWN0b3IoKSk7Cit9CisKK1RFU1RfRihXZWJGcmFt
ZVRlc3QsIFBlcm1hbmVudEluaXRpYWxQYWdlU2NhbGVGYWN0b3JPdmVycmlkZXNJbml0aWFsaXpl
QXRNaW5pbXVtU2NhbGUpCit7CisgICAgcmVnaXN0ZXJNb2NrZWRIdHRwVVJMTG9hZCgidmlld3Bv
cnQtYXV0by1pbml0aWFsLXNjYWxlLmh0bWwiKTsKKworICAgIEZpeGVkTGF5b3V0VGVzdFdlYlZp
ZXdDbGllbnQgY2xpZW50OworICAgIGNsaWVudC5tX3NjcmVlbkluZm8uZGV2aWNlU2NhbGVGYWN0
b3IgPSAxOworICAgIGludCB2aWV3cG9ydFdpZHRoID0gNjQwOworICAgIGludCB2aWV3cG9ydEhl
aWdodCA9IDQ4MDsKKyAgICBmbG9hdCBlbmZvcmNlZFBhZ2VTY2FsZVBhY3RvciA9IDAuNWY7CisK
KyAgICBtX3dlYlZpZXcgPSBGcmFtZVRlc3RIZWxwZXJzOjpjcmVhdGVXZWJWaWV3QW5kTG9hZCht
X2Jhc2VVUkwgKyAidmlld3BvcnQtYXV0by1pbml0aWFsLXNjYWxlLmh0bWwiLCB0cnVlLCAwLCAm
Y2xpZW50KTsKKyAgICBtX3dlYlZpZXctPnNldHRpbmdzKCktPnNldEFwcGx5RGV2aWNlU2NhbGVG
YWN0b3JJbkNvbXBvc2l0b3IodHJ1ZSk7CisgICAgbV93ZWJWaWV3LT5zZXR0aW5ncygpLT5zZXRB
cHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcih0cnVlKTsKKyAgICBtX3dlYlZpZXctPmVu
YWJsZUZpeGVkTGF5b3V0TW9kZSh0cnVlKTsKKyAgICBtX3dlYlZpZXctPnNldHRpbmdzKCktPnNl
dFZpZXdwb3J0RW5hYmxlZCh0cnVlKTsKKyAgICBtX3dlYlZpZXctPnNldHRpbmdzKCktPnNldElu
aXRpYWxpemVBdE1pbmltdW1QYWdlU2NhbGUoZmFsc2UpOworICAgIG1fd2ViVmlldy0+c2V0SW5p
dGlhbFBhZ2VTY2FsZU92ZXJyaWRlKGVuZm9yY2VkUGFnZVNjYWxlUGFjdG9yKTsKKyAgICBtX3dl
YlZpZXctPnJlc2l6ZShXZWJTaXplKHZpZXdwb3J0V2lkdGgsIHZpZXdwb3J0SGVpZ2h0KSk7CisK
KyAgICBFWFBFQ1RfRVEoZW5mb3JjZWRQYWdlU2NhbGVQYWN0b3IsIG1fd2ViVmlldy0+cGFnZVNj
YWxlRmFjdG9yKCkpOworfQorCitURVNUX0YoV2ViRnJhbWVUZXN0LCBQZXJtYW5lbnRJbml0aWFs
UGFnZVNjYWxlRmFjdG9yT3ZlcnJpZGVzUGFnZVZpZXdwb3J0SW5pdGlhbFNjYWxlKQoreworICAg
IHJlZ2lzdGVyTW9ja2VkSHR0cFVSTExvYWQoInZpZXdwb3J0LTJ4LWluaXRpYWwtc2NhbGUuaHRt
bCIpOworCisgICAgRml4ZWRMYXlvdXRUZXN0V2ViVmlld0NsaWVudCBjbGllbnQ7CisgICAgY2xp
ZW50Lm1fc2NyZWVuSW5mby5kZXZpY2VTY2FsZUZhY3RvciA9IDE7CisgICAgaW50IHZpZXdwb3J0
V2lkdGggPSA2NDA7CisgICAgaW50IHZpZXdwb3J0SGVpZ2h0ID0gNDgwOworICAgIGZsb2F0IGVu
Zm9yY2VkUGFnZVNjYWxlUGFjdG9yID0gMC41ZjsKKworICAgIG1fd2ViVmlldyA9IEZyYW1lVGVz
dEhlbHBlcnM6OmNyZWF0ZVdlYlZpZXdBbmRMb2FkKG1fYmFzZVVSTCArICJ2aWV3cG9ydC0yeC1p
bml0aWFsLXNjYWxlLmh0bWwiLCB0cnVlLCAwLCAmY2xpZW50KTsKKyAgICBtX3dlYlZpZXctPnNl
dHRpbmdzKCktPnNldEFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IodHJ1ZSk7Cisg
ICAgbV93ZWJWaWV3LT5zZXR0aW5ncygpLT5zZXRBcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9z
aXRvcih0cnVlKTsKKyAgICBtX3dlYlZpZXctPmVuYWJsZUZpeGVkTGF5b3V0TW9kZSh0cnVlKTsK
KyAgICBtX3dlYlZpZXctPnNldHRpbmdzKCktPnNldFZpZXdwb3J0RW5hYmxlZCh0cnVlKTsKKyAg
ICBtX3dlYlZpZXctPnNldEluaXRpYWxQYWdlU2NhbGVPdmVycmlkZShlbmZvcmNlZFBhZ2VTY2Fs
ZVBhY3Rvcik7CisgICAgbV93ZWJWaWV3LT5yZXNpemUoV2ViU2l6ZSh2aWV3cG9ydFdpZHRoLCB2
aWV3cG9ydEhlaWdodCkpOworCisgICAgRVhQRUNUX0VRKGVuZm9yY2VkUGFnZVNjYWxlUGFjdG9y
LCBtX3dlYlZpZXctPnBhZ2VTY2FsZUZhY3RvcigpKTsKK30KKwogVEVTVF9GKFdlYkZyYW1lVGVz
dCwgU2NhbGVGYWN0b3JTaG91bGROb3RPc2NpbGxhdGUpCiB7CiAgICAgcmVnaXN0ZXJNb2NrZWRI
dHRwVVJMTG9hZCgic2NhbGVfb3NjaWxsYXRlLmh0bWwiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189486</attachid>
            <date>2013-02-21 02:16:56 -0800</date>
            <delta_ts>2013-02-22 08:48:43 -0800</delta_ts>
            <desc>Alexandre&apos;s comments addressed (again)</desc>
            <filename>wk-109946.patch</filename>
            <type>text/plain</type>
            <size>11842</size>
            <attacher name="Mikhail Naganov">mnaganov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNDk3MmU1OS4uZDI2MTc3YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMy0wMi0yMSAgTWlraGFpbCBO
YWdhbm92ICA8bW5hZ2Fub3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gQWRk
IHN1cHBvcnQgZm9yIGVtdWxhdGluZyBsZWdhY3kgQW5kcm9pZCBXZWJWaWV3ICdzZXRJbml0aWFs
U2NhbGUnIG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA5OTQ2CisKKyAgICAgICAgQWRkaW5nIGEgV2ViVmlldyBtZXRob2QgZm9yIHBlcm1h
bmVudGx5IHNldHRpbmcgaW5pdGlhbCBwYWdlIHNjYWxlLgorICAgICAgICBUaGlzIG92ZXJyaWRl
IGhhcyBoaWdoZXIgcHJpb3JpdHkgdGhhbiBhbnkgY2FsY3VsYXRlZCBwYWdlIHNjYWxlCisgICAg
ICAgIGFuZCB2aWV3cG9ydCBtZXRhIHRhZyB2YWx1ZS4KKworICAgICAgICBBbHNvLCB0aGlzIHBh
dGNoIGVsaW1pbmF0ZXMgYSBkdWJpb3VzICJmaXhlZCBsYXlvdXQgZW5hYmxlZCwgdmlld3BvcnQg
ZGlzYWJsZWQiIG1vZGUKKyAgICAgICAgcHJldmlvdXNseSB1c2VkIGJ5IEFuZHJvaWQgV2ViVmll
dy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1
YmxpYy9XZWJWaWV3Lmg6CisgICAgICAgIChXZWJWaWV3KToKKyAgICAgICAgKiBzcmMvQ2hyb21l
Q2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OmRpc3Bh
dGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0lt
cGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0SW5pdGlhbFBhZ2VTY2FsZU92ZXJyaWRlKToK
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpjb21wdXRl
UGFnZVNjYWxlRmFjdG9yTGltaXRzKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDoKKyAg
ICAgICAgKiB0ZXN0cy9XZWJGcmFtZVRlc3QuY3BwOgorCiAyMDEzLTAyLTIxICBLZW4gS2FuaWEg
IDxra2FuaWFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFkZCBjb21t
YW5kIGZvciBzZWxlY3RpbmcgZmlsZXMgZm9yIGZpbGUgaW5wdXQgZWxlbWVudApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCmluZGV4IGRjMTBiZjUuLjI4NWI5YjYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCkBAIC0yMjksNiArMjI5LDEwIEBA
IHB1YmxpYzoKICAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBkb3VibGUgem9vbUxldmVsVG9ab29t
RmFjdG9yKGRvdWJsZSB6b29tTGV2ZWwpOwogICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIGRvdWJs
ZSB6b29tRmFjdG9yVG9ab29tTGV2ZWwoZG91YmxlIGZhY3Rvcik7CiAKKyAgICAvLyBTZXRzIHRo
ZSBpbml0aWFsIHBhZ2Ugc2NhbGUgdG8gdGhlIGdpdmVuIGZhY3Rvci4gVGhpcyBzY2FsZSBzZXR0
aW5nIG92ZXJyaWRlcworICAgIC8vIHBhZ2Ugc2NhbGUgc2V0IGluIHRoZSBwYWdlJ3Mgdmlld3Bv
cnQgbWV0YSB0YWcuCisgICAgdmlydHVhbCB2b2lkIHNldEluaXRpYWxQYWdlU2NhbGVPdmVycmlk
ZShmbG9hdCkgPSAwOworCiAgICAgLy8gR2V0cyB0aGUgc2NhbGUgZmFjdG9yIG9mIHRoZSBwYWdl
LCB3aGVyZSAxLjAgaXMgdGhlIG5vcm1hbCBzaXplLCA+IDEuMAogICAgIC8vIGlzIHNjYWxlZCB1
cCwgPCAxLjAgaXMgc2NhbGVkIGRvd24uCiAgICAgdmlydHVhbCBmbG9hdCBwYWdlU2NhbGVGYWN0
b3IoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9D
aHJvbWVDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNs
aWVudEltcGwuY3BwCmluZGV4IGNiNjdmNzkuLjAzMWE5NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCkBAIC02NDEsNyArNjQxLDcgQEAg
dm9pZCBDaHJvbWVDbGllbnRJbXBsOjpzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYgdG9vbHRpcFRl
eHQsIFRleHREaXJlY3Rpb24gZGlyKQogdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpkaXNwYXRjaFZp
ZXdwb3J0UHJvcGVydGllc0RpZENoYW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgYXJndW1l
bnRzKSBjb25zdAogewogI2lmIEVOQUJMRShWSUVXUE9SVCkKLSAgICBpZiAoIW1fd2ViVmlldy0+
aXNGaXhlZExheW91dE1vZGVFbmFibGVkKCkgfHwgIW1fd2ViVmlldy0+Y2xpZW50KCkgfHwgIW1f
d2ViVmlldy0+cGFnZSgpKQorICAgIGlmICghbV93ZWJWaWV3LT5zZXR0aW5ncygpLT52aWV3cG9y
dEVuYWJsZWQoKSB8fCAhbV93ZWJWaWV3LT5pc0ZpeGVkTGF5b3V0TW9kZUVuYWJsZWQoKSB8fCAh
bV93ZWJWaWV3LT5jbGllbnQoKSB8fCAhbV93ZWJWaWV3LT5wYWdlKCkpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIEludFNpemUgdmlld3BvcnRTaXplID0gbV93ZWJWaWV3LT5kaXBTaXplKCk7CkBA
IC02NTEsMTUgKzY1MSw3IEBAIHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6ZGlzcGF0Y2hWaWV3cG9y
dFByb3BlcnRpZXNEaWRDaGFuZ2UoY29uc3QgVmlld3BvcnRBcmd1bWVuCiAgICAgaWYgKCF2aWV3
cG9ydFNpemUud2lkdGgoKSB8fCAhdmlld3BvcnRTaXplLmhlaWdodCgpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBWaWV3cG9ydEF0dHJpYnV0ZXMgY29tcHV0ZWQ7Ci0gICAgaWYgKG1fd2ViVmll
dy0+c2V0dGluZ3MoKS0+dmlld3BvcnRFbmFibGVkKCkpIHsKLSAgICAgICAgY29tcHV0ZWQgPSBh
cmd1bWVudHMucmVzb2x2ZSh2aWV3cG9ydFNpemUsIHZpZXdwb3J0U2l6ZSwgbV93ZWJWaWV3LT5w
YWdlKCktPnNldHRpbmdzKCktPmxheW91dEZhbGxiYWNrV2lkdGgoKSk7Ci0gICAgfSBlbHNlIHsK
LSAgICAgICAgLy8gSWYgdmlld3BvcnQgdGFnIGlzIGRpc2FibGVkIGJ1dCBmaXhlZCBsYXlvdXQg
aXMgc3RpbGwgZW5hYmxlZCwgKGZvcgotICAgICAgICAvLyBleGFtcGxlLCBvbiBBbmRyb2lkIFdl
YlZpZXcgd2l0aCBVc2VXaWRlVmlld3BvcnQgZmFsc2UpLCBjb21wdXRlCi0gICAgICAgIC8vIGJh
c2VkIG9uIHRoZSBkZWZhdWx0IHZpZXdwb3J0IGFyZ3VtZW50cy4KLSAgICAgICAgY29tcHV0ZWQg
PSBWaWV3cG9ydEFyZ3VtZW50cygpLnJlc29sdmUodmlld3BvcnRTaXplLCB2aWV3cG9ydFNpemUs
IHZpZXdwb3J0U2l6ZS53aWR0aCgpKTsKLSAgICB9CisgICAgVmlld3BvcnRBdHRyaWJ1dGVzIGNv
bXB1dGVkID0gYXJndW1lbnRzLnJlc29sdmUodmlld3BvcnRTaXplLCB2aWV3cG9ydFNpemUsIG1f
d2ViVmlldy0+cGFnZSgpLT5zZXR0aW5ncygpLT5sYXlvdXRGYWxsYmFja1dpZHRoKCkpOwogICAg
IHJlc3RyaWN0U2NhbGVGYWN0b3JUb0luaXRpYWxTY2FsZUlmTm90VXNlclNjYWxhYmxlKGNvbXB1
dGVkKTsKIAogICAgIGlmIChtX3dlYlZpZXctPmlnbm9yZVZpZXdwb3J0VGFnTWF4aW11bVNjYWxl
KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCBh
MzcxZGYwLi4zYmEwMWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuY3BwCkBAIC0zOTUsNiArMzk1LDcgQEAgV2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKFdlYlZp
ZXdDbGllbnQqIGNsaWVudCkKICAgICAsIG1fcGFnZURlZmluZWRNYXhpbXVtUGFnZVNjYWxlRmFj
dG9yKC0xKQogICAgICwgbV9taW5pbXVtUGFnZVNjYWxlRmFjdG9yKG1pblBhZ2VTY2FsZUZhY3Rv
cikKICAgICAsIG1fbWF4aW11bVBhZ2VTY2FsZUZhY3RvcihtYXhQYWdlU2NhbGVGYWN0b3IpCisg
ICAgLCBtX2luaXRpYWxQYWdlU2NhbGVGYWN0b3JPdmVycmlkZSgtMSkKICAgICAsIG1faW5pdGlh
bFBhZ2VTY2FsZUZhY3RvcigtMSkKICAgICAsIG1faWdub3JlVmlld3BvcnRUYWdNYXhpbXVtU2Nh
bGUoZmFsc2UpCiAgICAgLCBtX3BhZ2VTY2FsZUZhY3RvcklzU2V0KGZhbHNlKQpAQCAtMjk2MCw2
ICsyOTYxLDE1IEBAIGRvdWJsZSBXZWJWaWV3Ojp6b29tRmFjdG9yVG9ab29tTGV2ZWwoZG91Ymxl
IGZhY3RvcikKICAgICByZXR1cm4gbG9nKGZhY3RvcikgLyBsb2codGV4dFNpemVNdWx0aXBsaWVy
UmF0aW8pOwogfQogCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRJbml0aWFsUGFnZVNjYWxlT3ZlcnJp
ZGUoZmxvYXQgaW5pdGlhbFBhZ2VTY2FsZUZhY3Rvck92ZXJyaWRlKQoreworICAgIGlmIChtX2lu
aXRpYWxQYWdlU2NhbGVGYWN0b3JPdmVycmlkZSA9PSBpbml0aWFsUGFnZVNjYWxlRmFjdG9yT3Zl
cnJpZGUpCisgICAgICAgIHJldHVybjsKKyAgICBtX2luaXRpYWxQYWdlU2NhbGVGYWN0b3JPdmVy
cmlkZSA9IGluaXRpYWxQYWdlU2NhbGVGYWN0b3JPdmVycmlkZTsKKyAgICBtX3BhZ2VTY2FsZUZh
Y3RvcklzU2V0ID0gZmFsc2U7CisgICAgY29tcHV0ZVBhZ2VTY2FsZUZhY3RvckxpbWl0cygpOwor
fQorCiBmbG9hdCBXZWJWaWV3SW1wbDo6cGFnZVNjYWxlRmFjdG9yKCkgY29uc3QKIHsKICAgICBp
ZiAoIXBhZ2UoKSkKQEAgLTMxNjEsMTYgKzMxNzEsMTggQEAgSW50U2l6ZSBXZWJWaWV3SW1wbDo6
bGF5b3V0U2l6ZSgpIGNvbnN0CiAKIHZvaWQgV2ViVmlld0ltcGw6OmNvbXB1dGVQYWdlU2NhbGVG
YWN0b3JMaW1pdHMoKQogewotICAgIGlmIChtX3BhZ2VEZWZpbmVkTWluaW11bVBhZ2VTY2FsZUZh
Y3RvciA9PSAtMSB8fCBtX3BhZ2VEZWZpbmVkTWF4aW11bVBhZ2VTY2FsZUZhY3RvciA9PSAtMSkK
LSAgICAgICAgcmV0dXJuOwotCiAgICAgaWYgKCFtYWluRnJhbWUoKSB8fCAhcGFnZSgpIHx8ICFw
YWdlKCktPm1haW5GcmFtZSgpIHx8ICFwYWdlKCktPm1haW5GcmFtZSgpLT52aWV3KCkpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIEZyYW1lVmlldyogdmlldyA9IHBhZ2UoKS0+bWFpbkZyYW1lKCkt
PnZpZXcoKTsKIAotICAgIG1fbWluaW11bVBhZ2VTY2FsZUZhY3RvciA9IG1pbihtYXgobV9wYWdl
RGVmaW5lZE1pbmltdW1QYWdlU2NhbGVGYWN0b3IsIG1pblBhZ2VTY2FsZUZhY3RvciksIG1heFBh
Z2VTY2FsZUZhY3Rvcik7Ci0gICAgbV9tYXhpbXVtUGFnZVNjYWxlRmFjdG9yID0gbWF4KG1pbiht
X3BhZ2VEZWZpbmVkTWF4aW11bVBhZ2VTY2FsZUZhY3RvciwgbWF4UGFnZVNjYWxlRmFjdG9yKSwg
bWluUGFnZVNjYWxlRmFjdG9yKTsKKyAgICBpZiAobV9wYWdlRGVmaW5lZE1pbmltdW1QYWdlU2Nh
bGVGYWN0b3IgPT0gLTEgfHwgbV9wYWdlRGVmaW5lZE1heGltdW1QYWdlU2NhbGVGYWN0b3IgPT0g
LTEpIHsKKyAgICAgICAgbV9taW5pbXVtUGFnZVNjYWxlRmFjdG9yID0gbWluUGFnZVNjYWxlRmFj
dG9yOworICAgICAgICBtX21heGltdW1QYWdlU2NhbGVGYWN0b3IgPSBtYXhQYWdlU2NhbGVGYWN0
b3I7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbV9taW5pbXVtUGFnZVNjYWxlRmFjdG9yID0gbWlu
KG1heChtX3BhZ2VEZWZpbmVkTWluaW11bVBhZ2VTY2FsZUZhY3RvciwgbWluUGFnZVNjYWxlRmFj
dG9yKSwgbWF4UGFnZVNjYWxlRmFjdG9yKTsKKyAgICAgICAgbV9tYXhpbXVtUGFnZVNjYWxlRmFj
dG9yID0gbWF4KG1pbihtX3BhZ2VEZWZpbmVkTWF4aW11bVBhZ2VTY2FsZUZhY3RvciwgbWF4UGFn
ZVNjYWxlRmFjdG9yKSwgbWluUGFnZVNjYWxlRmFjdG9yKTsKKyAgICB9CiAKICAgICBpZiAoc2V0
dGluZ3MoKS0+dmlld3BvcnRFbmFibGVkKCkpIHsKICAgICAgICAgaWYgKCFjb250ZW50c1NpemUo
KS53aWR0aCgpIHx8ICFtX3NpemUud2lkdGgpCkBAIC0zMTg3LDkgKzMxOTksMTQgQEAgdm9pZCBX
ZWJWaWV3SW1wbDo6Y29tcHV0ZVBhZ2VTY2FsZUZhY3RvckxpbWl0cygpCiAgICAgQVNTRVJUKG1f
bWluaW11bVBhZ2VTY2FsZUZhY3RvciA8PSBtX21heGltdW1QYWdlU2NhbGVGYWN0b3IpOwogCiAg
ICAgLy8gSW5pdGlhbGl6ZSBhbmQvb3IgY2xhbXAgdGhlIHBhZ2Ugc2NhbGUgZmFjdG9yIGlmIG5l
ZWRlZC4KKyAgICBmbG9hdCBpbml0aWFsUGFnZVNjYWxlRmFjdG9yID0gbV9pbml0aWFsUGFnZVNj
YWxlRmFjdG9yOworICAgIGlmICghc2V0dGluZ3MoKS0+dmlld3BvcnRFbmFibGVkKCkpCisgICAg
ICAgIGluaXRpYWxQYWdlU2NhbGVGYWN0b3IgPSAxOworICAgIGlmIChtX2luaXRpYWxQYWdlU2Nh
bGVGYWN0b3JPdmVycmlkZSAhPSAtMSkKKyAgICAgICAgaW5pdGlhbFBhZ2VTY2FsZUZhY3RvciA9
IG1faW5pdGlhbFBhZ2VTY2FsZUZhY3Rvck92ZXJyaWRlOwogICAgIGZsb2F0IG5ld1BhZ2VTY2Fs
ZUZhY3RvciA9IHBhZ2VTY2FsZUZhY3RvcigpOwotICAgIGlmICghbV9wYWdlU2NhbGVGYWN0b3JJ
c1NldCAmJiBtX2luaXRpYWxQYWdlU2NhbGVGYWN0b3IgIT0gLTEpIHsKLSAgICAgICAgbmV3UGFn
ZVNjYWxlRmFjdG9yID0gbV9pbml0aWFsUGFnZVNjYWxlRmFjdG9yOworICAgIGlmICghbV9wYWdl
U2NhbGVGYWN0b3JJc1NldCAmJiBpbml0aWFsUGFnZVNjYWxlRmFjdG9yICE9IC0xKSB7CisgICAg
ICAgIG5ld1BhZ2VTY2FsZUZhY3RvciA9IGluaXRpYWxQYWdlU2NhbGVGYWN0b3I7CiAgICAgICAg
IG1fcGFnZVNjYWxlRmFjdG9ySXNTZXQgPSB0cnVlOwogICAgIH0KICAgICBuZXdQYWdlU2NhbGVG
YWN0b3IgPSBjbGFtcFBhZ2VTY2FsZUZhY3RvclRvTGltaXRzKG5ld1BhZ2VTY2FsZUZhY3Rvcik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAppbmRleCA2ZGNjNDczLi5j
NDY1NWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKQEAgLTIy
Miw2ICsyMjIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBkb3VibGUgc2V0Wm9vbUxldmVsKGJv
b2wgdGV4dE9ubHksIGRvdWJsZSB6b29tTGV2ZWwpOwogICAgIHZpcnR1YWwgdm9pZCB6b29tTGlt
aXRzQ2hhbmdlZChkb3VibGUgbWluaW11bVpvb21MZXZlbCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZG91YmxlIG1heGltdW1ab29tTGV2ZWwpOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRJbml0aWFsUGFnZVNjYWxlT3ZlcnJpZGUoZmxvYXQpOwogICAgIHZpcnR1YWwgZmxvYXQg
cGFnZVNjYWxlRmFjdG9yKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzUGFnZVNjYWxlRmFj
dG9yU2V0KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldFBhZ2VTY2FsZUZhY3RvclByZXNl
cnZpbmdTY3JvbGxPZmZzZXQoZmxvYXQpOwpAQCAtNzU4LDYgKzc1OSw3IEBAIHByaXZhdGU6CiAg
ICAgZmxvYXQgbV9wYWdlRGVmaW5lZE1heGltdW1QYWdlU2NhbGVGYWN0b3I7CiAgICAgZmxvYXQg
bV9taW5pbXVtUGFnZVNjYWxlRmFjdG9yOwogICAgIGZsb2F0IG1fbWF4aW11bVBhZ2VTY2FsZUZh
Y3RvcjsKKyAgICBmbG9hdCBtX2luaXRpYWxQYWdlU2NhbGVGYWN0b3JPdmVycmlkZTsKICAgICBm
bG9hdCBtX2luaXRpYWxQYWdlU2NhbGVGYWN0b3I7CiAgICAgYm9vbCBtX2lnbm9yZVZpZXdwb3J0
VGFnTWF4aW11bVNjYWxlOwogICAgIGJvb2wgbV9wYWdlU2NhbGVGYWN0b3JJc1NldDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNwcAppbmRleCBhYzkzN2Zk
Li4xMjcyNjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkZy
YW1lVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJGcmFtZVRl
c3QuY3BwCkBAIC0zOTQsNiArMzk0LDg0IEBAIFRFU1RfRihXZWJGcmFtZVRlc3QsIFBhZ2VWaWV3
cG9ydEluaXRpYWxTY2FsZU92ZXJyaWRlc0luaXRpYWxpemVBdE1pbmltdW1TY2FsZSkKICAgICBF
WFBFQ1RfRVEoMi4wZiwgbV93ZWJWaWV3LT5wYWdlU2NhbGVGYWN0b3IoKSk7CiB9CiAKK1RFU1Rf
RihXZWJGcmFtZVRlc3QsIHNldEluaXRpYWxQYWdlU2NhbGVGYWN0b3JQZXJtYW5lbnRseSkKK3sK
KyAgICByZWdpc3Rlck1vY2tlZEh0dHBVUkxMb2FkKCJmaXhlZF9sYXlvdXQuaHRtbCIpOworCisg
ICAgRml4ZWRMYXlvdXRUZXN0V2ViVmlld0NsaWVudCBjbGllbnQ7CisgICAgY2xpZW50Lm1fc2Ny
ZWVuSW5mby5kZXZpY2VTY2FsZUZhY3RvciA9IDE7CisgICAgZmxvYXQgZW5mb3JjZWRQYWdlU2Nh
bGVQYWN0b3IgPSAyLjBmOworCisgICAgbV93ZWJWaWV3ID0gRnJhbWVUZXN0SGVscGVyczo6Y3Jl
YXRlV2ViVmlld0FuZExvYWQobV9iYXNlVVJMICsgImZpeGVkX2xheW91dC5odG1sIiwgdHJ1ZSwg
MCwgJmNsaWVudCk7CisgICAgbV93ZWJWaWV3LT5zZXR0aW5ncygpLT5zZXRBcHBseURldmljZVNj
YWxlRmFjdG9ySW5Db21wb3NpdG9yKHRydWUpOworICAgIG1fd2ViVmlldy0+c2V0dGluZ3MoKS0+
c2V0QXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IodHJ1ZSk7CisgICAgbV93ZWJWaWV3
LT5zZXRJbml0aWFsUGFnZVNjYWxlT3ZlcnJpZGUoZW5mb3JjZWRQYWdlU2NhbGVQYWN0b3IpOwor
CisgICAgRVhQRUNUX0VRKGVuZm9yY2VkUGFnZVNjYWxlUGFjdG9yLCBtX3dlYlZpZXctPnBhZ2VT
Y2FsZUZhY3RvcigpKTsKKworICAgIGludCB2aWV3cG9ydFdpZHRoID0gNjQwOworICAgIGludCB2
aWV3cG9ydEhlaWdodCA9IDQ4MDsKKyAgICBtX3dlYlZpZXctPmVuYWJsZUZpeGVkTGF5b3V0TW9k
ZSh0cnVlKTsKKyAgICBtX3dlYlZpZXctPnNldHRpbmdzKCktPnNldFZpZXdwb3J0RW5hYmxlZCh0
cnVlKTsKKyAgICBtX3dlYlZpZXctPnJlc2l6ZShXZWJTaXplKHZpZXdwb3J0V2lkdGgsIHZpZXdw
b3J0SGVpZ2h0KSk7CisgICAgbV93ZWJWaWV3LT5sYXlvdXQoKTsKKworICAgIEVYUEVDVF9FUShl
bmZvcmNlZFBhZ2VTY2FsZVBhY3RvciwgbV93ZWJWaWV3LT5wYWdlU2NhbGVGYWN0b3IoKSk7CisK
KyAgICBtX3dlYlZpZXctPmVuYWJsZUZpeGVkTGF5b3V0TW9kZShmYWxzZSk7CisgICAgbV93ZWJW
aWV3LT5zZXR0aW5ncygpLT5zZXRWaWV3cG9ydEVuYWJsZWQoZmFsc2UpOworICAgIG1fd2ViVmll
dy0+bGF5b3V0KCk7CisKKyAgICBFWFBFQ1RfRVEoZW5mb3JjZWRQYWdlU2NhbGVQYWN0b3IsIG1f
d2ViVmlldy0+cGFnZVNjYWxlRmFjdG9yKCkpOworCisgICAgbV93ZWJWaWV3LT5zZXRJbml0aWFs
UGFnZVNjYWxlT3ZlcnJpZGUoLTEpOworICAgIG1fd2ViVmlldy0+bGF5b3V0KCk7CisgICAgRVhQ
RUNUX0VRKDEuMGYsIG1fd2ViVmlldy0+cGFnZVNjYWxlRmFjdG9yKCkpOworfQorCitURVNUX0Yo
V2ViRnJhbWVUZXN0LCBQZXJtYW5lbnRJbml0aWFsUGFnZVNjYWxlRmFjdG9yT3ZlcnJpZGVzSW5p
dGlhbGl6ZUF0TWluaW11bVNjYWxlKQoreworICAgIHJlZ2lzdGVyTW9ja2VkSHR0cFVSTExvYWQo
InZpZXdwb3J0LWF1dG8taW5pdGlhbC1zY2FsZS5odG1sIik7CisKKyAgICBGaXhlZExheW91dFRl
c3RXZWJWaWV3Q2xpZW50IGNsaWVudDsKKyAgICBjbGllbnQubV9zY3JlZW5JbmZvLmRldmljZVNj
YWxlRmFjdG9yID0gMTsKKyAgICBpbnQgdmlld3BvcnRXaWR0aCA9IDY0MDsKKyAgICBpbnQgdmll
d3BvcnRIZWlnaHQgPSA0ODA7CisgICAgZmxvYXQgZW5mb3JjZWRQYWdlU2NhbGVQYWN0b3IgPSAw
LjVmOworCisgICAgbV93ZWJWaWV3ID0gRnJhbWVUZXN0SGVscGVyczo6Y3JlYXRlV2ViVmlld0Fu
ZExvYWQobV9iYXNlVVJMICsgInZpZXdwb3J0LWF1dG8taW5pdGlhbC1zY2FsZS5odG1sIiwgdHJ1
ZSwgMCwgJmNsaWVudCk7CisgICAgbV93ZWJWaWV3LT5zZXR0aW5ncygpLT5zZXRBcHBseURldmlj
ZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKHRydWUpOworICAgIG1fd2ViVmlldy0+c2V0dGluZ3Mo
KS0+c2V0QXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IodHJ1ZSk7CisgICAgbV93ZWJW
aWV3LT5lbmFibGVGaXhlZExheW91dE1vZGUodHJ1ZSk7CisgICAgbV93ZWJWaWV3LT5zZXR0aW5n
cygpLT5zZXRWaWV3cG9ydEVuYWJsZWQodHJ1ZSk7CisgICAgbV93ZWJWaWV3LT5zZXR0aW5ncygp
LT5zZXRJbml0aWFsaXplQXRNaW5pbXVtUGFnZVNjYWxlKGZhbHNlKTsKKyAgICBtX3dlYlZpZXct
PnNldEluaXRpYWxQYWdlU2NhbGVPdmVycmlkZShlbmZvcmNlZFBhZ2VTY2FsZVBhY3Rvcik7Cisg
ICAgbV93ZWJWaWV3LT5yZXNpemUoV2ViU2l6ZSh2aWV3cG9ydFdpZHRoLCB2aWV3cG9ydEhlaWdo
dCkpOworCisgICAgRVhQRUNUX0VRKGVuZm9yY2VkUGFnZVNjYWxlUGFjdG9yLCBtX3dlYlZpZXct
PnBhZ2VTY2FsZUZhY3RvcigpKTsKK30KKworVEVTVF9GKFdlYkZyYW1lVGVzdCwgUGVybWFuZW50
SW5pdGlhbFBhZ2VTY2FsZUZhY3Rvck92ZXJyaWRlc1BhZ2VWaWV3cG9ydEluaXRpYWxTY2FsZSkK
K3sKKyAgICByZWdpc3Rlck1vY2tlZEh0dHBVUkxMb2FkKCJ2aWV3cG9ydC0yeC1pbml0aWFsLXNj
YWxlLmh0bWwiKTsKKworICAgIEZpeGVkTGF5b3V0VGVzdFdlYlZpZXdDbGllbnQgY2xpZW50Owor
ICAgIGNsaWVudC5tX3NjcmVlbkluZm8uZGV2aWNlU2NhbGVGYWN0b3IgPSAxOworICAgIGludCB2
aWV3cG9ydFdpZHRoID0gNjQwOworICAgIGludCB2aWV3cG9ydEhlaWdodCA9IDQ4MDsKKyAgICBm
bG9hdCBlbmZvcmNlZFBhZ2VTY2FsZVBhY3RvciA9IDAuNWY7CisKKyAgICBtX3dlYlZpZXcgPSBG
cmFtZVRlc3RIZWxwZXJzOjpjcmVhdGVXZWJWaWV3QW5kTG9hZChtX2Jhc2VVUkwgKyAidmlld3Bv
cnQtMngtaW5pdGlhbC1zY2FsZS5odG1sIiwgdHJ1ZSwgMCwgJmNsaWVudCk7CisgICAgbV93ZWJW
aWV3LT5zZXR0aW5ncygpLT5zZXRBcHBseURldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKHRy
dWUpOworICAgIG1fd2ViVmlldy0+c2V0dGluZ3MoKS0+c2V0QXBwbHlQYWdlU2NhbGVGYWN0b3JJ
bkNvbXBvc2l0b3IodHJ1ZSk7CisgICAgbV93ZWJWaWV3LT5lbmFibGVGaXhlZExheW91dE1vZGUo
dHJ1ZSk7CisgICAgbV93ZWJWaWV3LT5zZXR0aW5ncygpLT5zZXRWaWV3cG9ydEVuYWJsZWQodHJ1
ZSk7CisgICAgbV93ZWJWaWV3LT5zZXRJbml0aWFsUGFnZVNjYWxlT3ZlcnJpZGUoZW5mb3JjZWRQ
YWdlU2NhbGVQYWN0b3IpOworICAgIG1fd2ViVmlldy0+cmVzaXplKFdlYlNpemUodmlld3BvcnRX
aWR0aCwgdmlld3BvcnRIZWlnaHQpKTsKKworICAgIEVYUEVDVF9FUShlbmZvcmNlZFBhZ2VTY2Fs
ZVBhY3RvciwgbV93ZWJWaWV3LT5wYWdlU2NhbGVGYWN0b3IoKSk7Cit9CisKIFRFU1RfRihXZWJG
cmFtZVRlc3QsIFNjYWxlRmFjdG9yU2hvdWxkTm90T3NjaWxsYXRlKQogewogICAgIHJlZ2lzdGVy
TW9ja2VkSHR0cFVSTExvYWQoInNjYWxlX29zY2lsbGF0ZS5odG1sIik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>