| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/extensions/extension_system.h" | 5 #include "chrome/browser/extensions/extension_system.h" |
| 6 | 6 |
| 7 #include "base/base_switches.h" | 7 #include "base/base_switches.h" |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/file_path.h" | 10 #include "base/file_path.h" |
| 11 #include "base/string_tokenizer.h" | 11 #include "base/strings/string_tokenizer.h" |
| 12 #include "chrome/browser/browser_process.h" | 12 #include "chrome/browser/browser_process.h" |
| 13 #include "chrome/browser/content_settings/cookie_settings.h" | 13 #include "chrome/browser/content_settings/cookie_settings.h" |
| 14 #include "chrome/browser/extensions/api/alarms/alarm_manager.h" | 14 #include "chrome/browser/extensions/api/alarms/alarm_manager.h" |
| 15 #include "chrome/browser/extensions/api/declarative/rules_registry_service.h" | 15 #include "chrome/browser/extensions/api/declarative/rules_registry_service.h" |
| 16 #include "chrome/browser/extensions/api/messaging/message_service.h" | 16 #include "chrome/browser/extensions/api/messaging/message_service.h" |
| 17 #include "chrome/browser/extensions/blacklist.h" | 17 #include "chrome/browser/extensions/blacklist.h" |
| 18 #include "chrome/browser/extensions/component_loader.h" | 18 #include "chrome/browser/extensions/component_loader.h" |
| 19 #include "chrome/browser/extensions/event_router.h" | 19 #include "chrome/browser/extensions/event_router.h" |
| 20 #include "chrome/browser/extensions/extension_error_reporter.h" | 20 #include "chrome/browser/extensions/extension_error_reporter.h" |
| 21 #include "chrome/browser/extensions/extension_info_map.h" | 21 #include "chrome/browser/extensions/extension_info_map.h" |
| (...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 161 bool skip_session_extensions = false; | 161 bool skip_session_extensions = false; |
| 162 #if defined(OS_CHROMEOS) | 162 #if defined(OS_CHROMEOS) |
| 163 // Skip loading session extensions if we are not in a user session. | 163 // Skip loading session extensions if we are not in a user session. |
| 164 skip_session_extensions = !chromeos::UserManager::Get()->IsUserLoggedIn(); | 164 skip_session_extensions = !chromeos::UserManager::Get()->IsUserLoggedIn(); |
| 165 #endif | 165 #endif |
| 166 extension_service_->component_loader()->AddDefaultComponentExtensions( | 166 extension_service_->component_loader()->AddDefaultComponentExtensions( |
| 167 skip_session_extensions); | 167 skip_session_extensions); |
| 168 if (command_line->HasSwitch(switches::kLoadComponentExtension)) { | 168 if (command_line->HasSwitch(switches::kLoadComponentExtension)) { |
| 169 CommandLine::StringType path_list = command_line->GetSwitchValueNative( | 169 CommandLine::StringType path_list = command_line->GetSwitchValueNative( |
| 170 switches::kLoadComponentExtension); | 170 switches::kLoadComponentExtension); |
| 171 StringTokenizerT<CommandLine::StringType, | 171 base::StringTokenizerT<CommandLine::StringType, |
| 172 CommandLine::StringType::const_iterator> t(path_list, | 172 CommandLine::StringType::const_iterator> t(path_list, |
| 173 FILE_PATH_LITERAL(",")); | 173 FILE_PATH_LITERAL(",")); |
| 174 while (t.GetNext()) { | 174 while (t.GetNext()) { |
| 175 // Load the component extension manifest synchronously. | 175 // Load the component extension manifest synchronously. |
| 176 // Blocking the UI thread is acceptable here since | 176 // Blocking the UI thread is acceptable here since |
| 177 // this flag designated for developers. | 177 // this flag designated for developers. |
| 178 base::ThreadRestrictions::ScopedAllowIO allow_io; | 178 base::ThreadRestrictions::ScopedAllowIO allow_io; |
| 179 extension_service_->component_loader()->AddOrReplace( | 179 extension_service_->component_loader()->AddOrReplace( |
| 180 FilePath(t.token())); | 180 FilePath(t.token())); |
| 181 } | 181 } |
| 182 } | 182 } |
| 183 extension_service_->Init(); | 183 extension_service_->Init(); |
| 184 | 184 |
| 185 if (extensions_enabled) { | 185 if (extensions_enabled) { |
| 186 // Load any extensions specified with --load-extension. | 186 // Load any extensions specified with --load-extension. |
| 187 // TODO(yoz): Seems like this should move into ExtensionService::Init. | 187 // TODO(yoz): Seems like this should move into ExtensionService::Init. |
| 188 // But maybe it's no longer important. | 188 // But maybe it's no longer important. |
| 189 if (command_line->HasSwitch(switches::kLoadExtension)) { | 189 if (command_line->HasSwitch(switches::kLoadExtension)) { |
| 190 CommandLine::StringType path_list = command_line->GetSwitchValueNative( | 190 CommandLine::StringType path_list = command_line->GetSwitchValueNative( |
| 191 switches::kLoadExtension); | 191 switches::kLoadExtension); |
| 192 StringTokenizerT<CommandLine::StringType, | 192 base::StringTokenizerT<CommandLine::StringType, |
| 193 CommandLine::StringType::const_iterator> t(path_list, | 193 CommandLine::StringType::const_iterator> t(path_list, |
| 194 FILE_PATH_LITERAL(",")); | 194 FILE_PATH_LITERAL(",")); |
| 195 while (t.GetNext()) { | 195 while (t.GetNext()) { |
| 196 UnpackedInstaller::Create(extension_service_.get())-> | 196 UnpackedInstaller::Create(extension_service_.get())-> |
| 197 LoadFromCommandLine(FilePath(t.token())); | 197 LoadFromCommandLine(FilePath(t.token())); |
| 198 } | 198 } |
| 199 } | 199 } |
| 200 } | 200 } |
| 201 | 201 |
| 202 // Make the chrome://extension-icon/ resource available. | 202 // Make the chrome://extension-icon/ resource available. |
| (...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 448 void ExtensionSystemImpl::UnregisterExtensionWithRequestContexts( | 448 void ExtensionSystemImpl::UnregisterExtensionWithRequestContexts( |
| 449 const std::string& extension_id, | 449 const std::string& extension_id, |
| 450 const extension_misc::UnloadedExtensionReason reason) { | 450 const extension_misc::UnloadedExtensionReason reason) { |
| 451 BrowserThread::PostTask( | 451 BrowserThread::PostTask( |
| 452 BrowserThread::IO, FROM_HERE, | 452 BrowserThread::IO, FROM_HERE, |
| 453 base::Bind(&ExtensionInfoMap::RemoveExtension, info_map(), | 453 base::Bind(&ExtensionInfoMap::RemoveExtension, info_map(), |
| 454 extension_id, reason)); | 454 extension_id, reason)); |
| 455 } | 455 } |
| 456 | 456 |
| 457 } // namespace extensions | 457 } // namespace extensions |
| OLD | NEW |