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

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

Issue 287843002: ServiceWorker: DB functions should return status code instead of boolean (2) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 years, 7 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 | Annotate | Revision Log
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_storage.h" 5 #include "content/browser/service_worker/service_worker_storage.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/bind_helpers.h" 9 #include "base/bind_helpers.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
11 #include "base/sequenced_task_runner.h" 11 #include "base/sequenced_task_runner.h"
12 #include "base/task_runner_util.h" 12 #include "base/task_runner_util.h"
13 #include "content/browser/service_worker/service_worker_context_core.h" 13 #include "content/browser/service_worker/service_worker_context_core.h"
14 #include "content/browser/service_worker/service_worker_disk_cache.h" 14 #include "content/browser/service_worker/service_worker_disk_cache.h"
15 #include "content/browser/service_worker/service_worker_info.h" 15 #include "content/browser/service_worker/service_worker_info.h"
16 #include "content/browser/service_worker/service_worker_registration.h" 16 #include "content/browser/service_worker/service_worker_registration.h"
17 #include "content/browser/service_worker/service_worker_utils.h" 17 #include "content/browser/service_worker/service_worker_utils.h"
18 #include "content/browser/service_worker/service_worker_version.h" 18 #include "content/browser/service_worker/service_worker_version.h"
19 #include "content/common/service_worker/service_worker_types.h" 19 #include "content/common/service_worker/service_worker_types.h"
20 #include "content/public/browser/browser_thread.h" 20 #include "content/public/browser/browser_thread.h"
21 #include "net/base/net_errors.h" 21 #include "net/base/net_errors.h"
22 #include "webkit/browser/quota/quota_manager_proxy.h" 22 #include "webkit/browser/quota/quota_manager_proxy.h"
23 23
24 namespace content { 24 namespace content {
25 25
26 namespace { 26 namespace {
27 27
28 typedef base::Callback<void( 28 typedef base::Callback<void(
29 ServiceWorkerStorage::InitialData* data, 29 ServiceWorkerStorage::InitialData* data,
30 ServiceWorkerStatusCode status)> InitializeCallback; 30 ServiceWorkerDatabase::Status status)> InitializeCallback;
31 typedef base::Callback<void( 31 typedef base::Callback<void(
32 const ServiceWorkerDatabase::RegistrationData& data, 32 const ServiceWorkerDatabase::RegistrationData& data,
33 const std::vector<ServiceWorkerDatabase::ResourceRecord>& resources, 33 const std::vector<ServiceWorkerDatabase::ResourceRecord>& resources,
34 ServiceWorkerStatusCode status)> ReadRegistrationCallback; 34 ServiceWorkerDatabase::Status status)> ReadRegistrationCallback;
35 typedef base::Callback<void( 35 typedef base::Callback<void(
36 bool origin_is_deletable, 36 bool origin_is_deletable,
37 ServiceWorkerStatusCode status)> DeleteRegistrationCallback; 37 ServiceWorkerDatabase::Status status)> DeleteRegistrationCallback;
38 38
39 void RunSoon(const tracked_objects::Location& from_here, 39 void RunSoon(const tracked_objects::Location& from_here,
40 const base::Closure& closure) { 40 const base::Closure& closure) {
41 base::MessageLoop::current()->PostTask(from_here, closure); 41 base::MessageLoop::current()->PostTask(from_here, closure);
42 } 42 }
43 43
44 void CompleteFindNow( 44 void CompleteFindNow(
45 const scoped_refptr<ServiceWorkerRegistration>& registration, 45 const scoped_refptr<ServiceWorkerRegistration>& registration,
46 ServiceWorkerStatusCode status, 46 ServiceWorkerStatusCode status,
47 const ServiceWorkerStorage::FindRegistrationCallback& callback) { 47 const ServiceWorkerStorage::FindRegistrationCallback& callback) {
(...skipping 10 matching lines...) Expand all
58 58
59 const base::FilePath::CharType kServiceWorkerDirectory[] = 59 const base::FilePath::CharType kServiceWorkerDirectory[] =
60 FILE_PATH_LITERAL("Service Worker"); 60 FILE_PATH_LITERAL("Service Worker");
61 const base::FilePath::CharType kDatabaseName[] = 61 const base::FilePath::CharType kDatabaseName[] =
62 FILE_PATH_LITERAL("Database"); 62 FILE_PATH_LITERAL("Database");
63 63
64 const int kMaxMemDiskCacheSize = 10 * 1024 * 1024; 64 const int kMaxMemDiskCacheSize = 10 * 1024 * 1024;
65 65
66 void EmptyCompletionCallback(int) {} 66 void EmptyCompletionCallback(int) {}
67 67
68 ServiceWorkerStatusCode DatabaseStatusToStatusCode(
69 ServiceWorkerDatabase::Status status) {
70 switch (status) {
71 case ServiceWorkerDatabase::STATUS_OK:
72 return SERVICE_WORKER_OK;
73 case ServiceWorkerDatabase::STATUS_ERROR_NOT_FOUND:
74 return SERVICE_WORKER_ERROR_NOT_FOUND;
75 default:
76 return SERVICE_WORKER_ERROR_FAILED;
77 }
78 }
79
68 void ReadInitialDataFromDB( 80 void ReadInitialDataFromDB(
69 ServiceWorkerDatabase* database, 81 ServiceWorkerDatabase* database,
70 scoped_refptr<base::SequencedTaskRunner> original_task_runner, 82 scoped_refptr<base::SequencedTaskRunner> original_task_runner,
71 const InitializeCallback& callback) { 83 const InitializeCallback& callback) {
72 DCHECK(database); 84 DCHECK(database);
73 scoped_ptr<ServiceWorkerStorage::InitialData> data( 85 scoped_ptr<ServiceWorkerStorage::InitialData> data(
74 new ServiceWorkerStorage::InitialData()); 86 new ServiceWorkerStorage::InitialData());
75 87
76 ServiceWorkerStatusCode status = 88 ServiceWorkerDatabase::Status status =
77 database->GetNextAvailableIds(&data->next_registration_id, 89 database->GetNextAvailableIds(&data->next_registration_id,
78 &data->next_version_id, 90 &data->next_version_id,
79 &data->next_resource_id); 91 &data->next_resource_id);
80 if (status != SERVICE_WORKER_OK) { 92 if (status != ServiceWorkerDatabase::STATUS_OK) {
81 original_task_runner->PostTask( 93 original_task_runner->PostTask(
82 FROM_HERE, base::Bind(callback, base::Owned(data.release()), status)); 94 FROM_HERE, base::Bind(callback, base::Owned(data.release()), status));
83 return; 95 return;
84 } 96 }
85 97
86 status = database->GetOriginsWithRegistrations(&data->origins); 98 status = database->GetOriginsWithRegistrations(&data->origins);
87 original_task_runner->PostTask( 99 original_task_runner->PostTask(
88 FROM_HERE, base::Bind(callback, base::Owned(data.release()), status)); 100 FROM_HERE, base::Bind(callback, base::Owned(data.release()), status));
89 } 101 }
90 102
91 void ReadRegistrationFromDB( 103 void ReadRegistrationFromDB(
92 ServiceWorkerDatabase* database, 104 ServiceWorkerDatabase* database,
93 scoped_refptr<base::SequencedTaskRunner> original_task_runner, 105 scoped_refptr<base::SequencedTaskRunner> original_task_runner,
94 int64 registration_id, 106 int64 registration_id,
95 const GURL& origin, 107 const GURL& origin,
96 const ReadRegistrationCallback& callback) { 108 const ReadRegistrationCallback& callback) {
97 DCHECK(database); 109 DCHECK(database);
98 ServiceWorkerDatabase::RegistrationData data; 110 ServiceWorkerDatabase::RegistrationData data;
99 std::vector<ServiceWorkerDatabase::ResourceRecord> resources; 111 std::vector<ServiceWorkerDatabase::ResourceRecord> resources;
100 112
101 // TODO(nhiroki): The database should return more detailed status like 113 // TODO(nhiroki): The database should return more detailed status like
102 // ServiceWorkerStatusCode instead of bool value. 114 // ServiceWorkerStatusCode instead of bool value.
103 ServiceWorkerStatusCode status = SERVICE_WORKER_OK; 115 ServiceWorkerDatabase::Status status = ServiceWorkerDatabase::STATUS_OK;
104 if (!database->ReadRegistration(registration_id, origin, &data, &resources)) { 116 if (!database->ReadRegistration(registration_id, origin, &data, &resources)) {
105 status = database->is_disabled() ? SERVICE_WORKER_ERROR_FAILED 117 status = database->is_disabled()
106 : SERVICE_WORKER_ERROR_NOT_FOUND; 118 ? ServiceWorkerDatabase::STATUS_ERROR_FAILED
119 : ServiceWorkerDatabase::STATUS_ERROR_NOT_FOUND;
107 } 120 }
108 original_task_runner->PostTask( 121 original_task_runner->PostTask(
109 FROM_HERE, base::Bind(callback, data, resources, status)); 122 FROM_HERE, base::Bind(callback, data, resources, status));
110 } 123 }
111 124
112 void DeleteRegistrationFromDB( 125 void DeleteRegistrationFromDB(
113 ServiceWorkerDatabase* database, 126 ServiceWorkerDatabase* database,
114 scoped_refptr<base::SequencedTaskRunner> original_task_runner, 127 scoped_refptr<base::SequencedTaskRunner> original_task_runner,
115 int64 registration_id, 128 int64 registration_id,
116 const GURL& origin, 129 const GURL& origin,
117 const DeleteRegistrationCallback& callback) { 130 const DeleteRegistrationCallback& callback) {
118 DCHECK(database); 131 DCHECK(database);
119 if (!database->DeleteRegistration(registration_id, origin)) { 132 if (!database->DeleteRegistration(registration_id, origin)) {
120 original_task_runner->PostTask( 133 original_task_runner->PostTask(
121 FROM_HERE, base::Bind(callback, false, SERVICE_WORKER_ERROR_FAILED)); 134 FROM_HERE, base::Bind(callback, false,
135 ServiceWorkerDatabase::STATUS_ERROR_FAILED));
122 return; 136 return;
123 } 137 }
124 138
125 // TODO(nhiroki): Add convenient method to ServiceWorkerDatabase to check the 139 // TODO(nhiroki): Add convenient method to ServiceWorkerDatabase to check the
126 // unique origin list. 140 // unique origin list.
127 std::vector<ServiceWorkerDatabase::RegistrationData> registrations; 141 std::vector<ServiceWorkerDatabase::RegistrationData> registrations;
128 if (!database->GetRegistrationsForOrigin(origin, &registrations)) { 142 ServiceWorkerDatabase::Status status =
143 database->GetRegistrationsForOrigin(origin, &registrations);
144 if (status != ServiceWorkerDatabase::STATUS_OK) {
129 original_task_runner->PostTask( 145 original_task_runner->PostTask(
130 FROM_HERE, base::Bind(callback, false, SERVICE_WORKER_ERROR_FAILED)); 146 FROM_HERE, base::Bind(callback, false, status));
131 return; 147 return;
132 } 148 }
133 149
134 bool deletable = registrations.empty(); 150 bool deletable = registrations.empty();
135 original_task_runner->PostTask( 151 original_task_runner->PostTask(
136 FROM_HERE, base::Bind(callback, deletable, SERVICE_WORKER_OK)); 152 FROM_HERE, base::Bind(callback, deletable,
153 ServiceWorkerDatabase::STATUS_OK));
137 } 154 }
138 155
139 void UpdateToActiveStateInDB( 156 void UpdateToActiveStateInDB(
140 ServiceWorkerDatabase* database, 157 ServiceWorkerDatabase* database,
141 scoped_refptr<base::SequencedTaskRunner> original_task_runner, 158 scoped_refptr<base::SequencedTaskRunner> original_task_runner,
142 int64 registration_id, 159 int64 registration_id,
143 const GURL& origin, 160 const GURL& origin,
144 const ServiceWorkerStorage::StatusCallback& callback) { 161 const ServiceWorkerStorage::StatusCallback& callback) {
145 DCHECK(database); 162 DCHECK(database);
146 163
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after
492 base::Bind(&ReadInitialDataFromDB, 509 base::Bind(&ReadInitialDataFromDB,
493 database_.get(), 510 database_.get(),
494 base::MessageLoopProxy::current(), 511 base::MessageLoopProxy::current(),
495 base::Bind(&ServiceWorkerStorage::DidReadInitialData, 512 base::Bind(&ServiceWorkerStorage::DidReadInitialData,
496 weak_factory_.GetWeakPtr()))); 513 weak_factory_.GetWeakPtr())));
497 return false; 514 return false;
498 } 515 }
499 516
500 void ServiceWorkerStorage::DidReadInitialData( 517 void ServiceWorkerStorage::DidReadInitialData(
501 InitialData* data, 518 InitialData* data,
502 ServiceWorkerStatusCode status) { 519 ServiceWorkerDatabase::Status status) {
503 DCHECK(data); 520 DCHECK(data);
504 DCHECK_EQ(INITIALIZING, state_); 521 DCHECK_EQ(INITIALIZING, state_);
505 522
506 if (status == SERVICE_WORKER_OK) { 523 if (status == ServiceWorkerDatabase::STATUS_OK) {
507 next_registration_id_ = data->next_registration_id; 524 next_registration_id_ = data->next_registration_id;
508 next_version_id_ = data->next_version_id; 525 next_version_id_ = data->next_version_id;
509 next_resource_id_ = data->next_resource_id; 526 next_resource_id_ = data->next_resource_id;
510 registered_origins_.swap(data->origins); 527 registered_origins_.swap(data->origins);
511 state_ = INITIALIZED; 528 state_ = INITIALIZED;
512 } else { 529 } else {
513 // TODO(nhiroki): If status==SERVICE_WORKER_ERROR_DB_CORRUPTED, do 530 // TODO(nhiroki): If status==STATUS_ERROR_CORRUPTED, do corruption recovery
514 // corruption recovery (http://crbug.com/371675). 531 // (http://crbug.com/371675).
515 DLOG(WARNING) << "Failed to initialize: " 532 DLOG(WARNING) << "Failed to initialize: " << status;
516 << ServiceWorkerStatusToString(status);
517 state_ = DISABLED; 533 state_ = DISABLED;
518 } 534 }
519 535
520 for (std::vector<base::Closure>::const_iterator it = pending_tasks_.begin(); 536 for (std::vector<base::Closure>::const_iterator it = pending_tasks_.begin();
521 it != pending_tasks_.end(); ++it) { 537 it != pending_tasks_.end(); ++it) {
522 RunSoon(FROM_HERE, *it); 538 RunSoon(FROM_HERE, *it);
523 } 539 }
524 pending_tasks_.clear(); 540 pending_tasks_.clear();
525 } 541 }
526 542
527 void ServiceWorkerStorage::DidGetRegistrationsForPattern( 543 void ServiceWorkerStorage::DidGetRegistrationsForPattern(
528 const GURL& scope, 544 const GURL& scope,
529 const FindRegistrationCallback& callback, 545 const FindRegistrationCallback& callback,
530 RegistrationList* registrations, 546 RegistrationList* registrations,
531 bool success) { 547 ServiceWorkerDatabase::Status status) {
532 DCHECK(registrations); 548 DCHECK(registrations);
533 if (!success) { 549 if (status != ServiceWorkerDatabase::STATUS_OK) {
550 // TODO(nhiroki): Handle database error (http://crbug.com/371675).
534 callback.Run(SERVICE_WORKER_ERROR_FAILED, 551 callback.Run(SERVICE_WORKER_ERROR_FAILED,
535 scoped_refptr<ServiceWorkerRegistration>()); 552 scoped_refptr<ServiceWorkerRegistration>());
536 return; 553 return;
537 } 554 }
538 555
539 // Find one with a matching scope. 556 // Find one with a matching scope.
540 for (RegistrationList::const_iterator it = registrations->begin(); 557 for (RegistrationList::const_iterator it = registrations->begin();
541 it != registrations->end(); ++it) { 558 it != registrations->end(); ++it) {
542 if (scope == it->scope) { 559 if (scope == it->scope) {
543 scoped_refptr<ServiceWorkerRegistration> registration = 560 scoped_refptr<ServiceWorkerRegistration> registration =
(...skipping 14 matching lines...) Expand all
558 } 575 }
559 576
560 callback.Run(SERVICE_WORKER_ERROR_NOT_FOUND, 577 callback.Run(SERVICE_WORKER_ERROR_NOT_FOUND,
561 scoped_refptr<ServiceWorkerRegistration>()); 578 scoped_refptr<ServiceWorkerRegistration>());
562 } 579 }
563 580
564 void ServiceWorkerStorage::DidGetRegistrationsForDocument( 581 void ServiceWorkerStorage::DidGetRegistrationsForDocument(
565 const GURL& document_url, 582 const GURL& document_url,
566 const FindRegistrationCallback& callback, 583 const FindRegistrationCallback& callback,
567 RegistrationList* registrations, 584 RegistrationList* registrations,
568 bool success) { 585 ServiceWorkerDatabase::Status status) {
569 DCHECK(registrations); 586 DCHECK(registrations);
570 if (!success) { 587 if (status != ServiceWorkerDatabase::STATUS_OK) {
588 // TODO(nhiroki): Handle database error (http://crbug.com/371675).
571 callback.Run(SERVICE_WORKER_ERROR_FAILED, 589 callback.Run(SERVICE_WORKER_ERROR_FAILED,
572 scoped_refptr<ServiceWorkerRegistration>()); 590 scoped_refptr<ServiceWorkerRegistration>());
573 return; 591 return;
574 } 592 }
575 593
576 // Find one with a pattern match. 594 // Find one with a pattern match.
577 for (RegistrationList::const_iterator it = registrations->begin(); 595 for (RegistrationList::const_iterator it = registrations->begin();
578 it != registrations->end(); ++it) { 596 it != registrations->end(); ++it) {
579 // TODO(michaeln): if there are multiple matches the one with 597 // TODO(michaeln): if there are multiple matches the one with
580 // the longest scope should win. 598 // the longest scope should win.
(...skipping 20 matching lines...) Expand all
601 } 619 }
602 620
603 callback.Run(SERVICE_WORKER_ERROR_NOT_FOUND, 621 callback.Run(SERVICE_WORKER_ERROR_NOT_FOUND,
604 scoped_refptr<ServiceWorkerRegistration>()); 622 scoped_refptr<ServiceWorkerRegistration>());
605 } 623 }
606 624
607 void ServiceWorkerStorage::DidReadRegistrationForId( 625 void ServiceWorkerStorage::DidReadRegistrationForId(
608 const FindRegistrationCallback& callback, 626 const FindRegistrationCallback& callback,
609 const ServiceWorkerDatabase::RegistrationData& registration, 627 const ServiceWorkerDatabase::RegistrationData& registration,
610 const ResourceList& resources, 628 const ResourceList& resources,
611 ServiceWorkerStatusCode status) { 629 ServiceWorkerDatabase::Status status) {
612 if (status == SERVICE_WORKER_OK) { 630 if (status == ServiceWorkerDatabase::STATUS_OK) {
613 callback.Run(status, CreateRegistration(registration)); 631 callback.Run(SERVICE_WORKER_OK, CreateRegistration(registration));
614 return; 632 return;
615 } 633 }
616 634
617 if (status == SERVICE_WORKER_ERROR_NOT_FOUND) { 635 if (status == ServiceWorkerDatabase::STATUS_ERROR_NOT_FOUND) {
618 // Look for somthing currently being installed. 636 // Look for somthing currently being installed.
619 scoped_refptr<ServiceWorkerRegistration> installing_registration = 637 scoped_refptr<ServiceWorkerRegistration> installing_registration =
620 FindInstallingRegistrationForId(registration.registration_id); 638 FindInstallingRegistrationForId(registration.registration_id);
621 if (installing_registration) { 639 if (installing_registration) {
622 callback.Run(SERVICE_WORKER_OK, installing_registration); 640 callback.Run(SERVICE_WORKER_OK, installing_registration);
623 return; 641 return;
624 } 642 }
625 callback.Run(SERVICE_WORKER_ERROR_NOT_FOUND, 643 callback.Run(SERVICE_WORKER_ERROR_NOT_FOUND,
626 scoped_refptr<ServiceWorkerRegistration>()); 644 scoped_refptr<ServiceWorkerRegistration>());
627 return; 645 return;
628 } 646 }
629 647
630 callback.Run(status, scoped_refptr<ServiceWorkerRegistration>()); 648 callback.Run(DatabaseStatusToStatusCode(status),
649 scoped_refptr<ServiceWorkerRegistration>());
631 return; 650 return;
632 } 651 }
633 652
634 void ServiceWorkerStorage::DidGetAllRegistrations( 653 void ServiceWorkerStorage::DidGetAllRegistrations(
635 const GetAllRegistrationInfosCallback& callback, 654 const GetAllRegistrationInfosCallback& callback,
636 RegistrationList* registrations, 655 RegistrationList* registrations,
637 bool success) { 656 ServiceWorkerDatabase::Status status) {
638 DCHECK(registrations); 657 DCHECK(registrations);
639 if (!success) { 658 if (status != ServiceWorkerDatabase::STATUS_OK) {
659 // TODO(nhiroki): Handle database error (http://crbug.com/371675).
640 callback.Run(std::vector<ServiceWorkerRegistrationInfo>()); 660 callback.Run(std::vector<ServiceWorkerRegistrationInfo>());
641 return; 661 return;
642 } 662 }
643 663
644 // Add all stored registrations. 664 // Add all stored registrations.
645 std::set<int64> pushed_registrations; 665 std::set<int64> pushed_registrations;
646 std::vector<ServiceWorkerRegistrationInfo> infos; 666 std::vector<ServiceWorkerRegistrationInfo> infos;
647 for (RegistrationList::const_iterator it = registrations->begin(); 667 for (RegistrationList::const_iterator it = registrations->begin();
648 it != registrations->end(); ++it) { 668 it != registrations->end(); ++it) {
649 DCHECK(pushed_registrations.insert(it->registration_id).second); 669 DCHECK(pushed_registrations.insert(it->registration_id).second);
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
685 return; 705 return;
686 } 706 }
687 registered_origins_.insert(origin); 707 registered_origins_.insert(origin);
688 callback.Run(SERVICE_WORKER_OK); 708 callback.Run(SERVICE_WORKER_OK);
689 } 709 }
690 710
691 void ServiceWorkerStorage::DidDeleteRegistration( 711 void ServiceWorkerStorage::DidDeleteRegistration(
692 const GURL& origin, 712 const GURL& origin,
693 const StatusCallback& callback, 713 const StatusCallback& callback,
694 bool origin_is_deletable, 714 bool origin_is_deletable,
695 ServiceWorkerStatusCode status) { 715 ServiceWorkerDatabase::Status status) {
696 if (origin_is_deletable) 716 if (origin_is_deletable)
697 registered_origins_.erase(origin); 717 registered_origins_.erase(origin);
698 callback.Run(status); 718 callback.Run(DatabaseStatusToStatusCode(status));
699 } 719 }
700 720
701 scoped_refptr<ServiceWorkerRegistration> 721 scoped_refptr<ServiceWorkerRegistration>
702 ServiceWorkerStorage::CreateRegistration( 722 ServiceWorkerStorage::CreateRegistration(
703 const ServiceWorkerDatabase::RegistrationData& data) { 723 const ServiceWorkerDatabase::RegistrationData& data) {
704 scoped_refptr<ServiceWorkerRegistration> registration( 724 scoped_refptr<ServiceWorkerRegistration> registration(
705 new ServiceWorkerRegistration( 725 new ServiceWorkerRegistration(
706 data.scope, data.script, data.registration_id, context_)); 726 data.scope, data.script, data.registration_id, context_));
707 727
708 scoped_refptr<ServiceWorkerVersion> version = 728 scoped_refptr<ServiceWorkerVersion> version =
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
771 // TODO(michaeln): Store data on disk and do error checking. 791 // TODO(michaeln): Store data on disk and do error checking.
772 disk_cache_.reset(new ServiceWorkerDiskCache); 792 disk_cache_.reset(new ServiceWorkerDiskCache);
773 int rv = disk_cache_->InitWithMemBackend( 793 int rv = disk_cache_->InitWithMemBackend(
774 kMaxMemDiskCacheSize, 794 kMaxMemDiskCacheSize,
775 base::Bind(&EmptyCompletionCallback)); 795 base::Bind(&EmptyCompletionCallback));
776 DCHECK_EQ(net::OK, rv); 796 DCHECK_EQ(net::OK, rv);
777 return disk_cache_.get(); 797 return disk_cache_.get();
778 } 798 }
779 799
780 } // namespace content 800 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/service_worker/service_worker_storage.h ('k') | content/common/service_worker/service_worker_status_code.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698