diff options
author | hanxi <hanxi@chromium.org> | 2015-05-05 12:55:00 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-05-05 19:55:32 +0000 |
commit | 9bd85fa04bbd8bda27f47d88d8389efb6a26d034 (patch) | |
tree | 2772a84670a9f9fb782ed04e9860080e73aaa12e /extensions/browser/user_script_loader.cc | |
parent | 134cdb8c234847ebde156e46cad95be3221dc66b (diff) | |
download | chromium_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.cc | 11 |
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, |