<?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>87874</bug_id>
          
          <creation_ts>2012-05-30 10:42:29 -0700</creation_ts>
          <short_desc>[chromium] Expose device scale factor in WebPluginContainer</short_desc>
          <delta_ts>2012-06-28 10:00:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>LATER</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="Josh Horwich">jhorwich</reporter>
          <assigned_to name="Josh Horwich">jhorwich</assigned_to>
          <cc>abarth</cc>
    
    <cc>danakj</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>rbyers</cc>
    
    <cc>rjkroege</cc>
    
    <cc>thakis</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>637409</commentid>
    <comment_count>0</comment_count>
    <who name="Josh Horwich">jhorwich</who>
    <bug_when>2012-05-30 10:42:29 -0700</bug_when>
    <thetext>[chromium] Expose device scale factor in WebPluginContainer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637441</commentid>
    <comment_count>1</comment_count>
      <attachid>144872</attachid>
    <who name="Josh Horwich">jhorwich</who>
    <bug_when>2012-05-30 11:10:49 -0700</bug_when>
    <thetext>Created attachment 144872
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637444</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-30 11:12:06 -0700</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>637450</commentid>
    <comment_count>3</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-05-30 11:13:05 -0700</bug_when>
    <thetext>What&apos;s this for?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637503</commentid>
    <comment_count>4</comment_count>
      <attachid>144872</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-05-30 11:52:40 -0700</bug_when>
    <thetext>Comment on attachment 144872
Patch

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

&gt; Source/WebKit/chromium/public/WebPluginContainer.h:115
&gt; +    virtual float getDeviceScaleFactor() = 0;

If we&apos;re returning the defaultDeviceScaleFactor, let&apos;s call this function getDefaultDeviceScaleFactor?

That said I&apos;m not exactly positive which (default?)deviceScaleFactor should be given out here. Josh maybe you can explain how its being used, James will know what&apos;s right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637531</commentid>
    <comment_count>5</comment_count>
    <who name="Josh Horwich">jhorwich</who>
    <bug_when>2012-05-30 12:25:22 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; What&apos;s this for?

Context is allowing Pepper to expose the scale factor (between pixels on the display device and &quot;DIPs&quot; aka Density-Independent &apos;Pixels&apos;) to Pepper plugins that wish to render at display device resolution in cases where 1 DIP != 1 physical pixel.

Pepper today sends information to plugins in DIPs so existing plugins, or plugins that don&apos;t wish to render in device native resolution for whatever reason, will continue to have their output scaled to the correct size in cases where the scale factor between device pixels and DIPs is not 1.

http://code.google.com/p/chromium/issues/detail?id=114673 is the issue on the chromium tracker that this patch will help in addressing.

