| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "extensions/browser/declarative_user_script_master.h" |
| |
| #include "base/memory/ptr_util.h" |
| #include "content/public/browser/browser_context.h" |
| #include "extensions/browser/extension_user_script_loader.h" |
| #include "extensions/browser/user_script_loader.h" |
| #include "extensions/browser/web_ui_user_script_loader.h" |
| #include "extensions/common/user_script.h" |
| |
| namespace extensions { |
| |
| DeclarativeUserScriptMaster::DeclarativeUserScriptMaster( |
| content::BrowserContext* browser_context, |
| const HostID& host_id) |
| : host_id_(host_id) { |
| switch (host_id_.type()) { |
| case HostID::EXTENSIONS: |
| loader_.reset(new ExtensionUserScriptLoader( |
| browser_context, host_id, |
| false /* listen_for_extension_system_loaded */)); |
| break; |
| case HostID::WEBUI: |
| loader_.reset(new WebUIUserScriptLoader(browser_context, host_id)); |
| break; |
| } |
| } |
| |
| DeclarativeUserScriptMaster::~DeclarativeUserScriptMaster() { |
| } |
| |
| void DeclarativeUserScriptMaster::AddScript( |
| std::unique_ptr<UserScript> script) { |
| std::unique_ptr<UserScriptList> scripts(new UserScriptList()); |
| scripts->push_back(std::move(script)); |
| loader_->AddScripts(std::move(scripts)); |
| } |
| |
| void DeclarativeUserScriptMaster::AddScripts( |
| std::unique_ptr<UserScriptList> scripts, |
| int render_process_id, |
| int render_view_id) { |
| loader_->AddScripts(std::move(scripts), render_process_id, render_view_id); |
| } |
| |
| void DeclarativeUserScriptMaster::RemoveScript(const UserScriptIDPair& script) { |
| std::set<UserScriptIDPair> scripts; |
| scripts.insert(script); |
| RemoveScripts(scripts); |
| } |
| |
| void DeclarativeUserScriptMaster::RemoveScripts( |
| const std::set<UserScriptIDPair>& scripts) { |
| loader_->RemoveScripts(scripts); |
| } |
| |
| void DeclarativeUserScriptMaster::ClearScripts() { |
| loader_->ClearScripts(); |
| } |
| |
| } // namespace extensions |