Commit 73d3a132 authored by Kenichi Ishibashi's avatar Kenichi Ishibashi Committed by Commit Bot

Remove some methods from WebServiceWorkerContextClient

This CL removes following two methods which were used for
on-the-main-thread service worker script fetch, which we don't
support anymore:

* CreateServiceWorkerNetworkProviderOnMainThread()
* CreateWorkerFetchContextOnMainThreadLegacy()

This CL also removes
ServiceWorkerNetworkProviderForServiceWorker as it was created
only from CreateServiceWorkerNetworkProviderOnMainThread().

Bug: 967272
Change-Id: I07d832302274cd16e60529740088bcc12cd03276
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1745674
Commit-Queue: Kenichi Ishibashi <bashi@chromium.org>
Reviewed-by: default avatarMatt Falkenhagen <falken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#685473}
parent e891e09f
......@@ -347,8 +347,6 @@ target(link_target_type, "renderer") {
"service_worker/service_worker_fetch_context_impl.h",
"service_worker/service_worker_network_provider_for_frame.cc",
"service_worker/service_worker_network_provider_for_frame.h",
"service_worker/service_worker_network_provider_for_service_worker.cc",
"service_worker/service_worker_network_provider_for_service_worker.h",
"service_worker/service_worker_provider_context.cc",
"service_worker/service_worker_provider_context.h",
"service_worker/service_worker_subresource_loader.cc",
......
......@@ -36,7 +36,6 @@
#include "content/renderer/service_worker/embedded_worker_instance_client_impl.h"
#include "content/renderer/service_worker/navigation_preload_request.h"
#include "content/renderer/service_worker/service_worker_fetch_context_impl.h"
#include "content/renderer/service_worker/service_worker_network_provider_for_service_worker.h"
#include "content/renderer/service_worker/service_worker_type_converters.h"
#include "net/base/net_errors.h"
#include "services/network/public/cpp/features.h"
......@@ -385,41 +384,6 @@ void ServiceWorkerContextClient::ReportConsoleMessage(
blink::WebStringToGURL(source_url));
}
std::unique_ptr<blink::WebServiceWorkerNetworkProvider>
ServiceWorkerContextClient::CreateServiceWorkerNetworkProviderOnMainThread() {
DCHECK(starter_thread_task_runner_->RunsTasksInCurrentSequence());
return std::make_unique<ServiceWorkerNetworkProviderForServiceWorker>(
std::move(service_worker_provider_info_->script_loader_factory_ptr_info));
}
scoped_refptr<blink::WebWorkerFetchContext>
ServiceWorkerContextClient::CreateWorkerFetchContextOnMainThreadLegacy(
blink::WebServiceWorkerNetworkProvider* provider) {
DCHECK(starter_thread_task_runner_->RunsTasksInCurrentSequence());
DCHECK(preference_watcher_request_.is_pending());
// TODO(crbug.com/796425): Temporarily wrap the raw
// mojom::URLLoaderFactory pointer into SharedURLLoaderFactory.
std::unique_ptr<network::SharedURLLoaderFactoryInfo>
script_loader_factory_info =
base::MakeRefCounted<network::WeakWrapperSharedURLLoaderFactory>(
static_cast<ServiceWorkerNetworkProviderForServiceWorker*>(
provider)
->script_loader_factory())
->Clone();
return base::MakeRefCounted<ServiceWorkerFetchContextImpl>(
*renderer_preferences_, script_url_, loader_factories_->PassInterface(),
std::move(script_loader_factory_info),
GetContentClient()->renderer()->CreateURLLoaderThrottleProvider(
URLLoaderThrottleProviderType::kWorker),
GetContentClient()
->renderer()
->CreateWebSocketHandshakeThrottleProvider(),
std::move(preference_watcher_request_),
std::move(pending_subresource_loader_updater_));
}
scoped_refptr<blink::WebWorkerFetchContext>
ServiceWorkerContextClient::CreateWorkerFetchContextOnMainThread() {
DCHECK(starter_thread_task_runner_->RunsTasksInCurrentSequence());
......
......@@ -144,11 +144,6 @@ class CONTENT_EXPORT ServiceWorkerContextClient
std::unique_ptr<blink::WebFetchEventPreloadHandle>
preload_handle) override;
void RequestTermination(RequestTerminationCallback callback) override;
std::unique_ptr<blink::WebServiceWorkerNetworkProvider>
CreateServiceWorkerNetworkProviderOnMainThread() override;
scoped_refptr<blink::WebWorkerFetchContext>
CreateWorkerFetchContextOnMainThreadLegacy(
blink::WebServiceWorkerNetworkProvider*) override;
scoped_refptr<blink::WebWorkerFetchContext>
CreateWorkerFetchContextOnMainThread() override;
......
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "content/renderer/service_worker/service_worker_network_provider_for_service_worker.h"
#include <utility>
#include "content/public/common/resource_type.h"
#include "content/public/renderer/url_loader_throttle_provider.h"
#include "content/renderer/loader/request_extra_data.h"
#include "content/renderer/loader/web_url_loader_impl.h"
#include "content/renderer/loader/web_url_request_util.h"
#include "content/renderer/render_thread_impl.h"
#include "ipc/ipc_message.h"
#include "services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h"
#include "third_party/blink/public/mojom/service_worker/service_worker_object.mojom.h"
#include "third_party/blink/public/platform/web_url.h"
#include "third_party/blink/public/platform/web_url_request.h"
namespace content {
ServiceWorkerNetworkProviderForServiceWorker::
ServiceWorkerNetworkProviderForServiceWorker(
network::mojom::URLLoaderFactoryPtrInfo script_loader_factory_info)
: script_loader_factory_(std::move(script_loader_factory_info)) {}
ServiceWorkerNetworkProviderForServiceWorker::
~ServiceWorkerNetworkProviderForServiceWorker() = default;
void ServiceWorkerNetworkProviderForServiceWorker::WillSendRequest(
blink::WebURLRequest& request) {
auto extra_data = std::make_unique<RequestExtraData>();
extra_data->set_originated_from_service_worker(true);
// The RenderThreadImpl or its URLLoaderThrottleProvider member may not be
// valid in some tests.
RenderThreadImpl* render_thread = RenderThreadImpl::current();
if (render_thread && render_thread->url_loader_throttle_provider()) {
extra_data->set_url_loader_throttles(
render_thread->url_loader_throttle_provider()->CreateThrottles(
MSG_ROUTING_NONE, request, WebURLRequestToResourceType(request)));
}
request.SetExtraData(std::move(extra_data));
}
std::unique_ptr<blink::WebURLLoader>
ServiceWorkerNetworkProviderForServiceWorker::CreateURLLoader(
const blink::WebURLRequest& request,
std::unique_ptr<blink::scheduler::WebResourceLoadingTaskRunnerHandle>
task_runner_handle) {
if (request.GetRequestContext() !=
blink::mojom::RequestContextType::SERVICE_WORKER) {
// This provider is only used for requests from the shadow page, which is
// created to load the service worker's main script. But shadow pages
// sometimes request strange things like CSS resources because consumers
// think it's a real frame. Just return nullptr to use the default loader
// instead of the script loader.
return nullptr;
}
RenderThreadImpl* render_thread = RenderThreadImpl::current();
// RenderThreadImpl may be null in some tests.
if (render_thread && script_loader_factory()) {
// TODO(crbug.com/796425): Temporarily wrap the raw
// mojom::URLLoaderFactory pointer into SharedURLLoaderFactory.
return std::make_unique<WebURLLoaderImpl>(
render_thread->resource_dispatcher(), std::move(task_runner_handle),
base::MakeRefCounted<network::WeakWrapperSharedURLLoaderFactory>(
script_loader_factory()));
}
return nullptr;
}
blink::mojom::ControllerServiceWorkerMode
ServiceWorkerNetworkProviderForServiceWorker::GetControllerServiceWorkerMode() {
return blink::mojom::ControllerServiceWorkerMode::kNoController;
}
int64_t
ServiceWorkerNetworkProviderForServiceWorker::ControllerServiceWorkerID() {
return blink::mojom::kInvalidServiceWorkerVersionId;
}
void ServiceWorkerNetworkProviderForServiceWorker::DispatchNetworkQuiet() {}
} // namespace content
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CONTENT_RENDERER_SERVICE_WORKER_SERVICE_WORKER_NETWORK_PROVIDER_FOR_SERVICE_WORKER_H_
#define CONTENT_RENDERER_SERVICE_WORKER_SERVICE_WORKER_NETWORK_PROVIDER_FOR_SERVICE_WORKER_H_
#include <memory>
#include "services/network/public/mojom/url_loader_factory.mojom.h"
#include "third_party/blink/public/platform/modules/service_worker/web_service_worker_network_provider.h"
#include "third_party/blink/public/platform/web_url_request.h"
namespace content {
// The WebServiceWorkerNetworkProvider implementation for service worker
// execution contexts.
//
// This class is only used for the main script request from the shadow page.
// Remove it when the shadow page is removed (https://crbug.com/538751).
class ServiceWorkerNetworkProviderForServiceWorker final
: public blink::WebServiceWorkerNetworkProvider {
public:
explicit ServiceWorkerNetworkProviderForServiceWorker(
network::mojom::URLLoaderFactoryPtrInfo script_loader_factory_info);
~ServiceWorkerNetworkProviderForServiceWorker() override;
// blink::WebServiceWorkerNetworkProvider:
void WillSendRequest(blink::WebURLRequest& request) override;
std::unique_ptr<blink::WebURLLoader> CreateURLLoader(
const blink::WebURLRequest& request,
std::unique_ptr<blink::scheduler::WebResourceLoadingTaskRunnerHandle>
task_runner_handle) override;
blink::mojom::ControllerServiceWorkerMode GetControllerServiceWorkerMode()
override;
int64_t ControllerServiceWorkerID() override;
void DispatchNetworkQuiet() override;
network::mojom::URLLoaderFactory* script_loader_factory() {
return script_loader_factory_.get();
}
private:
// The URL loader factory for loading the service worker's scripts.
network::mojom::URLLoaderFactoryPtr script_loader_factory_;
};
} // namespace content
#endif // CONTENT_RENDERER_SERVICE_WORKER_SERVICE_WORKER_NETWORK_PROVIDER_FOR_SERVICE_WORKER_H_
......@@ -48,11 +48,8 @@ class WebURLRequest;
//
// It is owned by DocumentLoader and only used on the main thread.
//
// Currently the Blink embedder has implementations for service worker clients
// (frames and shared workers), and service workers themselves. Note that for
// workers, the interface is only used for requests from the shadow page
// (WorkerShadowPage). For hooking into off-the-main-thread loading from
// workers, the embedder can implement WebWorkerFetchContext.
// Currently the Blink embedder has implementations for frames. For hooking
// into loading from workers, the embedder can implement WebWorkerFetchContext.
class WebServiceWorkerNetworkProvider {
public:
virtual ~WebServiceWorkerNetworkProvider() = default;
......
......@@ -50,7 +50,6 @@ class SequencedTaskRunner;
namespace blink {
class WebServiceWorkerContextProxy;
class WebServiceWorkerNetworkProvider;
class WebString;
// Used to pass the mojom struct blink.mojom.FetchEventPreloadHandle across the
......@@ -198,21 +197,6 @@ class WebServiceWorkerContextClient {
// timeout.
virtual void RequestTermination(RequestTerminationCallback) {}
// On-main-thread start up:
// Creates a network provider for the main script fetch.
// This is called on the main thread.
virtual std::unique_ptr<WebServiceWorkerNetworkProvider>
CreateServiceWorkerNetworkProviderOnMainThread() = 0;
// On-main-thread start up:
// Creates a WebWorkerFetchContext for subresource fetches on a service
// worker. This is called on the main thread.
// TODO(bashi): Remove. This is no longer used.
virtual scoped_refptr<blink::WebWorkerFetchContext>
CreateWorkerFetchContextOnMainThreadLegacy(WebServiceWorkerNetworkProvider*) {
return nullptr;
}
// Off-main-thread start up:
// Creates a WebWorkerFetchContext for subresource fetches on a service
// worker. This is called on the main thread.
......
......@@ -202,17 +202,6 @@ class MockServiceWorkerContextClient final
script_evaluated_event_.Signal();
}
std::unique_ptr<WebServiceWorkerNetworkProvider>
CreateServiceWorkerNetworkProviderOnMainThread() override {
return std::make_unique<FakeServiceWorkerNetworkProvider>();
}
scoped_refptr<WebWorkerFetchContext>
CreateWorkerFetchContextOnMainThreadLegacy(
WebServiceWorkerNetworkProvider* network_provider) override {
return base::MakeRefCounted<FakeWebWorkerFetchContext>();
}
scoped_refptr<WebWorkerFetchContext> CreateWorkerFetchContextOnMainThread()
override {
return base::MakeRefCounted<FakeWebWorkerFetchContext>();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment