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

Side by Side Diff: content/renderer/service_worker/service_worker_fetch_context_info_impl.cc

Issue 2701753003: [WIP] off-main-thread loading
Patch Set: small fix Created 3 years, 8 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
(Empty)
1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "content/renderer/service_worker/service_worker_fetch_context_info_impl .h"
6
7 #include "content/child/request_extra_data.h"
8 #include "content/child/resource_dispatcher.h"
9 #include "content/child/web_url_loader_impl.h"
10
11 namespace content {
12
13 namespace {
14
15 class ServiceWorkerFetchContextImpl : public blink::WebWorkerFetchContext {
16 public:
17 ServiceWorkerFetchContextImpl(
18 mojom::WorkerFetchContextFactoryPtrInfo factory_info,
19 int service_worker_provider_id,
20 base::SingleThreadTaskRunner* loading_task_runner)
21 : service_worker_provider_id_(service_worker_provider_id),
22 resource_dispatcher_(
23 base::MakeUnique<ResourceDispatcher>(nullptr,
24 loading_task_runner)) {
25 factory_.Bind(std::move(factory_info));
26 factory_->GetURLLoaderFactory(mojo::MakeRequest(&url_loader_factory_));
27 }
28 ~ServiceWorkerFetchContextImpl() override {}
29
30 bool IsControlledByServiceWorker() const override { return false; }
31
32 blink::WebURLLoader* createURLLoader() override {
33 return new content::WebURLLoaderImpl(resource_dispatcher_.get(),
34 url_loader_factory_.get());
35 }
36 void willSendRequest(blink::WebURLRequest& request) override {
37 RequestExtraData* extra_data = new RequestExtraData();
38 extra_data->set_service_worker_provider_id(service_worker_provider_id_);
39 extra_data->set_originated_from_service_worker(true);
40 extra_data->set_initiated_in_secure_context(true);
41 request.setExtraData(extra_data);
42 }
43
44 private:
45 const int service_worker_provider_id_;
46 std::unique_ptr<ResourceDispatcher> resource_dispatcher_;
47 mojom::WorkerFetchContextFactoryPtr factory_;
48 mojom::URLLoaderFactoryAssociatedPtr url_loader_factory_;
49 };
50
51 } // namespace
52
53 ServiceWorkerFetchContextInfoImpl::ServiceWorkerFetchContextInfoImpl(
54 mojom::WorkerFetchContextFactoryPtrInfo factory_info,
55 int service_worker_provider_id)
56 : factory_info_(std::move(factory_info)),
57 service_worker_provider_id_(service_worker_provider_id) {}
58
59 ServiceWorkerFetchContextInfoImpl::~ServiceWorkerFetchContextInfoImpl() {}
60
61 std::unique_ptr<blink::WebWorkerFetchContext>
62 ServiceWorkerFetchContextInfoImpl::CreateContext(
63 base::SingleThreadTaskRunner* loading_task_runner) {
64 DCHECK(factory_info_.is_valid());
65 return base::MakeUnique<ServiceWorkerFetchContextImpl>(
66 std::move(factory_info_), service_worker_provider_id_,
67 loading_task_runner);
68 }
69
70 void ServiceWorkerFetchContextInfoImpl::setAppCacheHostID(
71 int appcache_host_id) {}
72
73 void ServiceWorkerFetchContextInfoImpl::willSendRequest(
74 blink::WebURLRequest& request) {
75 RequestExtraData* extra_data = new RequestExtraData();
76 extra_data->set_service_worker_provider_id(service_worker_provider_id_);
77 extra_data->set_originated_from_service_worker(true);
78 extra_data->set_initiated_in_secure_context(true);
79 request.setExtraData(extra_data);
80 }
81
82 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698