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

Side by Side Diff: content/browser/service_worker/service_worker_response_info.cc

Issue 1867293004: Set service worker response info data for foreign fetch intercepted fetches. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ff-check-origin
Patch Set: address comment Created 4 years, 8 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "content/browser/service_worker/service_worker_response_info.h"
6
7 #include "content/public/common/resource_response_info.h"
8 #include "net/url_request/url_request.h"
9
10 namespace content {
11
12 namespace {
13
14 int kUserDataKey; // Only address is used, value is not important.
15
16 } // namespace
17
18 // static
19 ServiceWorkerResponseInfo* ServiceWorkerResponseInfo::ForRequest(
20 net::URLRequest* request,
21 bool create) {
22 ServiceWorkerResponseInfo* info = static_cast<ServiceWorkerResponseInfo*>(
23 request->GetUserData(&kUserDataKey));
24 if (!info && create) {
25 info = new ServiceWorkerResponseInfo();
26 request->SetUserData(&kUserDataKey, info);
27 }
28 return info;
29 }
30
31 // static
32 void ServiceWorkerResponseInfo::ResetDataForRequest(net::URLRequest* request) {
33 ServiceWorkerResponseInfo* info = ForRequest(request);
34 if (info)
35 info->ResetData();
36 }
37
38 void ServiceWorkerResponseInfo::GetExtraResponseInfo(
39 ResourceResponseInfo* response_info) const {
40 response_info->was_fetched_via_service_worker =
41 was_fetched_via_service_worker_;
42 response_info->was_fallback_required_by_service_worker =
43 was_fallback_required_;
44 response_info->original_url_via_service_worker =
45 original_url_via_service_worker_;
46 response_info->response_type_via_service_worker =
47 response_type_via_service_worker_;
48 response_info->service_worker_start_time = service_worker_start_time_;
49 response_info->service_worker_ready_time = service_worker_ready_time_;
50 response_info->is_in_cache_storage = response_is_in_cache_storage_;
51 response_info->cache_storage_cache_name = response_cache_storage_cache_name_;
52 }
53
54 void ServiceWorkerResponseInfo::OnPrepareToRestart(
55 base::TimeTicks service_worker_start_time,
56 base::TimeTicks service_worker_ready_time) {
57 ResetData();
58
59 // Update times, if not already set by a previous Job.
60 if (service_worker_start_time_.is_null()) {
61 service_worker_start_time_ = service_worker_start_time;
62 service_worker_ready_time_ = service_worker_ready_time;
63 }
64 }
65
66 void ServiceWorkerResponseInfo::OnStartCompleted(
67 bool was_fetched_via_service_worker,
68 bool was_fallback_required,
69 const GURL& original_url_via_service_worker,
70 blink::WebServiceWorkerResponseType response_type_via_service_worker,
71 base::TimeTicks service_worker_start_time,
72 base::TimeTicks service_worker_ready_time,
73 bool response_is_in_cache_storage,
74 const std::string& response_cache_storage_cache_name) {
75 was_fetched_via_service_worker_ = was_fetched_via_service_worker;
76 was_fallback_required_ = was_fallback_required;
77 original_url_via_service_worker_ = original_url_via_service_worker;
78 response_type_via_service_worker_ = response_type_via_service_worker;
79 response_is_in_cache_storage_ = response_is_in_cache_storage;
80 response_cache_storage_cache_name_ = response_cache_storage_cache_name;
81
82 // Update times, if not already set by a previous Job.
83 if (service_worker_start_time_.is_null()) {
84 service_worker_start_time_ = service_worker_start_time;
85 service_worker_ready_time_ = service_worker_ready_time;
86 }
87 }
88
89 void ServiceWorkerResponseInfo::ResetData() {
90 was_fetched_via_service_worker_ = false;
91 was_fallback_required_ = false;
92 original_url_via_service_worker_ = GURL();
93 response_type_via_service_worker_ =
94 blink::WebServiceWorkerResponseTypeDefault;
95 response_is_in_cache_storage_ = false;
96 response_cache_storage_cache_name_ = std::string();
97 }
98
99 ServiceWorkerResponseInfo::ServiceWorkerResponseInfo() {}
100
101 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698