| 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 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 104 setNeedsWidgetUpdate(true); | 104 setNeedsWidgetUpdate(true); |
| 105 if (!m_imageLoader) | 105 if (!m_imageLoader) |
| 106 m_imageLoader = adoptPtr(new HTMLImageLoader(this)); | 106 m_imageLoader = adoptPtr(new HTMLImageLoader(this)); |
| 107 m_imageLoader->updateFromElementIgnoringPreviousError(); | 107 m_imageLoader->updateFromElementIgnoringPreviousError(); |
| 108 } else { | 108 } else { |
| 109 reloadPluginOnAttributeChange(name); | 109 reloadPluginOnAttributeChange(name); |
| 110 } | 110 } |
| 111 } else if (name == classidAttr) { | 111 } else if (name == classidAttr) { |
| 112 m_classId = value; | 112 m_classId = value; |
| 113 reloadPluginOnAttributeChange(name); | 113 reloadPluginOnAttributeChange(name); |
| 114 } else if (name == onbeforeloadAttr) { | |
| 115 setAttributeEventListener(EventTypeNames::beforeload, createAttributeEve
ntListener(this, name, value)); | |
| 116 } else { | 114 } else { |
| 117 HTMLPlugInElement::parseAttribute(name, value); | 115 HTMLPlugInElement::parseAttribute(name, value); |
| 118 } | 116 } |
| 119 } | 117 } |
| 120 | 118 |
| 121 static void mapDataParamToSrc(Vector<String>* paramNames, Vector<String>* paramV
alues) | 119 static void mapDataParamToSrc(Vector<String>* paramNames, Vector<String>* paramV
alues) |
| 122 { | 120 { |
| 123 // Some plugins don't understand the "data" attribute of the OBJECT tag (i.e
. Real and WMP | 121 // Some plugins don't understand the "data" attribute of the OBJECT tag (i.e
. Real and WMP |
| 124 // require "src" attribute). | 122 // require "src" attribute). |
| 125 int srcIndex = -1, dataIndex = -1; | 123 int srcIndex = -1, dataIndex = -1; |
| (...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 312 | 310 |
| 313 // Note: url is modified above by parametersForPlugin. | 311 // Note: url is modified above by parametersForPlugin. |
| 314 if (!allowedToLoadFrameURL(url)) { | 312 if (!allowedToLoadFrameURL(url)) { |
| 315 dispatchErrorEvent(); | 313 dispatchErrorEvent(); |
| 316 return; | 314 return; |
| 317 } | 315 } |
| 318 | 316 |
| 319 bool fallbackContent = hasFallbackContent(); | 317 bool fallbackContent = hasFallbackContent(); |
| 320 renderEmbeddedObject()->setHasFallbackContent(fallbackContent); | 318 renderEmbeddedObject()->setHasFallbackContent(fallbackContent); |
| 321 | 319 |
| 322 RefPtr<HTMLObjectElement> protect(this); // beforeload and plugin loading ca
n make arbitrary DOM mutations. | 320 // FIXME: Is it possible to get here without a renderer now that we don't ha
ve beforeload events? |
| 323 bool beforeLoadAllowedLoad = dispatchBeforeLoadEvent(url); | 321 if (!renderer()) |
| 324 if (!renderer()) // Do not load the plugin if beforeload removed this elemen
t or its renderer. | |
| 325 return; | 322 return; |
| 326 | 323 |
| 327 if (!beforeLoadAllowedLoad || !hasValidClassId() || !requestObject(url, serv
iceType, paramNames, paramValues)) { | 324 if (!hasValidClassId() || !requestObject(url, serviceType, paramNames, param
Values)) { |
| 328 if (!url.isEmpty()) | 325 if (!url.isEmpty()) |
| 329 dispatchErrorEvent(); | 326 dispatchErrorEvent(); |
| 330 if (fallbackContent) | 327 if (fallbackContent) |
| 331 renderFallbackContent(); | 328 renderFallbackContent(); |
| 332 } | 329 } |
| 333 } | 330 } |
| 334 | 331 |
| 335 bool HTMLObjectElement::rendererIsNeeded(const RenderStyle& style) | 332 bool HTMLObjectElement::rendererIsNeeded(const RenderStyle& style) |
| 336 { | 333 { |
| 337 // FIXME: This check should not be needed, detached documents never render! | 334 // FIXME: This check should not be needed, detached documents never render! |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 483 { | 480 { |
| 484 return fastHasAttribute(usemapAttr); | 481 return fastHasAttribute(usemapAttr); |
| 485 } | 482 } |
| 486 | 483 |
| 487 bool HTMLObjectElement::useFallbackContent() const | 484 bool HTMLObjectElement::useFallbackContent() const |
| 488 { | 485 { |
| 489 return HTMLPlugInElement::useFallbackContent() || m_useFallbackContent; | 486 return HTMLPlugInElement::useFallbackContent() || m_useFallbackContent; |
| 490 } | 487 } |
| 491 | 488 |
| 492 } | 489 } |
| OLD | NEW |