OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/activity_log/activity_log.h" | 5 #include "chrome/browser/extensions/activity_log/activity_log.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
147 {Action::ACTION_DOM_ACCESS, "Location.assign", 0, NONE, NULL}, | 147 {Action::ACTION_DOM_ACCESS, "Location.assign", 0, NONE, NULL}, |
148 {Action::ACTION_DOM_ACCESS, "Location.replace", 0, NONE, NULL}, | 148 {Action::ACTION_DOM_ACCESS, "Location.replace", 0, NONE, NULL}, |
149 {Action::ACTION_DOM_ACCESS, "Window.location", 0, NONE, NULL}, | 149 {Action::ACTION_DOM_ACCESS, "Window.location", 0, NONE, NULL}, |
150 {Action::ACTION_DOM_ACCESS, "XMLHttpRequest.open", 1, NONE, NULL}}; | 150 {Action::ACTION_DOM_ACCESS, "XMLHttpRequest.open", 1, NONE, NULL}}; |
151 | 151 |
152 // A singleton class which provides lookups into the kApiInfoTable data | 152 // A singleton class which provides lookups into the kApiInfoTable data |
153 // structure. It inserts all data into a map on first lookup. | 153 // structure. It inserts all data into a map on first lookup. |
154 class ApiInfoDatabase { | 154 class ApiInfoDatabase { |
155 public: | 155 public: |
156 static ApiInfoDatabase* GetInstance() { | 156 static ApiInfoDatabase* GetInstance() { |
157 return Singleton<ApiInfoDatabase>::get(); | 157 return base::Singleton<ApiInfoDatabase>::get(); |
158 } | 158 } |
159 | 159 |
160 // Retrieves an ApiInfo record for the given Action type. Returns either a | 160 // Retrieves an ApiInfo record for the given Action type. Returns either a |
161 // pointer to the record, or NULL if no such record was found. | 161 // pointer to the record, or NULL if no such record was found. |
162 const ApiInfo* Lookup(Action::ActionType action_type, | 162 const ApiInfo* Lookup(Action::ActionType action_type, |
163 const std::string& api_name) const { | 163 const std::string& api_name) const { |
164 std::map<std::string, const ApiInfo*>::const_iterator i = | 164 std::map<std::string, const ApiInfo*>::const_iterator i = |
165 api_database_.find(api_name); | 165 api_database_.find(api_name); |
166 if (i == api_database_.end()) | 166 if (i == api_database_.end()) |
167 return NULL; | 167 return NULL; |
168 if (i->second->action_type != action_type) | 168 if (i->second->action_type != action_type) |
169 return NULL; | 169 return NULL; |
170 return i->second; | 170 return i->second; |
171 } | 171 } |
172 | 172 |
173 private: | 173 private: |
174 ApiInfoDatabase() { | 174 ApiInfoDatabase() { |
175 for (size_t i = 0; i < arraysize(kApiInfoTable); i++) { | 175 for (size_t i = 0; i < arraysize(kApiInfoTable); i++) { |
176 const ApiInfo* info = &kApiInfoTable[i]; | 176 const ApiInfo* info = &kApiInfoTable[i]; |
177 api_database_[info->api_name] = info; | 177 api_database_[info->api_name] = info; |
178 } | 178 } |
179 } | 179 } |
180 virtual ~ApiInfoDatabase() {} | 180 virtual ~ApiInfoDatabase() {} |
181 | 181 |
182 // The map is keyed by API name only, since API names aren't be repeated | 182 // The map is keyed by API name only, since API names aren't be repeated |
183 // across multiple action types in kApiInfoTable. However, the action type | 183 // across multiple action types in kApiInfoTable. However, the action type |
184 // should still be checked before returning a positive match. | 184 // should still be checked before returning a positive match. |
185 std::map<std::string, const ApiInfo*> api_database_; | 185 std::map<std::string, const ApiInfo*> api_database_; |
186 | 186 |
187 friend struct DefaultSingletonTraits<ApiInfoDatabase>; | 187 friend struct base::DefaultSingletonTraits<ApiInfoDatabase>; |
188 DISALLOW_COPY_AND_ASSIGN(ApiInfoDatabase); | 188 DISALLOW_COPY_AND_ASSIGN(ApiInfoDatabase); |
189 }; | 189 }; |
190 | 190 |
191 // Gets the URL for a given tab ID. Helper method for ExtractUrls. Returns | 191 // Gets the URL for a given tab ID. Helper method for ExtractUrls. Returns |
192 // true if able to perform the lookup. The URL is stored to *url, and | 192 // true if able to perform the lookup. The URL is stored to *url, and |
193 // *is_incognito is set to indicate whether the URL is for an incognito tab. | 193 // *is_incognito is set to indicate whether the URL is for an incognito tab. |
194 bool GetUrlForTabId(int tab_id, | 194 bool GetUrlForTabId(int tab_id, |
195 Profile* profile, | 195 Profile* profile, |
196 GURL* url, | 196 GURL* url, |
197 bool* is_incognito) { | 197 bool* is_incognito) { |
(...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
656 database_policy_->DeleteDatabase(); | 656 database_policy_->DeleteDatabase(); |
657 } | 657 } |
658 | 658 |
659 template <> | 659 template <> |
660 void BrowserContextKeyedAPIFactory<ActivityLog>::DeclareFactoryDependencies() { | 660 void BrowserContextKeyedAPIFactory<ActivityLog>::DeclareFactoryDependencies() { |
661 DependsOn(ExtensionsBrowserClient::Get()->GetExtensionSystemFactory()); | 661 DependsOn(ExtensionsBrowserClient::Get()->GetExtensionSystemFactory()); |
662 DependsOn(ExtensionRegistryFactory::GetInstance()); | 662 DependsOn(ExtensionRegistryFactory::GetInstance()); |
663 } | 663 } |
664 | 664 |
665 } // namespace extensions | 665 } // namespace extensions |
OLD | NEW |