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

Side by Side Diff: Source/core/loader/SubframeLoader.cpp

Issue 20858002: Merge SubframeLoader::createJavaAppletWidget into HTMLAppletElement::udpateWidget (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: const KURL& - > KURL Created 7 years, 4 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/loader/SubframeLoader.h ('k') | no next file » | 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) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserv ed. 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserv ed.
3 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) 3 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
4 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/) 4 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/)
5 * Copyright (C) 2008 Alp Toker <alp@atoker.com> 5 * Copyright (C) 2008 Alp Toker <alp@atoker.com>
6 * Copyright (C) Research In Motion Limited 2009. All rights reserved. 6 * Copyright (C) Research In Motion Limited 2009. All rights reserved.
7 * 7 *
8 * Redistribution and use in source and binary forms, with or without 8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions 9 * modification, are permitted provided that the following conditions
10 * are met: 10 * are met:
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 bool success = requestPlugin(ownerElement, completedURL, mimeType, param Names, paramValues, useFallback); 144 bool success = requestPlugin(ownerElement, completedURL, mimeType, param Names, paramValues, useFallback);
145 return success; 145 return success;
146 } 146 }
147 147
148 // If the plug-in element already contains a subframe, loadOrRedirectSubfram e will re-use it. Otherwise, 148 // If the plug-in element already contains a subframe, loadOrRedirectSubfram e will re-use it. Otherwise,
149 // it will create a new frame and set it as the RenderPart's widget, causing what was previously 149 // it will create a new frame and set it as the RenderPart's widget, causing what was previously
150 // in the widget to be torn down. 150 // in the widget to be torn down.
151 return loadOrRedirectSubframe(ownerElement, completedURL, frameName, true); 151 return loadOrRedirectSubframe(ownerElement, completedURL, frameName, true);
152 } 152 }
153 153
154 PassRefPtr<Widget> SubframeLoader::createJavaAppletWidget(const IntSize& size, H TMLAppletElement* element, const Vector<String>& paramNames, const Vector<String >& paramValues)
155 {
156 String baseURLString;
157 String codeBaseURLString;
158
159 for (size_t i = 0; i < paramNames.size(); ++i) {
160 if (equalIgnoringCase(paramNames[i], "baseurl"))
161 baseURLString = paramValues[i];
162 else if (equalIgnoringCase(paramNames[i], "codebase"))
163 codeBaseURLString = paramValues[i];
164 }
165
166 if (!codeBaseURLString.isEmpty()) {
167 KURL codeBaseURL = completeURL(codeBaseURLString);
168 if (!element->document()->securityOrigin()->canDisplay(codeBaseURL)) {
169 FrameLoader::reportLocalLoadFailed(m_frame, codeBaseURL.string());
170 return 0;
171 }
172
173 const char javaAppletMimeType[] = "application/x-java-applet";
174 if (!element->document()->contentSecurityPolicy()->allowObjectFromSource (codeBaseURL)
175 || !element->document()->contentSecurityPolicy()->allowPluginType(ja vaAppletMimeType, javaAppletMimeType, codeBaseURL))
176 return 0;
177 }
178
179 if (baseURLString.isEmpty())
180 baseURLString = m_frame->document()->baseURL().string();
181 KURL baseURL = completeURL(baseURLString);
182
183 RefPtr<Widget> widget;
184 if (m_frame->loader()->allowPlugins(AboutToInstantiatePlugin))
185 widget = m_frame->loader()->client()->createJavaAppletWidget(size, eleme nt, baseURL, paramNames, paramValues);
186
187 if (!widget) {
188 RenderEmbeddedObject* renderer = element->renderEmbeddedObject();
189
190 if (!renderer->showsUnavailablePluginIndicator())
191 renderer->setPluginUnavailabilityReason(RenderEmbeddedObject::Plugin Missing);
192 return 0;
193 }
194
195 m_frame->loader()->setContainsPlugins();
196 return widget;
197 }
198
199 bool SubframeLoader::loadOrRedirectSubframe(HTMLFrameOwnerElement* ownerElement, const KURL& url, const AtomicString& frameName, bool lockBackForwardList) 154 bool SubframeLoader::loadOrRedirectSubframe(HTMLFrameOwnerElement* ownerElement, const KURL& url, const AtomicString& frameName, bool lockBackForwardList)
200 { 155 {
201 if (Frame* frame = ownerElement->contentFrame()) { 156 if (Frame* frame = ownerElement->contentFrame()) {
202 frame->navigationScheduler()->scheduleLocationChange(m_frame->document() ->securityOrigin(), url.string(), m_frame->loader()->outgoingReferrer(), lockBac kForwardList); 157 frame->navigationScheduler()->scheduleLocationChange(m_frame->document() ->securityOrigin(), url.string(), m_frame->loader()->outgoingReferrer(), lockBac kForwardList);
203 return true; 158 return true;
204 } 159 }
205 160
206 return loadSubframe(ownerElement, url, frameName, m_frame->loader()->outgoin gReferrer()); 161 return loadSubframe(ownerElement, url, frameName, m_frame->loader()->outgoin gReferrer());
207 } 162 }
208 163
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
313 return true; 268 return true;
314 } 269 }
315 270
316 KURL SubframeLoader::completeURL(const String& url) const 271 KURL SubframeLoader::completeURL(const String& url) const
317 { 272 {
318 ASSERT(m_frame->document()); 273 ASSERT(m_frame->document());
319 return m_frame->document()->completeURL(url); 274 return m_frame->document()->completeURL(url);
320 } 275 }
321 276
322 } // namespace WebCore 277 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/loader/SubframeLoader.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698