Changeset 69159 in webkit
- Timestamp:
- Oct 5, 2010 4:15:11 PM (14 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r69149 r69159 1 2010-10-05 Sanjeev Radhakrishnan <sanjeevr@chromium.org> 2 3 Reviewed by Darin Fisher. 4 5 PluginDocument now holds on to the created plugin node so that the pluginNode() and pluginWidget() methods can return the correct node. 6 https://bugs.webkit.org/show_bug.cgi?id=47129 7 8 * html/PluginDocument.cpp: 9 (WebCore::PluginDocumentParser::createDocumentStructure): 10 (WebCore::PluginDocument::pluginWidget): 11 (WebCore::PluginDocument::pluginNode): 12 * html/PluginDocument.h: 13 (WebCore::PluginDocument::setPluginNode): 14 1 15 2010-10-05 Andreas Kling <kling@webkit.org> 2 16 -
trunk/WebCore/html/PluginDocument.cpp
r69097 r69159 51 51 } 52 52 53 static Widget* pluginWidgetFromDocument(Document*);54 55 53 private: 56 54 PluginDocumentParser(Document* document) … … 66 64 HTMLEmbedElement* m_embedElement; 67 65 }; 68 69 Widget* PluginDocumentParser::pluginWidgetFromDocument(Document* doc)70 {71 ASSERT(doc);72 RefPtr<Element> body = doc->body();73 if (body) {74 RefPtr<NodeList> embedNodes = body->getElementsByTagName("embed");75 ASSERT(embedNodes && embedNodes->length());76 Node* node = embedNodes->item(0);77 if (node && node->renderer()) {78 ASSERT(node->renderer()->isEmbeddedObject());79 return toRenderEmbeddedObject(node->renderer())->widget();80 }81 }82 return 0;83 }84 66 85 67 void PluginDocumentParser::createDocumentStructure() … … 111 93 m_embedElement->setAttribute(srcAttr, document()->url().string()); 112 94 m_embedElement->setAttribute(typeAttr, document()->frame()->loader()->writer()->mimeType()); 113 95 96 static_cast<PluginDocument*>(document())->setPluginNode(m_embedElement); 97 114 98 body->appendChild(embedElement, ec); 115 99 } … … 160 144 Widget* PluginDocument::pluginWidget() 161 145 { 162 return PluginDocumentParser::pluginWidgetFromDocument(this); 146 if (m_pluginNode && m_pluginNode->renderer()) { 147 ASSERT(m_pluginNode->renderer()->isEmbeddedObject()); 148 return toRenderEmbeddedObject(m_pluginNode->renderer())->widget(); 149 } 150 return 0; 163 151 } 164 152 165 153 Node* PluginDocument::pluginNode() 166 154 { 167 RefPtr<Element> body_element = body(); 168 if (body_element) 169 return body_element->firstChild(); 170 171 return 0; 155 return m_pluginNode.get(); 172 156 } 173 157 -
trunk/WebCore/html/PluginDocument.h
r68702 r69159 39 39 } 40 40 41 void setPluginNode(Node* pluginNode) { m_pluginNode = pluginNode; } 42 41 43 Widget* pluginWidget(); 42 44 Node* pluginNode(); … … 56 58 57 59 bool m_shouldLoadPluginManually; 60 RefPtr<Node> m_pluginNode; 58 61 }; 59 62
Note: See TracChangeset
for help on using the changeset viewer.