Title: [197065] releases/WebKitGTK/webkit-2.12/Source/WebCore
Revision
197065
Author
carlo...@webkit.org
Date
2016-02-25 00:37:49 -0800 (Thu, 25 Feb 2016)

Log Message

Merge r196813 - Blocked plug-in placeholder is sometimes not shown.
https://bugs.webkit.org/show_bug.cgi?id=154434
<rdar://problem/22584973>

Reviewed by Brent Fulgham.

m_isUnavailablePluginIndicatorHidden was set to false incorrectly as initial value.
It prevented RenderEmbeddedObject from issuing repaint when the plugin indicator
was set to visible (m_isUnavailablePluginIndicatorHidden <- false) the first time.
(The reason why the indicator showed up most of the time was because some renderer
triggered repaint on the view.)

Unable to test.

* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::setUnavailablePluginIndicatorIsHidden):
(WebCore::RenderEmbeddedObject::RenderEmbeddedObject): Deleted.
(WebCore::RenderEmbeddedObject::setUnavailablePluginIndicatorIsPressed): Deleted.
* rendering/RenderEmbeddedObject.h:
(WebCore::RenderEmbeddedObject::showsUnavailablePluginIndicator):

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/ChangeLog (197064 => 197065)


--- releases/WebKitGTK/webkit-2.12/Source/WebCore/ChangeLog	2016-02-25 07:45:13 UTC (rev 197064)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/ChangeLog	2016-02-25 08:37:49 UTC (rev 197065)
@@ -1,3 +1,26 @@
+2016-02-19  Zalan Bujtas  <za...@apple.com>
+
+        Blocked plug-in placeholder is sometimes not shown.
+        https://bugs.webkit.org/show_bug.cgi?id=154434
+        <rdar://problem/22584973>
+
+        Reviewed by Brent Fulgham.
+
+        m_isUnavailablePluginIndicatorHidden was set to false incorrectly as initial value.
+        It prevented RenderEmbeddedObject from issuing repaint when the plugin indicator
+        was set to visible (m_isUnavailablePluginIndicatorHidden <- false) the first time.
+        (The reason why the indicator showed up most of the time was because some renderer
+        triggered repaint on the view.)
+
+        Unable to test.
+
+        * rendering/RenderEmbeddedObject.cpp:
+        (WebCore::RenderEmbeddedObject::setUnavailablePluginIndicatorIsHidden):
+        (WebCore::RenderEmbeddedObject::RenderEmbeddedObject): Deleted.
+        (WebCore::RenderEmbeddedObject::setUnavailablePluginIndicatorIsPressed): Deleted.
+        * rendering/RenderEmbeddedObject.h:
+        (WebCore::RenderEmbeddedObject::showsUnavailablePluginIndicator):
+
 2016-02-19  Philippe Normand  <pnorm...@igalia.com>
 
         [GStreamer] clean-up various leaks

Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/RenderEmbeddedObject.cpp (197064 => 197065)


--- releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/RenderEmbeddedObject.cpp	2016-02-25 07:45:13 UTC (rev 197064)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/RenderEmbeddedObject.cpp	2016-02-25 08:37:49 UTC (rev 197065)
@@ -99,7 +99,6 @@
 RenderEmbeddedObject::RenderEmbeddedObject(HTMLFrameOwnerElement& element, Ref<RenderStyle>&& style)
     : RenderWidget(element, WTFMove(style))
     , m_isPluginUnavailable(false)
-    , m_isUnavailablePluginIndicatorHidden(false)
     , m_unavailablePluginIndicatorIsPressed(false)
     , m_mouseDownWasInUnavailablePluginIndicator(false)
 {
@@ -192,7 +191,6 @@
 {
     if (m_unavailablePluginIndicatorIsPressed == pressed)
         return;
-
     m_unavailablePluginIndicatorIsPressed = pressed;
     repaint();
 }
@@ -342,10 +340,10 @@
 
 void RenderEmbeddedObject::setUnavailablePluginIndicatorIsHidden(bool hidden)
 {
-    if (m_isUnavailablePluginIndicatorHidden == hidden)
+    auto newState = hidden ? UnavailablePluginIndicatorState::Hidden : UnavailablePluginIndicatorState::Visible;
+    if (m_isUnavailablePluginIndicatorState == newState)
         return;
-
-    m_isUnavailablePluginIndicatorHidden = hidden;
+    m_isUnavailablePluginIndicatorState = newState;
     repaint();
 }
 

Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/RenderEmbeddedObject.h (197064 => 197065)


--- releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/RenderEmbeddedObject.h	2016-02-25 07:45:13 UTC (rev 197064)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/RenderEmbeddedObject.h	2016-02-25 08:37:49 UTC (rev 197065)
@@ -50,7 +50,7 @@
     WEBCORE_EXPORT void setPluginUnavailabilityReasonWithDescription(PluginUnavailabilityReason, const String& description);
 
     bool isPluginUnavailable() const { return m_isPluginUnavailable; }
-    bool showsUnavailablePluginIndicator() const { return isPluginUnavailable() && !m_isUnavailablePluginIndicatorHidden; }
+    bool showsUnavailablePluginIndicator() const { return isPluginUnavailable() && m_isUnavailablePluginIndicatorState == UnavailablePluginIndicatorState::Visible; }
 
     WEBCORE_EXPORT void setUnavailablePluginIndicatorIsHidden(bool);
 
@@ -93,7 +93,8 @@
     virtual bool canHaveWidget() const { return true; }
 
     bool m_isPluginUnavailable;
-    bool m_isUnavailablePluginIndicatorHidden;
+    enum class UnavailablePluginIndicatorState { Uninitialized, Hidden, Visible };
+    UnavailablePluginIndicatorState m_isUnavailablePluginIndicatorState { UnavailablePluginIndicatorState::Uninitialized };
     PluginUnavailabilityReason m_pluginUnavailabilityReason;
     String m_unavailablePluginReplacementText;
     bool m_unavailablePluginIndicatorIsPressed;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to