Commit 9a3a2fb3 authored by Han Leon's avatar Han Leon Committed by Commit Bot

[OnionSoup] Move service_worker_fetch_response_callback.mojom into Blink

https://chromium-review.googlesource.com/c/chromium/src/+/1155999
already decoupled service_worker_fetch_response_callback.mojom from
//content/ things, this CL just moves it from
//content/common/service_worker/ into
//third_party/blink/public/mojom/service_worker/.

BUG=789854

Change-Id: Id09ee5beb1086c57853927e2ba37115a55d97464
Reviewed-on: https://chromium-review.googlesource.com/1162991
Commit-Queue: Han Leon <leon.han@intel.com>
Reviewed-by: default avatarKinuko Yasuda <kinuko@chromium.org>
Reviewed-by: default avatarMatt Falkenhagen <falken@chromium.org>
Reviewed-by: default avatarMakoto Shimazu <shimazu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#581106}
parent 59501291
...@@ -43,7 +43,7 @@ namespace content { ...@@ -43,7 +43,7 @@ namespace content {
namespace { namespace {
void OnFetchEventCommon( void OnFetchEventCommon(
mojom::ServiceWorkerFetchResponseCallbackPtr response_callback, blink::mojom::ServiceWorkerFetchResponseCallbackPtr response_callback,
mojom::ServiceWorker::DispatchFetchEventCallback finish_callback) { mojom::ServiceWorker::DispatchFetchEventCallback finish_callback) {
auto response = blink::mojom::FetchAPIResponse::New(); auto response = blink::mojom::FetchAPIResponse::New();
response->status_code = 200; response->status_code = 200;
...@@ -266,7 +266,7 @@ class EmbeddedWorkerTestHelper::MockServiceWorker ...@@ -266,7 +266,7 @@ class EmbeddedWorkerTestHelper::MockServiceWorker
void DispatchFetchEvent( void DispatchFetchEvent(
blink::mojom::DispatchFetchEventParamsPtr params, blink::mojom::DispatchFetchEventParamsPtr params,
mojom::ServiceWorkerFetchResponseCallbackPtr response_callback, blink::mojom::ServiceWorkerFetchResponseCallbackPtr response_callback,
DispatchFetchEventCallback callback) override { DispatchFetchEventCallback callback) override {
if (!helper_) if (!helper_)
return; return;
...@@ -645,7 +645,7 @@ void EmbeddedWorkerTestHelper::OnFetchEvent( ...@@ -645,7 +645,7 @@ void EmbeddedWorkerTestHelper::OnFetchEvent(
int /* embedded_worker_id */, int /* embedded_worker_id */,
const network::ResourceRequest& /* request */, const network::ResourceRequest& /* request */,
blink::mojom::FetchEventPreloadHandlePtr /* preload_handle */, blink::mojom::FetchEventPreloadHandlePtr /* preload_handle */,
mojom::ServiceWorkerFetchResponseCallbackPtr response_callback, blink::mojom::ServiceWorkerFetchResponseCallbackPtr response_callback,
mojom::ServiceWorker::DispatchFetchEventCallback finish_callback) { mojom::ServiceWorker::DispatchFetchEventCallback finish_callback) {
// TODO(falken): In-line common into here. // TODO(falken): In-line common into here.
OnFetchEventCommon(std::move(response_callback), std::move(finish_callback)); OnFetchEventCommon(std::move(response_callback), std::move(finish_callback));
...@@ -937,7 +937,7 @@ void EmbeddedWorkerTestHelper::OnFetchEventStub( ...@@ -937,7 +937,7 @@ void EmbeddedWorkerTestHelper::OnFetchEventStub(
int embedded_worker_id, int embedded_worker_id,
const network::ResourceRequest& request, const network::ResourceRequest& request,
blink::mojom::FetchEventPreloadHandlePtr preload_handle, blink::mojom::FetchEventPreloadHandlePtr preload_handle,
mojom::ServiceWorkerFetchResponseCallbackPtr response_callback, blink::mojom::ServiceWorkerFetchResponseCallbackPtr response_callback,
mojom::ServiceWorker::DispatchFetchEventCallback finish_callback) { mojom::ServiceWorker::DispatchFetchEventCallback finish_callback) {
base::ThreadTaskRunnerHandle::Get()->PostTask( base::ThreadTaskRunnerHandle::Get()->PostTask(
FROM_HERE, FROM_HERE,
......
...@@ -198,7 +198,7 @@ class EmbeddedWorkerTestHelper { ...@@ -198,7 +198,7 @@ class EmbeddedWorkerTestHelper {
int embedded_worker_id, int embedded_worker_id,
const network::ResourceRequest& request, const network::ResourceRequest& request,
blink::mojom::FetchEventPreloadHandlePtr preload_handle, blink::mojom::FetchEventPreloadHandlePtr preload_handle,
mojom::ServiceWorkerFetchResponseCallbackPtr response_callback, blink::mojom::ServiceWorkerFetchResponseCallbackPtr response_callback,
mojom::ServiceWorker::DispatchFetchEventCallback finish_callback); mojom::ServiceWorker::DispatchFetchEventCallback finish_callback);
virtual void OnNotificationClickEvent( virtual void OnNotificationClickEvent(
const std::string& notification_id, const std::string& notification_id,
...@@ -298,7 +298,7 @@ class EmbeddedWorkerTestHelper { ...@@ -298,7 +298,7 @@ class EmbeddedWorkerTestHelper {
int embedded_worker_id, int embedded_worker_id,
const network::ResourceRequest& request, const network::ResourceRequest& request,
blink::mojom::FetchEventPreloadHandlePtr preload_handle, blink::mojom::FetchEventPreloadHandlePtr preload_handle,
mojom::ServiceWorkerFetchResponseCallbackPtr response_callback, blink::mojom::ServiceWorkerFetchResponseCallbackPtr response_callback,
mojom::ServiceWorker::DispatchFetchEventCallback finish_callback); mojom::ServiceWorker::DispatchFetchEventCallback finish_callback);
void OnNotificationClickEventStub( void OnNotificationClickEventStub(
const std::string& notification_id, const std::string& notification_id,
......
...@@ -361,11 +361,12 @@ const net::NetworkTrafficAnnotationTag kNavigationPreloadTrafficAnnotation = ...@@ -361,11 +361,12 @@ const net::NetworkTrafficAnnotationTag kNavigationPreloadTrafficAnnotation =
// ServiceWorkerVersion::StartRequest*(), and held in pending_requests_ // ServiceWorkerVersion::StartRequest*(), and held in pending_requests_
// until FinishRequest() is called. // until FinishRequest() is called.
class ServiceWorkerFetchDispatcher::ResponseCallback class ServiceWorkerFetchDispatcher::ResponseCallback
: public mojom::ServiceWorkerFetchResponseCallback { : public blink::mojom::ServiceWorkerFetchResponseCallback {
public: public:
ResponseCallback(mojom::ServiceWorkerFetchResponseCallbackRequest request, ResponseCallback(
base::WeakPtr<ServiceWorkerFetchDispatcher> fetch_dispatcher, blink::mojom::ServiceWorkerFetchResponseCallbackRequest request,
ServiceWorkerVersion* version) base::WeakPtr<ServiceWorkerFetchDispatcher> fetch_dispatcher,
ServiceWorkerVersion* version)
: binding_(this, std::move(request)), : binding_(this, std::move(request)),
fetch_dispatcher_(fetch_dispatcher), fetch_dispatcher_(fetch_dispatcher),
version_(version) {} version_(version) {}
...@@ -377,7 +378,7 @@ class ServiceWorkerFetchDispatcher::ResponseCallback ...@@ -377,7 +378,7 @@ class ServiceWorkerFetchDispatcher::ResponseCallback
fetch_event_id_ = id; fetch_event_id_ = id;
} }
// Implements mojom::ServiceWorkerFetchResponseCallback. // Implements blink::mojom::ServiceWorkerFetchResponseCallback.
void OnResponse(blink::mojom::FetchAPIResponsePtr response, void OnResponse(blink::mojom::FetchAPIResponsePtr response,
base::Time dispatch_event_time) override { base::Time dispatch_event_time) override {
HandleResponse(fetch_dispatcher_, version_, fetch_event_id_, HandleResponse(fetch_dispatcher_, version_, fetch_event_id_,
...@@ -433,7 +434,7 @@ class ServiceWorkerFetchDispatcher::ResponseCallback ...@@ -433,7 +434,7 @@ class ServiceWorkerFetchDispatcher::ResponseCallback
std::move(body_as_blob)); std::move(body_as_blob));
} }
mojo::Binding<mojom::ServiceWorkerFetchResponseCallback> binding_; mojo::Binding<blink::mojom::ServiceWorkerFetchResponseCallback> binding_;
base::WeakPtr<ServiceWorkerFetchDispatcher> fetch_dispatcher_; base::WeakPtr<ServiceWorkerFetchDispatcher> fetch_dispatcher_;
// Owns |this| via pending_requests_. // Owns |this| via pending_requests_.
ServiceWorkerVersion* version_; ServiceWorkerVersion* version_;
...@@ -578,7 +579,7 @@ void ServiceWorkerFetchDispatcher::DispatchFetchEvent() { ...@@ -578,7 +579,7 @@ void ServiceWorkerFetchDispatcher::DispatchFetchEvent() {
net_log_.BeginEvent(net::NetLogEventType::SERVICE_WORKER_FETCH_EVENT); net_log_.BeginEvent(net::NetLogEventType::SERVICE_WORKER_FETCH_EVENT);
// Set up for receiving the response. // Set up for receiving the response.
mojom::ServiceWorkerFetchResponseCallbackPtr response_callback_ptr; blink::mojom::ServiceWorkerFetchResponseCallbackPtr response_callback_ptr;
auto response_callback = std::make_unique<ResponseCallback>( auto response_callback = std::make_unique<ResponseCallback>(
mojo::MakeRequest(&response_callback_ptr), weak_factory_.GetWeakPtr(), mojo::MakeRequest(&response_callback_ptr), weak_factory_.GetWeakPtr(),
version_.get()); version_.get());
......
...@@ -97,7 +97,7 @@ class NavigationPreloadLoaderClient final ...@@ -97,7 +97,7 @@ class NavigationPreloadLoaderClient final
public: public:
NavigationPreloadLoaderClient( NavigationPreloadLoaderClient(
blink::mojom::FetchEventPreloadHandlePtr preload_handle, blink::mojom::FetchEventPreloadHandlePtr preload_handle,
mojom::ServiceWorkerFetchResponseCallbackPtr response_callback, blink::mojom::ServiceWorkerFetchResponseCallbackPtr response_callback,
mojom::ServiceWorker::DispatchFetchEventCallback finish_callback) mojom::ServiceWorker::DispatchFetchEventCallback finish_callback)
: url_loader_(std::move(preload_handle->url_loader)), : url_loader_(std::move(preload_handle->url_loader)),
binding_(this, std::move(preload_handle->url_loader_client_request)), binding_(this, std::move(preload_handle->url_loader_client_request)),
...@@ -161,7 +161,7 @@ class NavigationPreloadLoaderClient final ...@@ -161,7 +161,7 @@ class NavigationPreloadLoaderClient final
mojo::ScopedDataPipeConsumerHandle body_; mojo::ScopedDataPipeConsumerHandle body_;
// Callbacks that complete Helper::OnFetchEvent(). // Callbacks that complete Helper::OnFetchEvent().
mojom::ServiceWorkerFetchResponseCallbackPtr response_callback_; blink::mojom::ServiceWorkerFetchResponseCallbackPtr response_callback_;
mojom::ServiceWorker::DispatchFetchEventCallback finish_callback_; mojom::ServiceWorker::DispatchFetchEventCallback finish_callback_;
DISALLOW_COPY_AND_ASSIGN(NavigationPreloadLoaderClient); DISALLOW_COPY_AND_ASSIGN(NavigationPreloadLoaderClient);
...@@ -249,7 +249,7 @@ class Helper : public EmbeddedWorkerTestHelper { ...@@ -249,7 +249,7 @@ class Helper : public EmbeddedWorkerTestHelper {
int embedded_worker_id, int embedded_worker_id,
const network::ResourceRequest& request, const network::ResourceRequest& request,
blink::mojom::FetchEventPreloadHandlePtr preload_handle, blink::mojom::FetchEventPreloadHandlePtr preload_handle,
mojom::ServiceWorkerFetchResponseCallbackPtr response_callback, blink::mojom::ServiceWorkerFetchResponseCallbackPtr response_callback,
mojom::ServiceWorker::DispatchFetchEventCallback finish_callback) mojom::ServiceWorker::DispatchFetchEventCallback finish_callback)
override { override {
// Basic checks on DispatchFetchEvent parameters. // Basic checks on DispatchFetchEvent parameters.
......
...@@ -526,7 +526,7 @@ class DelayHelper : public EmbeddedWorkerTestHelper { ...@@ -526,7 +526,7 @@ class DelayHelper : public EmbeddedWorkerTestHelper {
int embedded_worker_id, int embedded_worker_id,
const network::ResourceRequest& /* request */, const network::ResourceRequest& /* request */,
blink::mojom::FetchEventPreloadHandlePtr preload_handle, blink::mojom::FetchEventPreloadHandlePtr preload_handle,
mojom::ServiceWorkerFetchResponseCallbackPtr response_callback, blink::mojom::ServiceWorkerFetchResponseCallbackPtr response_callback,
mojom::ServiceWorker::DispatchFetchEventCallback finish_callback) mojom::ServiceWorker::DispatchFetchEventCallback finish_callback)
override { override {
embedded_worker_id_ = embedded_worker_id; embedded_worker_id_ = embedded_worker_id;
...@@ -547,7 +547,7 @@ class DelayHelper : public EmbeddedWorkerTestHelper { ...@@ -547,7 +547,7 @@ class DelayHelper : public EmbeddedWorkerTestHelper {
mojom::ServiceWorkerProviderInfoForStartWorkerPtr provider_info_; mojom::ServiceWorkerProviderInfoForStartWorkerPtr provider_info_;
blink::mojom::ServiceWorkerInstalledScriptsInfoPtr installed_scripts_info_; blink::mojom::ServiceWorkerInstalledScriptsInfoPtr installed_scripts_info_;
int embedded_worker_id_ = 0; int embedded_worker_id_ = 0;
mojom::ServiceWorkerFetchResponseCallbackPtr response_callback_; blink::mojom::ServiceWorkerFetchResponseCallbackPtr response_callback_;
blink::mojom::FetchEventPreloadHandlePtr preload_handle_; blink::mojom::FetchEventPreloadHandlePtr preload_handle_;
mojom::ServiceWorker::DispatchFetchEventCallback finish_callback_; mojom::ServiceWorker::DispatchFetchEventCallback finish_callback_;
ServiceWorkerURLRequestJobTest* test_; ServiceWorkerURLRequestJobTest* test_;
...@@ -704,7 +704,7 @@ class ProviderDeleteHelper : public EmbeddedWorkerTestHelper { ...@@ -704,7 +704,7 @@ class ProviderDeleteHelper : public EmbeddedWorkerTestHelper {
int /* embedded_worker_id */, int /* embedded_worker_id */,
const network::ResourceRequest& /* request */, const network::ResourceRequest& /* request */,
blink::mojom::FetchEventPreloadHandlePtr /* preload_handle */, blink::mojom::FetchEventPreloadHandlePtr /* preload_handle */,
mojom::ServiceWorkerFetchResponseCallbackPtr response_callback, blink::mojom::ServiceWorkerFetchResponseCallbackPtr response_callback,
mojom::ServiceWorker::DispatchFetchEventCallback finish_callback) mojom::ServiceWorker::DispatchFetchEventCallback finish_callback)
override { override {
context()->RemoveProviderHost(mock_render_process_id(), kProviderID); context()->RemoveProviderHost(mock_render_process_id(), kProviderID);
...@@ -783,7 +783,7 @@ class BlobResponder : public EmbeddedWorkerTestHelper { ...@@ -783,7 +783,7 @@ class BlobResponder : public EmbeddedWorkerTestHelper {
int /* embedded_worker_id */, int /* embedded_worker_id */,
const network::ResourceRequest& /* request */, const network::ResourceRequest& /* request */,
blink::mojom::FetchEventPreloadHandlePtr /* preload_handle */, blink::mojom::FetchEventPreloadHandlePtr /* preload_handle */,
mojom::ServiceWorkerFetchResponseCallbackPtr response_callback, blink::mojom::ServiceWorkerFetchResponseCallbackPtr response_callback,
mojom::ServiceWorker::DispatchFetchEventCallback finish_callback) mojom::ServiceWorker::DispatchFetchEventCallback finish_callback)
override { override {
blink::mojom::FetchAPIResponsePtr response = MakeOkResponse(); blink::mojom::FetchAPIResponsePtr response = MakeOkResponse();
...@@ -883,7 +883,7 @@ class StreamResponder : public EmbeddedWorkerTestHelper { ...@@ -883,7 +883,7 @@ class StreamResponder : public EmbeddedWorkerTestHelper {
int /* embedded_worker_id */, int /* embedded_worker_id */,
const network::ResourceRequest& /* request */, const network::ResourceRequest& /* request */,
blink::mojom::FetchEventPreloadHandlePtr /* preload_handle */, blink::mojom::FetchEventPreloadHandlePtr /* preload_handle */,
mojom::ServiceWorkerFetchResponseCallbackPtr response_callback, blink::mojom::ServiceWorkerFetchResponseCallbackPtr response_callback,
mojom::ServiceWorker::DispatchFetchEventCallback finish_callback) mojom::ServiceWorker::DispatchFetchEventCallback finish_callback)
override { override {
ASSERT_FALSE(stream_handle_.is_null()); ASSERT_FALSE(stream_handle_.is_null());
...@@ -1266,7 +1266,8 @@ class FailFetchHelper : public EmbeddedWorkerTestHelper { ...@@ -1266,7 +1266,8 @@ class FailFetchHelper : public EmbeddedWorkerTestHelper {
int embedded_worker_id, int embedded_worker_id,
const network::ResourceRequest& /* request */, const network::ResourceRequest& /* request */,
blink::mojom::FetchEventPreloadHandlePtr /* preload_handle */, blink::mojom::FetchEventPreloadHandlePtr /* preload_handle */,
mojom::ServiceWorkerFetchResponseCallbackPtr /* response_callback */, blink::mojom::
ServiceWorkerFetchResponseCallbackPtr /* response_callback */,
mojom::ServiceWorker::DispatchFetchEventCallback finish_callback) mojom::ServiceWorker::DispatchFetchEventCallback finish_callback)
override { override {
SimulateWorkerStopped(embedded_worker_id); SimulateWorkerStopped(embedded_worker_id);
...@@ -1359,7 +1360,7 @@ class EarlyResponseHelper : public EmbeddedWorkerTestHelper { ...@@ -1359,7 +1360,7 @@ class EarlyResponseHelper : public EmbeddedWorkerTestHelper {
int /* embedded_worker_id */, int /* embedded_worker_id */,
const network::ResourceRequest& /* request */, const network::ResourceRequest& /* request */,
blink::mojom::FetchEventPreloadHandlePtr /* preload_handle */, blink::mojom::FetchEventPreloadHandlePtr /* preload_handle */,
mojom::ServiceWorkerFetchResponseCallbackPtr response_callback, blink::mojom::ServiceWorkerFetchResponseCallbackPtr response_callback,
mojom::ServiceWorker::DispatchFetchEventCallback finish_callback) mojom::ServiceWorker::DispatchFetchEventCallback finish_callback)
override { override {
finish_callback_ = std::move(finish_callback); finish_callback_ = std::move(finish_callback);
......
...@@ -548,7 +548,6 @@ mojom("mojo_bindings") { ...@@ -548,7 +548,6 @@ mojom("mojo_bindings") {
"service_worker/embedded_worker.mojom", "service_worker/embedded_worker.mojom",
"service_worker/service_worker.mojom", "service_worker/service_worker.mojom",
"service_worker/service_worker_container.mojom", "service_worker/service_worker_container.mojom",
"service_worker/service_worker_fetch_response_callback.mojom",
"service_worker/service_worker_provider.mojom", "service_worker/service_worker_provider.mojom",
"shared_worker/shared_worker.mojom", "shared_worker/shared_worker.mojom",
"shared_worker/shared_worker_client.mojom", "shared_worker/shared_worker_client.mojom",
......
...@@ -5,11 +5,11 @@ ...@@ -5,11 +5,11 @@
module content.mojom; module content.mojom;
import "content/common/service_worker/service_worker.mojom"; import "content/common/service_worker/service_worker.mojom";
import "content/common/service_worker/service_worker_fetch_response_callback.mojom";
import "mojo/public/mojom/base/time.mojom"; import "mojo/public/mojom/base/time.mojom";
import "services/network/public/mojom/url_loader.mojom"; import "services/network/public/mojom/url_loader.mojom";
import "third_party/blink/public/mojom/service_worker/dispatch_fetch_event_params.mojom"; import "third_party/blink/public/mojom/service_worker/dispatch_fetch_event_params.mojom";
import "third_party/blink/public/mojom/service_worker/service_worker_event_status.mojom"; import "third_party/blink/public/mojom/service_worker/service_worker_event_status.mojom";
import "third_party/blink/public/mojom/service_worker/service_worker_fetch_response_callback.mojom";
import "third_party/blink/public/mojom/service_worker/service_worker_object.mojom"; import "third_party/blink/public/mojom/service_worker/service_worker_object.mojom";
import "third_party/blink/public/platform/modules/fetch/fetch_api_request.mojom"; import "third_party/blink/public/platform/modules/fetch/fetch_api_request.mojom";
...@@ -37,8 +37,9 @@ interface ControllerServiceWorker { ...@@ -37,8 +37,9 @@ interface ControllerServiceWorker {
// handler ran and all outstanding respondWith() and waitUntil() promises have // handler ran and all outstanding respondWith() and waitUntil() promises have
// settled. |response_callback| is called once the promise to respondWith() // settled. |response_callback| is called once the promise to respondWith()
// settles, or when the event handler ran without calling respondWith(). // settles, or when the event handler ran without calling respondWith().
DispatchFetchEvent(blink.mojom.DispatchFetchEventParams params, DispatchFetchEvent(
ServiceWorkerFetchResponseCallback response_callback) blink.mojom.DispatchFetchEventParams params,
blink.mojom.ServiceWorkerFetchResponseCallback response_callback)
=> (blink.mojom.ServiceWorkerEventStatus status, => (blink.mojom.ServiceWorkerEventStatus status,
mojo_base.mojom.Time dispatch_event_time); mojo_base.mojom.Time dispatch_event_time);
......
...@@ -4,7 +4,6 @@ ...@@ -4,7 +4,6 @@
module content.mojom; module content.mojom;
import "content/common/service_worker/service_worker_fetch_response_callback.mojom";
import "mojo/public/mojom/base/string16.mojom"; import "mojo/public/mojom/base/string16.mojom";
import "mojo/public/mojom/base/time.mojom"; import "mojo/public/mojom/base/time.mojom";
import "services/network/public/mojom/cookie_manager.mojom"; import "services/network/public/mojom/cookie_manager.mojom";
...@@ -16,6 +15,7 @@ import "third_party/blink/public/mojom/service_worker/dispatch_fetch_event_param ...@@ -16,6 +15,7 @@ import "third_party/blink/public/mojom/service_worker/dispatch_fetch_event_param
import "third_party/blink/public/mojom/service_worker/service_worker.mojom"; import "third_party/blink/public/mojom/service_worker/service_worker.mojom";
import "third_party/blink/public/mojom/service_worker/service_worker_client.mojom"; import "third_party/blink/public/mojom/service_worker/service_worker_client.mojom";
import "third_party/blink/public/mojom/service_worker/service_worker_event_status.mojom"; import "third_party/blink/public/mojom/service_worker/service_worker_event_status.mojom";
import "third_party/blink/public/mojom/service_worker/service_worker_fetch_response_callback.mojom";
import "third_party/blink/public/mojom/service_worker/service_worker_object.mojom"; import "third_party/blink/public/mojom/service_worker/service_worker_object.mojom";
import "third_party/blink/public/mojom/service_worker/service_worker_registration.mojom"; import "third_party/blink/public/mojom/service_worker/service_worker_registration.mojom";
import "url/mojom/origin.mojom"; import "url/mojom/origin.mojom";
...@@ -135,8 +135,9 @@ interface ServiceWorker { ...@@ -135,8 +135,9 @@ interface ServiceWorker {
// waitUntil() promises have settled. |response_callback| is called once the // waitUntil() promises have settled. |response_callback| is called once the
// promise to respondWith() settles, or when the event handler ran without // promise to respondWith() settles, or when the event handler ran without
// calling respondWith(). // calling respondWith().
DispatchFetchEvent(blink.mojom.DispatchFetchEventParams params, DispatchFetchEvent(
ServiceWorkerFetchResponseCallback response_callback) blink.mojom.DispatchFetchEventParams params,
blink.mojom.ServiceWorkerFetchResponseCallback response_callback)
=> (blink.mojom.ServiceWorkerEventStatus status, => (blink.mojom.ServiceWorkerEventStatus status,
mojo_base.mojom.Time dispatch_event_time); mojo_base.mojom.Time dispatch_event_time);
......
...@@ -26,7 +26,7 @@ void ControllerServiceWorkerImpl::Clone( ...@@ -26,7 +26,7 @@ void ControllerServiceWorkerImpl::Clone(
void ControllerServiceWorkerImpl::DispatchFetchEvent( void ControllerServiceWorkerImpl::DispatchFetchEvent(
blink::mojom::DispatchFetchEventParamsPtr params, blink::mojom::DispatchFetchEventParamsPtr params,
mojom::ServiceWorkerFetchResponseCallbackPtr response_callback, blink::mojom::ServiceWorkerFetchResponseCallbackPtr response_callback,
DispatchFetchEventCallback callback) { DispatchFetchEventCallback callback) {
DCHECK(context_client_); DCHECK(context_client_);
context_client_->DispatchOrQueueFetchEvent( context_client_->DispatchOrQueueFetchEvent(
......
...@@ -40,7 +40,7 @@ class ControllerServiceWorkerImpl : public mojom::ControllerServiceWorker { ...@@ -40,7 +40,7 @@ class ControllerServiceWorkerImpl : public mojom::ControllerServiceWorker {
// mojom::ControllerServiceWorker: // mojom::ControllerServiceWorker:
void DispatchFetchEvent( void DispatchFetchEvent(
blink::mojom::DispatchFetchEventParamsPtr params, blink::mojom::DispatchFetchEventParamsPtr params,
mojom::ServiceWorkerFetchResponseCallbackPtr response_callback, blink::mojom::ServiceWorkerFetchResponseCallbackPtr response_callback,
DispatchFetchEventCallback callback) override; DispatchFetchEventCallback callback) override;
void Clone(mojom::ControllerServiceWorkerRequest request) override; void Clone(mojom::ControllerServiceWorkerRequest request) override;
......
...@@ -521,7 +521,7 @@ struct ServiceWorkerContextClient::WorkerContextData { ...@@ -521,7 +521,7 @@ struct ServiceWorkerContextClient::WorkerContextData {
can_make_payment_result_callbacks; can_make_payment_result_callbacks;
std::map<int, payments::mojom::PaymentHandlerResponseCallbackPtr> std::map<int, payments::mojom::PaymentHandlerResponseCallbackPtr>
payment_response_callbacks; payment_response_callbacks;
std::map<int, mojom::ServiceWorkerFetchResponseCallbackPtr> std::map<int, blink::mojom::ServiceWorkerFetchResponseCallbackPtr>
fetch_response_callbacks; fetch_response_callbacks;
// Inflight navigation preload requests. // Inflight navigation preload requests.
...@@ -1105,7 +1105,7 @@ void ServiceWorkerContextClient::RespondToFetchEventWithNoResponse( ...@@ -1105,7 +1105,7 @@ void ServiceWorkerContextClient::RespondToFetchEventWithNoResponse(
TRACE_ID_LOCAL(fetch_event_id)), TRACE_ID_LOCAL(fetch_event_id)),
TRACE_EVENT_FLAG_FLOW_IN | TRACE_EVENT_FLAG_FLOW_OUT); TRACE_EVENT_FLAG_FLOW_IN | TRACE_EVENT_FLAG_FLOW_OUT);
DCHECK(base::ContainsKey(context_->fetch_response_callbacks, fetch_event_id)); DCHECK(base::ContainsKey(context_->fetch_response_callbacks, fetch_event_id));
const mojom::ServiceWorkerFetchResponseCallbackPtr& response_callback = const blink::mojom::ServiceWorkerFetchResponseCallbackPtr& response_callback =
context_->fetch_response_callbacks[fetch_event_id]; context_->fetch_response_callbacks[fetch_event_id];
DCHECK(response_callback.is_bound()); DCHECK(response_callback.is_bound());
response_callback->OnFallback(base::Time::FromDoubleT(event_dispatch_time)); response_callback->OnFallback(base::Time::FromDoubleT(event_dispatch_time));
...@@ -1124,7 +1124,7 @@ void ServiceWorkerContextClient::RespondToFetchEvent( ...@@ -1124,7 +1124,7 @@ void ServiceWorkerContextClient::RespondToFetchEvent(
DCHECK(base::ContainsKey(context_->fetch_response_callbacks, fetch_event_id)); DCHECK(base::ContainsKey(context_->fetch_response_callbacks, fetch_event_id));
blink::mojom::FetchAPIResponsePtr response( blink::mojom::FetchAPIResponsePtr response(
GetFetchAPIResponseFromWebResponse(web_response)); GetFetchAPIResponseFromWebResponse(web_response));
const mojom::ServiceWorkerFetchResponseCallbackPtr& response_callback = const blink::mojom::ServiceWorkerFetchResponseCallbackPtr& response_callback =
context_->fetch_response_callbacks[fetch_event_id]; context_->fetch_response_callbacks[fetch_event_id];
// TODO(leonhsl): Do not need to pass the additional |blob_ptr| via // TODO(leonhsl): Do not need to pass the additional |blob_ptr| via
...@@ -1165,7 +1165,7 @@ void ServiceWorkerContextClient::RespondToFetchEventWithResponseStream( ...@@ -1165,7 +1165,7 @@ void ServiceWorkerContextClient::RespondToFetchEventWithResponseStream(
DCHECK(base::ContainsKey(context_->fetch_response_callbacks, fetch_event_id)); DCHECK(base::ContainsKey(context_->fetch_response_callbacks, fetch_event_id));
blink::mojom::FetchAPIResponsePtr response( blink::mojom::FetchAPIResponsePtr response(
GetFetchAPIResponseFromWebResponse(web_response)); GetFetchAPIResponseFromWebResponse(web_response));
const mojom::ServiceWorkerFetchResponseCallbackPtr& response_callback = const blink::mojom::ServiceWorkerFetchResponseCallbackPtr& response_callback =
context_->fetch_response_callbacks[fetch_event_id]; context_->fetch_response_callbacks[fetch_event_id];
blink::mojom::ServiceWorkerStreamHandlePtr body_as_stream = blink::mojom::ServiceWorkerStreamHandlePtr body_as_stream =
blink::mojom::ServiceWorkerStreamHandle::New(); blink::mojom::ServiceWorkerStreamHandle::New();
...@@ -1466,7 +1466,7 @@ void ServiceWorkerContextClient::Claim( ...@@ -1466,7 +1466,7 @@ void ServiceWorkerContextClient::Claim(
void ServiceWorkerContextClient::DispatchOrQueueFetchEvent( void ServiceWorkerContextClient::DispatchOrQueueFetchEvent(
blink::mojom::DispatchFetchEventParamsPtr params, blink::mojom::DispatchFetchEventParamsPtr params,
mojom::ServiceWorkerFetchResponseCallbackPtr response_callback, blink::mojom::ServiceWorkerFetchResponseCallbackPtr response_callback,
DispatchFetchEventCallback callback) { DispatchFetchEventCallback callback) {
TRACE_EVENT2("ServiceWorker", TRACE_EVENT2("ServiceWorker",
"ServiceWorkerContextClient::DispatchOrQueueFetchEvent", "url", "ServiceWorkerContextClient::DispatchOrQueueFetchEvent", "url",
...@@ -1766,7 +1766,7 @@ void ServiceWorkerContextClient::DispatchExtendableMessageEvent( ...@@ -1766,7 +1766,7 @@ void ServiceWorkerContextClient::DispatchExtendableMessageEvent(
// S13nServiceWorker // S13nServiceWorker
void ServiceWorkerContextClient::DispatchFetchEvent( void ServiceWorkerContextClient::DispatchFetchEvent(
blink::mojom::DispatchFetchEventParamsPtr params, blink::mojom::DispatchFetchEventParamsPtr params,
mojom::ServiceWorkerFetchResponseCallbackPtr response_callback, blink::mojom::ServiceWorkerFetchResponseCallbackPtr response_callback,
DispatchFetchEventCallback callback) { DispatchFetchEventCallback callback) {
int event_id = context_->timeout_timer->StartEvent( int event_id = context_->timeout_timer->StartEvent(
CreateAbortCallback(&context_->fetch_event_callbacks)); CreateAbortCallback(&context_->fetch_event_callbacks));
......
...@@ -249,7 +249,7 @@ class CONTENT_EXPORT ServiceWorkerContextClient ...@@ -249,7 +249,7 @@ class CONTENT_EXPORT ServiceWorkerContextClient
// client, which means it is coming through the ControllerServiceWorkerImpl. // client, which means it is coming through the ControllerServiceWorkerImpl.
void DispatchOrQueueFetchEvent( void DispatchOrQueueFetchEvent(
blink::mojom::DispatchFetchEventParamsPtr params, blink::mojom::DispatchFetchEventParamsPtr params,
mojom::ServiceWorkerFetchResponseCallbackPtr response_callback, blink::mojom::ServiceWorkerFetchResponseCallbackPtr response_callback,
DispatchFetchEventCallback callback); DispatchFetchEventCallback callback);
private: private:
...@@ -305,7 +305,7 @@ class CONTENT_EXPORT ServiceWorkerContextClient ...@@ -305,7 +305,7 @@ class CONTENT_EXPORT ServiceWorkerContextClient
DispatchExtendableMessageEventCallback callback) override; DispatchExtendableMessageEventCallback callback) override;
void DispatchFetchEvent( void DispatchFetchEvent(
blink::mojom::DispatchFetchEventParamsPtr params, blink::mojom::DispatchFetchEventParamsPtr params,
mojom::ServiceWorkerFetchResponseCallbackPtr response_callback, blink::mojom::ServiceWorkerFetchResponseCallbackPtr response_callback,
DispatchFetchEventCallback callback) override; DispatchFetchEventCallback callback) override;
void DispatchNotificationClickEvent( void DispatchNotificationClickEvent(
const std::string& notification_id, const std::string& notification_id,
......
...@@ -340,11 +340,11 @@ TEST_F(ServiceWorkerContextClientTest, DispatchFetchEvent) { ...@@ -340,11 +340,11 @@ TEST_F(ServiceWorkerContextClientTest, DispatchFetchEvent) {
EXPECT_TRUE(mock_proxy.fetch_events().empty()); EXPECT_TRUE(mock_proxy.fetch_events().empty());
const GURL expected_url("https://example.com/expected"); const GURL expected_url("https://example.com/expected");
mojom::ServiceWorkerFetchResponseCallbackRequest fetch_callback_request;
auto request = std::make_unique<network::ResourceRequest>(); auto request = std::make_unique<network::ResourceRequest>();
request->url = expected_url; request->url = expected_url;
mojom::ServiceWorkerFetchResponseCallbackPtr fetch_callback_ptr; blink::mojom::ServiceWorkerFetchResponseCallbackPtr fetch_callback_ptr;
fetch_callback_request = mojo::MakeRequest(&fetch_callback_ptr); blink::mojom::ServiceWorkerFetchResponseCallbackRequest
fetch_callback_request = mojo::MakeRequest(&fetch_callback_ptr);
auto params = blink::mojom::DispatchFetchEventParams::New(); auto params = blink::mojom::DispatchFetchEventParams::New();
params->request = *request; params->request = *request;
pipes.service_worker->DispatchFetchEvent( pipes.service_worker->DispatchFetchEvent(
...@@ -377,9 +377,9 @@ TEST_F(ServiceWorkerContextClientTest, ...@@ -377,9 +377,9 @@ TEST_F(ServiceWorkerContextClientTest,
// The dispatched fetch event should be recorded by |mock_proxy|. // The dispatched fetch event should be recorded by |mock_proxy|.
const GURL expected_url("https://example.com/expected"); const GURL expected_url("https://example.com/expected");
mojom::ServiceWorkerFetchResponseCallbackPtr fetch_callback_ptr; blink::mojom::ServiceWorkerFetchResponseCallbackPtr fetch_callback_ptr;
mojom::ServiceWorkerFetchResponseCallbackRequest fetch_callback_request = blink::mojom::ServiceWorkerFetchResponseCallbackRequest
mojo::MakeRequest(&fetch_callback_ptr); fetch_callback_request = mojo::MakeRequest(&fetch_callback_ptr);
auto request = std::make_unique<network::ResourceRequest>(); auto request = std::make_unique<network::ResourceRequest>();
request->url = expected_url; request->url = expected_url;
auto params = blink::mojom::DispatchFetchEventParams::New(); auto params = blink::mojom::DispatchFetchEventParams::New();
...@@ -421,13 +421,13 @@ TEST_F(ServiceWorkerContextClientTest, ...@@ -421,13 +421,13 @@ TEST_F(ServiceWorkerContextClientTest,
EXPECT_TRUE(context_client->RequestedTermination()); EXPECT_TRUE(context_client->RequestedTermination());
const GURL expected_url("https://example.com/expected"); const GURL expected_url("https://example.com/expected");
mojom::ServiceWorkerFetchResponseCallbackRequest fetch_callback_request;
// FetchEvent dispatched directly from the controlled clients through // FetchEvent dispatched directly from the controlled clients through
// mojom::ControllerServiceWorker should be queued in the idle state. // mojom::ControllerServiceWorker should be queued in the idle state.
{ {
mojom::ServiceWorkerFetchResponseCallbackPtr fetch_callback_ptr; blink::mojom::ServiceWorkerFetchResponseCallbackPtr fetch_callback_ptr;
fetch_callback_request = mojo::MakeRequest(&fetch_callback_ptr); blink::mojom::ServiceWorkerFetchResponseCallbackRequest
fetch_callback_request = mojo::MakeRequest(&fetch_callback_ptr);
auto request = std::make_unique<network::ResourceRequest>(); auto request = std::make_unique<network::ResourceRequest>();
request->url = expected_url; request->url = expected_url;
auto params = blink::mojom::DispatchFetchEventParams::New(); auto params = blink::mojom::DispatchFetchEventParams::New();
...@@ -469,13 +469,15 @@ TEST_F(ServiceWorkerContextClientTest, ...@@ -469,13 +469,15 @@ TEST_F(ServiceWorkerContextClientTest,
const GURL expected_url_1("https://example.com/expected_1"); const GURL expected_url_1("https://example.com/expected_1");
const GURL expected_url_2("https://example.com/expected_2"); const GURL expected_url_2("https://example.com/expected_2");
mojom::ServiceWorkerFetchResponseCallbackRequest fetch_callback_request_1; blink::mojom::ServiceWorkerFetchResponseCallbackRequest
mojom::ServiceWorkerFetchResponseCallbackRequest fetch_callback_request_2; fetch_callback_request_1;
blink::mojom::ServiceWorkerFetchResponseCallbackRequest
fetch_callback_request_2;
// FetchEvent dispatched directly from the controlled clients through // FetchEvent dispatched directly from the controlled clients through
// mojom::ControllerServiceWorker should be queued in the idle state. // mojom::ControllerServiceWorker should be queued in the idle state.
{ {
mojom::ServiceWorkerFetchResponseCallbackPtr fetch_callback_ptr; blink::mojom::ServiceWorkerFetchResponseCallbackPtr fetch_callback_ptr;
fetch_callback_request_1 = mojo::MakeRequest(&fetch_callback_ptr); fetch_callback_request_1 = mojo::MakeRequest(&fetch_callback_ptr);
auto request = std::make_unique<network::ResourceRequest>(); auto request = std::make_unique<network::ResourceRequest>();
request->url = expected_url_1; request->url = expected_url_1;
...@@ -492,7 +494,7 @@ TEST_F(ServiceWorkerContextClientTest, ...@@ -492,7 +494,7 @@ TEST_F(ServiceWorkerContextClientTest,
// Another event dispatched to mojom::ServiceWorker wakes up // Another event dispatched to mojom::ServiceWorker wakes up
// the context client. // the context client.
{ {
mojom::ServiceWorkerFetchResponseCallbackPtr fetch_callback_ptr; blink::mojom::ServiceWorkerFetchResponseCallbackPtr fetch_callback_ptr;
fetch_callback_request_2 = mojo::MakeRequest(&fetch_callback_ptr); fetch_callback_request_2 = mojo::MakeRequest(&fetch_callback_ptr);
auto request = std::make_unique<network::ResourceRequest>(); auto request = std::make_unique<network::ResourceRequest>();
request->url = expected_url_2; request->url = expected_url_2;
......
...@@ -239,7 +239,7 @@ class FakeControllerServiceWorker : public mojom::ControllerServiceWorker { ...@@ -239,7 +239,7 @@ class FakeControllerServiceWorker : public mojom::ControllerServiceWorker {
// mojom::ControllerServiceWorker: // mojom::ControllerServiceWorker:
void DispatchFetchEvent( void DispatchFetchEvent(
blink::mojom::DispatchFetchEventParamsPtr params, blink::mojom::DispatchFetchEventParamsPtr params,
mojom::ServiceWorkerFetchResponseCallbackPtr response_callback, blink::mojom::ServiceWorkerFetchResponseCallbackPtr response_callback,
DispatchFetchEventCallback callback) override { DispatchFetchEventCallback callback) override {
fetch_event_count_++; fetch_event_count_++;
fetch_event_request_ = params->request; fetch_event_request_ = params->request;
......
...@@ -209,7 +209,7 @@ void ServiceWorkerSubresourceLoader::StartRequest( ...@@ -209,7 +209,7 @@ void ServiceWorkerSubresourceLoader::StartRequest(
} }
void ServiceWorkerSubresourceLoader::DispatchFetchEvent() { void ServiceWorkerSubresourceLoader::DispatchFetchEvent() {
mojom::ServiceWorkerFetchResponseCallbackPtr response_callback_ptr; blink::mojom::ServiceWorkerFetchResponseCallbackPtr response_callback_ptr;
response_callback_binding_.Bind(mojo::MakeRequest(&response_callback_ptr)); response_callback_binding_.Bind(mojo::MakeRequest(&response_callback_ptr));
mojom::ControllerServiceWorker* controller = mojom::ControllerServiceWorker* controller =
controller_connector_->GetControllerServiceWorker( controller_connector_->GetControllerServiceWorker(
......
...@@ -37,7 +37,7 @@ class ControllerServiceWorkerConnector; ...@@ -37,7 +37,7 @@ class ControllerServiceWorkerConnector;
// the main thread (while the implementation itself is thread agnostic). // the main thread (while the implementation itself is thread agnostic).
class CONTENT_EXPORT ServiceWorkerSubresourceLoader class CONTENT_EXPORT ServiceWorkerSubresourceLoader
: public network::mojom::URLLoader, : public network::mojom::URLLoader,
public mojom::ServiceWorkerFetchResponseCallback, public blink::mojom::ServiceWorkerFetchResponseCallback,
public ControllerServiceWorkerConnector::Observer { public ControllerServiceWorkerConnector::Observer {
public: public:
// See the comments for ServiceWorkerSubresourceLoaderFactory's ctor (below) // See the comments for ServiceWorkerSubresourceLoaderFactory's ctor (below)
...@@ -74,7 +74,7 @@ class CONTENT_EXPORT ServiceWorkerSubresourceLoader ...@@ -74,7 +74,7 @@ class CONTENT_EXPORT ServiceWorkerSubresourceLoader
void SettleFetchEventDispatch( void SettleFetchEventDispatch(
base::Optional<blink::ServiceWorkerStatusCode> status); base::Optional<blink::ServiceWorkerStatusCode> status);
// mojom::ServiceWorkerFetchResponseCallback overrides: // blink::mojom::ServiceWorkerFetchResponseCallback overrides:
void OnResponse(blink::mojom::FetchAPIResponsePtr response, void OnResponse(blink::mojom::FetchAPIResponsePtr response,
base::Time dispatch_event_time) override; base::Time dispatch_event_time) override;
void OnResponseBlob(blink::mojom::FetchAPIResponsePtr response, void OnResponseBlob(blink::mojom::FetchAPIResponsePtr response,
...@@ -119,7 +119,8 @@ class CONTENT_EXPORT ServiceWorkerSubresourceLoader ...@@ -119,7 +119,8 @@ class CONTENT_EXPORT ServiceWorkerSubresourceLoader
mojo::Binding<network::mojom::URLLoader> url_loader_binding_; mojo::Binding<network::mojom::URLLoader> url_loader_binding_;
// For handling FetchEvent response. // For handling FetchEvent response.
mojo::Binding<ServiceWorkerFetchResponseCallback> response_callback_binding_; mojo::Binding<blink::mojom::ServiceWorkerFetchResponseCallback>
response_callback_binding_;
// The blob needs to be held while it's read to keep it alive. // The blob needs to be held while it's read to keep it alive.
blink::mojom::BlobPtr body_as_blob_; blink::mojom::BlobPtr body_as_blob_;
......
...@@ -218,7 +218,7 @@ class FakeControllerServiceWorker : public mojom::ControllerServiceWorker { ...@@ -218,7 +218,7 @@ class FakeControllerServiceWorker : public mojom::ControllerServiceWorker {
// mojom::ControllerServiceWorker: // mojom::ControllerServiceWorker:
void DispatchFetchEvent( void DispatchFetchEvent(
blink::mojom::DispatchFetchEventParamsPtr params, blink::mojom::DispatchFetchEventParamsPtr params,
mojom::ServiceWorkerFetchResponseCallbackPtr response_callback, blink::mojom::ServiceWorkerFetchResponseCallbackPtr response_callback,
DispatchFetchEventCallback callback) override { DispatchFetchEventCallback callback) override {
EXPECT_FALSE(ServiceWorkerUtils::IsMainResourceType( EXPECT_FALSE(ServiceWorkerUtils::IsMainResourceType(
static_cast<ResourceType>(params->request.resource_type))); static_cast<ResourceType>(params->request.resource_type)));
......
...@@ -45,6 +45,7 @@ mojom("mojom_platform") { ...@@ -45,6 +45,7 @@ mojom("mojom_platform") {
"service_worker/service_worker_client.mojom", "service_worker/service_worker_client.mojom",
"service_worker/service_worker_error_type.mojom", "service_worker/service_worker_error_type.mojom",
"service_worker/service_worker_event_status.mojom", "service_worker/service_worker_event_status.mojom",
"service_worker/service_worker_fetch_response_callback.mojom",
"service_worker/service_worker_installed_scripts_manager.mojom", "service_worker/service_worker_installed_scripts_manager.mojom",
"service_worker/service_worker_provider_type.mojom", "service_worker/service_worker_provider_type.mojom",
"service_worker/service_worker_state.mojom", "service_worker/service_worker_state.mojom",
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
module content.mojom; module blink.mojom;
import "mojo/public/mojom/base/time.mojom"; import "mojo/public/mojom/base/time.mojom";
import "third_party/blink/public/mojom/blob/blob.mojom"; import "third_party/blink/public/mojom/blob/blob.mojom";
...@@ -15,17 +15,16 @@ import "third_party/blink/public/mojom/service_worker/service_worker_stream_hand ...@@ -15,17 +15,16 @@ import "third_party/blink/public/mojom/service_worker/service_worker_stream_hand
// The receiver service worker uses this interface to respond to a fetch event. // The receiver service worker uses this interface to respond to a fetch event.
interface ServiceWorkerFetchResponseCallback { interface ServiceWorkerFetchResponseCallback {
// Responds to the request with |response|. The body is empty. // Responds to the request with |response|. The body is empty.
OnResponse(blink.mojom.FetchAPIResponse response, OnResponse(FetchAPIResponse response,
mojo_base.mojom.Time dispatch_event_time); mojo_base.mojom.Time dispatch_event_time);
// Responds to the request with |response|. The body is returned as a blob. // Responds to the request with |response|. The body is returned as a blob.
// TODO(leonhsl): We can remove this method by using the above OnResponse() // TODO(leonhsl): We can remove this method by using the above OnResponse()
// transferring blob within |response|. // transferring blob within |response|.
OnResponseBlob(blink.mojom.FetchAPIResponse response, OnResponseBlob(FetchAPIResponse response, Blob body_as_blob,
blink.mojom.Blob body_as_blob,
mojo_base.mojom.Time dispatch_event_time); mojo_base.mojom.Time dispatch_event_time);
// Responds to the request with |response|. The body is returned as a stream. // Responds to the request with |response|. The body is returned as a stream.
OnResponseStream(blink.mojom.FetchAPIResponse response, OnResponseStream(FetchAPIResponse response,
blink.mojom.ServiceWorkerStreamHandle body_as_stream, ServiceWorkerStreamHandle body_as_stream,
mojo_base.mojom.Time dispatch_event_time); mojo_base.mojom.Time dispatch_event_time);
// Provides no response to the request. The callee should fall back to the // Provides no response to the request. The callee should fall back to the
// network. // network.
......
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