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

Side by Side Diff: extensions/browser/quota_service.cc

Issue 2085673002: Remove calls to MessageLoop::current() in extensions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix tests Created 4 years, 5 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 "extensions/browser/quota_service.h" 5 #include "extensions/browser/quota_service.h"
6 6
7 #include "base/message_loop/message_loop.h"
8 #include "base/stl_util.h" 7 #include "base/stl_util.h"
8 #include "base/threading/thread_task_runner_handle.h"
9 #include "extensions/browser/extension_function.h" 9 #include "extensions/browser/extension_function.h"
10 #include "extensions/common/error_utils.h" 10 #include "extensions/common/error_utils.h"
11 11
12 namespace { 12 namespace {
13 13
14 // If the browser stays open long enough, we reset state once a day. 14 // If the browser stays open long enough, we reset state once a day.
15 // Whatever this value is, it should be an order of magnitude longer than 15 // Whatever this value is, it should be an order of magnitude longer than
16 // the longest interval in any of the QuotaLimitHeuristics in use. 16 // the longest interval in any of the QuotaLimitHeuristics in use.
17 const int kPurgeIntervalInDays = 1; 17 constexpr int kPurgeIntervalInDays = 1;
18 18
19 const char kOverQuotaError[] = "This request exceeds the * quota."; 19 constexpr char kOverQuotaError[] = "This request exceeds the * quota.";
20
21 bool g_purge_disabled_for_testing = false;
20 22
21 } // namespace 23 } // namespace
22 24
23 namespace extensions { 25 namespace extensions {
24 26
25 QuotaService::QuotaService() { 27 QuotaService::QuotaService() {
26 if (base::MessageLoop::current() != NULL) { // Null in unit tests. 28 if (!g_purge_disabled_for_testing && base::ThreadTaskRunnerHandle::IsSet()) {
27 purge_timer_.Start(FROM_HERE, 29 purge_timer_.Start(FROM_HERE,
28 base::TimeDelta::FromDays(kPurgeIntervalInDays), 30 base::TimeDelta::FromDays(kPurgeIntervalInDays),
29 this, 31 this,
30 &QuotaService::Purge); 32 &QuotaService::Purge);
31 } 33 }
32 } 34 }
33 35
34 QuotaService::~QuotaService() { 36 QuotaService::~QuotaService() {
35 DCHECK(CalledOnValidThread()); 37 DCHECK(CalledOnValidThread());
36 purge_timer_.Stop(); 38 purge_timer_.Stop();
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 } 71 }
70 72
71 if (!failed_heuristic) 73 if (!failed_heuristic)
72 return std::string(); 74 return std::string();
73 75
74 std::string error = failed_heuristic->GetError(); 76 std::string error = failed_heuristic->GetError();
75 DCHECK_GT(error.length(), 0u); 77 DCHECK_GT(error.length(), 0u);
76 return error; 78 return error;
77 } 79 }
78 80
81 QuotaService::ScopedDisablePurgeForTesting::ScopedDisablePurgeForTesting() {
82 DCHECK(!g_purge_disabled_for_testing);
83 g_purge_disabled_for_testing = true;
84 }
85
86 QuotaService::ScopedDisablePurgeForTesting::~ScopedDisablePurgeForTesting() {
87 DCHECK(g_purge_disabled_for_testing);
88 g_purge_disabled_for_testing = false;
89 }
90
79 void QuotaService::PurgeFunctionHeuristicsMap(FunctionHeuristicsMap* map) { 91 void QuotaService::PurgeFunctionHeuristicsMap(FunctionHeuristicsMap* map) {
80 FunctionHeuristicsMap::iterator heuristics = map->begin(); 92 FunctionHeuristicsMap::iterator heuristics = map->begin();
81 while (heuristics != map->end()) { 93 while (heuristics != map->end()) {
82 STLDeleteElements(&heuristics->second); 94 STLDeleteElements(&heuristics->second);
83 map->erase(heuristics++); 95 map->erase(heuristics++);
84 } 96 }
85 } 97 }
86 98
87 void QuotaService::Purge() { 99 void QuotaService::Purge() {
88 DCHECK(CalledOnValidThread()); 100 DCHECK(CalledOnValidThread());
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 142
131 bool QuotaService::TimedLimit::Apply(Bucket* bucket, 143 bool QuotaService::TimedLimit::Apply(Bucket* bucket,
132 const base::TimeTicks& event_time) { 144 const base::TimeTicks& event_time) {
133 if (event_time > bucket->expiration()) 145 if (event_time > bucket->expiration())
134 bucket->Reset(config(), event_time); 146 bucket->Reset(config(), event_time);
135 147
136 return bucket->DeductToken(); 148 return bucket->DeductToken();
137 } 149 }
138 150
139 } // namespace extensions 151 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698