Changeset 433 for trunk/WebCore/html/HTMLObjectElement.cpp
- Timestamp:
- 08/08/08 14:23:27 (5 months ago)
- Files:
-
- trunk/WebCore/html/HTMLObjectElement.cpp (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/WebCore/html/HTMLObjectElement.cpp
r418 r433 29 29 #include "ExceptionCode.h" 30 30 #include "Frame.h" 31 #include "FrameLoader.h"32 #include "FrameLoaderClient.h"33 #include "FrameView.h"34 31 #include "HTMLDocument.h" 35 32 #include "HTMLFormElement.h" 36 33 #include "HTMLImageLoader.h" 37 34 #include "HTMLNames.h" 38 #include "Image.h"39 35 #include "MIMETypeRegistry.h" 40 36 #include "RenderImage.h" 41 37 #include "RenderPartObject.h" 42 38 #include "RenderWidget.h" 39 #include "ScriptController.h" 43 40 #include "Text.h" 44 41 … … 53 50 54 51 HTMLObjectElement::HTMLObjectElement(Document* doc, bool createdByParser) 55 : HTMLPlugIn Element(objectTag, doc)52 : HTMLPlugInImageElement(objectTag, doc) 56 53 , m_docNamedItem(true) 57 54 , m_needWidgetUpdate(!createdByParser) … … 62 59 HTMLObjectElement::~HTMLObjectElement() 63 60 { 61 } 62 64 63 #if USE(JAVASCRIPTCORE_BINDINGS) 65 // m_instance should have been cleaned up in detach(). 66 ASSERT(!m_instance); 67 #endif 68 } 69 70 #if USE(JAVASCRIPTCORE_BINDINGS) 71 KJS::Bindings::Instance *HTMLObjectElement::getInstance() const 72 { 73 Frame* frame = document()->frame(); 74 if (!frame) 75 return 0; 76 77 if (m_instance) 78 return m_instance.get(); 79 64 RenderWidget* HTMLObjectElement::renderWidgetForJSBindings() const 65 { 80 66 RenderWidget* renderWidget = (renderer() && renderer()->isWidget()) ? static_cast<RenderWidget*>(renderer()) : 0; 81 67 if (renderWidget && !renderWidget->widget()) { 82 68 document()->updateLayoutIgnorePendingStylesheets(); 83 69 renderWidget = (renderer() && renderer()->isWidget()) ? static_cast<RenderWidget*>(renderer()) : 0; 84 } 85 if (renderWidget && renderWidget->widget()) 86 m_instance = frame->createScriptInstanceForWidget(renderWidget->widget()); 87 88 return m_instance.get(); 70 } 71 return renderWidget; 89 72 } 90 73 #endif … … 178 161 return; 179 162 180 if (renderer()) { 181 RenderImage* imageObj = static_cast<RenderImage*>(renderer()); 182 imageObj->setCachedImage(m_imageLoader->image()); 183 } 163 if (renderer()) 164 static_cast<RenderImage*>(renderer())->setCachedImage(m_imageLoader->image()); 184 165 } 185 166 } … … 204 185 void HTMLObjectElement::detach() 205 186 { 206 if (attached() && renderer() && !m_useFallbackContent) {187 if (attached() && renderer() && !m_useFallbackContent) 207 188 // Update the widget the next time we attach (detaching destroys the plugin). 208 189 m_needWidgetUpdate = true; 209 }210 211 #if USE(JAVASCRIPTCORE_BINDINGS)212 m_instance = 0;213 #endif214 190 HTMLPlugInElement::detach(); 215 191 } … … 264 240 { 265 241 return dataAttr; 266 }267 268 bool HTMLObjectElement::isImageType()269 {270 if (m_serviceType.isEmpty() && protocolIs(m_url, "data"))271 m_serviceType = mimeTypeFromDataURL(m_url);272 273 if (Frame* frame = document()->frame()) {274 KURL completedURL(frame->loader()->completeURL(m_url));275 return frame->loader()->client()->objectContentType(completedURL, m_serviceType) == ObjectContentImage;276 }277 278 return Image::supportsType(m_serviceType);279 242 } 280 243
