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

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

Issue 2652603002: service worker: Add UMA for navigation preload response timing. (Closed)
Patch Set: ws 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..b12b3d2ae537ed8c4024463e1902c14f03c0b03e 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::Closure 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,7 @@ class DelegatingURLLoaderClient final : public mojom::URLLoaderClient {
const ResourceResponseHead& head,
mojom::DownloadedTempFilePtr downloaded_file) override {
client_->OnReceiveResponse(head, std::move(downloaded_file));
+ on_response_.Run();
}
void OnReceiveRedirect(const net::RedirectInfo& redirect_info,
const ResourceResponseHead& head) override {
@@ -120,6 +124,7 @@ class DelegatingURLLoaderClient final : public mojom::URLLoaderClient {
private:
mojo::AssociatedBinding<mojom::URLLoaderClient> binding_;
mojom::URLLoaderClientPtr client_;
+ base::Closure on_response_;
bool completed_ = false;
DISALLOW_COPY_AND_ASSIGN(DelegatingURLLoaderClient);
@@ -402,7 +407,8 @@ void ServiceWorkerFetchDispatcher::Complete(
}
bool ServiceWorkerFetchDispatcher::MaybeStartNavigationPreload(
- net::URLRequest* original_request) {
+ net::URLRequest* original_request,
+ base::Closure on_response) {
if (resource_type_ != RESOURCE_TYPE_MAIN_FRAME &&
resource_type_ != RESOURCE_TYPE_SUB_FRAME) {
return false;
@@ -476,7 +482,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