Title: [196813] trunk/Source/WebCore
- Revision
- 196813
- Author
- [email protected]
- Date
- 2016-02-19 03:48:20 -0800 (Fri, 19 Feb 2016)
Log Message
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: trunk/Source/WebCore/ChangeLog (196812 => 196813)
--- trunk/Source/WebCore/ChangeLog 2016-02-19 11:30:18 UTC (rev 196812)
+++ trunk/Source/WebCore/ChangeLog 2016-02-19 11:48:20 UTC (rev 196813)
@@ -1,3 +1,26 @@
+2016-02-19 Zalan Bujtas <[email protected]>
+
+ 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 Csaba Osztrogonác <[email protected]>
Fix pessimizing-move warnings
Modified: trunk/Source/WebCore/rendering/RenderEmbeddedObject.cpp (196812 => 196813)
--- trunk/Source/WebCore/rendering/RenderEmbeddedObject.cpp 2016-02-19 11:30:18 UTC (rev 196812)
+++ trunk/Source/WebCore/rendering/RenderEmbeddedObject.cpp 2016-02-19 11:48:20 UTC (rev 196813)
@@ -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: trunk/Source/WebCore/rendering/RenderEmbeddedObject.h (196812 => 196813)
--- trunk/Source/WebCore/rendering/RenderEmbeddedObject.h 2016-02-19 11:30:18 UTC (rev 196812)
+++ trunk/Source/WebCore/rendering/RenderEmbeddedObject.h 2016-02-19 11:48:20 UTC (rev 196813)
@@ -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
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes