OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/extensions/settings/settings_api.h" | 5 #include "chrome/browser/extensions/settings/settings_api.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/values.h" | 8 #include "base/values.h" |
9 #include "chrome/browser/extensions/extension_service.h" | 9 #include "chrome/browser/extensions/extension_service.h" |
10 #include "chrome/browser/extensions/extensions_quota_service.h" | 10 #include "chrome/browser/extensions/extensions_quota_service.h" |
11 #include "chrome/browser/extensions/settings/settings_api.h" | 11 #include "chrome/browser/extensions/settings/settings_api.h" |
12 #include "chrome/browser/extensions/settings/settings_frontend.h" | 12 #include "chrome/browser/extensions/settings/settings_frontend.h" |
13 #include "chrome/browser/profiles/profile.h" | 13 #include "chrome/browser/profiles/profile.h" |
| 14 #include "chrome/common/extensions/api/storage.h" |
14 #include "content/public/browser/browser_thread.h" | 15 #include "content/public/browser/browser_thread.h" |
15 | 16 |
16 namespace extensions { | 17 namespace extensions { |
17 | 18 |
18 using content::BrowserThread; | 19 using content::BrowserThread; |
19 | 20 |
20 namespace { | 21 namespace { |
21 const char* kUnsupportedArgumentType = "Unsupported argument type"; | 22 const char* kUnsupportedArgumentType = "Unsupported argument type"; |
22 } // namespace | 23 } // namespace |
23 | 24 |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
111 for (DictionaryValue::key_iterator it = dict.begin_keys(); | 112 for (DictionaryValue::key_iterator it = dict.begin_keys(); |
112 it != dict.end_keys(); ++it) { | 113 it != dict.end_keys(); ++it) { |
113 keys.push_back(*it); | 114 keys.push_back(*it); |
114 } | 115 } |
115 return keys; | 116 return keys; |
116 } | 117 } |
117 | 118 |
118 // Creates quota heuristics for settings modification. | 119 // Creates quota heuristics for settings modification. |
119 static void GetModificationQuotaLimitHeuristics( | 120 static void GetModificationQuotaLimitHeuristics( |
120 QuotaLimitHeuristics* heuristics) { | 121 QuotaLimitHeuristics* heuristics) { |
121 // A max of 1000 operations per hour. | |
122 QuotaLimitHeuristic::Config longLimitConfig = { | 122 QuotaLimitHeuristic::Config longLimitConfig = { |
123 1000, | 123 // See storage.json for current value. |
124 base::TimeDelta::FromHours(1) | 124 api::storage::sync::MAX_WRITE_OPERATIONS_PER_HOUR, |
| 125 base::TimeDelta::FromHours(1) |
125 }; | 126 }; |
126 heuristics->push_back( | 127 heuristics->push_back( |
127 new ExtensionsQuotaService::TimedLimit( | 128 new ExtensionsQuotaService::TimedLimit( |
128 longLimitConfig, new QuotaLimitHeuristic::SingletonBucketMapper())); | 129 longLimitConfig, new QuotaLimitHeuristic::SingletonBucketMapper())); |
129 | 130 |
130 // A max of 10 operations per minute, sustained over 10 minutes. | 131 // A max of 10 operations per minute, sustained over 10 minutes. |
131 QuotaLimitHeuristic::Config shortLimitConfig = { | 132 QuotaLimitHeuristic::Config shortLimitConfig = { |
132 10, | 133 // See storage.json for current value. |
133 base::TimeDelta::FromMinutes(1) | 134 api::storage::sync::MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE, |
| 135 base::TimeDelta::FromMinutes(1) |
134 }; | 136 }; |
135 heuristics->push_back( | 137 heuristics->push_back( |
136 new ExtensionsQuotaService::SustainedLimit( | 138 new ExtensionsQuotaService::SustainedLimit( |
137 base::TimeDelta::FromMinutes(10), | 139 base::TimeDelta::FromMinutes(10), |
138 shortLimitConfig, | 140 shortLimitConfig, |
139 new QuotaLimitHeuristic::SingletonBucketMapper())); | 141 new QuotaLimitHeuristic::SingletonBucketMapper())); |
140 }; | 142 }; |
141 | 143 |
142 } // namespace | 144 } // namespace |
143 | 145 |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
262 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); | 264 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
263 return UseWriteResult(storage->Clear()); | 265 return UseWriteResult(storage->Clear()); |
264 } | 266 } |
265 | 267 |
266 void ClearSettingsFunction::GetQuotaLimitHeuristics( | 268 void ClearSettingsFunction::GetQuotaLimitHeuristics( |
267 QuotaLimitHeuristics* heuristics) const { | 269 QuotaLimitHeuristics* heuristics) const { |
268 GetModificationQuotaLimitHeuristics(heuristics); | 270 GetModificationQuotaLimitHeuristics(heuristics); |
269 } | 271 } |
270 | 272 |
271 } // namespace extensions | 273 } // namespace extensions |
OLD | NEW |