summaryrefslogtreecommitdiffstats
path: root/extensions/browser/user_script_loader.cc
diff options
context:
space:
mode:
authorhanxi <hanxi@chromium.org>2015-05-05 12:55:00 -0700
committerCommit bot <commit-bot@chromium.org>2015-05-05 19:55:32 +0000
commit9bd85fa04bbd8bda27f47d88d8389efb6a26d034 (patch)
tree2772a84670a9f9fb782ed04e9860080e73aaa12e /extensions/browser/user_script_loader.cc
parent134cdb8c234847ebde156e46cad95be3221dc66b (diff)
downloadchromium_src-9bd85fa04bbd8bda27f47d88d8389efb6a26d034.zip
chromium_src-9bd85fa04bbd8bda27f47d88d8389efb6a26d034.tar.gz
chromium_src-9bd85fa04bbd8bda27f47d88d8389efb6a26d034.tar.bz2
Add callback in UserScriptLoader to notify users when scripts are loaded.
BUG=461052, 482446 Review URL: https://codereview.chromium.org/1110143002 Cr-Commit-Position: refs/heads/master@{#328385}
Diffstat (limited to 'extensions/browser/user_script_loader.cc')
-rw-r--r--extensions/browser/user_script_loader.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/extensions/browser/user_script_loader.cc b/extensions/browser/user_script_loader.cc
index 94b2c07..7daf95d 100644
--- a/extensions/browser/user_script_loader.cc
+++ b/extensions/browser/user_script_loader.cc
@@ -154,6 +154,7 @@ UserScriptLoader::UserScriptLoader(BrowserContext* browser_context,
}
UserScriptLoader::~UserScriptLoader() {
+ FOR_EACH_OBSERVER(Observer, observers_, OnUserScriptLoaderDestroyed(this));
}
void UserScriptLoader::AddScripts(const std::set<UserScript>& scripts) {
@@ -317,6 +318,14 @@ scoped_ptr<base::SharedMemory> UserScriptLoader::Serialize(
/*read_only=*/true));
}
+void UserScriptLoader::AddObserver(Observer* observer) {
+ observers_.AddObserver(observer);
+}
+
+void UserScriptLoader::RemoveObserver(Observer* observer) {
+ observers_.RemoveObserver(observer);
+}
+
void UserScriptLoader::SetReady(bool ready) {
bool was_ready = ready_;
ready_ = ready;
@@ -358,10 +367,12 @@ void UserScriptLoader::OnScriptsLoaded(
}
changed_hosts_.clear();
+ // TODO(hanxi): Remove the NOTIFICATION_USER_SCRIPTS_UPDATED.
content::NotificationService::current()->Notify(
extensions::NOTIFICATION_USER_SCRIPTS_UPDATED,
content::Source<BrowserContext>(browser_context_),
content::Details<base::SharedMemory>(shared_memory_.get()));
+ FOR_EACH_OBSERVER(Observer, observers_, OnScriptsLoaded(this));
}
void UserScriptLoader::SendUpdate(content::RenderProcessHost* process,