Chromium Code Reviews| Index: Source/web/PopupMenuImpl.cpp |
| diff --git a/Source/web/PopupMenuImpl.cpp b/Source/web/PopupMenuImpl.cpp |
| index 621fa5861f7ba0bfafd4e98ebfe7de003ec4a800..d76f4bdffb0eb4e6006bb0d81909535220590c02 100644 |
| --- a/Source/web/PopupMenuImpl.cpp |
| +++ b/Source/web/PopupMenuImpl.cpp |
| @@ -27,17 +27,21 @@ |
| namespace blink { |
| -class PopupMenuCSSFontSelector : public CSSFontSelector { |
| +class PopupMenuCSSFontSelector : public CSSFontSelector, public CSSFontSelectorClient { |
|
tkent
2015/05/29 05:41:03
public CSSFontSelectorClient -> private CSSFontSel
|
| public: |
| static PassRefPtrWillBeRawPtr<PopupMenuCSSFontSelector> create(Document* document, CSSFontSelector* ownerFontSelector) |
| { |
| return adoptRefWillBeNoop(new PopupMenuCSSFontSelector(document, ownerFontSelector)); |
| } |
| + ~PopupMenuCSSFontSelector(); |
| + |
| // We don't override willUseFontData() for now because the old PopupListBox |
| // only worked with fonts loaded when opening the popup. |
| virtual PassRefPtr<FontData> getFontData(const FontDescription&, const AtomicString&) override; |
| + virtual void fontsNeedUpdate(CSSFontSelector*) override; |
| + |
| DECLARE_VIRTUAL_TRACE(); |
| private: |
| @@ -45,19 +49,30 @@ private: |
| : CSSFontSelector(document) |
| , m_ownerFontSelector(ownerFontSelector) |
| { |
| + m_ownerFontSelector->registerForInvalidationCallbacks(this); |
| } |
| RefPtrWillBeMember<CSSFontSelector> m_ownerFontSelector; |
| }; |
| +PopupMenuCSSFontSelector::~PopupMenuCSSFontSelector() |
| +{ |
|
Kunihiko Sakamoto
2015/05/29 05:57:35
Don't we need to unregister from m_ownerFontSelect
keishi
2015/05/29 07:30:51
Done.
|
| +} |
| + |
| PassRefPtr<FontData> PopupMenuCSSFontSelector::getFontData(const FontDescription& description, const AtomicString& name) |
| { |
| return m_ownerFontSelector->getFontData(description, name); |
| } |
| +void PopupMenuCSSFontSelector::fontsNeedUpdate(CSSFontSelector* fontSelector) |
| +{ |
| + dispatchInvalidationCallbacks(); |
| +} |
| + |
| DEFINE_TRACE(PopupMenuCSSFontSelector) |
| { |
| visitor->trace(m_ownerFontSelector); |
| CSSFontSelector::trace(visitor); |
| + CSSFontSelectorClient::trace(visitor); |
| } |
| PassRefPtrWillBeRawPtr<PopupMenuImpl> PopupMenuImpl::create(ChromeClientImpl* chromeClient, PopupMenuClient* client) |