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

Unified Diff: chrome/browser/services/gcm/push_messaging_browsertest.cc

Issue 914373003: Exceptions for Web Notifications and the Push API by default. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix the AndroidWebViewTest assert Created 5 years, 10 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
« no previous file with comments | « base/android/build_info.h ('k') | chrome/browser/services/gcm/push_messaging_service_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/services/gcm/push_messaging_browsertest.cc
diff --git a/chrome/browser/services/gcm/push_messaging_browsertest.cc b/chrome/browser/services/gcm/push_messaging_browsertest.cc
index 7dfd971e5793d99f34c0124561ef6dfe6087573f..243a2bc7053833c521db2cbea71e6fbf3c18ce36 100644
--- a/chrome/browser/services/gcm/push_messaging_browsertest.cc
+++ b/chrome/browser/services/gcm/push_messaging_browsertest.cc
@@ -32,6 +32,10 @@
#include "content/public/test/browser_test_utils.h"
#include "ui/base/window_open_disposition.h"
+#if defined(OS_ANDROID)
+#include "base/android/build_info.h"
+#endif
+
namespace gcm {
namespace {
@@ -133,6 +137,19 @@ class NotificationAddedCallback {
bool waiting_;
};
+// The Push API depends on Web Notifications, which is only available on Android
+// Jelly Bean and later.
+bool IsPushSupported() {
+#if defined(OS_ANDROID)
+ if (base::android::BuildInfo::GetInstance()->sdk_int() <
+ base::android::SDK_VERSION_JELLY_BEAN) {
+ DVLOG(0) << "The Push API is only supported in Android 4.1 and later.";
+ return false;
+ }
+#endif
+ return true;
+}
+
} // namespace
class PushMessagingBrowserTest : public InProcessBrowserTest {
@@ -144,9 +161,7 @@ class PushMessagingBrowserTest : public InProcessBrowserTest {
void SetUpCommandLine(base::CommandLine* command_line) override {
command_line->AppendSwitch(
switches::kEnableExperimentalWebPlatformFeatures);
- command_line->AppendSwitch(
- switches::kEnablePushMessagePayload);
-
+ command_line->AppendSwitch(switches::kEnablePushMessagePayload);
InProcessBrowserTest::SetUpCommandLine(command_line);
}
@@ -256,6 +271,9 @@ class PushMessagingBadManifestBrowserTest : public PushMessagingBrowserTest {
IN_PROC_BROWSER_TEST_F(PushMessagingBadManifestBrowserTest,
RegisterFailsNotVisibleMessages) {
+ if (!IsPushSupported())
+ return;
+
std::string script_result;
ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
@@ -292,6 +310,9 @@ PushMessagingApplicationId PushMessagingBrowserTest::GetServiceWorkerAppId(
IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest,
RegisterSuccessNotificationsGranted) {
+ if (!IsPushSupported())
+ return;
+
TryToRegisterSuccessfully("1-0" /* expected_push_registration_id */);
PushMessagingApplicationId app_id = GetServiceWorkerAppId(0LL);
@@ -301,6 +322,9 @@ IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest,
IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest,
RegisterSuccessNotificationsPrompt) {
+ if (!IsPushSupported())
+ return;
+
std::string script_result;
ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
@@ -317,6 +341,9 @@ IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest,
IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest,
RegisterFailureNotificationsBlocked) {
+ if (!IsPushSupported())
+ return;
+
std::string script_result;
ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
@@ -332,6 +359,9 @@ IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest,
}
IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, RegisterFailureNoManifest) {
+ if (!IsPushSupported())
+ return;
+
std::string script_result;
ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
@@ -352,6 +382,9 @@ IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, RegisterFailureNoManifest) {
// TODO(johnme): Test registering from a worker - see https://crbug.com/437298.
IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, RegisterPersisted) {
+ if (!IsPushSupported())
+ return;
+
std::string script_result;
// First, test that Service Worker registration IDs are assigned in order of
@@ -406,6 +439,9 @@ IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, RegisterPersisted) {
}
IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, PushEventSuccess) {
+ if (!IsPushSupported())
+ return;
+
std::string script_result;
TryToRegisterSuccessfully("1-0" /* expected_push_registration_id */);
@@ -430,6 +466,9 @@ IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, PushEventSuccess) {
}
IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, PushEventNoServiceWorker) {
+ if (!IsPushSupported())
+ return;
+
std::string script_result;
TryToRegisterSuccessfully("1-0" /* expected_push_registration_id */);
@@ -469,6 +508,9 @@ IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, PushEventNoServiceWorker) {
}
IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, PushEventNoPermission) {
+ if (!IsPushSupported())
+ return;
+
std::string script_result;
TryToRegisterSuccessfully("1-0" /* expected_push_registration_id */);
@@ -510,6 +552,9 @@ IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, PushEventNoPermission) {
#if defined(ENABLE_NOTIFICATIONS)
IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest,
PushEventEnforcesUserVisibleNotification) {
+ if (!IsPushSupported())
+ return;
+
std::string script_result;
TryToRegisterSuccessfully("1-0" /* expected_push_registration_id */);
@@ -601,6 +646,9 @@ IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest,
IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest,
PushEventNotificationWithoutEventWaitUntil) {
+ if (!IsPushSupported())
+ return;
+
std::string script_result;
content::WebContents* web_contents =
browser()->tab_strip_model()->GetActiveWebContents();
@@ -642,6 +690,9 @@ IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest,
#endif
IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, HasPermissionSaysDefault) {
+ if (!IsPushSupported())
+ return;
+
std::string script_result;
ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
@@ -652,6 +703,9 @@ IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, HasPermissionSaysDefault) {
}
IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, HasPermissionSaysGranted) {
+ if (!IsPushSupported())
+ return;
+
std::string script_result;
ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
@@ -669,6 +723,9 @@ IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, HasPermissionSaysGranted) {
}
IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, HasPermissionSaysDenied) {
+ if (!IsPushSupported())
+ return;
+
std::string script_result;
ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
@@ -687,6 +744,9 @@ IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, HasPermissionSaysDenied) {
}
IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, UnregisterSuccess) {
+ if (!IsPushSupported())
+ return;
+
std::string script_result;
TryToRegisterSuccessfully("1-0" /* expected_push_registration_id */);
@@ -698,6 +758,9 @@ IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, UnregisterSuccess) {
}
IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, UnregisterNetworkError) {
+ if (!IsPushSupported())
+ return;
+
std::string script_result;
TryToRegisterSuccessfully("1-0" /* expected_push_registration_id */);
@@ -711,6 +774,9 @@ IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, UnregisterNetworkError) {
}
IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, UnregisterUnknownError) {
+ if (!IsPushSupported())
+ return;
+
std::string script_result;
TryToRegisterSuccessfully("1-0" /* expected_push_registration_id */);
@@ -723,4 +789,17 @@ IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, UnregisterUnknownError) {
" push server.", script_result);
}
+#if defined(OS_ANDROID)
+IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, PushUnavailableOnAndroidICS) {
+ // This test should only run on Android ICS to confirm that the Push API
+ // is not available on that version of Android.
+ if (IsPushSupported())
+ return;
+
+ std::string script_result;
+ ASSERT_TRUE(RunScript("window.PushManager", &script_result));
+ EXPECT_EQ("undefined", script_result);
+}
+#endif
+
} // namespace gcm
« no previous file with comments | « base/android/build_info.h ('k') | chrome/browser/services/gcm/push_messaging_service_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698