| Index: chrome/browser/ui/webui/extensions/extension_loader_handler.cc
|
| diff --git a/chrome/browser/ui/webui/extensions/extension_loader_handler.cc b/chrome/browser/ui/webui/extensions/extension_loader_handler.cc
|
| index ccf7045fe4b6d494259eb7c7bf4afb350184864f..05584e43e30b897192d73198c8d02e1f329dc978 100644
|
| --- a/chrome/browser/ui/webui/extensions/extension_loader_handler.cc
|
| +++ b/chrome/browser/ui/webui/extensions/extension_loader_handler.cc
|
| @@ -14,12 +14,9 @@
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "chrome/browser/extensions/path_util.h"
|
| #include "chrome/browser/extensions/unpacked_installer.h"
|
| -#include "chrome/browser/extensions/zipfile_installer.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| -#include "chrome/browser/ui/chrome_select_file_policy.h"
|
| #include "chrome/grit/generated_resources.h"
|
| #include "content/public/browser/browser_thread.h"
|
| -#include "content/public/browser/user_metrics.h"
|
| #include "content/public/browser/web_contents.h"
|
| #include "content/public/browser/web_ui.h"
|
| #include "content/public/browser/web_ui_data_source.h"
|
| @@ -30,7 +27,6 @@
|
| #include "extensions/common/manifest_constants.h"
|
| #include "third_party/re2/re2/re2.h"
|
| #include "ui/base/l10n/l10n_util.h"
|
| -#include "ui/shell_dialogs/select_file_dialog.h"
|
|
|
| namespace extensions {
|
|
|
| @@ -47,96 +43,8 @@ std::string ReadFileToString(const base::FilePath& path) {
|
|
|
| } // namespace
|
|
|
| -class ExtensionLoaderHandler::FileHelper
|
| - : public ui::SelectFileDialog::Listener {
|
| - public:
|
| - explicit FileHelper(ExtensionLoaderHandler* loader_handler);
|
| - ~FileHelper() override;
|
| -
|
| - // Create a FileDialog for the user to select the unpacked extension
|
| - // directory.
|
| - void ChooseFile();
|
| -
|
| - private:
|
| - // ui::SelectFileDialog::Listener implementation.
|
| - void FileSelected(const base::FilePath& path,
|
| - int index,
|
| - void* params) override;
|
| - void MultiFilesSelected(const std::vector<base::FilePath>& files,
|
| - void* params) override;
|
| -
|
| - // The associated ExtensionLoaderHandler. Weak, but guaranteed to be alive,
|
| - // as it owns this object.
|
| - ExtensionLoaderHandler* loader_handler_;
|
| -
|
| - // The dialog used to pick a directory when loading an unpacked extension.
|
| - scoped_refptr<ui::SelectFileDialog> load_extension_dialog_;
|
| -
|
| - // The last selected directory, so we can start in the same spot.
|
| - base::FilePath last_unpacked_directory_;
|
| -
|
| - // The title of the dialog.
|
| - base::string16 title_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(FileHelper);
|
| -};
|
| -
|
| -ExtensionLoaderHandler::FileHelper::FileHelper(
|
| - ExtensionLoaderHandler* loader_handler)
|
| - : loader_handler_(loader_handler),
|
| - title_(l10n_util::GetStringUTF16(IDS_EXTENSION_LOAD_FROM_DIRECTORY)) {
|
| -}
|
| -
|
| -ExtensionLoaderHandler::FileHelper::~FileHelper() {
|
| - // There may be a pending file dialog; inform it the listener is destroyed so
|
| - // it doesn't try and call back.
|
| - if (load_extension_dialog_.get())
|
| - load_extension_dialog_->ListenerDestroyed();
|
| -}
|
| -
|
| -void ExtensionLoaderHandler::FileHelper::ChooseFile() {
|
| - static const int kFileTypeIndex = 0; // No file type information to index.
|
| - static const ui::SelectFileDialog::Type kSelectType =
|
| - ui::SelectFileDialog::SELECT_FOLDER;
|
| -
|
| - gfx::NativeWindow parent_window =
|
| - loader_handler_->web_ui()->GetWebContents()->GetTopLevelNativeWindow();
|
| - if (!load_extension_dialog_.get()) {
|
| - load_extension_dialog_ = ui::SelectFileDialog::Create(
|
| - this,
|
| - new ChromeSelectFilePolicy(
|
| - loader_handler_->web_ui()->GetWebContents()));
|
| - } else if (load_extension_dialog_->IsRunning(parent_window)) {
|
| - // File chooser dialog is already running; ignore the click.
|
| - return;
|
| - }
|
| -
|
| - load_extension_dialog_->SelectFile(
|
| - kSelectType,
|
| - title_,
|
| - last_unpacked_directory_,
|
| - NULL,
|
| - kFileTypeIndex,
|
| - base::FilePath::StringType(),
|
| - parent_window,
|
| - NULL);
|
| -
|
| - content::RecordComputedAction("Options_LoadUnpackedExtension");
|
| -}
|
| -
|
| -void ExtensionLoaderHandler::FileHelper::FileSelected(
|
| - const base::FilePath& path, int index, void* params) {
|
| - loader_handler_->LoadUnpackedExtensionImpl(path);
|
| -}
|
| -
|
| -void ExtensionLoaderHandler::FileHelper::MultiFilesSelected(
|
| - const std::vector<base::FilePath>& files, void* params) {
|
| - NOTREACHED();
|
| -}
|
| -
|
| ExtensionLoaderHandler::ExtensionLoaderHandler(Profile* profile)
|
| : profile_(profile),
|
| - file_helper_(new FileHelper(this)),
|
| extension_error_reporter_observer_(this),
|
| ui_ready_(false),
|
| weak_ptr_factory_(this) {
|
| @@ -177,10 +85,6 @@ void ExtensionLoaderHandler::RegisterMessages() {
|
| content::WebContentsObserver::Observe(web_ui()->GetWebContents());
|
|
|
| web_ui()->RegisterMessageCallback(
|
| - "extensionLoaderLoadUnpacked",
|
| - base::Bind(&ExtensionLoaderHandler::HandleLoadUnpacked,
|
| - weak_ptr_factory_.GetWeakPtr()));
|
| - web_ui()->RegisterMessageCallback(
|
| "extensionLoaderRetry",
|
| base::Bind(&ExtensionLoaderHandler::HandleRetry,
|
| weak_ptr_factory_.GetWeakPtr()));
|
| @@ -194,16 +98,11 @@ void ExtensionLoaderHandler::RegisterMessages() {
|
| weak_ptr_factory_.GetWeakPtr()));
|
| }
|
|
|
| -void ExtensionLoaderHandler::HandleLoadUnpacked(const base::ListValue* args) {
|
| - DCHECK(args->empty());
|
| - file_helper_->ChooseFile();
|
| -}
|
| -
|
| void ExtensionLoaderHandler::HandleRetry(const base::ListValue* args) {
|
| DCHECK(args->empty());
|
| const base::FilePath file_path = failed_paths_.back();
|
| failed_paths_.pop_back();
|
| - LoadUnpackedExtensionImpl(file_path);
|
| + LoadUnpackedExtension(file_path);
|
| }
|
|
|
| void ExtensionLoaderHandler::HandleIgnoreFailure(const base::ListValue* args) {
|
| @@ -222,8 +121,8 @@ void ExtensionLoaderHandler::HandleDisplayFailures(
|
| NotifyFrontendOfFailure();
|
| }
|
|
|
| -void ExtensionLoaderHandler::LoadUnpackedExtensionImpl(
|
| - const base::FilePath& file_path) {
|
| +void ExtensionLoaderHandler::LoadUnpackedExtension(
|
| + const base::FilePath& file_path) {
|
| scoped_refptr<UnpackedInstaller> installer = UnpackedInstaller::Create(
|
| ExtensionSystem::Get(profile_)->extension_service());
|
|
|
|
|