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

Unified Diff: content/browser/service_worker/service_worker_fetch_dispatcher.cc

Issue 2660423002: M57: service worker: Add UMA for navigation preload response timing. (Closed)
Patch Set: Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/service_worker/service_worker_fetch_dispatcher.cc
diff --git a/content/browser/service_worker/service_worker_fetch_dispatcher.cc b/content/browser/service_worker/service_worker_fetch_dispatcher.cc
index 85cf9d7db3ad27aae10f29f51f41cb6f0955f03d..5cf2c8e08d1cacfa82a25a0ef689c235dbae8bd2 100644
--- a/content/browser/service_worker/service_worker_fetch_dispatcher.cc
+++ b/content/browser/service_worker/service_worker_fetch_dispatcher.cc
@@ -73,8 +73,11 @@ class DelegatingURLLoader final : public mojom::URLLoader {
// wrapped client.
class DelegatingURLLoaderClient final : public mojom::URLLoaderClient {
public:
- explicit DelegatingURLLoaderClient(mojom::URLLoaderClientPtr client)
- : binding_(this), client_(std::move(client)) {}
+ explicit DelegatingURLLoaderClient(mojom::URLLoaderClientPtr client,
+ base::OnceClosure on_response)
+ : binding_(this),
+ client_(std::move(client)),
+ on_response_(std::move(on_response)) {}
~DelegatingURLLoaderClient() override {
if (!completed_) {
// Let the service worker know that the request has been canceled.
@@ -97,6 +100,8 @@ class DelegatingURLLoaderClient final : public mojom::URLLoaderClient {
const ResourceResponseHead& head,
mojom::DownloadedTempFilePtr downloaded_file) override {
client_->OnReceiveResponse(head, std::move(downloaded_file));
+ DCHECK(on_response_);
+ std::move(on_response_).Run();
}
void OnReceiveRedirect(const net::RedirectInfo& redirect_info,
const ResourceResponseHead& head) override {
@@ -120,6 +125,7 @@ class DelegatingURLLoaderClient final : public mojom::URLLoaderClient {
private:
mojo::AssociatedBinding<mojom::URLLoaderClient> binding_;
mojom::URLLoaderClientPtr client_;
+ base::OnceClosure on_response_;
bool completed_ = false;
DISALLOW_COPY_AND_ASSIGN(DelegatingURLLoaderClient);
@@ -402,7 +408,8 @@ void ServiceWorkerFetchDispatcher::Complete(
}
bool ServiceWorkerFetchDispatcher::MaybeStartNavigationPreload(
- net::URLRequest* original_request) {
+ net::URLRequest* original_request,
+ base::OnceClosure on_response) {
if (resource_type_ != RESOURCE_TYPE_MAIN_FRAME &&
resource_type_ != RESOURCE_TYPE_SUB_FRAME) {
return false;
@@ -476,7 +483,7 @@ bool ServiceWorkerFetchDispatcher::MaybeStartNavigationPreload(
preload_handle_->url_loader_client_request =
mojo::MakeRequest(&url_loader_client_ptr);
auto url_loader_client = base::MakeUnique<DelegatingURLLoaderClient>(
- std::move(url_loader_client_ptr));
+ std::move(url_loader_client_ptr), std::move(on_response));
mojom::URLLoaderClientAssociatedPtrInfo url_loader_client_associated_ptr_info;
url_loader_client->Bind(&url_loader_client_associated_ptr_info,
url_loader_factory.associated_group());

Powered by Google App Engine
This is Rietveld 408576698