1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "content/shell/browser/layout_test/layout_test_push_messaging_service.h"
7 #include "base/callback.h"
8 #include "base/logging.h"
12 LayoutTestPushMessagingService::LayoutTestPushMessagingService() {
15 LayoutTestPushMessagingService::~LayoutTestPushMessagingService() {
18 void LayoutTestPushMessagingService::SetPermission(const GURL
& origin
,
20 permission_map_
[origin
] = allowed
? blink::WebPushPermissionStatusGranted
21 : blink::WebPushPermissionStatusDenied
;
24 void LayoutTestPushMessagingService::ClearPermissions() {
25 permission_map_
.clear();
28 GURL
LayoutTestPushMessagingService::GetPushEndpoint() {
29 return GURL("https://example.com/LayoutTestEndpoint");
32 void LayoutTestPushMessagingService::RegisterFromDocument(
33 const GURL
& requesting_origin
,
34 int64 service_worker_registration_id
,
35 const std::string
& sender_id
,
39 const PushMessagingService::RegisterCallback
& callback
) {
40 RegisterFromWorker(requesting_origin
, service_worker_registration_id
,
44 void LayoutTestPushMessagingService::RegisterFromWorker(
45 const GURL
& requesting_origin
,
46 int64 service_worker_registration_id
,
47 const std::string
& sender_id
,
48 const PushMessagingService::RegisterCallback
& callback
) {
49 if (GetPermissionStatus(requesting_origin
, requesting_origin
) ==
50 blink::WebPushPermissionStatusGranted
) {
51 callback
.Run("layoutTestRegistrationId",
52 PUSH_REGISTRATION_STATUS_SUCCESS_FROM_PUSH_SERVICE
);
54 callback
.Run("registration_id", PUSH_REGISTRATION_STATUS_PERMISSION_DENIED
);
58 blink::WebPushPermissionStatus
59 LayoutTestPushMessagingService::GetPermissionStatus(
60 const GURL
& requesting_origin
,
61 const GURL
& embedding_origin
) {
62 const auto& it
= permission_map_
.find(requesting_origin
);
63 if (it
== permission_map_
.end())
64 return blink::WebPushPermissionStatusDefault
;
68 void LayoutTestPushMessagingService::Unregister(
69 const GURL
& requesting_origin
,
70 int64 service_worker_registration_id
,
71 const std::string
& sender_id
,
72 const UnregisterCallback
& callback
) {
73 callback
.Run(PUSH_UNREGISTRATION_STATUS_SUCCESS_UNREGISTERED
);
76 } // namespace content