Title: [147977] trunk/Source/WebCore
Revision
147977
Author
[email protected]
Date
2013-04-08 19:43:24 -0700 (Mon, 08 Apr 2013)

Log Message

Don't try to remove a non-existent snapshot
https://bugs.webkit.org/show_bug.cgi?id=114226
<rdar://problem/13604480>

Reviewed by Darin Adler.

We don't need to trigger the timer to remove a snapshot
if there was never a snapshot displayed.

* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::setDisplayState): Detect if we're moving from the DisplayingSnapshot state.
(WebCore::HTMLPlugInImageElement::removeSnapshotTimerFired): Guard against a missing renderer.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (147976 => 147977)


--- trunk/Source/WebCore/ChangeLog	2013-04-09 02:26:38 UTC (rev 147976)
+++ trunk/Source/WebCore/ChangeLog	2013-04-09 02:43:24 UTC (rev 147977)
@@ -1,3 +1,18 @@
+2013-04-08  Dean Jackson  <[email protected]>
+
+        Don't try to remove a non-existent snapshot
+        https://bugs.webkit.org/show_bug.cgi?id=114226
+        <rdar://problem/13604480>
+
+        Reviewed by Darin Adler.
+
+        We don't need to trigger the timer to remove a snapshot
+        if there was never a snapshot displayed.
+
+        * html/HTMLPlugInImageElement.cpp:
+        (WebCore::HTMLPlugInImageElement::setDisplayState): Detect if we're moving from the DisplayingSnapshot state.
+        (WebCore::HTMLPlugInImageElement::removeSnapshotTimerFired): Guard against a missing renderer.
+
 2013-04-08  Patrick Gansterer  <[email protected]>
 
         Do not define CAN_THEME_URL_ICON for PLATFORM(WIN_CAIRO)

Modified: trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp (147976 => 147977)


--- trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp	2013-04-09 02:26:38 UTC (rev 147976)
+++ trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp	2013-04-09 02:43:24 UTC (rev 147977)
@@ -93,16 +93,18 @@
 
 void HTMLPlugInImageElement::setDisplayState(DisplayState state)
 {
-    HTMLPlugInElement::setDisplayState(state);
-    if (displayState() == DisplayingSnapshot)
-        m_swapRendererTimer.startOneShot(0);
-
 #if PLATFORM(MAC)
-    if (displayState() == RestartingWithPendingMouseClick || displayState() == Restarting) {
+    if (state == RestartingWithPendingMouseClick || state == Restarting) {
         m_restartedPlugin = true;
-        m_removeSnapshotTimer.startOneShot(removeSnapshotTimerDelay);
+        if (displayState() == DisplayingSnapshot)
+            m_removeSnapshotTimer.startOneShot(removeSnapshotTimerDelay);
     }
 #endif
+
+    HTMLPlugInElement::setDisplayState(state);
+
+    if (state == DisplayingSnapshot)
+        m_swapRendererTimer.startOneShot(0);
 }
 
 RenderEmbeddedObject* HTMLPlugInImageElement::renderEmbeddedObject() const
@@ -415,7 +417,8 @@
 {
     m_snapshotImage = nullptr;
     m_restartedPlugin = false;
-    renderer()->repaint();
+    if (renderer())
+        renderer()->repaint();
 }
 
 static void addPlugInsFromNodeListMatchingPlugInOrigin(HTMLPlugInImageElementList& plugInList, PassRefPtr<NodeList> collection, const String& plugInOrigin, const String& mimeType)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to