<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[152580] trunk</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/152580">152580</a></dd>
<dt>Author</dt> <dd>roger_fong@apple.com</dd>
<dt>Date</dt> <dd>2013-07-11 16:53:40 -0700 (Thu, 11 Jul 2013)</dd>
</dl>

<h3>Log Message</h3>
<pre>Plugins that don't support snapshotting should not all autostart.
https://bugs.webkit.org/show_bug.cgi?id=118572
&lt;rdar://problem/14324391&gt;.

Reviewed by Dean Jackson.

Test: plugins/snapshotting/quicktime-plugin-snapshotted.html

* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot): Pass in information about whether or not a snapshot exists
to the shadow dom.
* plugins/PluginViewBase.h:
(WebCore::PluginViewBase::shouldNotAddLayer): This method determines whether or not we should add the plugin's layer to the tree.
It should not be added if the plugin is in it's snapshotted state but does not actually support snapshotting.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): We should only add the layer to the tree when the plugin
is actually playing. Otherwise we run into an issue where the contents of the layer initially appear on the screen briefly 
on page load before we display the substitute for a plugin that doesn't support snapshotting.

* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::shouldNotAddLayer): This method determines whether or not we should add the plugin's layer to the tree.
It should not be added if the plugin is in it's snapshotted state but does not actually support snapshotting.
(WebKit::PluginView::pluginSnapshotTimerFired): If the plugin does not support snapshotting go straight 
to the the DisplayingSnapshot state.
* WebProcess/Plugins/PluginView.h:

