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