OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2008, 2011, 2012 Apple Inc. All rights reserved. | 2 * Copyright (C) 2008, 2011, 2012 Apple Inc. All rights reserved. |
3 * | 3 * |
4 * This library is free software; you can redistribute it and/or | 4 * This library is free software; you can redistribute it and/or |
5 * modify it under the terms of the GNU Library General Public | 5 * modify it under the terms of the GNU Library General Public |
6 * License as published by the Free Software Foundation; either | 6 * License as published by the Free Software Foundation; either |
7 * version 2 of the License, or (at your option) any later version. | 7 * version 2 of the License, or (at your option) any later version. |
8 * | 8 * |
9 * This library is distributed in the hope that it will be useful, | 9 * This library is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
252 | 252 |
253 // FIXME: This code should not depend on renderer! | 253 // FIXME: This code should not depend on renderer! |
254 if (!renderer || useFallback) | 254 if (!renderer || useFallback) |
255 return false; | 255 return false; |
256 | 256 |
257 LOG(Plugins, "%p Plug-in URL: %s", this, m_url.utf8().data()); | 257 LOG(Plugins, "%p Plug-in URL: %s", this, m_url.utf8().data()); |
258 LOG(Plugins, " Loaded URL: %s", url.string().utf8().data()); | 258 LOG(Plugins, " Loaded URL: %s", url.string().utf8().data()); |
259 m_loadedUrl = url; | 259 m_loadedUrl = url; |
260 | 260 |
261 IntSize contentSize = roundedIntSize(LayoutSize(renderer->contentWidth(), re
nderer->contentHeight())); | 261 IntSize contentSize = roundedIntSize(LayoutSize(renderer->contentWidth(), re
nderer->contentHeight())); |
262 bool loadManually = document().isPluginDocument() && !frame->loader()->conta
insPlugins() && toPluginDocument(document()).shouldLoadPluginManually(); | 262 RefPtr<Widget> widget = plugin(); |
263 RefPtr<Widget> widget = frame->loader()->client()->createPlugin(contentSize,
this, url, paramNames, paramValues, mimeType, loadManually); | 263 |
| 264 if (!widget) { |
| 265 bool loadManually = document().isPluginDocument() && !frame->loader()->c
ontainsPlugins() && toPluginDocument(document()).shouldLoadPluginManually(); |
| 266 widget = frame->loader()->client()->createPlugin(contentSize, this, url,
paramNames, paramValues, mimeType, loadManually); |
| 267 } |
264 | 268 |
265 if (!widget) { | 269 if (!widget) { |
266 if (!renderer->showsUnavailablePluginIndicator()) | 270 if (!renderer->showsUnavailablePluginIndicator()) |
267 renderer->setPluginUnavailabilityReason(RenderEmbeddedObject::Plugin
Missing); | 271 renderer->setPluginUnavailabilityReason(RenderEmbeddedObject::Plugin
Missing); |
268 return false; | 272 return false; |
269 } | 273 } |
270 | 274 |
271 renderer->setWidget(widget); | 275 renderer->setWidget(widget); |
| 276 if (widget->isPluginContainer() && widget->pluginShouldPersist()) |
| 277 setPlugin(widget); |
272 frame->loader()->setContainsPlugins(); | 278 frame->loader()->setContainsPlugins(); |
273 setNeedsStyleRecalc(LocalStyleChange, StyleChangeFromRenderer); | 279 setNeedsStyleRecalc(LocalStyleChange, StyleChangeFromRenderer); |
274 return true; | 280 return true; |
275 } | 281 } |
276 | 282 |
277 bool HTMLPlugInImageElement::shouldUsePlugin(const KURL& url, const String& mime
Type, bool hasFallback, bool& useFallback) | 283 bool HTMLPlugInImageElement::shouldUsePlugin(const KURL& url, const String& mime
Type, bool hasFallback, bool& useFallback) |
278 { | 284 { |
279 // Allow other plug-ins to win over QuickTime because if the user has instal
led a plug-in that | 285 // Allow other plug-ins to win over QuickTime because if the user has instal
led a plug-in that |
280 // can handle TIFF (which QuickTime can also handle) they probably intended
to override QT. | 286 // can handle TIFF (which QuickTime can also handle) they probably intended
to override QT. |
281 if (document().frame()->page() && (mimeType == "image/tiff" || mimeType == "
image/tif" || mimeType == "image/x-tiff")) { | 287 if (document().frame()->page() && (mimeType == "image/tiff" || mimeType == "
image/tif" || mimeType == "image/x-tiff")) { |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
321 renderEmbeddedObject()->setPluginUnavailabilityReason(RenderEmbeddedObje
ct::PluginBlockedByContentSecurityPolicy); | 327 renderEmbeddedObject()->setPluginUnavailabilityReason(RenderEmbeddedObje
ct::PluginBlockedByContentSecurityPolicy); |
322 return false; | 328 return false; |
323 } | 329 } |
324 | 330 |
325 if (frame->loader() && !frame->loader()->mixedContentChecker()->canRunInsecu
reContent(document().securityOrigin(), url)) | 331 if (frame->loader() && !frame->loader()->mixedContentChecker()->canRunInsecu
reContent(document().securityOrigin(), url)) |
326 return false; | 332 return false; |
327 return true; | 333 return true; |
328 } | 334 } |
329 | 335 |
330 } // namespace WebCore | 336 } // namespace WebCore |
OLD | NEW |