| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 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/ui/webui/extensions/extension_loader_handler.h" | 5 #include "chrome/browser/ui/webui/extensions/extension_loader_handler.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/file_util.h" | 8 #include "base/file_util.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/memory/ref_counted.h" | 10 #include "base/memory/ref_counted.h" |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 124 } | 124 } |
| 125 | 125 |
| 126 void ExtensionLoaderHandler::FileHelper::MultiFilesSelected( | 126 void ExtensionLoaderHandler::FileHelper::MultiFilesSelected( |
| 127 const std::vector<base::FilePath>& files, void* params) { | 127 const std::vector<base::FilePath>& files, void* params) { |
| 128 NOTREACHED(); | 128 NOTREACHED(); |
| 129 } | 129 } |
| 130 | 130 |
| 131 ExtensionLoaderHandler::ExtensionLoaderHandler(Profile* profile) | 131 ExtensionLoaderHandler::ExtensionLoaderHandler(Profile* profile) |
| 132 : profile_(profile), | 132 : profile_(profile), |
| 133 file_helper_(new FileHelper(this)), | 133 file_helper_(new FileHelper(this)), |
| 134 weak_ptr_factory_(this) { | 134 weak_ptr_factory_(this), |
| 135 extension_error_reporter_observer_(this) { |
| 135 DCHECK(profile_); | 136 DCHECK(profile_); |
| 137 extension_error_reporter_observer_.Add(ExtensionErrorReporter::GetInstance()); |
| 136 } | 138 } |
| 137 | 139 |
| 138 ExtensionLoaderHandler::~ExtensionLoaderHandler() { | 140 ExtensionLoaderHandler::~ExtensionLoaderHandler() { |
| 139 } | 141 } |
| 140 | 142 |
| 141 void ExtensionLoaderHandler::GetLocalizedValues( | 143 void ExtensionLoaderHandler::GetLocalizedValues( |
| 142 content::WebUIDataSource* source) { | 144 content::WebUIDataSource* source) { |
| 143 source->AddString( | 145 source->AddString( |
| 144 "extensionLoadErrorHeading", | 146 "extensionLoadErrorHeading", |
| 145 l10n_util::GetStringUTF16(IDS_EXTENSIONS_LOAD_ERROR_HEADING)); | 147 l10n_util::GetStringUTF16(IDS_EXTENSIONS_LOAD_ERROR_HEADING)); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 175 | 177 |
| 176 void ExtensionLoaderHandler::HandleRetry(const base::ListValue* args) { | 178 void ExtensionLoaderHandler::HandleRetry(const base::ListValue* args) { |
| 177 DCHECK(args->empty()); | 179 DCHECK(args->empty()); |
| 178 LoadUnpackedExtensionImpl(failed_path_); | 180 LoadUnpackedExtensionImpl(failed_path_); |
| 179 } | 181 } |
| 180 | 182 |
| 181 void ExtensionLoaderHandler::LoadUnpackedExtensionImpl( | 183 void ExtensionLoaderHandler::LoadUnpackedExtensionImpl( |
| 182 const base::FilePath& file_path) { | 184 const base::FilePath& file_path) { |
| 183 scoped_refptr<UnpackedInstaller> installer = UnpackedInstaller::Create( | 185 scoped_refptr<UnpackedInstaller> installer = UnpackedInstaller::Create( |
| 184 ExtensionSystem::Get(profile_)->extension_service()); | 186 ExtensionSystem::Get(profile_)->extension_service()); |
| 185 installer->set_on_failure_callback( | |
| 186 base::Bind(&ExtensionLoaderHandler::OnLoadFailure, | |
| 187 weak_ptr_factory_.GetWeakPtr())); | |
| 188 | 187 |
| 189 // We do our own error handling, so we don't want a load failure to trigger | 188 // We do our own error handling, so we don't want a load failure to trigger |
| 190 // a dialog. | 189 // a dialog. |
| 191 installer->set_be_noisy_on_failure(false); | 190 installer->set_be_noisy_on_failure(false); |
| 192 | 191 |
| 193 installer->Load(file_path); | 192 installer->Load(file_path); |
| 194 } | 193 } |
| 195 | 194 |
| 196 void ExtensionLoaderHandler::OnLoadFailure(const base::FilePath& file_path, | 195 void ExtensionLoaderHandler::OnLoadFailure(const base::FilePath& file_path, |
| 197 const std::string& error) { | 196 const std::string& error) { |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 237 highlighter.SetHighlightedRegions(&manifest_value); | 236 highlighter.SetHighlightedRegions(&manifest_value); |
| 238 | 237 |
| 239 web_ui()->CallJavascriptFunction( | 238 web_ui()->CallJavascriptFunction( |
| 240 "extensions.ExtensionLoader.notifyLoadFailed", | 239 "extensions.ExtensionLoader.notifyLoadFailed", |
| 241 file_value, | 240 file_value, |
| 242 error_value, | 241 error_value, |
| 243 manifest_value); | 242 manifest_value); |
| 244 } | 243 } |
| 245 | 244 |
| 246 } // namespace extensions | 245 } // namespace extensions |
| OLD | NEW |