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

Side by Side Diff: content/child/web_url_loader_impl.cc

Issue 2695333002: Mojo C++ bindings: remove usage of AssociatedGroup from content/ (Closed)
Patch Set: . Created 3 years, 10 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
« no previous file with comments | « content/child/web_url_loader_impl.h ('k') | content/child/web_url_loader_impl_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/child/web_url_loader_impl.h" 5 #include "content/child/web_url_loader_impl.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <memory> 10 #include <memory>
(...skipping 22 matching lines...) Expand all
33 #include "content/child/web_url_request_util.h" 33 #include "content/child/web_url_request_util.h"
34 #include "content/child/weburlresponse_extradata_impl.h" 34 #include "content/child/weburlresponse_extradata_impl.h"
35 #include "content/common/resource_messages.h" 35 #include "content/common/resource_messages.h"
36 #include "content/common/resource_request.h" 36 #include "content/common/resource_request.h"
37 #include "content/common/resource_request_body_impl.h" 37 #include "content/common/resource_request_body_impl.h"
38 #include "content/common/service_worker/service_worker_types.h" 38 #include "content/common/service_worker/service_worker_types.h"
39 #include "content/common/url_loader.mojom.h" 39 #include "content/common/url_loader.mojom.h"
40 #include "content/public/child/fixed_received_data.h" 40 #include "content/public/child/fixed_received_data.h"
41 #include "content/public/child/request_peer.h" 41 #include "content/public/child/request_peer.h"
42 #include "content/public/common/browser_side_navigation_policy.h" 42 #include "content/public/common/browser_side_navigation_policy.h"
43 #include "mojo/public/cpp/bindings/associated_group.h"
44 #include "net/base/data_url.h" 43 #include "net/base/data_url.h"
45 #include "net/base/filename_util.h" 44 #include "net/base/filename_util.h"
46 #include "net/base/net_errors.h" 45 #include "net/base/net_errors.h"
47 #include "net/cert/cert_status_flags.h" 46 #include "net/cert/cert_status_flags.h"
48 #include "net/cert/ct_sct_to_string.h" 47 #include "net/cert/ct_sct_to_string.h"
49 #include "net/cert/x509_util.h" 48 #include "net/cert/x509_util.h"
50 #include "net/http/http_response_headers.h" 49 #include "net/http/http_response_headers.h"
51 #include "net/http/http_util.h" 50 #include "net/http/http_util.h"
52 #include "net/ssl/ssl_cipher_suite_names.h" 51 #include "net/ssl/ssl_cipher_suite_names.h"
53 #include "net/ssl/ssl_connection_status_flags.h" 52 #include "net/ssl/ssl_connection_status_flags.h"
(...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after
355 354
356 // This inner class exists since the WebURLLoader may be deleted while inside a 355 // This inner class exists since the WebURLLoader may be deleted while inside a
357 // call to WebURLLoaderClient. Refcounting is to keep the context from being 356 // call to WebURLLoaderClient. Refcounting is to keep the context from being
358 // deleted if it may have work to do after calling into the client. 357 // deleted if it may have work to do after calling into the client.
359 class WebURLLoaderImpl::Context : public base::RefCounted<Context> { 358 class WebURLLoaderImpl::Context : public base::RefCounted<Context> {
360 public: 359 public:
361 using ReceivedData = RequestPeer::ReceivedData; 360 using ReceivedData = RequestPeer::ReceivedData;
362 361
363 Context(WebURLLoaderImpl* loader, 362 Context(WebURLLoaderImpl* loader,
364 ResourceDispatcher* resource_dispatcher, 363 ResourceDispatcher* resource_dispatcher,
365 mojom::URLLoaderFactory* factory, 364 mojom::URLLoaderFactory* factory);
366 mojo::AssociatedGroup* associated_group);
367 365
368 WebURLLoaderClient* client() const { return client_; } 366 WebURLLoaderClient* client() const { return client_; }
369 void set_client(WebURLLoaderClient* client) { client_ = client; } 367 void set_client(WebURLLoaderClient* client) { client_ = client; }
370 368
371 void Cancel(); 369 void Cancel();
372 void SetDefersLoading(bool value); 370 void SetDefersLoading(bool value);
373 void DidChangePriority(WebURLRequest::Priority new_priority, 371 void DidChangePriority(WebURLRequest::Priority new_priority,
374 int intra_priority_value); 372 int intra_priority_value);
375 void Start(const WebURLRequest& request, 373 void Start(const WebURLRequest& request,
376 SyncLoadResponse* sync_load_response); 374 SyncLoadResponse* sync_load_response);
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
409 scoped_refptr<base::SingleThreadTaskRunner> task_runner_; 407 scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
410 std::unique_ptr<FtpDirectoryListingResponseDelegate> ftp_listing_delegate_; 408 std::unique_ptr<FtpDirectoryListingResponseDelegate> ftp_listing_delegate_;
411 std::unique_ptr<StreamOverrideParameters> stream_override_; 409 std::unique_ptr<StreamOverrideParameters> stream_override_;
412 std::unique_ptr<SharedMemoryDataConsumerHandle::Writer> body_stream_writer_; 410 std::unique_ptr<SharedMemoryDataConsumerHandle::Writer> body_stream_writer_;
413 enum DeferState {NOT_DEFERRING, SHOULD_DEFER, DEFERRED_DATA}; 411 enum DeferState {NOT_DEFERRING, SHOULD_DEFER, DEFERRED_DATA};
414 DeferState defers_loading_; 412 DeferState defers_loading_;
415 int request_id_; 413 int request_id_;
416 414
417 // These are owned by the Blink::Platform singleton. 415 // These are owned by the Blink::Platform singleton.
418 mojom::URLLoaderFactory* url_loader_factory_; 416 mojom::URLLoaderFactory* url_loader_factory_;
419 mojo::AssociatedGroup* associated_group_;
420 }; 417 };
421 418
422 // A thin wrapper class for Context to ensure its lifetime while it is 419 // A thin wrapper class for Context to ensure its lifetime while it is
423 // handling IPC messages coming from ResourceDispatcher. Owns one ref to 420 // handling IPC messages coming from ResourceDispatcher. Owns one ref to
424 // Context and held by ResourceDispatcher. 421 // Context and held by ResourceDispatcher.
425 class WebURLLoaderImpl::RequestPeerImpl : public RequestPeer { 422 class WebURLLoaderImpl::RequestPeerImpl : public RequestPeer {
426 public: 423 public:
427 explicit RequestPeerImpl(Context* context); 424 explicit RequestPeerImpl(Context* context);
428 425
429 // RequestPeer methods: 426 // RequestPeer methods:
(...skipping 14 matching lines...) Expand all
444 441
445 private: 442 private:
446 scoped_refptr<Context> context_; 443 scoped_refptr<Context> context_;
447 DISALLOW_COPY_AND_ASSIGN(RequestPeerImpl); 444 DISALLOW_COPY_AND_ASSIGN(RequestPeerImpl);
448 }; 445 };
449 446
450 // WebURLLoaderImpl::Context -------------------------------------------------- 447 // WebURLLoaderImpl::Context --------------------------------------------------
451 448
452 WebURLLoaderImpl::Context::Context(WebURLLoaderImpl* loader, 449 WebURLLoaderImpl::Context::Context(WebURLLoaderImpl* loader,
453 ResourceDispatcher* resource_dispatcher, 450 ResourceDispatcher* resource_dispatcher,
454 mojom::URLLoaderFactory* url_loader_factory, 451 mojom::URLLoaderFactory* url_loader_factory)
455 mojo::AssociatedGroup* associated_group)
456 : loader_(loader), 452 : loader_(loader),
457 client_(NULL), 453 client_(NULL),
458 resource_dispatcher_(resource_dispatcher), 454 resource_dispatcher_(resource_dispatcher),
459 task_runner_(base::ThreadTaskRunnerHandle::Get()), 455 task_runner_(base::ThreadTaskRunnerHandle::Get()),
460 defers_loading_(NOT_DEFERRING), 456 defers_loading_(NOT_DEFERRING),
461 request_id_(-1), 457 request_id_(-1),
462 url_loader_factory_(url_loader_factory), 458 url_loader_factory_(url_loader_factory) {}
463 associated_group_(associated_group) {}
464 459
465 void WebURLLoaderImpl::Context::Cancel() { 460 void WebURLLoaderImpl::Context::Cancel() {
466 TRACE_EVENT_WITH_FLOW0("loading", "WebURLLoaderImpl::Context::Cancel", this, 461 TRACE_EVENT_WITH_FLOW0("loading", "WebURLLoaderImpl::Context::Cancel", this,
467 TRACE_EVENT_FLAG_FLOW_IN); 462 TRACE_EVENT_FLAG_FLOW_IN);
468 if (resource_dispatcher_ && // NULL in unittest. 463 if (resource_dispatcher_ && // NULL in unittest.
469 request_id_ != -1) { 464 request_id_ != -1) {
470 resource_dispatcher_->Cancel(request_id_); 465 resource_dispatcher_->Cancel(request_id_);
471 request_id_ = -1; 466 request_id_ = -1;
472 } 467 }
473 468
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
631 request.getLoadingIPCType(), url_loader_factory_); 626 request.getLoadingIPCType(), url_loader_factory_);
632 return; 627 return;
633 } 628 }
634 629
635 TRACE_EVENT_WITH_FLOW0("loading", "WebURLLoaderImpl::Context::Start", this, 630 TRACE_EVENT_WITH_FLOW0("loading", "WebURLLoaderImpl::Context::Start", this,
636 TRACE_EVENT_FLAG_FLOW_OUT); 631 TRACE_EVENT_FLAG_FLOW_OUT);
637 request_id_ = resource_dispatcher_->StartAsync( 632 request_id_ = resource_dispatcher_->StartAsync(
638 std::move(resource_request), request.requestorID(), task_runner_, 633 std::move(resource_request), request.requestorID(), task_runner_,
639 extra_data->frame_origin(), 634 extra_data->frame_origin(),
640 base::MakeUnique<WebURLLoaderImpl::RequestPeerImpl>(this), 635 base::MakeUnique<WebURLLoaderImpl::RequestPeerImpl>(this),
641 request.getLoadingIPCType(), url_loader_factory_, associated_group_); 636 request.getLoadingIPCType(), url_loader_factory_);
642 637
643 if (defers_loading_ != NOT_DEFERRING) 638 if (defers_loading_ != NOT_DEFERRING)
644 resource_dispatcher_->SetDefersLoading(request_id_, true); 639 resource_dispatcher_->SetDefersLoading(request_id_, true);
645 } 640 }
646 641
647 void WebURLLoaderImpl::Context::SetTaskRunner( 642 void WebURLLoaderImpl::Context::SetTaskRunner(
648 const scoped_refptr<base::SingleThreadTaskRunner>& task_runner) { 643 const scoped_refptr<base::SingleThreadTaskRunner>& task_runner) {
649 task_runner_ = task_runner; 644 task_runner_ = task_runner;
650 } 645 }
651 646
(...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after
1029 int64_t total_transfer_size, 1024 int64_t total_transfer_size,
1030 int64_t encoded_body_size) { 1025 int64_t encoded_body_size) {
1031 context_->OnCompletedRequest(error_code, was_ignored_by_handler, 1026 context_->OnCompletedRequest(error_code, was_ignored_by_handler,
1032 stale_copy_in_cache, completion_time, 1027 stale_copy_in_cache, completion_time,
1033 total_transfer_size, encoded_body_size); 1028 total_transfer_size, encoded_body_size);
1034 } 1029 }
1035 1030
1036 // WebURLLoaderImpl ----------------------------------------------------------- 1031 // WebURLLoaderImpl -----------------------------------------------------------
1037 1032
1038 WebURLLoaderImpl::WebURLLoaderImpl(ResourceDispatcher* resource_dispatcher, 1033 WebURLLoaderImpl::WebURLLoaderImpl(ResourceDispatcher* resource_dispatcher,
1039 mojom::URLLoaderFactory* url_loader_factory, 1034 mojom::URLLoaderFactory* url_loader_factory)
1040 mojo::AssociatedGroup* associated_group) 1035 : context_(new Context(this, resource_dispatcher, url_loader_factory)) {}
1041 : context_(new Context(this,
1042 resource_dispatcher,
1043 url_loader_factory,
1044 associated_group)) {}
1045 1036
1046 WebURLLoaderImpl::~WebURLLoaderImpl() { 1037 WebURLLoaderImpl::~WebURLLoaderImpl() {
1047 cancel(); 1038 cancel();
1048 } 1039 }
1049 1040
1050 void WebURLLoaderImpl::PopulateURLResponse(const GURL& url, 1041 void WebURLLoaderImpl::PopulateURLResponse(const GURL& url,
1051 const ResourceResponseInfo& info, 1042 const ResourceResponseInfo& info,
1052 WebURLResponse* response, 1043 WebURLResponse* response,
1053 bool report_security_info) { 1044 bool report_security_info) {
1054 response->setURL(url); 1045 response->setURL(url);
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
1261 int intra_priority_value) { 1252 int intra_priority_value) {
1262 context_->DidChangePriority(new_priority, intra_priority_value); 1253 context_->DidChangePriority(new_priority, intra_priority_value);
1263 } 1254 }
1264 1255
1265 void WebURLLoaderImpl::setLoadingTaskRunner( 1256 void WebURLLoaderImpl::setLoadingTaskRunner(
1266 base::SingleThreadTaskRunner* loading_task_runner) { 1257 base::SingleThreadTaskRunner* loading_task_runner) {
1267 context_->SetTaskRunner(loading_task_runner); 1258 context_->SetTaskRunner(loading_task_runner);
1268 } 1259 }
1269 1260
1270 } // namespace content 1261 } // namespace content
OLDNEW
« no previous file with comments | « content/child/web_url_loader_impl.h ('k') | content/child/web_url_loader_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698