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

Side by Side Diff: webkit/glue/webplugin_impl.cc

Issue 3180: This fixes the following bugs:-... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 12 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 | « webkit/glue/webplugin_impl.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 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "config.h" 5 #include "config.h"
6 6
7 #pragma warning(push, 0) 7 #pragma warning(push, 0)
8 #include "Document.h" 8 #include "Document.h"
9 #include "Element.h" 9 #include "Element.h"
10 #include "Event.h" 10 #include "Event.h"
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 } 230 }
231 231
232 WebCore::Widget* WebPluginImpl::Create(const GURL& url, 232 WebCore::Widget* WebPluginImpl::Create(const GURL& url,
233 char** argn, 233 char** argn,
234 char** argv, 234 char** argv,
235 int argc, 235 int argc,
236 WebCore::Element *element, 236 WebCore::Element *element,
237 WebFrameImpl *frame, 237 WebFrameImpl *frame,
238 WebPluginDelegate* delegate, 238 WebPluginDelegate* delegate,
239 bool load_manually) { 239 bool load_manually) {
240 WebPluginImpl* webplugin = new WebPluginImpl(element, frame, delegate); 240 WebPluginImpl* webplugin = new WebPluginImpl(element, frame, delegate, url);
241 241
242 if (!delegate->Initialize(url, argn, argv, argc, webplugin, load_manually)) { 242 if (!delegate->Initialize(url, argn, argv, argc, webplugin, load_manually)) {
243 delegate->PluginDestroyed(); 243 delegate->PluginDestroyed();
244 delegate = NULL; 244 delegate = NULL;
245 delete webplugin; 245 delete webplugin;
246 return NULL; 246 return NULL;
247 } 247 }
248 248
249 WebPluginContainer* container = new WebPluginContainer(webplugin); 249 WebPluginContainer* container = new WebPluginContainer(webplugin);
250 webplugin->SetContainer(container); 250 webplugin->SetContainer(container);
251 return container; 251 return container;
252 } 252 }
253 253
254 WebPluginImpl::WebPluginImpl(WebCore::Element* element, 254 WebPluginImpl::WebPluginImpl(WebCore::Element* element,
255 WebFrameImpl* webframe, 255 WebFrameImpl* webframe,
256 WebPluginDelegate* delegate) 256 WebPluginDelegate* delegate,
257 const GURL& plugin_url)
257 : element_(element), 258 : element_(element),
258 webframe_(webframe), 259 webframe_(webframe),
259 delegate_(delegate), 260 delegate_(delegate),
260 windowless_(false), 261 windowless_(false),
261 window_(NULL), 262 window_(NULL),
262 force_geometry_update_(false), 263 force_geometry_update_(false),
263 visible_(false), 264 visible_(false),
264 widget_(NULL), 265 widget_(NULL),
265 received_first_paint_notification_(false) { 266 received_first_paint_notification_(false),
267 plugin_url_(plugin_url) {
266 } 268 }
267 269
268 WebPluginImpl::~WebPluginImpl() { 270 WebPluginImpl::~WebPluginImpl() {
269 } 271 }
270 272
271 void WebPluginImpl::SetWindow(HWND window, HANDLE pump_messages_event) { 273 void WebPluginImpl::SetWindow(HWND window, HANDLE pump_messages_event) {
272 if (window) { 274 if (window) {
273 DCHECK(!windowless_); // Make sure not called twice. 275 DCHECK(!windowless_); // Make sure not called twice.
274 window_ = window; 276 window_ = window;
275 } else { 277 } else {
(...skipping 811 matching lines...) Expand 10 before | Expand all | Expand 10 after
1087 info.client = client; 1089 info.client = client;
1088 info.request.setFrame(frame()); 1090 info.request.setFrame(frame());
1089 info.request.setURL(webkit_glue::GURLToKURL(complete_url_string)); 1091 info.request.setURL(webkit_glue::GURLToKURL(complete_url_string));
1090 info.request.setOriginPid(delegate_->GetProcessId()); 1092 info.request.setOriginPid(delegate_->GetProcessId());
1091 info.request.setResourceType(ResourceType::OBJECT); 1093 info.request.setResourceType(ResourceType::OBJECT);
1092 info.request.setHTTPMethod(method); 1094 info.request.setHTTPMethod(method);
1093 1095
1094 if (range_info) 1096 if (range_info)
1095 info.request.addHTTPHeaderField("Range", range_info); 1097 info.request.addHTTPHeaderField("Range", range_info);
1096 1098
1097 const WebCore::String& referrer = frame()->loader()->outgoingReferrer(); 1099 WebCore::String referrer;
1100 // If the plugin is instantiated without a SRC URL, then use the
1101 // containing frame URL as the referrer.
1102 if (plugin_url_.spec().empty()) {
1103 referrer = frame()->loader()->outgoingReferrer();
1104 } else {
1105 referrer = webkit_glue::StdStringToString(plugin_url_.spec());
1106 }
1107
1098 if (!WebCore::FrameLoader::shouldHideReferrer( 1108 if (!WebCore::FrameLoader::shouldHideReferrer(
1099 complete_url_string.spec().c_str(), referrer)) { 1109 complete_url_string.spec().c_str(), referrer)) {
1100 info.request.setHTTPReferrer(referrer); 1110 info.request.setHTTPReferrer(referrer);
1101 } 1111 }
1102 1112
1103 if (lstrcmpA(method, "POST") == 0) { 1113 if (lstrcmpA(method, "POST") == 0) {
1104 // Adds headers or form data to a request. This must be called before 1114 // Adds headers or form data to a request. This must be called before
1105 // we initiate the actual request. 1115 // we initiate the actual request.
1106 SetPostData(&info.request, buf, buf_len); 1116 SetPostData(&info.request, buf, buf_len);
1107 } 1117 }
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
1149 1159
1150 MultiPartResponseClient* multi_part_response_client = 1160 MultiPartResponseClient* multi_part_response_client =
1151 new MultiPartResponseClient(client); 1161 new MultiPartResponseClient(client);
1152 1162
1153 MultipartResponseDelegate* multi_part_response_handler = 1163 MultipartResponseDelegate* multi_part_response_handler =
1154 new MultipartResponseDelegate(multi_part_response_client, NULL, 1164 new MultipartResponseDelegate(multi_part_response_client, NULL,
1155 response, 1165 response,
1156 multipart_boundary); 1166 multipart_boundary);
1157 multi_part_response_map_[client] = multi_part_response_handler; 1167 multi_part_response_map_[client] = multi_part_response_handler;
1158 } 1168 }
OLDNEW
« no previous file with comments | « webkit/glue/webplugin_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698