Show
Ignore:
Timestamp:
08/08/08 14:23:27 (5 months ago)
Author:
mbensi
Message:

merge with webkit revision 35637

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/WebCore/html/HTMLObjectElement.cpp

    r418 r433  
    2929#include "ExceptionCode.h" 
    3030#include "Frame.h" 
    31 #include "FrameLoader.h" 
    32 #include "FrameLoaderClient.h" 
    33 #include "FrameView.h" 
    3431#include "HTMLDocument.h" 
    3532#include "HTMLFormElement.h" 
    3633#include "HTMLImageLoader.h" 
    3734#include "HTMLNames.h" 
    38 #include "Image.h" 
    3935#include "MIMETypeRegistry.h" 
    4036#include "RenderImage.h" 
    4137#include "RenderPartObject.h" 
    4238#include "RenderWidget.h" 
     39#include "ScriptController.h" 
    4340#include "Text.h" 
    4441 
     
    5350 
    5451HTMLObjectElement::HTMLObjectElement(Document* doc, bool createdByParser)  
    55     : HTMLPlugInElement(objectTag, doc) 
     52    : HTMLPlugInImageElement(objectTag, doc) 
    5653    , m_docNamedItem(true) 
    5754    , m_needWidgetUpdate(!createdByParser) 
     
    6259HTMLObjectElement::~HTMLObjectElement() 
    6360{ 
     61} 
     62 
    6463#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  
     64RenderWidget* HTMLObjectElement::renderWidgetForJSBindings() const 
     65
    8066    RenderWidget* renderWidget = (renderer() && renderer()->isWidget()) ? static_cast<RenderWidget*>(renderer()) : 0; 
    8167    if (renderWidget && !renderWidget->widget()) { 
    8268        document()->updateLayoutIgnorePendingStylesheets(); 
    8369        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; 
    8972} 
    9073#endif 
     
    178161            return; 
    179162 
    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()); 
    184165    } 
    185166} 
     
    204185void HTMLObjectElement::detach() 
    205186{ 
    206     if (attached() && renderer() && !m_useFallbackContent) { 
     187    if (attached() && renderer() && !m_useFallbackContent) 
    207188        // Update the widget the next time we attach (detaching destroys the plugin). 
    208189        m_needWidgetUpdate = true; 
    209     } 
    210  
    211 #if USE(JAVASCRIPTCORE_BINDINGS) 
    212     m_instance = 0; 
    213 #endif 
    214190    HTMLPlugInElement::detach(); 
    215191} 
     
    264240{ 
    265241    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); 
    279242} 
    280243