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

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

Issue 9195018: Disable modal JavaScript dialogs for platform apps. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: nit Created 8 years, 11 months 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_apitest.cc
diff --git a/chrome/browser/extensions/extension_apitest.cc b/chrome/browser/extensions/extension_apitest.cc
index 3f9d367ba5e3cd407a2f489122dcdc1740ba3055..c8de034c0331f91c9aa09a70827b12a3ef286b82 100644
--- a/chrome/browser/extensions/extension_apitest.cc
+++ b/chrome/browser/extensions/extension_apitest.cc
@@ -105,65 +105,75 @@ void ExtensionApiTest::TearDownInProcessBrowserTestFixture() {
}
bool ExtensionApiTest::RunExtensionTest(const char* extension_name) {
- return RunExtensionTestImpl(extension_name, "", false, true, false);
+ return RunExtensionTestImpl(extension_name, "", kFlagEnableFileaccess);
}
bool ExtensionApiTest::RunExtensionTestIncognito(const char* extension_name) {
- return RunExtensionTestImpl(extension_name, "", true, true, false);
+ return RunExtensionTestImpl(
+ extension_name, "", kFlagEnableIncognito | kFlagEnableFileaccess);
}
bool ExtensionApiTest::RunComponentExtensionTest(const char* extension_name) {
- return RunExtensionTestImpl(extension_name, "", false, true, true);
+ return RunExtensionTestImpl(
+ extension_name, "", kFlagEnableIncognito | kFlagLoadAsComponent);
}
bool ExtensionApiTest::RunExtensionTestNoFileAccess(
const char* extension_name) {
- return RunExtensionTestImpl(extension_name, "", false, false, false);
+ return RunExtensionTestImpl(extension_name, "", kFlagNone);
}
bool ExtensionApiTest::RunExtensionTestIncognitoNoFileAccess(
const char* extension_name) {
- return RunExtensionTestImpl(extension_name, "", true, false, false);
+ return RunExtensionTestImpl(extension_name, "", kFlagEnableIncognito);
}
bool ExtensionApiTest::RunExtensionSubtest(const char* extension_name,
const std::string& page_url) {
DCHECK(!page_url.empty()) << "Argument page_url is required.";
- return RunExtensionTestImpl(extension_name, page_url, false, true, false);
+ return RunExtensionTestImpl(extension_name, page_url, kFlagEnableFileaccess);
}
bool ExtensionApiTest::RunExtensionSubtestNoFileAccess(
const char* extension_name,
const std::string& page_url) {
DCHECK(!page_url.empty()) << "Argument page_url is required.";
- return RunExtensionTestImpl(extension_name, page_url, false, false, false);
+ return RunExtensionTestImpl(extension_name, page_url, kFlagNone);
}
bool ExtensionApiTest::RunExtensionSubtestIncognito(
const char* extension_name,
const std::string& page_url) {
DCHECK(!page_url.empty()) << "Argument page_url is required.";
- return RunExtensionTestImpl(extension_name, page_url, true, true, false);
+ return RunExtensionTestImpl(extension_name, page_url,
+ kFlagEnableIncognito | kFlagEnableFileaccess);
}
bool ExtensionApiTest::RunExtensionSubtestIncognitoNoFileAccess(
const char* extension_name,
const std::string& page_url) {
DCHECK(!page_url.empty()) << "Argument page_url is required.";
- return RunExtensionTestImpl(extension_name, page_url, true, false, false);
+ return RunExtensionTestImpl(extension_name, page_url, kFlagEnableIncognito);
}
bool ExtensionApiTest::RunPageTest(const std::string& page_url) {
return RunExtensionSubtest("", page_url);
}
+bool ExtensionApiTest::RunPlatformAppTest(const char* extension_name) {
+ return RunExtensionTestImpl(extension_name, "", kFlagLaunchAppShell);
+}
+
// Load |extension_name| extension and/or |page_url| and wait for
// PASSED or FAILED notification.
bool ExtensionApiTest::RunExtensionTestImpl(const char* extension_name,
const std::string& page_url,
- bool enable_incognito,
- bool enable_fileaccess,
- bool load_as_component) {
+ int flags) {
+ bool enable_incognito = (flags & kFlagEnableIncognito) != 0;
+ bool enable_fileaccess = (flags & kFlagEnableFileaccess) != 0;
+ bool load_as_component = (flags & kFlagLoadAsComponent) != 0;
+ bool launch_shell = (flags & kFlagLaunchAppShell) != 0;
+
ResultCatcher catcher;
DCHECK(!std::string(extension_name).empty() || !page_url.empty()) <<
"extension_name and page_url cannot both be empty";
@@ -183,6 +193,14 @@ bool ExtensionApiTest::RunExtensionTestImpl(const char* extension_name,
}
}
+ ExtensionService* service = browser()->profile()->GetExtensionService();
+ const Extension* extension =
+ service->GetExtensionById(last_loaded_extension_id_, false);
+ if (!extension) {
+ message_ = "Failed to find extension in ExtensionService.";
+ return false;
+ }
+
// If there is a page_url to load, navigate it.
if (!page_url.empty()) {
GURL url = GURL(page_url);
@@ -193,19 +211,18 @@ bool ExtensionApiTest::RunExtensionTestImpl(const char* extension_name,
if (!url.is_valid()) {
DCHECK(!std::string(extension_name).empty()) <<
"Relative page_url given with no extension_name";
-
- ExtensionService* service = browser()->profile()->GetExtensionService();
- const Extension* extension =
- service->GetExtensionById(last_loaded_extension_id_, false);
- if (!extension) {
- message_ = "Failed to find extension in ExtensionService.";
- return false;
- }
-
url = extension->GetResourceURL(page_url);
}
ui_test_utils::NavigateToURL(browser(), url);
+
+ } else if (launch_shell) {
+ Browser::OpenApplication(
+ browser()->profile(),
+ extension,
+ extension_misc::LAUNCH_SHELL,
+ GURL(),
+ NEW_WINDOW);
}
if (!catcher.GetNextResult()) {

Powered by Google App Engine
This is Rietveld 408576698