Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(233)

Unified Diff: chrome/browser/extensions/extension_browsertest.cc

Issue 1527043002: [Extensions] Don't use ExtensionInstallPrompt subclasses for auto-confirmation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/extension_browsertest.cc
diff --git a/chrome/browser/extensions/extension_browsertest.cc b/chrome/browser/extensions/extension_browsertest.cc
index f39e1233ec1c392fda90027c9ff12a233e1a82db..ba192579a701bb9164d8123015dd46550693c387 100644
--- a/chrome/browser/extensions/extension_browsertest.cc
+++ b/chrome/browser/extensions/extension_browsertest.cc
@@ -43,6 +43,7 @@
#include "content/public/browser/render_view_host.h"
#include "content/public/test/browser_test_utils.h"
#include "content/public/test/test_utils.h"
+#include "extensions/browser/extension_dialog_auto_confirm.h"
#include "extensions/browser/extension_host.h"
#include "extensions/browser/extension_prefs.h"
#include "extensions/browser/extension_registry.h"
@@ -62,6 +63,7 @@ using extensions::ExtensionCreator;
using extensions::ExtensionRegistry;
using extensions::FeatureSwitch;
using extensions::Manifest;
+using extensions::ScopedTestDialogAutoConfirm;
ExtensionBrowserTest::ExtensionBrowserTest()
: loaded_(false),
@@ -378,41 +380,6 @@ base::FilePath ExtensionBrowserTest::PackExtensionWithOptions(
return crx_path;
}
-// This class is used to simulate an installation abort by the user.
-class MockAbortExtensionInstallPrompt : public ExtensionInstallPrompt {
- public:
- MockAbortExtensionInstallPrompt() : ExtensionInstallPrompt(NULL) {
- }
-
- // Simulate a user abort on an extension installation.
- void ShowDialog(Delegate* delegate,
- const Extension* extension,
- const SkBitmap* icon,
- const ShowDialogCallback& show_dialog_callback) override {
- delegate->InstallUIAbort(true);
- base::MessageLoopForUI::current()->QuitWhenIdle();
- }
-
- void OnInstallSuccess(const Extension* extension, SkBitmap* icon) override {}
-
- void OnInstallFailure(const extensions::CrxInstallError& error) override {}
-};
-
-class MockAutoConfirmExtensionInstallPrompt : public ExtensionInstallPrompt {
- public:
- explicit MockAutoConfirmExtensionInstallPrompt(
- content::WebContents* web_contents)
- : ExtensionInstallPrompt(web_contents) {}
-
- // Proceed without confirmation prompt.
- void ShowDialog(Delegate* delegate,
- const Extension* extension,
- const SkBitmap* bitmap,
- const ShowDialogCallback& show_dialog_callback) override {
- delegate->InstallUIProceed();
- }
-};
-
const Extension* ExtensionBrowserTest::UpdateExtensionWaitForIdle(
const std::string& id,
const base::FilePath& path,
@@ -499,15 +466,16 @@ const Extension* ExtensionBrowserTest::InstallOrUpdateExtension(
size_t num_before = registry->enabled_extensions().size();
{
- scoped_ptr<ExtensionInstallPrompt> install_ui;
+ scoped_ptr<ScopedTestDialogAutoConfirm> prompt_auto_confirm;
if (ui_type == INSTALL_UI_TYPE_CANCEL) {
- install_ui.reset(new MockAbortExtensionInstallPrompt());
+ prompt_auto_confirm.reset(new ScopedTestDialogAutoConfirm(
+ ScopedTestDialogAutoConfirm::CANCEL));
} else if (ui_type == INSTALL_UI_TYPE_NORMAL) {
- install_ui.reset(new ExtensionInstallPrompt(
- browser->tab_strip_model()->GetActiveWebContents()));
+ prompt_auto_confirm.reset(new ScopedTestDialogAutoConfirm(
+ ScopedTestDialogAutoConfirm::NONE));
} else if (ui_type == INSTALL_UI_TYPE_AUTO_CONFIRM) {
- install_ui.reset(new MockAutoConfirmExtensionInstallPrompt(
- browser->tab_strip_model()->GetActiveWebContents()));
+ prompt_auto_confirm.reset(new ScopedTestDialogAutoConfirm(
+ ScopedTestDialogAutoConfirm::ACCEPT));
}
// TODO(tessamac): Update callers to always pass an unpacked extension
@@ -519,6 +487,11 @@ const Extension* ExtensionBrowserTest::InstallOrUpdateExtension(
if (crx_path.empty())
return NULL;
+ scoped_ptr<ExtensionInstallPrompt> install_ui;
+ if (prompt_auto_confirm) {
+ install_ui.reset(new ExtensionInstallPrompt(
+ browser->tab_strip_model()->GetActiveWebContents()));
+ }
scoped_refptr<extensions::CrxInstaller> installer(
extensions::CrxInstaller::Create(service, install_ui.Pass()));
installer->set_expected_id(id);
« no previous file with comments | « chrome/browser/extensions/crx_installer_browsertest.cc ('k') | chrome/browser/extensions/extension_install_prompt.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698