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

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

Issue 1656933003: Add origins argument to registerForeignFetchScopes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address comments Created 4 years, 10 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
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/service_worker/service_worker_version.h" 5 #include "content/browser/service_worker/service_worker_version.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <map> 9 #include <map>
10 #include <string> 10 #include <string>
(...skipping 1319 matching lines...) Expand 10 before | Expand all | Expand 10 after
1330 embedded_worker_->SendMessage(ServiceWorkerMsg_ClaimClientsError( 1330 embedded_worker_->SendMessage(ServiceWorkerMsg_ClaimClientsError(
1331 request_id, blink::WebServiceWorkerError::ErrorTypeAbort, 1331 request_id, blink::WebServiceWorkerError::ErrorTypeAbort,
1332 base::ASCIIToUTF16(kClaimClientsShutdownErrorMesage))); 1332 base::ASCIIToUTF16(kClaimClientsShutdownErrorMesage)));
1333 } 1333 }
1334 1334
1335 void ServiceWorkerVersion::OnPongFromWorker() { 1335 void ServiceWorkerVersion::OnPongFromWorker() {
1336 ping_controller_->OnPongReceived(); 1336 ping_controller_->OnPongReceived();
1337 } 1337 }
1338 1338
1339 void ServiceWorkerVersion::OnRegisterForeignFetchScopes( 1339 void ServiceWorkerVersion::OnRegisterForeignFetchScopes(
1340 const std::vector<GURL>& sub_scopes) { 1340 const std::vector<GURL>& sub_scopes,
1341 const std::vector<GURL>& origins) {
1341 DCHECK(status() == INSTALLING || status() == REDUNDANT) << status(); 1342 DCHECK(status() == INSTALLING || status() == REDUNDANT) << status();
1342 // Renderer should have already verified all these urls are inside the 1343 // Renderer should have already verified all these urls are inside the
1343 // worker's scope, but verify again here on the browser process side. 1344 // worker's scope, but verify again here on the browser process side.
1344 GURL origin = scope_.GetOrigin(); 1345 GURL origin = scope_.GetOrigin();
1345 std::string scope_path = scope_.path(); 1346 std::string scope_path = scope_.path();
1346 for (const GURL& url : sub_scopes) { 1347 for (const GURL& url : sub_scopes) {
1347 if (!url.is_valid() || url.GetOrigin() != origin || 1348 if (!url.is_valid() || url.GetOrigin() != origin ||
1348 !base::StartsWith(url.path(), scope_path, 1349 !base::StartsWith(url.path(), scope_path,
1349 base::CompareCase::SENSITIVE)) { 1350 base::CompareCase::SENSITIVE)) {
1350 DVLOG(1) << "Received unexpected invalid URL from renderer process."; 1351 DVLOG(1) << "Received unexpected invalid URL from renderer process.";
1351 BrowserThread::PostTask( 1352 BrowserThread::PostTask(
1352 BrowserThread::UI, FROM_HERE, 1353 BrowserThread::UI, FROM_HERE,
1353 base::Bind(&KillEmbeddedWorkerProcess, embedded_worker_->process_id(), 1354 base::Bind(&KillEmbeddedWorkerProcess, embedded_worker_->process_id(),
1354 RESULT_CODE_KILLED_BAD_MESSAGE)); 1355 RESULT_CODE_KILLED_BAD_MESSAGE));
1355 return; 1356 return;
1356 } 1357 }
1357 } 1358 }
1358 foreign_fetch_scopes_.insert(foreign_fetch_scopes_.end(), sub_scopes.begin(), 1359 for (const GURL& url : origins) {
1359 sub_scopes.end()); 1360 if (!url.is_valid()) {
1361 DVLOG(1) << "Received unexpected invalid URL from renderer process.";
1362 BrowserThread::PostTask(
1363 BrowserThread::UI, FROM_HERE,
1364 base::Bind(&KillEmbeddedWorkerProcess, embedded_worker_->process_id(),
1365 RESULT_CODE_KILLED_BAD_MESSAGE));
1366 return;
1367 }
1368 }
1369 set_foreign_fetch_scopes(sub_scopes);
1370 set_foreign_fetch_origins(origins);
1360 } 1371 }
1361 1372
1362 void ServiceWorkerVersion::DidEnsureLiveRegistrationForStartWorker( 1373 void ServiceWorkerVersion::DidEnsureLiveRegistrationForStartWorker(
1363 const StatusCallback& callback, 1374 const StatusCallback& callback,
1364 ServiceWorkerStatusCode status, 1375 ServiceWorkerStatusCode status,
1365 const scoped_refptr<ServiceWorkerRegistration>& registration) { 1376 const scoped_refptr<ServiceWorkerRegistration>& registration) {
1366 scoped_refptr<ServiceWorkerRegistration> protect = registration; 1377 scoped_refptr<ServiceWorkerRegistration> protect = registration;
1367 if (status == SERVICE_WORKER_ERROR_NOT_FOUND) { 1378 if (status == SERVICE_WORKER_ERROR_NOT_FOUND) {
1368 // When the registration has already been deleted from the storage but its 1379 // When the registration has already been deleted from the storage but its
1369 // active worker is still controlling clients, the event should be 1380 // active worker is still controlling clients, the event should be
(...skipping 456 matching lines...) Expand 10 before | Expand all | Expand 10 after
1826 void ServiceWorkerVersion::OnBeginEvent() { 1837 void ServiceWorkerVersion::OnBeginEvent() {
1827 if (should_exclude_from_uma_ || running_status() != RUNNING || 1838 if (should_exclude_from_uma_ || running_status() != RUNNING ||
1828 idle_time_.is_null()) { 1839 idle_time_.is_null()) {
1829 return; 1840 return;
1830 } 1841 }
1831 ServiceWorkerMetrics::RecordTimeBetweenEvents(base::TimeTicks::Now() - 1842 ServiceWorkerMetrics::RecordTimeBetweenEvents(base::TimeTicks::Now() -
1832 idle_time_); 1843 idle_time_);
1833 } 1844 }
1834 1845
1835 } // namespace content 1846 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698