<?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>102148</bug_id>
          
          <creation_ts>2012-11-13 16:17:26 -0800</creation_ts>
          <short_desc>Automatically run small plugins</short_desc>
          <delta_ts>2012-11-14 00:31:42 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.8</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>98318</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Lee">jonlee</reporter>
          <assigned_to name="Jon Lee">jonlee</assigned_to>
          <cc>abarth</cc>
    
    <cc>andersca</cc>
    
    <cc>beidson</cc>
    
    <cc>bweinstein</cc>
    
    <cc>cevans</cc>
    
    <cc>cpu</cc>
    
    <cc>eric</cc>
    
    <cc>inferno</cc>
    
    <cc>mjs</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>766152</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-11-13 16:17:26 -0800</bug_when>
    <thetext>Plugins that are smaller than 1px x 1px should automatically run.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766153</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2012-11-13 16:18:05 -0800</bug_when>
    <thetext>&lt;rdar://problem/12695560&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766196</commentid>
    <comment_count>2</comment_count>
      <attachid>174030</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-11-13 17:08:31 -0800</bug_when>
    <thetext>Created attachment 174030
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766213</commentid>
    <comment_count>3</comment_count>
      <attachid>174030</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-11-13 17:20:14 -0800</bug_when>
    <thetext>Comment on attachment 174030
Patch

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

&gt; Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp:156
&gt; +    if (plugInImageElement()-&gt;displayState() &lt; HTMLPlugInElement::Playing
&gt; +        &amp;&amp; (!width || !height || (width &lt;= autoStartPlugInSizeThresholdWidth &amp;&amp; height &lt;= autoStartPlugInSizeThresholdHeight)))
&gt; +        plugInImageElement()-&gt;setDisplayState(HTMLPlugInElement::Playing);

Seems like this would let sites get around snapshotting/freezing by making their plugin 0x0 for the first layout and then the real size later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766224</commentid>
    <comment_count>4</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-11-13 17:30:59 -0800</bug_when>
    <thetext>Filed bug 102157 to track this issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766226</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-11-13 17:32:21 -0800</bug_when>
    <thetext>Interesting.  If I&apos;m understanding this bug correctly (which I may not be!) this sounds like a different security decision than Chromium has made.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766228</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-11-13 17:33:10 -0800</bug_when>
    <thetext>(It&apos;s not clear to me that this change affects chromium.  Just noting the possible divergence.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766238</commentid>
    <comment_count>7</comment_count>
      <attachid>174030</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-11-13 17:43:26 -0800</bug_when>
    <thetext>Comment on attachment 174030
Patch

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

I’m OK with this change, although Tim’s point is an interesting one.

&gt; Source/WebCore/rendering/RenderEmbeddedObject.h:72
&gt; +    virtual void layout();

As you are moving this, please also add the OVERRIDE keyword.

&gt; Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp:41
&gt; +static int autoStartPlugInSizeThresholdWidth = 1;
&gt; +static int autoStartPlugInSizeThresholdHeight = 1;

These should be const. Once they are const they need not be static (although there is no harm in marking them so, except perhaps to annoy Alexey).

&gt; Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp:153
&gt; +    int width = rect.width(), height = rect.height();

We don’t do multiple variables on one line like this in WebKit.

&gt; Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp:155
&gt; +    if (plugInImageElement()-&gt;displayState() &lt; HTMLPlugInElement::Playing
&gt; +        &amp;&amp; (!width || !height || (width &lt;= autoStartPlugInSizeThresholdWidth &amp;&amp; height &lt;= autoStartPlugInSizeThresholdHeight)))

I suggest computing the content box size only after checking the displayState.

&gt; Source/WebCore/rendering/RenderSnapshottedPlugIn.h:57
&gt; +    virtual void layout();

Please add OVERRIDE.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766261</commentid>
    <comment_count>8</comment_count>
      <attachid>174030</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-11-13 18:04:08 -0800</bug_when>
    <thetext>Comment on attachment 174030
Patch

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

&gt;&gt; Source/WebCore/rendering/RenderEmbeddedObject.h:72
&gt;&gt; +    virtual void layout();
&gt; 
&gt; As you are moving this, please also add the OVERRIDE keyword.

Done.

&gt;&gt; Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp:41
&gt;&gt; +static int autoStartPlugInSizeThresholdHeight = 1;
&gt; 
&gt; These should be const. Once they are const they need not be static (although there is no harm in marking them so, except perhaps to annoy Alexey).

Always good to keep Alexey happy.

&gt;&gt; Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp:153
&gt;&gt; +    int width = rect.width(), height = rect.height();
&gt; 
&gt; We don’t do multiple variables on one line like this in WebKit.

Split.

&gt;&gt; Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp:155
&gt;&gt; +        &amp;&amp; (!width || !height || (width &lt;= autoStartPlugInSizeThresholdWidth &amp;&amp; height &lt;= autoStartPlugInSizeThresholdHeight)))
&gt; 
&gt; I suggest computing the content box size only after checking the displayState.

