⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 196813 in webkit


Ignore:
Timestamp:
Feb 19, 2016, 3:48:20 AM (11 years ago)
Author:
Alan Bujtas
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):

Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r196811 r196813  
     12016-02-19  Zalan Bujtas  <zalan@apple.com>
     2
     3        Blocked plug-in placeholder is sometimes not shown.
     4        https://bugs.webkit.org/show_bug.cgi?id=154434
     5        <rdar://problem/22584973>
     6
     7        Reviewed by Brent Fulgham.
     8
     9        m_isUnavailablePluginIndicatorHidden was set to false incorrectly as initial value.
     10        It prevented RenderEmbeddedObject from issuing repaint when the plugin indicator
     11        was set to visible (m_isUnavailablePluginIndicatorHidden <- false) the first time.
     12        (The reason why the indicator showed up most of the time was because some renderer
     13        triggered repaint on the view.)
     14
     15        Unable to test.
     16
     17        * rendering/RenderEmbeddedObject.cpp:
     18        (WebCore::RenderEmbeddedObject::setUnavailablePluginIndicatorIsHidden):
     19        (WebCore::RenderEmbeddedObject::RenderEmbeddedObject): Deleted.
     20        (WebCore::RenderEmbeddedObject::setUnavailablePluginIndicatorIsPressed): Deleted.
     21        * rendering/RenderEmbeddedObject.h:
     22        (WebCore::RenderEmbeddedObject::showsUnavailablePluginIndicator):
     23
    1242016-02-19  Csaba Osztrogonác  <ossy@webkit.org>
    225
  • trunk/Source/WebCore/rendering/RenderEmbeddedObject.cpp

    r195848 r196813  
    100100    : RenderWidget(element, WTFMove(style))
    101101    , m_isPluginUnavailable(false)
    102     , m_isUnavailablePluginIndicatorHidden(false)
    103102    , m_unavailablePluginIndicatorIsPressed(false)
    104103    , m_mouseDownWasInUnavailablePluginIndicator(false)
    … …  
    193192    if (m_unavailablePluginIndicatorIsPressed == pressed)
    194193        return;
    195 
    196194    m_unavailablePluginIndicatorIsPressed = pressed;
    197195    repaint();
    … …  
    343341void RenderEmbeddedObject::setUnavailablePluginIndicatorIsHidden(bool hidden)
    344342{
    345     if (m_isUnavailablePluginIndicatorHidden == hidden)
    346         return;
    347 
    348     m_isUnavailablePluginIndicatorHidden = hidden;
     343    auto newState = hidden ? UnavailablePluginIndicatorState::Hidden : UnavailablePluginIndicatorState::Visible;
     344    if (m_isUnavailablePluginIndicatorState == newState)
     345        return;
     346    m_isUnavailablePluginIndicatorState = newState;
    349347    repaint();
    350348}
  • trunk/Source/WebCore/rendering/RenderEmbeddedObject.h

    r191049 r196813  
    5151
    5252    bool isPluginUnavailable() const { return m_isPluginUnavailable; }
    53     bool showsUnavailablePluginIndicator() const { return isPluginUnavailable() && !m_isUnavailablePluginIndicatorHidden; }
     53    bool showsUnavailablePluginIndicator() const { return isPluginUnavailable() && m_isUnavailablePluginIndicatorState == UnavailablePluginIndicatorState::Visible; }
    5454
    5555    WEBCORE_EXPORT void setUnavailablePluginIndicatorIsHidden(bool);
    … …  
    9494
    9595    bool m_isPluginUnavailable;
    96     bool m_isUnavailablePluginIndicatorHidden;
     96    enum class UnavailablePluginIndicatorState { Uninitialized, Hidden, Visible };
     97    UnavailablePluginIndicatorState m_isUnavailablePluginIndicatorState { UnavailablePluginIndicatorState::Uninitialized };
    9798    PluginUnavailabilityReason m_pluginUnavailabilityReason;
    9899    String m_unavailablePluginReplacementText;
Note: See TracChangeset for help on using the changeset viewer.