(In reply to comment #4)
As for calling it &quot;defaultDeviceScaleFactor&quot; vs &quot;deviceScaleFactor&quot; - I had named it without the &apos;default&apos; qualifier because I believe Pepper plugins care about the actual scale factor, not whether it is the default or not.

I suppose it gets a bit confusing since, at least in the current implementation, &quot;page zoom&quot; does not result in a change to scale factor in any way, but rather an expansion of the number of pixels (DIPs) a plugin is given - for example if I have a plugin with &quot;width=400&quot; and I zoom the page to &quot;125%&quot; the plugin sees a DidChangeView with a width of 500. This is great for plugins that reasonably handle scaling (e.g. render things in terms of percentages of their view area) as it results in still-crisp output and actually zoomed content. It is less ideal for plugins that use fixed-size (in terms of pixels) assets or fixed locations for rendering as it results in a user-initiated page zoom not generating larger (easier-to-read) plugin contents. This patch or my planned chromium-side patch would not change this behavior - I&apos;m just pointing it out for completeness - e.g. that I want Pepper to have access to the scale factor between device pixels and DIPs, not the page zoom.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637603</commentid>
    <comment_count>6</comment_count>
      <attachid>144872</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-30 13:23:15 -0700</bug_when>
    <thetext>Comment on attachment 144872
Patch

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

&gt; Source/WebKit/chromium/src/WebPluginContainerImpl.cpp:255
&gt; +float WebPluginContainerImpl::getDeviceScaleFactor()
&gt; +{
&gt; +    Page* page = m_element-&gt;document()-&gt;page();
&gt; +    if (!page)
&gt; +        return 1.0;
&gt; +    Settings* settings = page-&gt;settings();
&gt; +    if (!settings)
&gt; +        return 1.0;
&gt; +    return settings-&gt;defaultDeviceScaleFactor();
&gt; +}

Can we hold off on this API until http://lists.webkit.org/pipermail/webkit-dev/2012-May/020847.html gets resolved?  It&apos;s likely that this will need to change or at least be renamed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637604</commentid>
    <comment_count>7</comment_count>
      <attachid>144872</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-30 13:24:04 -0700</bug_when>
    <thetext>Comment on attachment 144872
Patch

Marking r- for now.  Please feel free to renominate once WebKit gets it&apos;s scale factors sorted out into something sane.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637755</commentid>
    <comment_count>8</comment_count>
    <who name="Josh Horwich">jhorwich</who>
    <bug_when>2012-05-30 15:27:23 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 144872 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=144872&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/src/WebPluginContainerImpl.cpp:255
&gt; &gt; +float WebPluginContainerImpl::getDeviceScaleFactor()
&gt; &gt; +{
&gt; &gt; +    Page* page = m_element-&gt;document()-&gt;page();
&gt; &gt; +    if (!page)
&gt; &gt; +        return 1.0;
&gt; &gt; +    Settings* settings = page-&gt;settings();
&gt; &gt; +    if (!settings)
&gt; &gt; +        return 1.0;
&gt; &gt; +    return settings-&gt;defaultDeviceScaleFactor();
&gt; &gt; +}
&gt; 
&gt; Can we hold off on this API until http://lists.webkit.org/pipermail/webkit-dev/2012-May/020847.html gets resolved?  It&apos;s likely that this will need to change or at least be renamed.

Yes, I think holding off until the dust settles from that discussion would be wise. Thank you for pointing it out to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642745</commentid>
    <comment_count>9</comment_count>
      <attachid>146096</attachid>
    <who name="Josh Horwich">jhorwich</who>
    <bug_when>2012-06-06 13:24:15 -0700</bug_when>
    <thetext>Created attachment 146096
Simpler patch that uses page-&gt;deviceScaleFactor instead</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642747</commentid>
    <comment_count>10</comment_count>
      <attachid>146096</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-06-06 13:27:55 -0700</bug_when>
    <thetext>Comment on attachment 146096
Simpler patch that uses page-&gt;deviceScaleFactor instead

What&apos;s the notification path for when this value changes?  Should be be push (from WebKit to the plugin), instead of pull (the plugin asks WebKit) ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649329</commentid>
    <comment_count>11</comment_count>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-06-14 11:24:16 -0700</bug_when>
    <thetext>Any update on this?  The &quot;dust has settled&quot; for abarth@&apos;s has happened now, right?

+rjkroege/thakis who are working on dynamically changing the scale factor.  We may want to land this without support for dynamic changing first (if it&apos;s not ready), and then update.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649331</commentid>
    <comment_count>12</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-06-14 11:27:11 -0700</bug_when>
    <thetext>I think we should design an API that supports dynamic switching from the start.  To me the most obvious way to do that is to have the model be push (from embedder to plugin) rather than pull.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649333</commentid>
    <comment_count>13</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-06-14 11:28:56 -0700</bug_when>
    <thetext>rbyers: Dynamic switching for mac is done &amp; checked in (except for composited pages), dynamic switching for aura is done and in review (again except for composited pages).

Might make sense to be similar to the npapi model here https://wiki.mozilla.org/NPAPI:ContentsScaleFactor which is both push and pull.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649346</commentid>
    <comment_count>14</comment_count>
    <who name="Josh Horwich">jhorwich</who>
    <bug_when>2012-06-14 11:47:18 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; I think we should design an API that supports dynamic switching from the start.  To me the most obvious way to do that is to have the model be push (from embedder to plugin) rather than pull.

Typical usage in Pepper for a change in a plugin&apos;s view size/clip/origin is for the embedder to push - via calling the plugin instance&apos;s DidChangeView with a view resource that has all the new metrics. I believe we would want such a push to happen if the device_scale_factor changes dynamically - I&apos;m not familiar enough yet with dynamic switching to know if this (PluginInstance::ViewChanged, which pushes to the plugin) already happens or not.

Semi-related question, I&apos;m looking to also expose to the plugin the mapping between logical pixels and CSS pixels in the view resource, so a plugin could accurately scale contents/event locations/etc. for cases where page zoom or page scale is not 100% in chromium. Initial testing by using page-&gt;pageScaleFactor() showed it stay at 1.0 when zooming. Is there some easy way to get the current logical pixel (DIP) :: CSS pixel mapping from WebPluginContainer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649367</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-14 12:19:14 -0700</bug_when>
    <thetext>&gt; Any update on this?  The &quot;dust has settled&quot; for abarth@&apos;s has happened now, right?

Yep.  This wiki page was the outcome:

http://trac.webkit.org/wiki/ScalesAndZooms

@jamesr: Do you think we should post a link to that wiki page to webkit-dev?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649379</commentid>
    <comment_count>16</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-06-14 12:29:43 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Semi-related question, I&apos;m looking to also expose to the plugin the mapping between logical pixels and CSS pixels in the view resource, so a plugin could accurately scale contents/event locations/etc. for cases where page zoom or page scale is not 100% in chromium. Initial testing by using page-&gt;pageScaleFactor() showed it stay at 1.0 when zooming. Is there some easy way to get the current logical pixel (DIP) :: CSS pixel mapping from WebPluginContainer?

Page zoom does not change the pageScaleFactor, see https://trac.webkit.org/wiki/ScalesAndZooms.  There&apos;s a pageZoomFactor() - try that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649680</commentid>
    <comment_count>17</comment_count>
    <who name="Josh Horwich">jhorwich</who>
    <bug_when>2012-06-14 17:41:29 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #14)
&gt; &gt; Semi-related question, I&apos;m looking to also expose to the plugin the mapping between logical pixels and CSS pixels in the view resource, so a plugin could accurately scale contents/event locations/etc. for cases where page zoom or page scale is not 100% in chromium. Initial testing by using page-&gt;pageScaleFactor() showed it stay at 1.0 when zooming. Is there some easy way to get the current logical pixel (DIP) :: CSS pixel mapping from WebPluginContainer?
&gt; 
&gt; Page zoom does not change the pageScaleFactor, see https://trac.webkit.org/wiki/ScalesAndZooms.  There&apos;s a pageZoomFactor() - try that.

Thank you - pageZoomFactor is in fact letting me understand the mapping between logical &amp; CSS pixels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654104</commentid>
    <comment_count>18</comment_count>
      <attachid>148701</attachid>
    <who name="Josh Horwich">jhorwich</who>
    <bug_when>2012-06-20 18:26:55 -0700</bug_when>
    <thetext>Created attachment 148701
Similar patch, with additional getPageZoomFactor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654120</commentid>
    <comment_count>19</comment_count>
    <who name="Josh Horwich">jhorwich</who>
    <bug_when>2012-06-20 18:41:59 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Any update on this?  The &quot;dust has settled&quot; for abarth@&apos;s has happened now, right?
&gt; 
&gt; +rjkroege/thakis who are working on dynamically changing the scale factor.  We may want to land this without support for dynamic changing first (if it&apos;s not ready), and then update.

FYI, I&apos;ve been testing this with dynamic switching (along with the related patch in chromium, https://chromiumcodereview.appspot.com/10544168/ and a HiDPI-aware test plugin), and I&apos;ve confirmed that when I toggle monitor scale (under ash, using ctrl-shift-home which sends ash::AcceleratorAction::MONITOR_TOGGLE_SCALE), the plugin does get a DidChangeView call, so a HiDPI-aware plugin can in fact react to dynamic changing - assuming other methods of dynamic changing are similar to that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655003</commentid>
    <comment_count>20</comment_count>
      <attachid>148701</attachid>
    <who name="Josh Horwich">jhorwich</who>
    <bug_when>2012-06-21 16:26:22 -0700</bug_when>
    <thetext>Comment on attachment 148701
Similar patch, with additional getPageZoomFactor

Please take a look</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655013</commentid>
    <comment_count>21</comment_count>
      <attachid>148701</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-06-21 16:34:15 -0700</bug_when>
    <thetext>Comment on attachment 148701
Similar patch, with additional getPageZoomFactor

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

&gt; Source/WebKit/chromium/src/WebPluginContainerImpl.h:118
&gt; +    virtual float getDeviceScaleFactor();
&gt; +    virtual float getPageZoomFactor();

style note:  in WebKit, getters do not have the &quot;get&quot; prefix, they are just named after the thing they are getting.

&gt; Source/WebKit/chromium/public/WebPluginContainer.h:37
&gt; +#define WEBPLUGINCONTAINER_HAS_GETDEVICESCALEFACTOR 1
&gt; +#define WEBPLUGINCONTAINER_HAS_GETPAGEZOOMFACTOR 1

personally I&apos;d fold these into one #define

although I&apos;m not sure you need an #define here at all - unless there are implementations of the WebPluginContainer implementation outside of the WebKit repository?

&gt; Source/WebKit/chromium/public/WebPluginContainer.h:117
&gt; +    virtual float getDeviceScaleFactor() = 0;
&gt; +    virtual float getPageZoomFactor() = 0;

same note here re: naming

how does this interact with zoomLevelChanged() ? is the idea with this API that somebody is supposed to call zoomLevelChanged() when the page / device scale change, and if so how does the zoomLevel parameter on zoomLevelChanged() interact with these? or is that call talking about a different concept?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655060</commentid>
    <comment_count>22</comment_count>
      <attachid>148701</attachid>
    <who name="Josh Horwich">jhorwich</who>
    <bug_when>2012-06-21 17:23:43 -0700</bug_when>
    <thetext>Comment on attachment 148701
Similar patch, with additional getPageZoomFactor

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

&gt;&gt; Source/WebKit/chromium/src/WebPluginContainerImpl.h:118
&gt;&gt; +    virtual float getPageZoomFactor();
&gt; 
&gt; style note:  in WebKit, getters do not have the &quot;get&quot; prefix, they are just named after the thing they are getting.

Will fix

&gt;&gt; Source/WebKit/chromium/public/WebPluginContainer.h:37
&gt;&gt; +#define WEBPLUGINCONTAINER_HAS_GETPAGEZOOMFACTOR 1
&gt; 
&gt; personally I&apos;d fold these into one #define
&gt; 
&gt; although I&apos;m not sure you need an #define here at all - unless there are implementations of the WebPluginContainer implementation outside of the WebKit repository?

The goal was to remove patch order dependency between WebKit and chromium - e.g. chromium would have calls to the new methods bracketed in #ifdef WEBPLUGINCONTAINHER_HAS_xxx and assume 1.0 otherwise. Similar to some defines like WEBWIDGET_HAS_SETCOMPOSITORSURFACEREADY in chromium/public/WebWidget.h 

I could remove them altogether and just sequence the patches if you wish (WebKit first, then chromium), please let me know.

&gt;&gt; Source/WebKit/chromium/public/WebPluginContainer.h:117
&gt;&gt; +    virtual float getPageZoomFactor() = 0;
&gt; 
&gt; same note here re: naming
&gt; 
&gt; how does this interact with zoomLevelChanged() ? is the idea with this API that somebody is supposed to call zoomLevelChanged() when the page / device scale change, and if so how does the zoomLevel parameter on zoomLevelChanged() interact with these? or is that call talking about a different concept?

naming: will fix

My intent with adding [get]pageZoomFactor was to make the data available from a PPB_View resource along with the device scale factor. There is no strict need for this now, I thought it simpler to add both at once rather than one-at-a-time in Pepper.    Existing plugins can continue to implement PP_ZoomDev to query and control page zoom - or for those that don&apos;t want to implement PP_ZoomDev, but do wish to respect the current page zoom, they can fetch it from PPB_View.

http://codereview.chromium.org/10544168/ has the chromium side of this patch, to provide more context.

Note that I don&apos;t have a specific immediate need for this, so I can easily drop it from the patches (and rely on PP_ZoomDev)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655066</commentid>
    <comment_count>23</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-06-21 17:28:26 -0700</bug_when>
    <thetext>We normally only put #defines in if there&apos;s no way to resolve the compile issues just by patch ordering, so if there&apos;s an ordering that can avoid the need please do that.

I don&apos;t have any idea what PP_ZoomDev is or how it applies.  Can you please answer the question just in terms of the WebPluginContainer interface (which doesn&apos;t know anything about pepper)?  I can&apos;t tell from your answer whether the zoomLevelChanged() is related to the page zoom level or not, or if so how.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655126</commentid>
    <comment_count>24</comment_count>
    <who name="Josh Horwich">jhorwich</who>
    <bug_when>2012-06-21 18:32:24 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; We normally only put #defines in if there&apos;s no way to resolve the compile issues just by patch ordering, so if there&apos;s an ordering that can avoid the need please do that.

Will do - I&apos;ll just remove these, and wait on this patch from WebKit before applying my chromium one.

&gt; 
&gt; I don&apos;t have any idea what PP_ZoomDev is or how it applies.  Can you please answer the question just in terms of the WebPluginContainer interface (which doesn&apos;t know anything about pepper)?  I can&apos;t tell from your answer whether the zoomLevelChanged() is related to the page zoom level or not, or if so how.

Sorry, the zoomLevel / zoomFactor stuff is a bit confusing to follow at times. To answer your original questions:
- this doesn&apos;t interact with WebPluginContainer::zoomLevelChanged - that method&apos;s reason for being is AFAICT to allow a full-frame plugin to control the indicated zoom level, allowing such plugins to surface their own &quot;zoom&quot; UI and keep other (browser) zoom UI in sync. the zoomLevel parameter does not affect the value returned by my API
- the idea of this (pageScaleFactor) API is to allow the plugin to know the page scale factor in order to map between logical pixels and CSS pixels. This API does not require that anyone calls zoomLevelChanged when the page/device scale change

Please let me know if that helps clarify things, and/or if this just makes things more confusing than it already is ... and/or if I should just leave the pageScaleFactor part out of this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655133</commentid>
    <comment_count>25</comment_count>
    <who name="Josh Horwich">jhorwich</who>
    <bug_when>2012-06-21 18:36:47 -0700</bug_when>
    <thetext>&gt; - the idea of this (pageScaleFactor) API is to allow the plugin to know the page scale factor in order to map between logical pixels and CSS pixels. This API does not require that anyone calls zoomLevelChanged when the page/device scale change

sorry, meant to say &quot;pageZoomFactor&quot; not &quot;pageScaleFactor&quot;.

&gt; 
&gt; Please let me know if that helps clarify things, and/or if this just makes things more confusing than it already is ... and/or if I should just leave the pageScaleFactor part out of this patch.

Same here - meant to say &quot;pageZoomFactor&quot; not &quot;pageScaleFactor&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655138</commentid>
    <comment_count>26</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-06-21 18:45:24 -0700</bug_when>
    <thetext>OK. Is there a particular reason you are routing pageZoomFactor through and not pageScaleFactor?  They both change the mapping of CSS to logical pixels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655706</commentid>
    <comment_count>27</comment_count>
      <attachid>149089</attachid>
    <who name="Josh Horwich">jhorwich</who>
    <bug_when>2012-06-22 13:03:39 -0700</bug_when>
    <thetext>Created attachment 149089
Patch to address feedback, add pageScaleFactor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655707</commentid>
    <comment_count>28</comment_count>
    <who name="Josh Horwich">jhorwich</who>
    <bug_when>2012-06-22 13:05:53 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; OK. Is there a particular reason you are routing pageZoomFactor through and not pageScaleFactor?  They both change the mapping of CSS to logical pixels.

I am now also routing pageScaleFactor as well.

(Updated latest patch, addressing earlier review feedback as well)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655800</commentid>
    <comment_count>29</comment_count>
      <attachid>149089</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-06-22 14:49:31 -0700</bug_when>
    <thetext>Comment on attachment 149089
Patch to address feedback, add pageScaleFactor

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

&gt; Source/WebKit/chromium/src/WebPluginContainerImpl.cpp:269
&gt; +    return frame-&gt;pageZoomFactor();

do you know why the pageScale is on the Page, but the pageZoom is on a Frame?  What is this value when inside an iframe?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655820</commentid>
    <comment_count>30</comment_count>
      <attachid>149089</attachid>
    <who name="Josh Horwich">jhorwich</who>
    <bug_when>2012-06-22 15:11:22 -0700</bug_when>
    <thetext>Comment on attachment 149089
Patch to address feedback, add pageScaleFactor

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

&gt;&gt; Source/WebKit/chromium/src/WebPluginContainerImpl.cpp:269
&gt;&gt; +    return frame-&gt;pageZoomFactor();
&gt; 
&gt; do you know why the pageScale is on the Page, but the pageZoom is on a Frame?  What is this value when inside an iframe?

I&apos;m not familiar with the history as to why the pageZoom isn&apos;t available from the Page (just the Frame). I did choose to pull pageScaleFactor from the page rather than frame-&gt;frameScaleFactor since frameScaleFactor appears to return the scale factor between 

I ran a test where a plugin was inside an iframe, and when I invoked pageZoom, the value provided for pageZoomFactor (using the frame) accurately reflected the overall page zoom, which I believe is the desired behavior. I do not have a convenient method of testing pageScale however.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656011</commentid>
    <comment_count>31</comment_count>
    <who name="Josh Horwich">jhorwich</who>
    <bug_when>2012-06-22 20:32:53 -0700</bug_when>
    <thetext>(In reply to comment #30)
&gt; (From update of attachment 149089 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=149089&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/chromium/src/WebPluginContainerImpl.cpp:269
&gt; &gt;&gt; +    return frame-&gt;pageZoomFactor();
&gt; &gt; 
&gt; &gt; do you know why the pageScale is on the Page, but the pageZoom is on a Frame?  What is this value when inside an iframe?
&gt; 
&gt; I&apos;m not familiar with the history as to why the pageZoom isn&apos;t available from the Page (just the Frame). I did choose to pull pageScaleFactor from the page rather than frame-&gt;frameScaleFactor since frameScaleFactor appears to return the scale factor between 

(sorry for the copy-and-paste error)

... between logical and CSS only for the main frame, otherwise it merely returns 1. See Source/WebCore/page/Frame.cpp)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658142</commentid>
    <comment_count>32</comment_count>
    <who name="Josh Horwich">jhorwich</who>
    <bug_when>2012-06-26 17:20:23 -0700</bug_when>
    <thetext>Ping :)

I&apos;d like to get this patch (or equivalent) landed soon so I can land the dependent chromium change. I&apos;m also new to webkit so I believe someone else will need to land it for me. Is there anything else that needs addressing on this? Thank you!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658178</commentid>
    <comment_count>33</comment_count>
      <attachid>149089</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-26 17:58:17 -0700</bug_when>
    <thetext>Comment on attachment 149089
Patch to address feedback, add pageScaleFactor

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

This looks fine.  One silly nit below.  Please feel encouraged to upload a new patch with the nit fixed an to set the commit-queue flag to ?.  That requests a committer to mark your patch for commit via the bot.

&gt; Source/WebKit/chromium/src/WebPluginContainerImpl.cpp:268
&gt; +      return 1.0;

Bad indent, should be four spaces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658183</commentid>
    <comment_count>34</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-06-26 18:01:27 -0700</bug_when>
    <thetext>(In reply to comment #33)
&gt; (From update of attachment 149089 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=149089&amp;action=review
&gt; 
&gt; This looks fine.  One silly nit below.  Please feel encouraged to upload a new patch with the nit fixed an to set the commit-queue flag to ?.  That requests a committer to mark your patch for commit via the bot.

Also include Adam&apos;s name in the Changelog as reviewer, or you&apos;ll need a reviewer to land it. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658750</commentid>
    <comment_count>35</comment_count>
      <attachid>149777</attachid>
    <who name="Josh Horwich">jhorwich</who>
    <bug_when>2012-06-27 11:48:49 -0700</bug_when>
    <thetext>Created attachment 149777
Patch for landing

Fixed style nit (indentation), added reviewer to ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658852</commentid>
    <comment_count>36</comment_count>
      <attachid>149777</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-27 14:01:15 -0700</bug_when>
    <thetext>Comment on attachment 149777
Patch for landing

Clearing flags on attachment: 149777

Committed r121364: &lt;http://trac.webkit.org/changeset/121364&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659573</commentid>
    <comment_count>37</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-06-28 10:00:31 -0700</bug_when>
    <thetext>This is landed no? Should be marked fixed then?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144872</attachid>
            <date>2012-05-30 11:10:49 -0700</date>
            <delta_ts>2012-06-06 13:19:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87874-20120530111048.patch</filename>
            <type>text/plain</type>
            <size>3067</size>
            <attacher name="Josh Horwich">jhorwich</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiAxMTg5NDApCisrKyBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4
IEBACisyMDEyLTA1LTMwICBKb3NoIEhvcndpY2ggIDxqaG9yd2ljaEBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgW2Nocm9taXVtXSBFeHBvc2UgZGV2aWNlIHNjYWxlIGZhY3RvciBpbiBXZWJQbHVn
aW5Db250YWluZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg3ODc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBwdWJsaWMvV2ViUGx1Z2luQ29udGFpbmVyLmg6CisgICAgICAgIChXZWJQbHVnaW5Db250
YWluZXIpOgorICAgICAgICAqIHNyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGx1Z2luQ29udGFpbmVySW1wbDo6Z2V0RGV2aWNlU2NhbGVGYWN0b3Ip
OgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBzcmMvV2ViUGx1Z2luQ29udGFpbmVySW1w
bC5oOgorICAgICAgICAoV2ViUGx1Z2luQ29udGFpbmVySW1wbCk6CisKIDIwMTItMDUtMzAgIEpv
Y2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTWF0Y2ggRmly
ZWZveCByZXN0cmljdGlvbnMgdG8gd2luZG93LmJsdXIgYW5kIHdpbmRvdy5mb2N1cwpJbmRleDog
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGx1Z2luQ29udGFpbmVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGx1Z2luQ29udGFpbmVy
LmgJKHJldmlzaW9uIDExODkzMikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlBsdWdpbkNvbnRhaW5lci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw4IEBACiAKIHN0
cnVjdCBOUE9iamVjdDsKIAorI2RlZmluZSBXRUJQTFVHSU5DT05UQUlORVJfSEFTX0dFVERFVklD
RVNDQUxFRkFDVE9SIDEKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkVsZW1lbnQ7
CkBAIC0xMTAsNiArMTEyLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgV2ViUGx1Z2luKiBwbHVn
aW4oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFBsdWdpbihXZWJQbHVnaW4qKSA9IDA7CiAK
KyAgICB2aXJ0dWFsIGZsb2F0IGdldERldmljZVNjYWxlRmFjdG9yKCkgPSAwOworCiBwcm90ZWN0
ZWQ6CiAgICAgfldlYlBsdWdpbkNvbnRhaW5lcigpIHsgfQogfTsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwCShy
ZXZpc2lvbiAxMTg5MzIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5D
b250YWluZXJJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzEsNiArNzEsNyBAQAogI2luY2x1
ZGUgIlNjcm9sbEFuaW1hdG9yLmgiCiAjaW5jbHVkZSAiU2Nyb2xsVmlldy5oIgogI2luY2x1ZGUg
IlNjcm9sbGJhclRoZW1lLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJVc2Vy
R2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgIldlYlByaW50UGFyYW1zLmgiCiAjaW5jbHVk
ZSAiV2hlZWxFdmVudC5oIgpAQCAtMjQyLDYgKzI0MywxNyBAQCB2b2lkIFdlYlBsdWdpbkNvbnRh
aW5lckltcGw6OnNldFBsdWdpbihXCiAgICAgfQogfQogCitmbG9hdCBXZWJQbHVnaW5Db250YWlu
ZXJJbXBsOjpnZXREZXZpY2VTY2FsZUZhY3RvcigpCit7CisgICAgUGFnZSogcGFnZSA9IG1fZWxl
bWVudC0+ZG9jdW1lbnQoKS0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJu
IDEuMDsKKyAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBwYWdlLT5zZXR0aW5ncygpOworICAgIGlm
ICghc2V0dGluZ3MpCisgICAgICAgIHJldHVybiAxLjA7CisgICAgcmV0dXJuIHNldHRpbmdzLT5k
ZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3IoKTsKK30KKwogYm9vbCBXZWJQbHVnaW5Db250YWluZXJJ
bXBsOjpzdXBwb3J0c1BhZ2luYXRlZFByaW50KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV93ZWJQ
bHVnaW4tPnN1cHBvcnRzUGFnaW5hdGVkUHJpbnQoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmgJKHJldmlzaW9uIDEx
ODkzMikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lcklt
cGwuaAkod29ya2luZyBjb3B5KQpAQCAtMTE0LDYgKzExNCw4IEBAIHB1YmxpYzoKICAgICBXZWJQ
bHVnaW4qIHBsdWdpbigpIHsgcmV0dXJuIG1fd2ViUGx1Z2luOyB9CiAgICAgdm9pZCBzZXRQbHVn
aW4oV2ViUGx1Z2luKik7CiAKKyAgICB2aXJ0dWFsIGZsb2F0IGdldERldmljZVNjYWxlRmFjdG9y
KCk7CisKICAgICAvLyBQcmludGluZyBpbnRlcmZhY2UuIFRoZSBwbHVnaW4gY2FuIHN1cHBvcnQg
Y3VzdG9tIHByaW50aW5nCiAgICAgLy8gKHdoaWNoIG1lYW5zIGl0IGNvbnRyb2xzIHRoZSBsYXlv
dXQsIG51bWJlciBvZiBwYWdlcyBldGMpLgogICAgIC8vIFdoZXRoZXIgdGhlIHBsdWdpbiBzdXBw
b3J0cyBpdHMgb3duIHBhZ2luYXRlZCBwcmludC4gVGhlIG90aGVyIHByaW50Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146096</attachid>
            <date>2012-06-06 13:24:15 -0700</date>
            <delta_ts>2012-06-20 15:37:37 -0700</delta_ts>
            <desc>Simpler patch that uses page-&gt;deviceScaleFactor instead</desc>
            <filename>wk_87874.diff</filename>
            <type>text/plain</type>
            <size>3206</size>
            <attacher name="Josh Horwich">jhorwich</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiAxMTk2MDUpCisrKyBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMz
IEBACisyMDEyLTA2LTA2ICBKb3NoIEhvcndpY2ggIDxqaG9yd2ljaEBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgW2Nocm9taXVtXSBFeHBvc2UgZGV2aWNlIHNjYWxlIGZhY3RvciBpbiBXZWJQbHVn
aW5Db250YWluZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg3ODc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBwdWJsaWMvV2ViUGx1Z2luQ29udGFpbmVyLmg6CisgICAgICAgIChXZWJQbHVnaW5Db250
YWluZXIpOgorICAgICAgICAqIHNyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGx1Z2luQ29udGFpbmVySW1wbDo6Z2V0RGV2aWNlU2NhbGVGYWN0b3Ip
OgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBzcmMvV2ViUGx1Z2luQ29udGFpbmVySW1w
bC5oOgorICAgICAgICAoV2ViUGx1Z2luQ29udGFpbmVySW1wbCk6CisKKzIwMTItMDYtMDYgIEpv
c2ggSG9yd2ljaCAgPGpob3J3aWNoQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1d
IEV4cG9zZSBkZXZpY2Ugc2NhbGUgZmFjdG9yIGluIFdlYlBsdWdpbkNvbnRhaW5lcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc4NzQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy9XZWJQbHVn
aW5Db250YWluZXIuaDoKKyAgICAgICAgKFdlYlBsdWdpbkNvbnRhaW5lcik6CisgICAgICAgICog
c3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQbHVn
aW5Db250YWluZXJJbXBsOjpnZXREZXZpY2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJLaXQp
OgorICAgICAgICAqIHNyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmg6CisgICAgICAgIChXZWJQ
bHVnaW5Db250YWluZXJJbXBsKToKKwogMjAxMi0wNi0wNiAgTmljbyBXZWJlciAgPHRoYWtpc0Bj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBFeHBvc2Ugc2V0UGljdG9ncmFwaEZv
bnRGYW1pbHkgdGhyb3VnaCB0aGUgY2hyb21pdW0gd2Via2l0IGFwaS4KSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3Bw
CShyZXZpc2lvbiAxMTk2MDMpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVn
aW5Db250YWluZXJJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQyLDYgKzI0MiwxNCBAQAog
ICAgIH0KIH0KIAorZmxvYXQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6Z2V0RGV2aWNlU2NhbGVG
YWN0b3IoKQoreworICAgIFBhZ2UqIHBhZ2UgPSBtX2VsZW1lbnQtPmRvY3VtZW50KCktPnBhZ2Uo
KTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiAxLjA7CisgICAgcmV0dXJuIHBhZ2Ut
PmRldmljZVNjYWxlRmFjdG9yKCk7Cit9CisKIGJvb2wgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6
c3VwcG9ydHNQYWdpbmF0ZWRQcmludCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fd2ViUGx1Z2lu
LT5zdXBwb3J0c1BhZ2luYXRlZFByaW50KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oCShyZXZpc2lvbiAxMTk2MDMp
CisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTExNCw2ICsxMTQsOCBAQAogICAgIFdlYlBsdWdpbiogcGx1Z2lu
KCkgeyByZXR1cm4gbV93ZWJQbHVnaW47IH0KICAgICB2b2lkIHNldFBsdWdpbihXZWJQbHVnaW4q
KTsKIAorICAgIHZpcnR1YWwgZmxvYXQgZ2V0RGV2aWNlU2NhbGVGYWN0b3IoKTsKKwogICAgIC8v
IFByaW50aW5nIGludGVyZmFjZS4gVGhlIHBsdWdpbiBjYW4gc3VwcG9ydCBjdXN0b20gcHJpbnRp
bmcKICAgICAvLyAod2hpY2ggbWVhbnMgaXQgY29udHJvbHMgdGhlIGxheW91dCwgbnVtYmVyIG9m
IHBhZ2VzIGV0YykuCiAgICAgLy8gV2hldGhlciB0aGUgcGx1Z2luIHN1cHBvcnRzIGl0cyBvd24g
cGFnaW5hdGVkIHByaW50LiBUaGUgb3RoZXIgcHJpbnQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlBsdWdpbkNvbnRhaW5lci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBsdWdpbkNvbnRhaW5lci5oCShyZXZpc2lvbiAxMTk2
MDMpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQbHVnaW5Db250YWluZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsOCBAQAogCiBzdHJ1Y3QgTlBPYmplY3Q7CiAK
KyNkZWZpbmUgV0VCUExVR0lOQ09OVEFJTkVSX0hBU19HRVRERVZJQ0VTQ0FMRUZBQ1RPUiAxCisK
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJFbGVtZW50OwpAQCAtMTEwLDYgKzExMiw4
IEBACiAgICAgdmlydHVhbCBXZWJQbHVnaW4qIHBsdWdpbigpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0UGx1Z2luKFdlYlBsdWdpbiopID0gMDsKIAorICAgIHZpcnR1YWwgZmxvYXQgZ2V0RGV2
aWNlU2NhbGVGYWN0b3IoKSA9IDA7CisKIHByb3RlY3RlZDoKICAgICB+V2ViUGx1Z2luQ29udGFp
bmVyKCkgeyB9CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148701</attachid>
            <date>2012-06-20 18:26:55 -0700</date>
            <delta_ts>2012-06-22 13:04:44 -0700</delta_ts>
            <desc>Similar patch, with additional getPageZoomFactor</desc>
            <filename>wk.patch</filename>
            <type>text/plain</type>
            <size>3090</size>
            <attacher name="Josh Horwich">jhorwich</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiAxMjA4NzQpCisrKyBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5
IEBACisyMDEyLTA2LTIwICBKb3NoIEhvcndpY2ggIDxqaG9yd2ljaEBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgW2Nocm9taXVtXSBFeHBvc2UgZGV2aWNlIHNjYWxlIGZhY3RvciBpbiBXZWJQbHVn
aW5Db250YWluZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg3ODc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBwdWJsaWMvV2ViUGx1Z2luQ29udGFpbmVyLmg6CisgICAgICAgIChXZWJQbHVnaW5Db250
YWluZXIpOgorICAgICAgICAqIHNyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGx1Z2luQ29udGFpbmVySW1wbDo6Z2V0RGV2aWNlU2NhbGVGYWN0b3Ip
OgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luQ29udGFpbmVy
SW1wbDo6Z2V0UGFnZVpvb21GYWN0b3IpOgorICAgICAgICAqIHNyYy9XZWJQbHVnaW5Db250YWlu
ZXJJbXBsLmg6CisgICAgICAgIChXZWJQbHVnaW5Db250YWluZXJJbXBsKToKKwogMjAxMi0wNi0x
OSAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJv
bWl1bV0gU2VwYXJhdGUgTGF5ZXJSZW5kZXJlciBpbml0aWFsaXphdGlvbiBmcm9tIHVwZGF0ZUxh
eWVycwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVy
SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1
Z2luQ29udGFpbmVySW1wbC5jcHAJKHJldmlzaW9uIDEyMDg2NSkKKysrIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNDIsNiArMjQyLDIyIEBACiAgICAgfQogfQogCitmbG9hdCBXZWJQbHVnaW5Db250YWluZXJJ
bXBsOjpnZXREZXZpY2VTY2FsZUZhY3RvcigpCit7CisgICAgUGFnZSogcGFnZSA9IG1fZWxlbWVu
dC0+ZG9jdW1lbnQoKS0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIDEu
MDsKKyAgICByZXR1cm4gcGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKTsKK30KKworZmxvYXQgV2Vi
UGx1Z2luQ29udGFpbmVySW1wbDo6Z2V0UGFnZVpvb21GYWN0b3IoKQoreworICAgIEZyYW1lKiBm
cmFtZSA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lKQor
ICAgICAgcmV0dXJuIDEuMDsKKyAgICByZXR1cm4gZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCk7Cit9
CisKIGJvb2wgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6c3VwcG9ydHNQYWdpbmF0ZWRQcmludCgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fd2ViUGx1Z2luLT5zdXBwb3J0c1BhZ2luYXRlZFByaW50
KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJ
bXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2lu
Q29udGFpbmVySW1wbC5oCShyZXZpc2lvbiAxMjA4NjUpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTExNCw2
ICsxMTQsOSBAQAogICAgIFdlYlBsdWdpbiogcGx1Z2luKCkgeyByZXR1cm4gbV93ZWJQbHVnaW47
IH0KICAgICB2b2lkIHNldFBsdWdpbihXZWJQbHVnaW4qKTsKIAorICAgIHZpcnR1YWwgZmxvYXQg
Z2V0RGV2aWNlU2NhbGVGYWN0b3IoKTsKKyAgICB2aXJ0dWFsIGZsb2F0IGdldFBhZ2Vab29tRmFj
dG9yKCk7CisKICAgICAvLyBQcmludGluZyBpbnRlcmZhY2UuIFRoZSBwbHVnaW4gY2FuIHN1cHBv
cnQgY3VzdG9tIHByaW50aW5nCiAgICAgLy8gKHdoaWNoIG1lYW5zIGl0IGNvbnRyb2xzIHRoZSBs
YXlvdXQsIG51bWJlciBvZiBwYWdlcyBldGMpLgogICAgIC8vIFdoZXRoZXIgdGhlIHBsdWdpbiBz
dXBwb3J0cyBpdHMgb3duIHBhZ2luYXRlZCBwcmludC4gVGhlIG90aGVyIHByaW50CkluZGV4OiBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQbHVnaW5Db250YWluZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQbHVnaW5Db250YWluZXIu
aAkocmV2aXNpb24gMTIwODY1KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
UGx1Z2luQ29udGFpbmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDkgQEAKIAogc3Ry
dWN0IE5QT2JqZWN0OwogCisjZGVmaW5lIFdFQlBMVUdJTkNPTlRBSU5FUl9IQVNfR0VUREVWSUNF
U0NBTEVGQUNUT1IgMQorI2RlZmluZSBXRUJQTFVHSU5DT05UQUlORVJfSEFTX0dFVFBBR0VaT09N
RkFDVE9SIDEKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkVsZW1lbnQ7CkBAIC0x
MTAsNiArMTEzLDkgQEAKICAgICB2aXJ0dWFsIFdlYlBsdWdpbiogcGx1Z2luKCkgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRQbHVnaW4oV2ViUGx1Z2luKikgPSAwOwogCisgICAgdmlydHVhbCBm
bG9hdCBnZXREZXZpY2VTY2FsZUZhY3RvcigpID0gMDsKKyAgICB2aXJ0dWFsIGZsb2F0IGdldFBh
Z2Vab29tRmFjdG9yKCkgPSAwOworCiBwcm90ZWN0ZWQ6CiAgICAgfldlYlBsdWdpbkNvbnRhaW5l
cigpIHsgfQogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149089</attachid>
            <date>2012-06-22 13:03:39 -0700</date>
            <delta_ts>2012-06-26 17:58:17 -0700</delta_ts>
            <desc>Patch to address feedback, add pageScaleFactor</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>3554</size>
            <attacher name="Josh Horwich">jhorwich</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiAxMjA5ODkpCisrKyBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIw
IEBACisyMDEyLTA2LTIxICBKb3NoIEhvcndpY2ggIDxqaG9yd2ljaEBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgW2Nocm9taXVtXSBFeHBvc2UgZGV2aWNlIHNjYWxlIGZhY3RvciBpbiBXZWJQbHVn
aW5Db250YWluZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg3ODc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBwdWJsaWMvV2ViUGx1Z2luQ29udGFpbmVyLmg6CisgICAgICAgIChXZWJQbHVnaW5Db250
YWluZXIpOgorICAgICAgICAqIHNyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGx1Z2luQ29udGFpbmVySW1wbDo6ZGV2aWNlU2NhbGVGYWN0b3IpOgor
ICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luQ29udGFpbmVySW1w
bDo6cGFnZVNjYWxlRmFjdG9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luQ29udGFpbmVy
SW1wbDo6cGFnZVpvb21GYWN0b3IpOgorICAgICAgICAqIHNyYy9XZWJQbHVnaW5Db250YWluZXJJ
bXBsLmg6CisgICAgICAgIChXZWJQbHVnaW5Db250YWluZXJJbXBsKToKKwogMjAxMi0wNi0yMSAg
T2xpIExhbiAgPG9saWxhbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIG1ldGhvZHMgdG8g
c2VsZWN0IGJldHdlZW4gb2Zmc2V0cyBpbiBhbiBlZGl0YWJsZSBmaWVsZC4KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwu
Y3BwCShyZXZpc2lvbiAxMjEwNDYpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQ
bHVnaW5Db250YWluZXJJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQ1LDYgKzI0NSwzMCBA
QAogICAgIH0KIH0KIAorZmxvYXQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6ZGV2aWNlU2NhbGVG
YWN0b3IoKQoreworICAgIFBhZ2UqIHBhZ2UgPSBtX2VsZW1lbnQtPmRvY3VtZW50KCktPnBhZ2Uo
KTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiAxLjA7CisgICAgcmV0dXJuIHBhZ2Ut
PmRldmljZVNjYWxlRmFjdG9yKCk7Cit9CisKK2Zsb2F0IFdlYlBsdWdpbkNvbnRhaW5lckltcGw6
OnBhZ2VTY2FsZUZhY3RvcigpCit7CisgICAgUGFnZSogcGFnZSA9IG1fZWxlbWVudC0+ZG9jdW1l
bnQoKS0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIDEuMDsKKyAgICBy
ZXR1cm4gcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCk7Cit9CisKK2Zsb2F0IFdlYlBsdWdpbkNvbnRh
aW5lckltcGw6OnBhZ2Vab29tRmFjdG9yKCkKK3sKKyAgICBGcmFtZSogZnJhbWUgPSBtX2VsZW1l
bnQtPmRvY3VtZW50KCktPmZyYW1lKCk7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgIHJldHVybiAx
LjA7CisgICAgcmV0dXJuIGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpOworfQorCiBib29sIFdlYlBs
dWdpbkNvbnRhaW5lckltcGw6OnN1cHBvcnRzUGFnaW5hdGVkUHJpbnQoKSBjb25zdAogewogICAg
IHJldHVybiBtX3dlYlBsdWdpbi0+c3VwcG9ydHNQYWdpbmF0ZWRQcmludCgpOwpJbmRleDogU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwu
aAkocmV2aXNpb24gMTIxMDQ2KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1
Z2luQ29udGFpbmVySW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTUsNiArMTE1LDEwIEBACiAg
ICAgV2ViUGx1Z2luKiBwbHVnaW4oKSB7IHJldHVybiBtX3dlYlBsdWdpbjsgfQogICAgIHZvaWQg
c2V0UGx1Z2luKFdlYlBsdWdpbiopOwogCisgICAgdmlydHVhbCBmbG9hdCBkZXZpY2VTY2FsZUZh
Y3RvcigpOworICAgIHZpcnR1YWwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCk7CisgICAgdmlydHVh
bCBmbG9hdCBwYWdlWm9vbUZhY3RvcigpOworCiAgICAgLy8gUHJpbnRpbmcgaW50ZXJmYWNlLiBU
aGUgcGx1Z2luIGNhbiBzdXBwb3J0IGN1c3RvbSBwcmludGluZwogICAgIC8vICh3aGljaCBtZWFu
cyBpdCBjb250cm9scyB0aGUgbGF5b3V0LCBudW1iZXIgb2YgcGFnZXMgZXRjKS4KICAgICAvLyBX
aGV0aGVyIHRoZSBwbHVnaW4gc3VwcG9ydHMgaXRzIG93biBwYWdpbmF0ZWQgcHJpbnQuIFRoZSBv
dGhlciBwcmludApJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGx1Z2lu
Q29udGFpbmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViUGx1Z2luQ29udGFpbmVyLmgJKHJldmlzaW9uIDEyMTA0NikKKysrIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlBsdWdpbkNvbnRhaW5lci5oCSh3b3JraW5nIGNvcHkpCkBAIC05
OCw2ICs5OCw3IEBACiAgICAgICAgIGNvbnN0IFdlYlVSTFJlcXVlc3QmLCBjb25zdCBXZWJTdHJp
bmcmIHRhcmdldCwgYm9vbCBub3RpZnlOZWVkZWQsIHZvaWQqIG5vdGlmeURhdGEpID0gMDsKIAog
ICAgIC8vIE5vdGlmaWVzIHRoYXQgdGhlIHpvb20gbGV2ZWwgaGFzIGNoYW5nZWQuCisgICAgLy8g
Tm90ZSwgdGhpcyBkb2VzIE5PVCBhZmZlY3QgcGFnZVNjYWxlRmFjdG9yIG9yIHBhZ2Vab29tRmFj
dG9yCiAgICAgdmlydHVhbCB2b2lkIHpvb21MZXZlbENoYW5nZWQoZG91YmxlIHpvb21MZXZlbCkg
PSAwOwogCiAgICAgLy8gTm90aWZpZXMgd2hldGhlciB0aGUgY29udGVudHMgb2YgdGhlIHBsdWdp
biBhcmUgZW50aXJlbHkgb3BhcXVlLgpAQCAtMTEwLDYgKzExMSwxMCBAQAogICAgIHZpcnR1YWwg
V2ViUGx1Z2luKiBwbHVnaW4oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFBsdWdpbihXZWJQ
bHVnaW4qKSA9IDA7CiAKKyAgICB2aXJ0dWFsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgPSAw
OworICAgIHZpcnR1YWwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgPSAwOworICAgIHZpcnR1YWwg
ZmxvYXQgcGFnZVpvb21GYWN0b3IoKSA9IDA7CisKIHByb3RlY3RlZDoKICAgICB+V2ViUGx1Z2lu
Q29udGFpbmVyKCkgeyB9CiB9Owo=
</data>
<flag name="review"
          id="157014"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149777</attachid>
            <date>2012-06-27 11:48:49 -0700</date>
            <delta_ts>2012-06-27 14:01:15 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>patch_for_landing.patch</filename>
            <type>text/plain</type>
            <size>3552</size>
            <attacher name="Josh Horwich">jhorwich</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiAxMjA5ODkpCisrKyBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIw
IEBACisyMDEyLTA2LTI3ICBKb3NoIEhvcndpY2ggIDxqaG9yd2ljaEBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgW2Nocm9taXVtXSBFeHBvc2UgZGV2aWNlIHNjYWxlIGZhY3RvciBpbiBXZWJQbHVn
aW5Db250YWluZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg3ODc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICAq
IHB1YmxpYy9XZWJQbHVnaW5Db250YWluZXIuaDoKKyAgICAgICAgKFdlYlBsdWdpbkNvbnRhaW5l
cik6CisgICAgICAgICogc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQbHVnaW5Db250YWluZXJJbXBsOjpkZXZpY2VTY2FsZUZhY3Rvcik6CisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5Db250YWluZXJJbXBsOjpw
YWdlU2NhbGVGYWN0b3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5Db250YWluZXJJbXBs
OjpwYWdlWm9vbUZhY3Rvcik6CisgICAgICAgICogc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwu
aDoKKyAgICAgICAgKFdlYlBsdWdpbkNvbnRhaW5lckltcGwpOgorCiAyMDEyLTA2LTIxICBPbGkg
TGFuICA8b2xpbGFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgbWV0aG9kcyB0byBzZWxl
Y3QgYmV0d2VlbiBvZmZzZXRzIGluIGFuIGVkaXRhYmxlIGZpZWxkLgpJbmRleDogU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAJ
KHJldmlzaW9uIDEyMTM1MCkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdp
bkNvbnRhaW5lckltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDUsNiArMjQ1LDMwIEBACiAg
ICAgfQogfQogCitmbG9hdCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpkZXZpY2VTY2FsZUZhY3Rv
cigpCit7CisgICAgUGFnZSogcGFnZSA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+cGFnZSgpOwor
ICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIDEuMDsKKyAgICByZXR1cm4gcGFnZS0+ZGV2
aWNlU2NhbGVGYWN0b3IoKTsKK30KKworZmxvYXQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6cGFn
ZVNjYWxlRmFjdG9yKCkKK3sKKyAgICBQYWdlKiBwYWdlID0gbV9lbGVtZW50LT5kb2N1bWVudCgp
LT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gMS4wOworICAgIHJldHVy
biBwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKTsKK30KKworZmxvYXQgV2ViUGx1Z2luQ29udGFpbmVy
SW1wbDo6cGFnZVpvb21GYWN0b3IoKQoreworICAgIEZyYW1lKiBmcmFtZSA9IG1fZWxlbWVudC0+
ZG9jdW1lbnQoKS0+ZnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm4gMS4w
OworICAgIHJldHVybiBmcmFtZS0+cGFnZVpvb21GYWN0b3IoKTsKK30KKwogYm9vbCBXZWJQbHVn
aW5Db250YWluZXJJbXBsOjpzdXBwb3J0c1BhZ2luYXRlZFByaW50KCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gbV93ZWJQbHVnaW4tPnN1cHBvcnRzUGFnaW5hdGVkUHJpbnQoKTsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmgJ
KHJldmlzaW9uIDEyMTM1MCkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdp
bkNvbnRhaW5lckltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMTE2LDYgKzExNiwxMCBAQAogICAg
IFdlYlBsdWdpbiogcGx1Z2luKCkgeyByZXR1cm4gbV93ZWJQbHVnaW47IH0KICAgICB2b2lkIHNl
dFBsdWdpbihXZWJQbHVnaW4qKTsKIAorICAgIHZpcnR1YWwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0
b3IoKTsKKyAgICB2aXJ0dWFsIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcigpOworICAgIHZpcnR1YWwg
ZmxvYXQgcGFnZVpvb21GYWN0b3IoKTsKKwogICAgIC8vIFByaW50aW5nIGludGVyZmFjZS4gVGhl
IHBsdWdpbiBjYW4gc3VwcG9ydCBjdXN0b20gcHJpbnRpbmcKICAgICAvLyAod2hpY2ggbWVhbnMg
aXQgY29udHJvbHMgdGhlIGxheW91dCwgbnVtYmVyIG9mIHBhZ2VzIGV0YykuCiAgICAgLy8gV2hl
dGhlciB0aGUgcGx1Z2luIHN1cHBvcnRzIGl0cyBvd24gcGFnaW5hdGVkIHByaW50LiBUaGUgb3Ro
ZXIgcHJpbnQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBsdWdpbkNv
bnRhaW5lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlBsdWdpbkNvbnRhaW5lci5oCShyZXZpc2lvbiAxMjEzNTApCisrKyBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJQbHVnaW5Db250YWluZXIuaAkod29ya2luZyBjb3B5KQpAQCAtOTgs
NiArOTgsNyBAQAogICAgICAgICBjb25zdCBXZWJVUkxSZXF1ZXN0JiwgY29uc3QgV2ViU3RyaW5n
JiB0YXJnZXQsIGJvb2wgbm90aWZ5TmVlZGVkLCB2b2lkKiBub3RpZnlEYXRhKSA9IDA7CiAKICAg
ICAvLyBOb3RpZmllcyB0aGF0IHRoZSB6b29tIGxldmVsIGhhcyBjaGFuZ2VkLgorICAgIC8vIE5v
dGUsIHRoaXMgZG9lcyBOT1QgYWZmZWN0IHBhZ2VTY2FsZUZhY3RvciBvciBwYWdlWm9vbUZhY3Rv
cgogICAgIHZpcnR1YWwgdm9pZCB6b29tTGV2ZWxDaGFuZ2VkKGRvdWJsZSB6b29tTGV2ZWwpID0g
MDsKIAogICAgIC8vIE5vdGlmaWVzIHdoZXRoZXIgdGhlIGNvbnRlbnRzIG9mIHRoZSBwbHVnaW4g
YXJlIGVudGlyZWx5IG9wYXF1ZS4KQEAgLTExMyw2ICsxMTQsMTAgQEAKICAgICB2aXJ0dWFsIFdl
YlBsdWdpbiogcGx1Z2luKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRQbHVnaW4oV2ViUGx1
Z2luKikgPSAwOwogCisgICAgdmlydHVhbCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpID0gMDsK
KyAgICB2aXJ0dWFsIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcigpID0gMDsKKyAgICB2aXJ0dWFsIGZs
b2F0IHBhZ2Vab29tRmFjdG9yKCkgPSAwOworCiBwcm90ZWN0ZWQ6CiAgICAgfldlYlBsdWdpbkNv
bnRhaW5lcigpIHsgfQogfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>