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

Side by Side Diff: content/shell/browser/layout_test/layout_test_push_messaging_service.cc

Issue 793403002: Implement WebPushProvider.unregister() in Chromium. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@mvan_2
Patch Set: jochen review comments Created 6 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 unified diff | Download patch
« no previous file with comments | « content/shell/browser/layout_test/layout_test_push_messaging_service.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/shell/browser/layout_test/layout_test_push_messaging_service.h " 5 #include "content/shell/browser/layout_test/layout_test_push_messaging_service.h "
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 8
9 namespace content { 9 namespace content {
10 10
11 LayoutTestPushMessagingService::LayoutTestPushMessagingService() { 11 LayoutTestPushMessagingService::LayoutTestPushMessagingService() {
12 } 12 }
13 13
14 LayoutTestPushMessagingService::~LayoutTestPushMessagingService() { 14 LayoutTestPushMessagingService::~LayoutTestPushMessagingService() {
15 } 15 }
16 16
17 void LayoutTestPushMessagingService::SetPermission(const GURL& origin, 17 void LayoutTestPushMessagingService::SetPermission(const GURL& origin,
18 bool allowed) { 18 bool allowed) {
19 permission_map_[origin] = allowed ? blink::WebPushPermissionStatusGranted 19 permission_map_[origin] = allowed ? blink::WebPushPermissionStatusGranted
20 : blink::WebPushPermissionStatusDenied; 20 : blink::WebPushPermissionStatusDenied;
21 } 21 }
22 22
23 void LayoutTestPushMessagingService::ClearPermissions() { 23 void LayoutTestPushMessagingService::ClearPermissions() {
24 permission_map_.clear(); 24 permission_map_.clear();
25 registrations_.clear();
25 } 26 }
26 27
27 GURL LayoutTestPushMessagingService::GetPushEndpoint() { 28 GURL LayoutTestPushMessagingService::GetPushEndpoint() {
28 return GURL("https://example.com/LayoutTestEndpoint"); 29 return GURL("https://example.com/LayoutTestEndpoint");
29 } 30 }
30 31
31 void LayoutTestPushMessagingService::RegisterFromDocument( 32 void LayoutTestPushMessagingService::RegisterFromDocument(
32 const GURL& requesting_origin, 33 const GURL& requesting_origin,
33 int64 service_worker_registration_id, 34 int64 service_worker_registration_id,
34 const std::string& sender_id, 35 const std::string& sender_id,
35 int renderer_id, 36 int renderer_id,
36 int render_frame_id, 37 int render_frame_id,
37 bool user_gesture, 38 bool user_gesture,
38 const PushMessagingService::RegisterCallback& callback) { 39 const PushMessagingService::RegisterCallback& callback) {
39 RegisterFromWorker(requesting_origin, service_worker_registration_id, 40 RegisterFromWorker(requesting_origin, service_worker_registration_id,
40 sender_id, callback); 41 sender_id, callback);
41 } 42 }
42 43
43 void LayoutTestPushMessagingService::RegisterFromWorker( 44 void LayoutTestPushMessagingService::RegisterFromWorker(
44 const GURL& requesting_origin, 45 const GURL& requesting_origin,
45 int64 service_worker_registration_id, 46 int64 service_worker_registration_id,
46 const std::string& sender_id, 47 const std::string& sender_id,
47 const PushMessagingService::RegisterCallback& callback) { 48 const PushMessagingService::RegisterCallback& callback) {
48 if (GetPermissionStatus(requesting_origin, requesting_origin) == 49 if (GetPermissionStatus(requesting_origin, requesting_origin) ==
49 blink::WebPushPermissionStatusGranted) { 50 blink::WebPushPermissionStatusGranted) {
51 registrations_.insert(requesting_origin);
50 callback.Run("layoutTestRegistrationId", 52 callback.Run("layoutTestRegistrationId",
51 PUSH_REGISTRATION_STATUS_SUCCESS_FROM_PUSH_SERVICE); 53 PUSH_REGISTRATION_STATUS_SUCCESS_FROM_PUSH_SERVICE);
52 } else { 54 } else {
53 callback.Run("registration_id", PUSH_REGISTRATION_STATUS_PERMISSION_DENIED); 55 callback.Run("registration_id", PUSH_REGISTRATION_STATUS_PERMISSION_DENIED);
54 } 56 }
55 } 57 }
56 58
57 blink::WebPushPermissionStatus 59 blink::WebPushPermissionStatus
58 LayoutTestPushMessagingService::GetPermissionStatus( 60 LayoutTestPushMessagingService::GetPermissionStatus(
59 const GURL& requesting_origin, 61 const GURL& requesting_origin,
60 int renderer_id, 62 int renderer_id,
61 int render_frame_id) { 63 int render_frame_id) {
62 return GetPermissionStatus(requesting_origin, requesting_origin); 64 return GetPermissionStatus(requesting_origin, requesting_origin);
63 } 65 }
64 66
65 blink::WebPushPermissionStatus 67 blink::WebPushPermissionStatus
66 LayoutTestPushMessagingService::GetPermissionStatus( 68 LayoutTestPushMessagingService::GetPermissionStatus(
67 const GURL& requesting_origin, 69 const GURL& requesting_origin,
68 const GURL& embedding_origin) { 70 const GURL& embedding_origin) {
69 const auto& it = permission_map_.find(requesting_origin); 71 const auto& it = permission_map_.find(requesting_origin);
70 if (it == permission_map_.end()) 72 if (it == permission_map_.end())
71 return blink::WebPushPermissionStatusDefault; 73 return blink::WebPushPermissionStatusDefault;
72 return it->second; 74 return it->second;
73 } 75 }
74 76
77 void LayoutTestPushMessagingService::Unregister(
78 const GURL& requesting_origin,
79 int64 service_worker_registration_id,
80 const UnregisterCallback& callback) {
81 PushUnregistrationStatus status;
82 if (registrations_.erase(requesting_origin) == 1)
83 status = PUSH_UNREGISTRATION_STATUS_SUCCESS_UNREGISTER;
84 else
85 status = PUSH_UNREGISTRATION_STATUS_SUCCESS_WAS_NOT_REGISTERED;
86
87 callback.Run(status);
88 }
89
75 } // namespace content 90 } // namespace content
OLDNEW
« no previous file with comments | « content/shell/browser/layout_test/layout_test_push_messaging_service.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698