Done.

&gt;&gt; Source/WebCore/rendering/RenderSnapshottedPlugIn.h:57
&gt;&gt; +    virtual void layout();
&gt; 
&gt; Please add OVERRIDE.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766345</commentid>
    <comment_count>9</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-11-13 20:22:12 -0800</bug_when>
    <thetext>Committed r134526: &lt;http://trac.webkit.org/changeset/134526&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174030</attachid>
            <date>2012-11-13 17:08:31 -0800</date>
            <delta_ts>2012-11-13 18:04:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102148-20121113170631.patch</filename>
            <type>text/plain</type>
            <size>3964</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NDgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTY5YmZiNWY4ZWMyMDA3
YmJjZmU4MzBlODY2YzdjZDcxNjk3ZDlhMy4uOGYzNmNiYjhiY2I3ZDdkZDFhODNjN2Y5ZTgxYWQw
MWRmNWIyMmY2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTExLTEzICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBBdXRvbWF0aWNhbGx5IHJ1biBzbWFs
bCBwbHVnaW5zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDIxNDgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEyNjk1NTYwPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVt
YmVkZGVkT2JqZWN0Lmg6IFByb21vdGUgbGF5b3V0KCkgdG8gcHJvdGVjdGVkLgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHA6IEFkZCBjb25zdGFudHMgZm9y
IHRocmVzaG9sZCBzaXplIGZvciBwbHVnaW5zIHRoYXQgd2lsbCBhdXRvLXN0YXJ0LgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OmxheW91dCk6IEFmdGVyIGxheW91
dCwgb2J0YWluIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSBlbGVtZW50LgorICAgICAgICBJ
ZiBlaXRoZXIgZGltZW5zaW9uIGlzIDAsIG9yIHRoZSBvdmVyYWxsIHNpemUgb2YgdGhlIHBsdWdp
biBpcyBzbWFsbGVyIHRoYXQgdGhlIHRocmVzaG9sZCBzaXplLCBtb3ZlIHRoZQorICAgICAgICBk
aXNwbGF5IHN0YXRlIHRvIFBsYXlpbmcuIEFzc3VtaW5nIHdlIHdpbGwgYWx3YXlzIGxheW91dCBi
ZWZvcmUgZmlyc3QgcGFpbnQsIGNoYW5naW5nIHRoZSBzdGF0ZSBoZXJlCisgICAgICAgIHNob3Vs
ZCBiZSBzYWZlLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5o
OgorCiAyMDEyLTExLTEzICBBbmRyZWkgQnVjdXIgIDxhYnVjdXJAYWRvYmUuY29tPgogCiAgICAg
ICAgIFtDU1MgUmVnaW9uc10gQWRkIFJlZ2lvbiBpbmZvIGZvciBSb290TGluZUJveGVzIGFuZCBw
YWNrIHRoZSBwYWdpbmF0aW9uIGRhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckVtYmVkZGVkT2JqZWN0LmgKaW5kZXggMTMzZjM0ZDkyZjhiNDk5MDcxOTRmZWViZmY4MmVj
NDIyNDVjY2UyZS4uMmY1MGFmZDZlNDVkMTI1NDIxNzA1Nzg2Y2M4ZjQyMmI1MGQxYTU0ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmgKQEAg
LTY4LDYgKzY4LDkgQEAgcHJvdGVjdGVkOgogICAgIFJlbmRlck9iamVjdENoaWxkTGlzdCogY2hp
bGRyZW4oKSB7IHJldHVybiAmbV9jaGlsZHJlbjsgfQogI2VuZGlmCiAKK3Byb3RlY3RlZDoKKyAg
ICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7CisKIHByaXZhdGU6CiAgICAgdmlydHVhbCBjb25zdCBj
aGFyKiByZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gIlJlbmRlckVtYmVkZGVkT2JqZWN0Ijsg
fQogICAgIHZpcnR1YWwgYm9vbCBpc0VtYmVkZGVkT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQpAQCAtNzYsNyArNzksNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCByZXF1aXJl
c0xheWVyKCkgY29uc3Q7CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsKICAg
ICB2aXJ0dWFsIHZvaWQgdmlld0NsZWFyZWQoKTsKIAogICAgIHZpcnR1YWwgYm9vbCBub2RlQXRQ
b2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0
TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVs
YXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcAppbmRleCBhN2E5ZjRh
ZWUzNTkzZTUwYzZkNTc5MjMxZDg3M2UzMTBiNGE4NjcyLi5jODJlNWUwYjk0OWQwZTczZjgzOTBl
YzMxMzU1YzRkNzVkNWJlODk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKQEAgLTM3LDYgKzM3LDkgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitzdGF0aWMgaW50IGF1dG9TdGFydFBsdWdJblNpemVUaHJlc2hvbGRX
aWR0aCA9IDE7CitzdGF0aWMgaW50IGF1dG9TdGFydFBsdWdJblNpemVUaHJlc2hvbGRIZWlnaHQg
PSAxOworCiBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4o
SFRNTFBsdWdJbkltYWdlRWxlbWVudCogZWxlbWVudCkKICAgICA6IFJlbmRlckVtYmVkZGVkT2Jq
ZWN0KGVsZW1lbnQpCiAgICAgLCBtX3NuYXBzaG90UmVzb3VyY2UoUmVuZGVySW1hZ2VSZXNvdXJj
ZTo6Y3JlYXRlKCkpCkBAIC0xNDMsNCArMTQ2LDE0IEBAIHZvaWQgUmVuZGVyU25hcHNob3R0ZWRQ
bHVnSW46OmhhbmRsZUV2ZW50KEV2ZW50KiBldmVudCkKICAgICB9CiB9CiAKK3ZvaWQgUmVuZGVy
U25hcHNob3R0ZWRQbHVnSW46OmxheW91dCgpCit7CisgICAgUmVuZGVyRW1iZWRkZWRPYmplY3Q6
OmxheW91dCgpOworICAgIExheW91dFJlY3QgcmVjdCA9IGNvbnRlbnRCb3hSZWN0KCk7CisgICAg
aW50IHdpZHRoID0gcmVjdC53aWR0aCgpLCBoZWlnaHQgPSByZWN0LmhlaWdodCgpOworICAgIGlm
IChwbHVnSW5JbWFnZUVsZW1lbnQoKS0+ZGlzcGxheVN0YXRlKCkgPCBIVE1MUGx1Z0luRWxlbWVu
dDo6UGxheWluZworICAgICAgICAmJiAoIXdpZHRoIHx8ICFoZWlnaHQgfHwgKHdpZHRoIDw9IGF1
dG9TdGFydFBsdWdJblNpemVUaHJlc2hvbGRXaWR0aCAmJiBoZWlnaHQgPD0gYXV0b1N0YXJ0UGx1
Z0luU2l6ZVRocmVzaG9sZEhlaWdodCkpKQorICAgICAgICBwbHVnSW5JbWFnZUVsZW1lbnQoKS0+
c2V0RGlzcGxheVN0YXRlKEhUTUxQbHVnSW5FbGVtZW50OjpQbGF5aW5nKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNuYXBzaG90dGVkUGx1Z0luLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
U25hcHNob3R0ZWRQbHVnSW4uaAppbmRleCA2YTEzYTNhM2ZmZmU4YmU1Y2YxYzMxZDAwNzlhOWJk
NjZmODJiZDNhLi5kNzQyYWZjMjdkOGRkODk2NzJiMzQ4NzdlMjFkZDg5MDhjZDUzNjM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4u
aApAQCAtNTQsNiArNTQsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBwYWludFJlcGxh
Y2VkKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JikgT1ZFUlJJREU7CiAgICAgdm9pZCBw
YWludFJlcGxhY2VkU25hcHNob3QoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKIAor
ICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsKKwogICAgIE93blB0cjxSZW5kZXJJbWFnZVJlc291
cmNlPiBtX3NuYXBzaG90UmVzb3VyY2U7CiB9OwogCg==
</data>
<flag name="review"
          id="188914"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>