Home | History | Annotate | Download | only in extensions
      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/declarative_user_script_master.h"
      6 
      7 #include <set>
      8 
      9 #include "chrome/browser/profiles/profile.h"
     10 #include "extensions/browser/extension_registry.h"
     11 
     12 namespace extensions {
     13 
     14 DeclarativeUserScriptMaster::DeclarativeUserScriptMaster(
     15     Profile* profile,
     16     const ExtensionId& extension_id)
     17     : extension_id_(extension_id),
     18       loader_(profile,
     19               extension_id,
     20               false /* listen_for_extension_system_loaded */),
     21       extension_registry_observer_(this) {
     22   extension_registry_observer_.Add(ExtensionRegistry::Get(profile));
     23 }
     24 
     25 DeclarativeUserScriptMaster::~DeclarativeUserScriptMaster() {
     26 }
     27 
     28 void DeclarativeUserScriptMaster::OnExtensionUnloaded(
     29     content::BrowserContext* browser_context,
     30     const Extension* extension,
     31     UnloadedExtensionInfo::Reason reason) {
     32   if (extension_id_ == extension->id())
     33     ClearScripts();
     34 }
     35 
     36 void DeclarativeUserScriptMaster::AddScript(const UserScript& script) {
     37   std::set<UserScript> set;
     38   set.insert(script);
     39   loader_.AddScripts(set);
     40 }
     41 
     42 void DeclarativeUserScriptMaster::RemoveScript(const UserScript& script) {
     43   std::set<UserScript> set;
     44   set.insert(script);
     45   loader_.RemoveScripts(set);
     46 }
     47 
     48 void DeclarativeUserScriptMaster::ClearScripts() {
     49   loader_.ClearScripts();
     50 }
     51 
     52 }  // namespace extensions
     53