Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /** | 1 /** |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2000 Stefan Schimanski (1Stein@gmx.de) | 4 * (C) 2000 Stefan Schimanski (1Stein@gmx.de) |
| 5 * Copyright (C) 2004, 2005, 2006 Apple Computer, Inc. | 5 * Copyright (C) 2004, 2005, 2006 Apple Computer, Inc. |
| 6 * | 6 * |
| 7 * This library is free software; you can redistribute it and/or | 7 * This library is free software; you can redistribute it and/or |
| 8 * modify it under the terms of the GNU Library General Public | 8 * modify it under the terms of the GNU Library General Public |
| 9 * License as published by the Free Software Foundation; either | 9 * License as published by the Free Software Foundation; either |
| 10 * version 2 of the License, or (at your option) any later version. | 10 * version 2 of the License, or (at your option) any later version. |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 89 DCHECK(!m_pluginWrapper); // cleared in detachLayoutTree() | 89 DCHECK(!m_pluginWrapper); // cleared in detachLayoutTree() |
| 90 DCHECK(!m_isDelayingLoadEvent); | 90 DCHECK(!m_isDelayingLoadEvent); |
| 91 } | 91 } |
| 92 | 92 |
| 93 DEFINE_TRACE(HTMLPlugInElement) { | 93 DEFINE_TRACE(HTMLPlugInElement) { |
| 94 visitor->trace(m_imageLoader); | 94 visitor->trace(m_imageLoader); |
| 95 visitor->trace(m_persistedPlugin); | 95 visitor->trace(m_persistedPlugin); |
| 96 HTMLFrameOwnerElement::trace(visitor); | 96 HTMLFrameOwnerElement::trace(visitor); |
| 97 } | 97 } |
| 98 | 98 |
| 99 void HTMLPlugInElement::dispatchBlurEvent( | |
| 100 Element* newFocusedElement, | |
| 101 WebFocusType type, | |
| 102 InputDeviceCapabilities* sourceCapabilities) { | |
| 103 if (PluginView* plugin = ownedPlugin()) | |
| 104 plugin->setFocused(false, type); | |
|
dcheng
2017/04/05 07:48:08
One potential subtlety that I'm not sure if we nee
haraken
2017/04/05 11:59:00
Would it be crazy to call Element::dispatchBlurEve
dcheng
2017/04/05 21:14:44
Either way, I think we may need to do a focus chec
joelhockey
2017/04/05 23:59:11
I think this change will fix any potential bugs re
dcheng
2017/04/06 03:01:33
I guess my concern mostly regards the short-circui
joelhockey
2017/04/06 06:11:00
I have updated to call the dom onblur/onfocus firs
| |
| 105 Element::dispatchBlurEvent(newFocusedElement, type, sourceCapabilities); | |
| 106 } | |
| 107 | |
| 108 void HTMLPlugInElement::dispatchFocusEvent( | |
| 109 Element* oldFocusedElement, | |
| 110 WebFocusType type, | |
| 111 InputDeviceCapabilities* sourceCapabilities) { | |
| 112 if (PluginView* plugin = ownedPlugin()) | |
| 113 plugin->setFocused(true, type); | |
| 114 Element::dispatchFocusEvent(oldFocusedElement, type, sourceCapabilities); | |
| 115 } | |
| 116 | |
| 99 // TODO(joelhockey): Move implementation of HTMLFrameOwnerElement | 117 // TODO(joelhockey): Move implementation of HTMLFrameOwnerElement |
| 100 // setWidget/releaseWidget/ownedWidget that relates to plugins to here and | 118 // setWidget/releaseWidget/ownedWidget that relates to plugins to here and |
| 101 // remove inheritance from PluginView to FrameViewBase. | 119 // remove inheritance from PluginView to FrameViewBase. |
| 102 void HTMLPlugInElement::setPlugin(PluginView* pluginView) { | 120 void HTMLPlugInElement::setPlugin(PluginView* pluginView) { |
| 103 setWidget(pluginView); | 121 setWidget(pluginView); |
| 104 } | 122 } |
| 105 | 123 |
| 106 PluginView* HTMLPlugInElement::releasePlugin() { | 124 PluginView* HTMLPlugInElement::releasePlugin() { |
| 107 FrameViewBase* plugin = releaseWidget(); | 125 FrameViewBase* plugin = releaseWidget(); |
| 108 return plugin && plugin->isPluginView() ? toPluginView(plugin) : nullptr; | 126 return plugin && plugin->isPluginView() ? toPluginView(plugin) : nullptr; |
| (...skipping 549 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 658 | 676 |
| 659 void HTMLPlugInElement::lazyReattachIfNeeded() { | 677 void HTMLPlugInElement::lazyReattachIfNeeded() { |
| 660 if (!useFallbackContent() && needsPluginUpdate() && layoutObject() && | 678 if (!useFallbackContent() && needsPluginUpdate() && layoutObject() && |
| 661 !isImageType()) { | 679 !isImageType()) { |
| 662 lazyReattachIfAttached(); | 680 lazyReattachIfAttached(); |
| 663 setPersistedPlugin(nullptr); | 681 setPersistedPlugin(nullptr); |
| 664 } | 682 } |
| 665 } | 683 } |
| 666 | 684 |
| 667 } // namespace blink | 685 } // namespace blink |
| OLD | NEW |