* platform/mac-wk2/plugins/snapshotting/quicktime-plugin-snapshotted-expected.txt: Added.
* plugins/snapshotting/quicktime-plugin-snapshotted.html: Added.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLPlugInImageElementcpp">trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp</a></li>
<li><a href="#trunkSourceWebCorepluginsPluginViewBaseh">trunk/Source/WebCore/plugins/PluginViewBase.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayerBackingcpp">trunk/Source/WebCore/rendering/RenderLayerBacking.cpp</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsPluginViewcpp">trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsPluginViewh">trunk/Source/WebKit2/WebProcess/Plugins/PluginView.h</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsplatformmacwk2pluginssnapshottingquicktimepluginsnapshottedexpectedtxt">trunk/LayoutTests/platform/mac-wk2/plugins/snapshotting/quicktime-plugin-snapshotted-expected.txt</a></li>
<li><a href="#trunkLayoutTestspluginssnapshottingquicktimepluginsnapshottedhtml">trunk/LayoutTests/plugins/snapshotting/quicktime-plugin-snapshotted.html</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (152579 => 152580)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2013-07-11 22:33:11 UTC (rev 152579)
+++ trunk/LayoutTests/ChangeLog        2013-07-11 23:53:40 UTC (rev 152580)
</span><span class="lines">@@ -1,3 +1,14 @@
</span><ins>+2013-07-10  Roger Fong  &lt;roger_fong@apple.com&gt;
+
+        Plugins that don't support snapshotting should not all autostart.
+        https://bugs.webkit.org/show_bug.cgi?id=118572
+        &lt;rdar://problem/14324391&gt;.
+
+        Reviewed by Dean Jackson.
+
+        * platform/mac-wk2/plugins/snapshotting/quicktime-plugin-snapshotted-expected.txt: Added.
+        * plugins/snapshotting/quicktime-plugin-snapshotted.html: Added.
+
</ins><span class="cx"> 2013-07-11  Mario Sanchez Prada  &lt;mario@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         [GTK] Unreviewed gardening. Added expected failures after r152574.
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacwk2pluginssnapshottingquicktimepluginsnapshottedexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/platform/mac-wk2/plugins/snapshotting/quicktime-plugin-snapshotted-expected.txt (0 => 152580)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac-wk2/plugins/snapshotting/quicktime-plugin-snapshotted-expected.txt                                (rev 0)
+++ trunk/LayoutTests/platform/mac-wk2/plugins/snapshotting/quicktime-plugin-snapshotted-expected.txt        2013-07-11 23:53:40 UTC (rev 152580)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderBlock {HTML} at (0,0) size 800x600
+    RenderBody {BODY} at (8,8) size 784x584
+      RenderBlock {P} at (0,0) size 784x36
+        RenderText {#text} at (0,0) size 784x36
+          text run at (0,0) width 407: &quot;This test ensures that quicktime plugins can also be snapshotted. &quot;
+          text run at (407,0) width 377: &quot;We make the plugin here to small to be primary plugin, thus&quot;
+          text run at (0,18) width 159: &quot;it should get snapshotted.&quot;
+      RenderBlock (anonymous) at (0,52) size 784x300
+        RenderText {#text} at (0,0) size 0x0
+layer at (8,60) size 300x300
+  RenderEmbeddedObject {EMBED} at (0,0) size 300x300
</ins></span></pre></div>
<a id="trunkLayoutTestspluginssnapshottingquicktimepluginsnapshottedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/plugins/snapshotting/quicktime-plugin-snapshotted.html (0 => 152580)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/plugins/snapshotting/quicktime-plugin-snapshotted.html                                (rev 0)
+++ trunk/LayoutTests/plugins/snapshotting/quicktime-plugin-snapshotted.html        2013-07-11 23:53:40 UTC (rev 152580)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+&lt;p&gt;This test ensures that quicktime plugins can also be snapshotted. 
+We make the plugin here too small to be the primary plugin, thus it should get snapshotted.&lt;/p&gt;
+&lt;script&gt;
+if (window.testRunner) {
+    window.internals.settings.setPlugInSnapshottingEnabled(true);
+    window.internals.settings.setMaximumPlugInSnapshotAttempts(0);
+    testRunner.waitUntilDone();
+    setTimeout(function () {
+        testRunner.notifyDone();
+    }, 500);
+}
+&lt;/script&gt;
+&lt;embed src=&quot;../resources/orange.mov&quot; width=&quot;300&quot; height=&quot;300&quot;&gt;&lt;/embed&gt;
</ins></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (152579 => 152580)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2013-07-11 22:33:11 UTC (rev 152579)
+++ trunk/Source/WebCore/ChangeLog        2013-07-11 23:53:40 UTC (rev 152580)
</span><span class="lines">@@ -1,3 +1,24 @@
</span><ins>+2013-07-10  Roger Fong  &lt;roger_fong@apple.com&gt;
+
+        Plugins that don't support snapshotting should not all autostart.
+        https://bugs.webkit.org/show_bug.cgi?id=118572
+        &lt;rdar://problem/14324391&gt;.
+
+        Reviewed by Dean Jackson.
+
+        Test: plugins/snapshotting/quicktime-plugin-snapshotted.html
+
+        * html/HTMLPlugInImageElement.cpp:
+        (WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot): Pass in information about whether or not a snapshot exists
+        to the shadow dom.
+        * plugins/PluginViewBase.h:
+        (WebCore::PluginViewBase::shouldNotAddLayer): This method determines whether or not we should add the plugin's layer to the tree.
+        It should not be added if the plugin is in it's snapshotted state but does not actually support snapshotting.
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): We should only add the layer to the tree when the plugin
+        is actually playing. Otherwise we run into an issue where the contents of the layer initially appear on the screen briefly 
+        on page load before we display the substitute for a plugin that doesn't support snapshotting.
+
</ins><span class="cx"> 2013-07-11  Dan Bernstein  &lt;mitz@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [mac] No API for getting the page visibility state of a WebView
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLPlugInImageElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp (152579 => 152580)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp        2013-07-11 22:33:11 UTC (rev 152579)
+++ trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp        2013-07-11 23:53:40 UTC (rev 152580)
</span><span class="lines">@@ -384,6 +384,10 @@
</span><span class="cx">     argList.append(toJS(exec, globalObject, root));
</span><span class="cx">     argList.append(jsString(exec, titleText(page, mimeType)));
</span><span class="cx">     argList.append(jsString(exec, subtitleText(page, mimeType)));
</span><ins>+    
+    // This parameter determines whether or not the snapshot overlay should always be visible over the plugin snapshot.
+    // If no snapshot was found then we want the overlay to be visible.
+    argList.append(JSC::jsBoolean(!m_snapshotImage));
</ins><span class="cx"> 
</span><span class="cx">     // It is expected the JS file provides a createOverlay(shadowRoot, title, subtitle) function.
</span><span class="cx">     JSC::JSObject* overlay = globalObject-&gt;get(exec, JSC::Identifier(exec, &quot;createOverlay&quot;)).toObject(exec);
</span></span></pre></div>
<a id="trunkSourceWebCorepluginsPluginViewBaseh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/plugins/PluginViewBase.h (152579 => 152580)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/plugins/PluginViewBase.h        2013-07-11 22:33:11 UTC (rev 152579)
+++ trunk/Source/WebCore/plugins/PluginViewBase.h        2013-07-11 23:53:40 UTC (rev 152580)
</span><span class="lines">@@ -69,6 +69,7 @@
</span><span class="cx">     virtual bool shouldAllowNavigationFromDrags() const { return false; }
</span><span class="cx"> 
</span><span class="cx">     virtual bool isPluginViewBase() const { return true; }
</span><ins>+    virtual bool shouldNotAddLayer() const { return false; }
</ins><span class="cx"> 
</span><span class="cx"> protected:
</span><span class="cx">     explicit PluginViewBase(PlatformWidget widget = 0) : Widget(widget) { }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayerBackingcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayerBacking.cpp (152579 => 152580)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayerBacking.cpp        2013-07-11 22:33:11 UTC (rev 152579)
+++ trunk/Source/WebCore/rendering/RenderLayerBacking.cpp        2013-07-11 23:53:40 UTC (rev 152580)
</span><span class="lines">@@ -565,7 +565,8 @@
</span><span class="cx"> 
</span><span class="cx">     if (renderer-&gt;isEmbeddedObject() &amp;&amp; toRenderEmbeddedObject(renderer)-&gt;allowsAcceleratedCompositing()) {
</span><span class="cx">         PluginViewBase* pluginViewBase = toPluginViewBase(toRenderWidget(renderer)-&gt;widget());
</span><del>-        m_graphicsLayer-&gt;setContentsToMedia(pluginViewBase-&gt;platformLayer());
</del><ins>+        if (!pluginViewBase-&gt;shouldNotAddLayer())
+            m_graphicsLayer-&gt;setContentsToMedia(pluginViewBase-&gt;platformLayer());
</ins><span class="cx">     }
</span><span class="cx"> #if ENABLE(VIDEO)
</span><span class="cx">     else if (renderer-&gt;isVideo()) {
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (152579 => 152580)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2013-07-11 22:33:11 UTC (rev 152579)
+++ trunk/Source/WebKit2/ChangeLog        2013-07-11 23:53:40 UTC (rev 152580)
</span><span class="lines">@@ -1,3 +1,18 @@
</span><ins>+2013-07-10  Roger Fong  &lt;roger_fong@apple.com&gt;
+
+        Plugins that don't support snapshotting should not all autostart.
+        https://bugs.webkit.org/show_bug.cgi?id=118572
+        &lt;rdar://problem/14324391&gt;.
+
+        Reviewed by Dean Jackson.
+
+        * WebProcess/Plugins/PluginView.cpp:
+        (WebKit::PluginView::shouldNotAddLayer): This method determines whether or not we should add the plugin's layer to the tree.
+        It should not be added if the plugin is in it's snapshotted state but does not actually support snapshotting.
+        (WebKit::PluginView::pluginSnapshotTimerFired): If the plugin does not support snapshotting go straight 
+        to the the DisplayingSnapshot state.
+        * WebProcess/Plugins/PluginView.h:
+
</ins><span class="cx"> 2013-07-11  Jessie Berlin  &lt;jberlin@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         WebResourceCacheManager::cfURLCacheHostNamesWithCallback leaks an array (pointed out by the
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsPluginViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp (152579 => 152580)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp        2013-07-11 22:33:11 UTC (rev 152579)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp        2013-07-11 23:53:40 UTC (rev 152580)
</span><span class="lines">@@ -924,6 +924,11 @@
</span><span class="cx">     return m_plugin-&gt;shouldAllowNavigationFromDrags();
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+bool PluginView::shouldNotAddLayer() const
+{
+    return m_pluginElement-&gt;displayState() &lt; HTMLPlugInElement::Restarting &amp;&amp; !m_plugin-&gt;supportsSnapshotting();
+}
+
</ins><span class="cx"> PassRefPtr&lt;SharedBuffer&gt; PluginView::liveResourceData() const
</span><span class="cx"> {
</span><span class="cx">     if (!m_isInitialized || !m_plugin)
</span><span class="lines">@@ -1652,27 +1657,25 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_plugin);
</span><span class="cx"> 
</span><del>-    if (m_pluginElement-&gt;isPlugInImageElement() &amp;&amp; !m_plugin-&gt;supportsSnapshotting()) {
-        toHTMLPlugInImageElement(m_pluginElement.get())-&gt;restartSnapshottedPlugIn();
-        return;
-    }
</del><ins>+    if (m_plugin-&gt;supportsSnapshotting()) {
+        // Snapshot might be 0 if plugin size is 0x0.
+        RefPtr&lt;ShareableBitmap&gt; snapshot = m_plugin-&gt;snapshot();
+        RefPtr&lt;Image&gt; snapshotImage;
+        if (snapshot)
+            snapshotImage = snapshot-&gt;createImage();
+        m_pluginElement-&gt;updateSnapshot(snapshotImage.get());
</ins><span class="cx"> 
</span><del>-    // Snapshot might be 0 if plugin size is 0x0.
-    RefPtr&lt;ShareableBitmap&gt; snapshot = m_plugin-&gt;snapshot();
-    RefPtr&lt;Image&gt; snapshotImage;
-    if (snapshot)
-        snapshotImage = snapshot-&gt;createImage();
-    m_pluginElement-&gt;updateSnapshot(snapshotImage.get());
-
</del><span class="cx"> #if PLATFORM(MAC)
</span><del>-    unsigned maximumSnapshotRetries = frame() ? frame()-&gt;settings()-&gt;maximumPlugInSnapshotAttempts() : 0;
-    if (snapshotImage &amp;&amp; isAlmostSolidColor(static_cast&lt;BitmapImage*&gt;(snapshotImage.get())) &amp;&amp; m_countSnapshotRetries &lt; maximumSnapshotRetries) {
-        ++m_countSnapshotRetries;
-        m_pluginSnapshotTimer.restart();
-        return;
</del><ins>+        unsigned maximumSnapshotRetries = frame() ? frame()-&gt;settings()-&gt;maximumPlugInSnapshotAttempts() : 0;
+        if (snapshotImage &amp;&amp; isAlmostSolidColor(static_cast&lt;BitmapImage*&gt;(snapshotImage.get())) &amp;&amp; m_countSnapshotRetries &lt; maximumSnapshotRetries) {
+            ++m_countSnapshotRetries;
+            m_pluginSnapshotTimer.restart();
+            return;
+        }
+#endif
</ins><span class="cx">     }
</span><del>-#endif
-
</del><ins>+    // Even if there is no snapshot we still set the state to DisplayingSnapshot
+    // since we just want to display the default empty box.
</ins><span class="cx">     m_pluginElement-&gt;setDisplayState(HTMLPlugInElement::DisplayingSnapshot);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsPluginViewh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/PluginView.h (152579 => 152580)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/PluginView.h        2013-07-11 22:33:11 UTC (rev 152579)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PluginView.h        2013-07-11 23:53:40 UTC (rev 152580)
</span><span class="lines">@@ -154,6 +154,7 @@
</span><span class="cx">     virtual bool shouldAlwaysAutoStart() const OVERRIDE;
</span><span class="cx">     virtual void beginSnapshottingRunningPlugin() OVERRIDE;
</span><span class="cx">     virtual bool shouldAllowNavigationFromDrags() const OVERRIDE;
</span><ins>+    virtual bool shouldNotAddLayer() const OVERRIDE;
</ins><span class="cx"> 
</span><span class="cx">     // WebCore::Widget
</span><span class="cx">     virtual void setFrameRect(const WebCore::IntRect&amp;);
</span></span></pre>
</div>
</div>

</body>
</html>