| Index: chrome/browser/extensions/extensions_service.cc
|
| diff --git a/chrome/browser/extensions/extensions_service.cc b/chrome/browser/extensions/extensions_service.cc
|
| index 85d4fe8f15b22ee491524d0bbb86b78f4b74270d..e1038217b8316a2e683e81902ce06bc0eb11495c 100644
|
| --- a/chrome/browser/extensions/extensions_service.cc
|
| +++ b/chrome/browser/extensions/extensions_service.cc
|
| @@ -9,6 +9,7 @@
|
| #include "base/string_util.h"
|
| #include "base/thread.h"
|
| #include "chrome/browser/browser_process.h"
|
| +#include "chrome/browser/extensions/user_script_master.h"
|
| #include "chrome/common/json_value_serializer.h"
|
| #include "chrome/common/notification_service.h"
|
|
|
| @@ -17,10 +18,12 @@
|
| const FilePath::CharType* ExtensionsService::kInstallDirectoryName =
|
| FILE_PATH_LITERAL("Extensions");
|
|
|
| -ExtensionsService::ExtensionsService(const FilePath& profile_directory)
|
| +ExtensionsService::ExtensionsService(const FilePath& profile_directory,
|
| + UserScriptMaster* user_script_master)
|
| : message_loop_(MessageLoop::current()),
|
| backend_(new ExtensionsServiceBackend),
|
| - install_directory_(profile_directory.Append(kInstallDirectoryName)) {
|
| + install_directory_(profile_directory.Append(kInstallDirectoryName)),
|
| + user_script_master_(user_script_master) {
|
| }
|
|
|
| ExtensionsService::~ExtensionsService() {
|
| @@ -53,6 +56,24 @@ void ExtensionsService::OnExtensionsLoadedFromDirectory(
|
| extensions_.insert(extensions_.end(), new_extensions->begin(),
|
| new_extensions->end());
|
|
|
| + // Tell UserScriptMaster about any scripts in the loaded extensions.
|
| + for (ExtensionList::iterator extension = extensions_.begin();
|
| + extension != extensions_.end(); ++extension) {
|
| + const UserScriptList& scripts = (*extension)->user_scripts();
|
| + for (UserScriptList::const_iterator script = scripts.begin();
|
| + script != scripts.end(); ++script) {
|
| + user_script_master_->AddLoneScript(*script);
|
| + }
|
| + }
|
| +
|
| + // Tell UserScriptMaster to also watch the extensions directory for changes
|
| + // and then kick off the first scan.
|
| + // TODO(aa): This should go away when we implement the --extension flag, since
|
| + // developing scripts in the Extensions directory will no longer be a common
|
| + // use-case.
|
| + user_script_master_->AddWatchedPath(install_directory_);
|
| + user_script_master_->StartScan();
|
| +
|
| NotificationService::current()->Notify(NOTIFY_EXTENSIONS_LOADED,
|
| NotificationService::AllSources(),
|
| Details<ExtensionList>(new_extensions));
|
|
|