OLD | NEW |
(Empty) | |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 #include "chrome/browser/extensions/shared_user_script_master.h" |
| 6 |
| 7 #include "chrome/browser/extensions/extension_util.h" |
| 8 #include "chrome/browser/profiles/profile.h" |
| 9 #include "chrome/common/extensions/manifest_handlers/content_scripts_handler.h" |
| 10 #include "extensions/browser/extension_registry.h" |
| 11 |
| 12 namespace extensions { |
| 13 |
| 14 SharedUserScriptMaster::SharedUserScriptMaster(Profile* profile) |
| 15 : loader_(profile, |
| 16 std::string() /* owner_extension_id */, |
| 17 true /* listen_for_extension_system_loaded */), |
| 18 profile_(profile), |
| 19 extension_registry_observer_(this) { |
| 20 extension_registry_observer_.Add(ExtensionRegistry::Get(profile_)); |
| 21 } |
| 22 |
| 23 SharedUserScriptMaster::~SharedUserScriptMaster() { |
| 24 } |
| 25 |
| 26 void SharedUserScriptMaster::OnExtensionLoaded( |
| 27 content::BrowserContext* browser_context, |
| 28 const Extension* extension) { |
| 29 loader_.AddScripts(GetScriptsMetadata(extension)); |
| 30 } |
| 31 |
| 32 void SharedUserScriptMaster::OnExtensionUnloaded( |
| 33 content::BrowserContext* browser_context, |
| 34 const Extension* extension, |
| 35 UnloadedExtensionInfo::Reason reason) { |
| 36 loader_.RemoveScripts(GetScriptsMetadata(extension)); |
| 37 } |
| 38 |
| 39 const std::set<UserScript> SharedUserScriptMaster::GetScriptsMetadata( |
| 40 const Extension* extension) { |
| 41 bool incognito_enabled = util::IsIncognitoEnabled(extension->id(), profile_); |
| 42 const UserScriptList& script_list = |
| 43 ContentScriptsInfo::GetContentScripts(extension); |
| 44 std::set<UserScript> script_set; |
| 45 for (UserScriptList::const_iterator it = script_list.begin(); |
| 46 it != script_list.end(); |
| 47 ++it) { |
| 48 UserScript script = *it; |
| 49 script.set_incognito_enabled(incognito_enabled); |
| 50 script_set.insert(script); |
| 51 } |
| 52 |
| 53 return script_set; |
| 54 } |
| 55 |
| 56 } // namespace extensions |
OLD | NEW |