| 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 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 86 if (Widget* widget = renderer->widget()) | 86 if (Widget* widget = renderer->widget()) |
| 87 widget->eventListenersRemoved(); | 87 widget->eventListenersRemoved(); |
| 88 } | 88 } |
| 89 } | 89 } |
| 90 | 90 |
| 91 void HTMLPlugInElement::detach(const AttachContext& context) | 91 void HTMLPlugInElement::detach(const AttachContext& context) |
| 92 { | 92 { |
| 93 m_instance.clear(); | 93 m_instance.clear(); |
| 94 | 94 |
| 95 if (m_isCapturingMouseEvents) { | 95 if (m_isCapturingMouseEvents) { |
| 96 if (Frame* frame = document()->frame()) | 96 if (Frame* frame = document().frame()) |
| 97 frame->eventHandler()->setCapturingMouseEventsNode(0); | 97 frame->eventHandler()->setCapturingMouseEventsNode(0); |
| 98 m_isCapturingMouseEvents = false; | 98 m_isCapturingMouseEvents = false; |
| 99 } | 99 } |
| 100 | 100 |
| 101 if (m_NPObject) { | 101 if (m_NPObject) { |
| 102 _NPN_ReleaseObject(m_NPObject); | 102 _NPN_ReleaseObject(m_NPObject); |
| 103 m_NPObject = 0; | 103 m_NPObject = 0; |
| 104 } | 104 } |
| 105 | 105 |
| 106 HTMLFrameOwnerElement::detach(context); | 106 HTMLFrameOwnerElement::detach(context); |
| 107 } | 107 } |
| 108 | 108 |
| 109 void HTMLPlugInElement::resetInstance() | 109 void HTMLPlugInElement::resetInstance() |
| 110 { | 110 { |
| 111 m_instance.clear(); | 111 m_instance.clear(); |
| 112 } | 112 } |
| 113 | 113 |
| 114 PassScriptInstance HTMLPlugInElement::getInstance() | 114 PassScriptInstance HTMLPlugInElement::getInstance() |
| 115 { | 115 { |
| 116 Frame* frame = document()->frame(); | 116 Frame* frame = document().frame(); |
| 117 if (!frame) | 117 if (!frame) |
| 118 return 0; | 118 return 0; |
| 119 | 119 |
| 120 // If the host dynamically turns off JavaScript (or Java) we will still retu
rn | 120 // If the host dynamically turns off JavaScript (or Java) we will still retu
rn |
| 121 // the cached allocated Bindings::Instance. Not supporting this edge-case i
s OK. | 121 // the cached allocated Bindings::Instance. Not supporting this edge-case i
s OK. |
| 122 if (m_instance) | 122 if (m_instance) |
| 123 return m_instance; | 123 return m_instance; |
| 124 | 124 |
| 125 if (Widget* widget = pluginWidget()) | 125 if (Widget* widget = pluginWidget()) |
| 126 m_instance = frame->script()->createScriptInstanceForWidget(widget); | 126 m_instance = frame->script()->createScriptInstanceForWidget(widget); |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 204 if (!widget) | 204 if (!widget) |
| 205 return; | 205 return; |
| 206 widget->handleEvent(event); | 206 widget->handleEvent(event); |
| 207 if (event->defaultHandled()) | 207 if (event->defaultHandled()) |
| 208 return; | 208 return; |
| 209 HTMLFrameOwnerElement::defaultEventHandler(event); | 209 HTMLFrameOwnerElement::defaultEventHandler(event); |
| 210 } | 210 } |
| 211 | 211 |
| 212 RenderWidget* HTMLPlugInElement::renderWidgetForJSBindings() const | 212 RenderWidget* HTMLPlugInElement::renderWidgetForJSBindings() const |
| 213 { | 213 { |
| 214 document()->updateLayoutIgnorePendingStylesheets(); | 214 document().updateLayoutIgnorePendingStylesheets(); |
| 215 return existingRenderWidget(); | 215 return existingRenderWidget(); |
| 216 } | 216 } |
| 217 | 217 |
| 218 bool HTMLPlugInElement::isKeyboardFocusable() const | 218 bool HTMLPlugInElement::isKeyboardFocusable() const |
| 219 { | 219 { |
| 220 if (!document()->page()) | 220 if (!document().page()) |
| 221 return false; | 221 return false; |
| 222 | 222 |
| 223 const PluginView* plugin = pluginWidget() && pluginWidget()->isPluginView()
? static_cast<const PluginView*>(pluginWidget()) : 0; | 223 const PluginView* plugin = pluginWidget() && pluginWidget()->isPluginView()
? static_cast<const PluginView*>(pluginWidget()) : 0; |
| 224 if (plugin) | 224 if (plugin) |
| 225 return plugin->supportsKeyboardFocus(); | 225 return plugin->supportsKeyboardFocus(); |
| 226 | 226 |
| 227 return false; | 227 return false; |
| 228 } | 228 } |
| 229 | 229 |
| 230 bool HTMLPlugInElement::isPluginElement() const | 230 bool HTMLPlugInElement::isPluginElement() const |
| 231 { | 231 { |
| 232 return true; | 232 return true; |
| 233 } | 233 } |
| 234 | 234 |
| 235 bool HTMLPlugInElement::rendererIsFocusable() const | 235 bool HTMLPlugInElement::rendererIsFocusable() const |
| 236 { | 236 { |
| 237 if (HTMLFrameOwnerElement::supportsFocus() && HTMLFrameOwnerElement::rendere
rIsFocusable()) | 237 if (HTMLFrameOwnerElement::supportsFocus() && HTMLFrameOwnerElement::rendere
rIsFocusable()) |
| 238 return true; | 238 return true; |
| 239 | 239 |
| 240 if (useFallbackContent() || !renderer() || !renderer()->isEmbeddedObject()) | 240 if (useFallbackContent() || !renderer() || !renderer()->isEmbeddedObject()) |
| 241 return false; | 241 return false; |
| 242 return !toRenderEmbeddedObject(renderer())->showsUnavailablePluginIndicator(
); | 242 return !toRenderEmbeddedObject(renderer())->showsUnavailablePluginIndicator(
); |
| 243 } | 243 } |
| 244 | 244 |
| 245 NPObject* HTMLPlugInElement::getNPObject() | 245 NPObject* HTMLPlugInElement::getNPObject() |
| 246 { | 246 { |
| 247 ASSERT(document()->frame()); | 247 ASSERT(document().frame()); |
| 248 if (!m_NPObject) | 248 if (!m_NPObject) |
| 249 m_NPObject = document()->frame()->script()->createScriptObjectForPluginE
lement(this); | 249 m_NPObject = document().frame()->script()->createScriptObjectForPluginEl
ement(this); |
| 250 return m_NPObject; | 250 return m_NPObject; |
| 251 } | 251 } |
| 252 | 252 |
| 253 } | 253 } |
| OLD | NEW |