| 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, 2007, 2008, 2009, 2011 Apple Inc. All rights
reserved. | 5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011 Apple Inc. All rights
reserved. |
| 6 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) | 6 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) |
| 7 * | 7 * |
| 8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
| 9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
| 10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
| (...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 263 } | 263 } |
| 264 | 264 |
| 265 // FIXME: This should be unified with HTMLEmbedElement::updateWidget and | 265 // FIXME: This should be unified with HTMLEmbedElement::updateWidget and |
| 266 // moved down into HTMLPluginElement.cpp | 266 // moved down into HTMLPluginElement.cpp |
| 267 void HTMLObjectElement::updateWidgetInternal() | 267 void HTMLObjectElement::updateWidgetInternal() |
| 268 { | 268 { |
| 269 ASSERT(!renderEmbeddedObject()->showsUnavailablePluginIndicator()); | 269 ASSERT(!renderEmbeddedObject()->showsUnavailablePluginIndicator()); |
| 270 ASSERT(needsWidgetUpdate()); | 270 ASSERT(needsWidgetUpdate()); |
| 271 setNeedsWidgetUpdate(false); | 271 setNeedsWidgetUpdate(false); |
| 272 // FIXME: This should ASSERT isFinishedParsingChildren() instead. | 272 // FIXME: This should ASSERT isFinishedParsingChildren() instead. |
| 273 if (!isFinishedParsingChildren()) | 273 if (!isFinishedParsingChildren()) { |
| 274 dispatchErrorEvent(); |
| 274 return; | 275 return; |
| 276 } |
| 275 | 277 |
| 276 // FIXME: I'm not sure it's ever possible to get into updateWidget during a | 278 // FIXME: I'm not sure it's ever possible to get into updateWidget during a |
| 277 // removal, but just in case we should avoid loading the frame to prevent | 279 // removal, but just in case we should avoid loading the frame to prevent |
| 278 // security bugs. | 280 // security bugs. |
| 279 if (!SubframeLoadingDisabler::canLoadFrame(*this)) | 281 if (!SubframeLoadingDisabler::canLoadFrame(*this)) { |
| 282 dispatchErrorEvent(); |
| 280 return; | 283 return; |
| 284 } |
| 281 | 285 |
| 282 String url = this->url(); | 286 String url = this->url(); |
| 283 String serviceType = m_serviceType; | 287 String serviceType = m_serviceType; |
| 284 | 288 |
| 285 // FIXME: These should be joined into a PluginParameters class. | 289 // FIXME: These should be joined into a PluginParameters class. |
| 286 Vector<String> paramNames; | 290 Vector<String> paramNames; |
| 287 Vector<String> paramValues; | 291 Vector<String> paramValues; |
| 288 parametersForPlugin(paramNames, paramValues, url, serviceType); | 292 parametersForPlugin(paramNames, paramValues, url, serviceType); |
| 289 | 293 |
| 290 // Note: url is modified above by parametersForPlugin. | 294 // Note: url is modified above by parametersForPlugin. |
| 291 if (!allowedToLoadFrameURL(url)) | 295 if (!allowedToLoadFrameURL(url)) { |
| 296 dispatchErrorEvent(); |
| 292 return; | 297 return; |
| 298 } |
| 293 | 299 |
| 294 bool fallbackContent = hasFallbackContent(); | 300 bool fallbackContent = hasFallbackContent(); |
| 295 renderEmbeddedObject()->setHasFallbackContent(fallbackContent); | 301 renderEmbeddedObject()->setHasFallbackContent(fallbackContent); |
| 296 | 302 |
| 297 RefPtr<HTMLObjectElement> protect(this); // beforeload and plugin loading ca
n make arbitrary DOM mutations. | 303 RefPtr<HTMLObjectElement> protect(this); // beforeload and plugin loading ca
n make arbitrary DOM mutations. |
| 298 bool beforeLoadAllowedLoad = dispatchBeforeLoadEvent(url); | 304 bool beforeLoadAllowedLoad = dispatchBeforeLoadEvent(url); |
| 299 if (!renderer()) // Do not load the plugin if beforeload removed this elemen
t or its renderer. | 305 if (!renderer()) // Do not load the plugin if beforeload removed this elemen
t or its renderer. |
| 300 return; | 306 return; |
| 301 | 307 |
| 302 bool success = beforeLoadAllowedLoad && hasValidClassId() && requestObject(u
rl, serviceType, paramNames, paramValues); | 308 if (!beforeLoadAllowedLoad || !hasValidClassId() || !requestObject(url, serv
iceType, paramNames, paramValues)) { |
| 303 if (!success && fallbackContent) | 309 if (!url.isEmpty()) |
| 304 renderFallbackContent(); | 310 dispatchErrorEvent(); |
| 311 if (fallbackContent) |
| 312 renderFallbackContent(); |
| 313 } |
| 305 } | 314 } |
| 306 | 315 |
| 307 bool HTMLObjectElement::rendererIsNeeded(const RenderStyle& style) | 316 bool HTMLObjectElement::rendererIsNeeded(const RenderStyle& style) |
| 308 { | 317 { |
| 309 // FIXME: This check should not be needed, detached documents never render! | 318 // FIXME: This check should not be needed, detached documents never render! |
| 310 if (!document().frame()) | 319 if (!document().frame()) |
| 311 return false; | 320 return false; |
| 312 return HTMLPlugInElement::rendererIsNeeded(style); | 321 return HTMLPlugInElement::rendererIsNeeded(style); |
| 313 } | 322 } |
| 314 | 323 |
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 445 { | 454 { |
| 446 return fastHasAttribute(usemapAttr); | 455 return fastHasAttribute(usemapAttr); |
| 447 } | 456 } |
| 448 | 457 |
| 449 bool HTMLObjectElement::useFallbackContent() const | 458 bool HTMLObjectElement::useFallbackContent() const |
| 450 { | 459 { |
| 451 return HTMLPlugInElement::useFallbackContent() || m_useFallbackContent; | 460 return HTMLPlugInElement::useFallbackContent() || m_useFallbackContent; |
| 452 } | 461 } |
| 453 | 462 |
| 454 } | 463 } |
| OLD | NEW |