Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(101)

Side by Side Diff: Source/core/html/HTMLEmbedElement.cpp

Issue 23819007: Have Node::document() return a reference instead of a pointer (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebase on master Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/core/html/HTMLElement.cpp ('k') | Source/core/html/HTMLFieldSetElement.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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, 2008, 2009, 2011 Apple Inc. All rights reserv ed. 5 * Copyright (C) 2004, 2005, 2006, 2008, 2009, 2011 Apple Inc. All rights reserv ed.
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 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 } 151 }
152 152
153 // FIXME: These should be joined into a PluginParameters class. 153 // FIXME: These should be joined into a PluginParameters class.
154 Vector<String> paramNames; 154 Vector<String> paramNames;
155 Vector<String> paramValues; 155 Vector<String> paramValues;
156 parametersForPlugin(paramNames, paramValues); 156 parametersForPlugin(paramNames, paramValues);
157 157
158 RefPtr<HTMLEmbedElement> protect(this); // Loading the plugin might remove u s from the document. 158 RefPtr<HTMLEmbedElement> protect(this); // Loading the plugin might remove u s from the document.
159 bool beforeLoadAllowedLoad = dispatchBeforeLoadEvent(m_url); 159 bool beforeLoadAllowedLoad = dispatchBeforeLoadEvent(m_url);
160 if (!beforeLoadAllowedLoad) { 160 if (!beforeLoadAllowedLoad) {
161 if (document()->isPluginDocument()) { 161 if (document().isPluginDocument()) {
162 // Plugins inside plugin documents load differently than other plugi ns. By the time 162 // Plugins inside plugin documents load differently than other plugi ns. By the time
163 // we are here in a plugin document, the load of the plugin (which i s the plugin document's 163 // we are here in a plugin document, the load of the plugin (which i s the plugin document's
164 // main resource) has already started. We need to explicitly cancel the main resource load here. 164 // main resource) has already started. We need to explicitly cancel the main resource load here.
165 toPluginDocument(document())->cancelManualPluginLoad(); 165 toPluginDocument(&document())->cancelManualPluginLoad();
166 } 166 }
167 return; 167 return;
168 } 168 }
169 if (!renderer()) // Do not load the plugin if beforeload removed this elemen t or its renderer. 169 if (!renderer()) // Do not load the plugin if beforeload removed this elemen t or its renderer.
170 return; 170 return;
171 171
172 // FIXME: beforeLoad could have detached the renderer! Just like in the <ob ject> case above. 172 // FIXME: beforeLoad could have detached the renderer! Just like in the <ob ject> case above.
173 requestObject(m_url, m_serviceType, paramNames, paramValues); 173 requestObject(m_url, m_serviceType, paramNames, paramValues);
174 } 174 }
175 175
176 bool HTMLEmbedElement::rendererIsNeeded(const NodeRenderingContext& context) 176 bool HTMLEmbedElement::rendererIsNeeded(const NodeRenderingContext& context)
177 { 177 {
178 if (isImageType()) 178 if (isImageType())
179 return HTMLPlugInImageElement::rendererIsNeeded(context); 179 return HTMLPlugInImageElement::rendererIsNeeded(context);
180 180
181 Frame* frame = document()->frame(); 181 Frame* frame = document().frame();
182 if (!frame) 182 if (!frame)
183 return false; 183 return false;
184 184
185 // If my parent is an <object> and is not set to use fallback content, I 185 // If my parent is an <object> and is not set to use fallback content, I
186 // should be ignored and not get a renderer. 186 // should be ignored and not get a renderer.
187 ContainerNode* p = parentNode(); 187 ContainerNode* p = parentNode();
188 if (p && p->hasTagName(objectTag)) { 188 if (p && p->hasTagName(objectTag)) {
189 ASSERT(p->renderer()); 189 ASSERT(p->renderer());
190 if (!toHTMLObjectElement(p)->useFallbackContent()) { 190 if (!toHTMLObjectElement(p)->useFallbackContent()) {
191 ASSERT(!p->renderer()->isEmbeddedObject()); 191 ASSERT(!p->renderer()->isEmbeddedObject());
(...skipping 10 matching lines...) Expand all
202 202
203 const AtomicString& HTMLEmbedElement::imageSourceURL() const 203 const AtomicString& HTMLEmbedElement::imageSourceURL() const
204 { 204 {
205 return getAttribute(srcAttr); 205 return getAttribute(srcAttr);
206 } 206 }
207 207
208 void HTMLEmbedElement::addSubresourceAttributeURLs(ListHashSet<KURL>& urls) cons t 208 void HTMLEmbedElement::addSubresourceAttributeURLs(ListHashSet<KURL>& urls) cons t
209 { 209 {
210 HTMLPlugInImageElement::addSubresourceAttributeURLs(urls); 210 HTMLPlugInImageElement::addSubresourceAttributeURLs(urls);
211 211
212 addSubresourceURL(urls, document()->completeURL(getAttribute(srcAttr))); 212 addSubresourceURL(urls, document().completeURL(getAttribute(srcAttr)));
213 } 213 }
214 214
215 } 215 }
OLDNEW
« no previous file with comments | « Source/core/html/HTMLElement.cpp ('k') | Source/core/html/HTMLFieldSetElement.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698