Commit bf8cd947 authored by Kenichi Ishibashi's avatar Kenichi Ishibashi Committed by Commit Bot

Introduce helper function for FetchClientSettingsObject conversions

Conversions between WebFetchClientSettingsObject and
mojom::FetchClientSettingsObject will be needed for shared/service
workers in addition to dedicated workers. Introduce a helper function
to avoid duplication of these conversions.

This CL does not have behavioral changes.

Bug: 937177
Change-Id: I6cef87d510b41ae31087c71a90c6b704049bb20f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1846622
Commit-Queue: Kenichi Ishibashi <bashi@chromium.org>
Reviewed-by: default avatarHiroki Nakagawa <nhiroki@chromium.org>
Cr-Commit-Position: refs/heads/master@{#704493}
parent 4e1a85f5
......@@ -326,6 +326,8 @@ target(link_target_type, "renderer") {
"worker/dedicated_worker_host_factory_client.h",
"worker/embedded_shared_worker_stub.cc",
"worker/embedded_shared_worker_stub.h",
"worker/fetch_client_settings_object_helpers.cc",
"worker/fetch_client_settings_object_helpers.h",
"worker/shared_worker_factory_impl.cc",
"worker/shared_worker_factory_impl.h",
"worker/worker_thread_registry.cc",
......
......@@ -9,6 +9,7 @@
#include "content/renderer/loader/navigation_response_override_parameters.h"
#include "content/renderer/loader/web_worker_fetch_context_impl.h"
#include "content/renderer/service_worker/service_worker_provider_context.h"
#include "content/renderer/worker/fetch_client_settings_object_helpers.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/mojom/blob/blob_url_store.mojom.h"
......@@ -55,20 +56,9 @@ void DedicatedWorkerHostFactoryClient::CreateWorkerHost(
mojo::ScopedMessagePipeHandle blob_url_token) {
DCHECK(base::FeatureList::IsEnabled(blink::features::kPlzDedicatedWorker));
// TODO(bashi): Create a helper function that converts
// WebFetchClientSettingsObject to mojom::FetchClientSettingsObject.
auto outside_fetch_client_settings_object =
blink::mojom::FetchClientSettingsObject::New();
outside_fetch_client_settings_object->referrer_policy =
fetch_client_settings_object.referrer_policy;
outside_fetch_client_settings_object->outgoing_referrer =
fetch_client_settings_object.outgoing_referrer;
outside_fetch_client_settings_object->insecure_requests_policy =
fetch_client_settings_object.insecure_requests_policy;
factory_->CreateWorkerHostAndStartScriptLoad(
script_url, script_origin, credentials_mode,
std::move(outside_fetch_client_settings_object),
FetchClientSettingsObjectFromWebToMojom(fetch_client_settings_object),
mojo::PendingRemote<blink::mojom::BlobURLToken>(
std::move(blob_url_token), blink::mojom::BlobURLToken::Version_),
receiver_.BindNewPipeAndPassRemote(),
......
// 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/worker/fetch_client_settings_object_helpers.h"
#include "third_party/blink/public/platform/web_fetch_client_settings_object.h"
namespace content {
blink::mojom::FetchClientSettingsObjectPtr
FetchClientSettingsObjectFromWebToMojom(
const blink::WebFetchClientSettingsObject& web_settings_object) {
return blink::mojom::FetchClientSettingsObject::New(
web_settings_object.referrer_policy,
web_settings_object.outgoing_referrer,
web_settings_object.insecure_requests_policy);
}
} // 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_WORKER_FETCH_CLIENT_SETTINGS_OBJECT_HELPERS_H_
#define CONTENT_RENDERER_WORKER_FETCH_CLIENT_SETTINGS_OBJECT_HELPERS_H_
#include "third_party/blink/public/mojom/loader/fetch_client_settings_object.mojom.h"
namespace blink {
struct WebFetchClientSettingsObject;
} // namespace blink
namespace content {
// Helper functions for converting FetchClientSettingsObject variants.
// TODO(bashi): Remove these helpers when the Onion Soup is done.
blink::mojom::FetchClientSettingsObjectPtr
FetchClientSettingsObjectFromWebToMojom(
const blink::WebFetchClientSettingsObject& web_settings_object);
} // namespace content
#endif // CONTENT_RENDERER_WORKER_FETCH_CLIENT_SETTINGS_OBJECT_HELPERS_H_
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