Index: content/shell/browser/layout_test/layout_test_push_messaging_service.cc |
diff --git a/content/shell/browser/layout_test/layout_test_push_messaging_service.cc b/content/shell/browser/layout_test/layout_test_push_messaging_service.cc |
index dfdd8ef449036ac9e1118f93062ae6518fed1e60..03498e7a7547765645b1b7bbb8e74616867cecc5 100644 |
--- a/content/shell/browser/layout_test/layout_test_push_messaging_service.cc |
+++ b/content/shell/browser/layout_test/layout_test_push_messaging_service.cc |
@@ -6,6 +6,7 @@ |
#include "base/callback.h" |
#include "base/logging.h" |
+#include "base/macros.h" |
#include "content/public/browser/permission_type.h" |
#include "content/shell/browser/layout_test/layout_test_browser_context.h" |
#include "content/shell/browser/layout_test/layout_test_content_browser_client.h" |
@@ -15,6 +16,16 @@ namespace content { |
namespace { |
+// Curve25519 public key made available to layout tests. Must be 32 bytes. |
+const uint8_t kTestCurve25519dh[] = { |
+ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, |
+ 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, |
+ 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F |
+}; |
+ |
+static_assert(sizeof(kTestCurve25519dh) == 32, |
+ "The fake public key must have the size of a real public key."); |
+ |
blink::WebPushPermissionStatus ToWebPushPermissionStatus( |
PermissionStatus status) { |
switch (status) { |
@@ -62,13 +73,27 @@ void LayoutTestPushMessagingService::SubscribeFromWorker( |
const PushMessagingService::RegisterCallback& callback) { |
if (GetPermissionStatus(requesting_origin, requesting_origin, user_visible) == |
blink::WebPushPermissionStatusGranted) { |
- callback.Run("layoutTestRegistrationId", |
+ std::vector<uint8_t> curve25519dh( |
+ kTestCurve25519dh, kTestCurve25519dh + arraysize(kTestCurve25519dh)); |
+ |
+ callback.Run("layoutTestRegistrationId", curve25519dh, |
PUSH_REGISTRATION_STATUS_SUCCESS_FROM_PUSH_SERVICE); |
} else { |
- callback.Run("registration_id", PUSH_REGISTRATION_STATUS_PERMISSION_DENIED); |
+ callback.Run("registration_id", std::vector<uint8_t>(), |
+ PUSH_REGISTRATION_STATUS_PERMISSION_DENIED); |
} |
} |
+void LayoutTestPushMessagingService::GetPublicEncryptionKey( |
+ const GURL& origin, |
+ int64_t service_worker_registration_id, |
+ const PublicKeyCallback& callback) { |
+ std::vector<uint8_t> curve25519dh( |
+ kTestCurve25519dh, kTestCurve25519dh + arraysize(kTestCurve25519dh)); |
+ |
+ callback.Run(true /* success */, curve25519dh); |
+} |
+ |
blink::WebPushPermissionStatus |
LayoutTestPushMessagingService::GetPermissionStatus( |
const GURL& requesting_origin, |