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 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 71 , m_usePlaceholderContent(false) | 71 , m_usePlaceholderContent(false) |
| 72 { | 72 { |
| 73 setHasCustomStyleCallbacks(); | 73 setHasCustomStyleCallbacks(); |
| 74 } | 74 } |
| 75 | 75 |
| 76 HTMLPlugInElement::~HTMLPlugInElement() | 76 HTMLPlugInElement::~HTMLPlugInElement() |
| 77 { | 77 { |
| 78 ASSERT(!m_pluginWrapper); // cleared in detach() | 78 ASSERT(!m_pluginWrapper); // cleared in detach() |
| 79 ASSERT(!m_isDelayingLoadEvent); | 79 ASSERT(!m_isDelayingLoadEvent); |
| 80 | 80 |
| 81 #if ENABLE(OILPAN) | |
| 82 if (m_persistedPluginWidget) | |
| 83 HTMLFrameOwnerElement::disposeWidget(m_persistedPluginWidget.get()); | |
|
haraken
2014/09/29 14:16:36
Can't we call HTMLFrameOwnerElement::disposeWidget
sof
2014/10/07 13:27:32
That the plugin element isn't in the tree to start
| |
| 84 #endif | |
| 85 | |
| 81 if (m_NPObject) { | 86 if (m_NPObject) { |
| 82 _NPN_ReleaseObject(m_NPObject); | 87 _NPN_ReleaseObject(m_NPObject); |
| 83 m_NPObject = 0; | 88 m_NPObject = 0; |
| 84 } | 89 } |
| 85 } | 90 } |
| 86 | 91 |
| 87 void HTMLPlugInElement::trace(Visitor* visitor) | 92 void HTMLPlugInElement::trace(Visitor* visitor) |
| 88 { | 93 { |
| 89 visitor->trace(m_imageLoader); | 94 visitor->trace(m_imageLoader); |
| 95 visitor->trace(m_persistedPluginWidget); | |
| 90 HTMLFrameOwnerElement::trace(visitor); | 96 HTMLFrameOwnerElement::trace(visitor); |
| 91 } | 97 } |
| 92 | 98 |
| 99 #if ENABLE(OILPAN) | |
| 100 void HTMLPlugInElement::disconnectContentFrame() | |
| 101 { | |
| 102 if (m_persistedPluginWidget) | |
| 103 HTMLFrameOwnerElement::disposeWidget(m_persistedPluginWidget.get()); | |
| 104 HTMLFrameOwnerElement::disconnectContentFrame(); | |
| 105 } | |
| 106 #endif | |
| 107 | |
| 93 bool HTMLPlugInElement::canProcessDrag() const | 108 bool HTMLPlugInElement::canProcessDrag() const |
| 94 { | 109 { |
| 95 return pluginWidget() && pluginWidget()->isPluginView() && toPluginView(plug inWidget())->canProcessDrag(); | 110 return pluginWidget() && pluginWidget()->isPluginView() && toPluginView(plug inWidget())->canProcessDrag(); |
| 96 } | 111 } |
| 97 | 112 |
| 98 bool HTMLPlugInElement::willRespondToMouseClickEvents() | 113 bool HTMLPlugInElement::willRespondToMouseClickEvents() |
| 99 { | 114 { |
| 100 if (isDisabledFormControl()) | 115 if (isDisabledFormControl()) |
| 101 return false; | 116 return false; |
| 102 RenderObject* r = renderer(); | 117 RenderObject* r = renderer(); |
| (...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 336 // FIXME: Mouse down and scroll events are passed down to plug-in via custom | 351 // FIXME: Mouse down and scroll events are passed down to plug-in via custom |
| 337 // code in EventHandler; these code paths should be united. | 352 // code in EventHandler; these code paths should be united. |
| 338 | 353 |
| 339 RenderObject* r = renderer(); | 354 RenderObject* r = renderer(); |
| 340 if (!r || !r->isWidget()) | 355 if (!r || !r->isWidget()) |
| 341 return; | 356 return; |
| 342 if (r->isEmbeddedObject()) { | 357 if (r->isEmbeddedObject()) { |
| 343 if (toRenderEmbeddedObject(r)->showsUnavailablePluginIndicator()) | 358 if (toRenderEmbeddedObject(r)->showsUnavailablePluginIndicator()) |
| 344 return; | 359 return; |
| 345 } | 360 } |
| 346 RefPtr<Widget> widget = toRenderWidget(r)->widget(); | 361 RefPtrWillBeRawPtr<Widget> widget = toRenderWidget(r)->widget(); |
| 347 if (!widget) | 362 if (!widget) |
| 348 return; | 363 return; |
| 349 widget->handleEvent(event); | 364 widget->handleEvent(event); |
| 350 if (event->defaultHandled()) | 365 if (event->defaultHandled()) |
| 351 return; | 366 return; |
| 352 HTMLFrameOwnerElement::defaultEventHandler(event); | 367 HTMLFrameOwnerElement::defaultEventHandler(event); |
| 353 } | 368 } |
| 354 | 369 |
| 355 RenderWidget* HTMLPlugInElement::renderWidgetForJSBindings() const | 370 RenderWidget* HTMLPlugInElement::renderWidgetForJSBindings() const |
| 356 { | 371 { |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 476 | 491 |
| 477 RenderEmbeddedObject* renderer = renderEmbeddedObject(); | 492 RenderEmbeddedObject* renderer = renderEmbeddedObject(); |
| 478 // FIXME: This code should not depend on renderer! | 493 // FIXME: This code should not depend on renderer! |
| 479 if ((!renderer && requireRenderer) || useFallback) | 494 if ((!renderer && requireRenderer) || useFallback) |
| 480 return false; | 495 return false; |
| 481 | 496 |
| 482 WTF_LOG(Plugins, "%p Plug-in URL: %s", this, m_url.utf8().data()); | 497 WTF_LOG(Plugins, "%p Plug-in URL: %s", this, m_url.utf8().data()); |
| 483 WTF_LOG(Plugins, " Loaded URL: %s", url.string().utf8().data()); | 498 WTF_LOG(Plugins, " Loaded URL: %s", url.string().utf8().data()); |
| 484 m_loadedUrl = url; | 499 m_loadedUrl = url; |
| 485 | 500 |
| 486 RefPtr<Widget> widget = m_persistedPluginWidget; | 501 RefPtrWillBeRawPtr<Widget> widget = m_persistedPluginWidget; |
| 487 if (!widget) { | 502 if (!widget) { |
| 488 bool loadManually = document().isPluginDocument() && !document().contain sPlugins(); | 503 bool loadManually = document().isPluginDocument() && !document().contain sPlugins(); |
| 489 FrameLoaderClient::DetachedPluginPolicy policy = requireRenderer ? Frame LoaderClient::FailOnDetachedPlugin : FrameLoaderClient::AllowDetachedPlugin; | 504 FrameLoaderClient::DetachedPluginPolicy policy = requireRenderer ? Frame LoaderClient::FailOnDetachedPlugin : FrameLoaderClient::AllowDetachedPlugin; |
| 490 widget = frame->loader().client()->createPlugin(this, url, paramNames, p aramValues, mimeType, loadManually, policy); | 505 widget = frame->loader().client()->createPlugin(this, url, paramNames, p aramValues, mimeType, loadManually, policy); |
| 491 } | 506 } |
| 492 | 507 |
| 493 if (!widget) { | 508 if (!widget) { |
| 494 if (renderer && !renderer->showsUnavailablePluginIndicator()) | 509 if (renderer && !renderer->showsUnavailablePluginIndicator()) |
| 495 renderer->setPluginUnavailabilityReason(RenderEmbeddedObject::Plugin Missing); | 510 renderer->setPluginUnavailabilityReason(RenderEmbeddedObject::Plugin Missing); |
| 496 return false; | 511 return false; |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 592 | 607 |
| 593 void HTMLPlugInElement::setUsePlaceholderContent(bool use) | 608 void HTMLPlugInElement::setUsePlaceholderContent(bool use) |
| 594 { | 609 { |
| 595 if (use != m_usePlaceholderContent) { | 610 if (use != m_usePlaceholderContent) { |
| 596 m_usePlaceholderContent = use; | 611 m_usePlaceholderContent = use; |
| 597 lazyReattachIfAttached(); | 612 lazyReattachIfAttached(); |
| 598 } | 613 } |
| 599 } | 614 } |
| 600 | 615 |
| 601 } | 616 } |
| OLD | NEW |