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

Side by Side Diff: content/renderer/pepper/pepper_plugin_instance_impl.cc

Issue 2399463007: AssociatedURLLoader shouldn't derive from WebURLLoader (Closed)
Patch Set: Rebase Created 4 years, 2 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "content/renderer/pepper/pepper_plugin_instance_impl.h" 5 #include "content/renderer/pepper/pepper_plugin_instance_impl.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bit_cast.h" 10 #include "base/bit_cast.h"
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 using blink::WebFrame; 165 using blink::WebFrame;
166 using blink::WebInputEvent; 166 using blink::WebInputEvent;
167 using blink::WebLocalFrame; 167 using blink::WebLocalFrame;
168 using blink::WebPlugin; 168 using blink::WebPlugin;
169 using blink::WebPluginContainer; 169 using blink::WebPluginContainer;
170 using blink::WebPrintParams; 170 using blink::WebPrintParams;
171 using blink::WebPrintScalingOption; 171 using blink::WebPrintScalingOption;
172 using blink::WebScopedUserGesture; 172 using blink::WebScopedUserGesture;
173 using blink::WebString; 173 using blink::WebString;
174 using blink::WebURLError; 174 using blink::WebURLError;
175 using blink::WebURLLoader; 175 using blink::WebAssociatedURLLoaderClient;
176 using blink::WebURLLoaderClient;
177 using blink::WebURLRequest; 176 using blink::WebURLRequest;
178 using blink::WebURLResponse; 177 using blink::WebURLResponse;
179 using blink::WebUserGestureIndicator; 178 using blink::WebUserGestureIndicator;
180 using blink::WebUserGestureToken; 179 using blink::WebUserGestureToken;
181 using blink::WebView; 180 using blink::WebView;
182 using blink::WebWidget; 181 using blink::WebWidget;
183 182
184 namespace content { 183 namespace content {
185 184
186 namespace { 185 namespace {
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
398 HostGlobals::Get()->GetInstance(instance_id); 397 HostGlobals::Get()->GetInstance(instance_id);
399 return instance; 398 return instance;
400 } 399 }
401 400
402 PepperPluginInstanceImpl::ExternalDocumentLoader::ExternalDocumentLoader() 401 PepperPluginInstanceImpl::ExternalDocumentLoader::ExternalDocumentLoader()
403 : finished_loading_(false) {} 402 : finished_loading_(false) {}
404 403
405 PepperPluginInstanceImpl::ExternalDocumentLoader::~ExternalDocumentLoader() {} 404 PepperPluginInstanceImpl::ExternalDocumentLoader::~ExternalDocumentLoader() {}
406 405
407 void PepperPluginInstanceImpl::ExternalDocumentLoader::ReplayReceivedData( 406 void PepperPluginInstanceImpl::ExternalDocumentLoader::ReplayReceivedData(
408 WebURLLoaderClient* document_loader) { 407 WebAssociatedURLLoaderClient* document_loader) {
409 for (std::list<std::string>::iterator it = data_.begin(); it != data_.end(); 408 for (std::list<std::string>::iterator it = data_.begin(); it != data_.end();
410 ++it) { 409 ++it) {
411 document_loader->didReceiveData(NULL, it->c_str(), it->length(), 410 document_loader->didReceiveData(it->c_str(), it->length());
412 0 /* encoded_data_length */, it->length());
413 } 411 }
414 if (finished_loading_) { 412 if (finished_loading_) {
415 document_loader->didFinishLoading( 413 document_loader->didFinishLoading(0 /* finish_time */);
416 NULL,
417 0 /* finish_time */,
418 blink::WebURLLoaderClient::kUnknownEncodedDataLength);
419 } else if (error_.get()) { 414 } else if (error_.get()) {
420 DCHECK(!finished_loading_); 415 DCHECK(!finished_loading_);
421 document_loader->didFail(NULL, *error_); 416 document_loader->didFail(*error_);
422 } 417 }
423 } 418 }
424 419
425 void PepperPluginInstanceImpl::ExternalDocumentLoader::didReceiveData( 420 void PepperPluginInstanceImpl::ExternalDocumentLoader::didReceiveData(
426 WebURLLoader* loader,
427 const char* data, 421 const char* data,
428 int data_length, 422 int data_length) {
429 int encoded_data_length,
430 int encoded_body_length) {
431 data_.push_back(std::string(data, data_length)); 423 data_.push_back(std::string(data, data_length));
432 } 424 }
433 425
434 void PepperPluginInstanceImpl::ExternalDocumentLoader::didFinishLoading( 426 void PepperPluginInstanceImpl::ExternalDocumentLoader::didFinishLoading(
435 WebURLLoader* loader, 427 double finish_time) {
436 double finish_time,
437 int64_t total_encoded_data_length) {
438 DCHECK(!finished_loading_); 428 DCHECK(!finished_loading_);
439 429
440 if (error_.get()) 430 if (error_.get())
441 return; 431 return;
442 432
443 finished_loading_ = true; 433 finished_loading_ = true;
444 } 434 }
445 435
446 void PepperPluginInstanceImpl::ExternalDocumentLoader::didFail( 436 void PepperPluginInstanceImpl::ExternalDocumentLoader::didFail(
447 WebURLLoader* loader,
448 const WebURLError& error) { 437 const WebURLError& error) {
449 DCHECK(!error_.get()); 438 DCHECK(!error_.get());
450 439
451 if (finished_loading_) 440 if (finished_loading_)
452 return; 441 return;
453 442
454 error_.reset(new WebURLError(error)); 443 error_.reset(new WebURLError(error));
455 } 444 }
456 445
457 PepperPluginInstanceImpl::GamepadImpl::GamepadImpl() 446 PepperPluginInstanceImpl::GamepadImpl::GamepadImpl()
(...skipping 467 matching lines...) Expand 10 before | Expand all | Expand 10 after
925 // Create a loader resource host for this load. Note that we have to set 914 // Create a loader resource host for this load. Note that we have to set
926 // the document_loader before issuing the in-process 915 // the document_loader before issuing the in-process
927 // PPP_Instance.HandleDocumentLoad call below, since this may reentrantly 916 // PPP_Instance.HandleDocumentLoad call below, since this may reentrantly
928 // call into the instance and expect it to be valid. 917 // call into the instance and expect it to be valid.
929 RendererPpapiHostImpl* host_impl = module_->renderer_ppapi_host(); 918 RendererPpapiHostImpl* host_impl = module_->renderer_ppapi_host();
930 PepperURLLoaderHost* loader_host = 919 PepperURLLoaderHost* loader_host =
931 new PepperURLLoaderHost(host_impl, true, pp_instance(), 0); 920 new PepperURLLoaderHost(host_impl, true, pp_instance(), 0);
932 // TODO(teravest): Remove set_document_loader() from instance and clean up 921 // TODO(teravest): Remove set_document_loader() from instance and clean up
933 // this relationship. 922 // this relationship.
934 set_document_loader(loader_host); 923 set_document_loader(loader_host);
935 loader_host->didReceiveResponse(NULL, response); 924 loader_host->didReceiveResponse(response);
936 925
937 // This host will be pending until the resource object attaches to it. 926 // This host will be pending until the resource object attaches to it.
938 // 927 //
939 // PpapiHost now owns the pointer to loader_host, so we don't have to worry 928 // PpapiHost now owns the pointer to loader_host, so we don't have to worry
940 // about managing it. 929 // about managing it.
941 int pending_host_id = host_impl->GetPpapiHost()->AddPendingResourceHost( 930 int pending_host_id = host_impl->GetPpapiHost()->AddPendingResourceHost(
942 std::unique_ptr<ppapi::host::ResourceHost>(loader_host)); 931 std::unique_ptr<ppapi::host::ResourceHost>(loader_host));
943 DCHECK(pending_host_id); 932 DCHECK(pending_host_id);
944 933
945 DataFromWebURLResponse( 934 DataFromWebURLResponse(
(...skipping 2500 matching lines...) Expand 10 before | Expand all | Expand 10 after
3446 const cc::TextureMailbox& mailbox) const { 3435 const cc::TextureMailbox& mailbox) const {
3447 auto it = 3436 auto it =
3448 std::find_if(texture_ref_counts_.begin(), texture_ref_counts_.end(), 3437 std::find_if(texture_ref_counts_.begin(), texture_ref_counts_.end(),
3449 [&mailbox](const TextureMailboxRefCount& ref_count) { 3438 [&mailbox](const TextureMailboxRefCount& ref_count) {
3450 return ref_count.first.mailbox() == mailbox.mailbox(); 3439 return ref_count.first.mailbox() == mailbox.mailbox();
3451 }); 3440 });
3452 return it != texture_ref_counts_.end(); 3441 return it != texture_ref_counts_.end();
3453 } 3442 }
3454 3443
3455 } // namespace content 3444 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/pepper/pepper_plugin_instance_impl.h ('k') | content/renderer/pepper/pepper_url_loader_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698