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

Unified Diff: chrome/browser/extensions/api/declarative_webrequest/webrequest_rules_registry.cc

Issue 10406013: Support extension precedences in declarative WebRequest API (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed Matt's comments Created 8 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/api/declarative_webrequest/webrequest_rules_registry.cc
diff --git a/chrome/browser/extensions/api/declarative_webrequest/webrequest_rules_registry.cc b/chrome/browser/extensions/api/declarative_webrequest/webrequest_rules_registry.cc
index 7d9bef5f48331012c6f2e478184613902e260ae9..80ab63949ccb9dc5d5f2982608758d9047bddf5e 100644
--- a/chrome/browser/extensions/api/declarative_webrequest/webrequest_rules_registry.cc
+++ b/chrome/browser/extensions/api/declarative_webrequest/webrequest_rules_registry.cc
@@ -6,11 +6,15 @@
#include "chrome/browser/extensions/api/declarative_webrequest/webrequest_condition.h"
#include "chrome/browser/extensions/api/web_request/web_request_api_helpers.h"
+#include "chrome/browser/extensions/extension_system.h"
#include "net/url_request/url_request.h"
namespace extensions {
-WebRequestRulesRegistry::WebRequestRulesRegistry() {}
+WebRequestRulesRegistry::WebRequestRulesRegistry(Profile* profile) {
+ if (profile)
+ extension_info_map_ = ExtensionSystem::Get(profile)->info_map();
+}
std::set<WebRequestRule::GlobalRuleId>
WebRequestRulesRegistry::GetMatches(net::URLRequest* request,
@@ -59,8 +63,8 @@ std::list<LinkedPtrEventResponseDelta> WebRequestRulesRegistry::CreateDeltas(
std::string WebRequestRulesRegistry::AddRulesImpl(
const std::string& extension_id,
const std::vector<linked_ptr<RulesRegistry::Rule> >& rules) {
- // TODO(battre): Retrieve this from somewhere
- base::Time extension_installation_time;
+ base::Time extension_installation_time =
+ GetExtensionInstallationTime(extension_id);
std::string error;
RulesMap new_webrequest_rules;
@@ -175,4 +179,12 @@ bool WebRequestRulesRegistry::IsEmpty() const {
WebRequestRulesRegistry::~WebRequestRulesRegistry() {}
+base::Time WebRequestRulesRegistry::GetExtensionInstallationTime(
+ const std::string& extension_id) const {
+ if (!extension_info_map_.get()) // May be NULL during testing.
+ return base::Time();
+
+ return extension_info_map_->GetInstallTime(extension_id);
+}
+
} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698