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

Side by Side Diff: third_party/WebKit/Source/modules/notifications/NotificationManager.cpp

Issue 2847433002: Gracefully handle failed Mojo calls in the NotificationManager (Closed)
Patch Set: Created 3 years, 7 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 unified diff | Download patch
« no previous file with comments | « no previous file | 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "modules/notifications/NotificationManager.h" 5 #include "modules/notifications/NotificationManager.h"
6 6
7 #include "bindings/core/v8/ScriptPromiseResolver.h" 7 #include "bindings/core/v8/ScriptPromiseResolver.h"
8 #include "bindings/core/v8/ScriptState.h" 8 #include "bindings/core/v8/ScriptState.h"
9 #include "modules/notifications/Notification.h" 9 #include "modules/notifications/Notification.h"
10 #include "modules/notifications/NotificationPermissionCallback.h" 10 #include "modules/notifications/NotificationPermissionCallback.h"
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 NotificationManager::~NotificationManager() {} 46 NotificationManager::~NotificationManager() {}
47 47
48 mojom::blink::PermissionStatus NotificationManager::GetPermissionStatus( 48 mojom::blink::PermissionStatus NotificationManager::GetPermissionStatus(
49 ExecutionContext* execution_context) { 49 ExecutionContext* execution_context) {
50 if (!notification_service_) { 50 if (!notification_service_) {
51 Platform::Current()->GetInterfaceProvider()->GetInterface( 51 Platform::Current()->GetInterfaceProvider()->GetInterface(
52 mojo::MakeRequest(&notification_service_)); 52 mojo::MakeRequest(&notification_service_));
53 } 53 }
54 54
55 mojom::blink::PermissionStatus permission_status; 55 mojom::blink::PermissionStatus permission_status;
56 const bool result = notification_service_->GetPermissionStatus( 56 if (!notification_service_->GetPermissionStatus(
57 execution_context->GetSecurityOrigin()->ToString(), &permission_status); 57 execution_context->GetSecurityOrigin()->ToString(),
58 DCHECK(result); 58 &permission_status)) {
59 NOTREACHED();
60 return mojom::blink::PermissionStatus::DENIED;
61 }
59 62
60 return permission_status; 63 return permission_status;
61 } 64 }
62 65
63 ScriptPromise NotificationManager::RequestPermission( 66 ScriptPromise NotificationManager::RequestPermission(
64 ScriptState* script_state, 67 ScriptState* script_state,
65 NotificationPermissionCallback* deprecated_callback) { 68 NotificationPermissionCallback* deprecated_callback) {
66 ExecutionContext* context = ExecutionContext::From(script_state); 69 ExecutionContext* context = ExecutionContext::From(script_state);
67 70
68 if (!permission_service_) { 71 if (!permission_service_) {
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 104
102 void NotificationManager::OnPermissionServiceConnectionError() { 105 void NotificationManager::OnPermissionServiceConnectionError() {
103 permission_service_.reset(); 106 permission_service_.reset();
104 } 107 }
105 108
106 DEFINE_TRACE(NotificationManager) { 109 DEFINE_TRACE(NotificationManager) {
107 Supplement<ExecutionContext>::Trace(visitor); 110 Supplement<ExecutionContext>::Trace(visitor);
108 } 111 }
109 112
110 } // namespace blink 113 } // namespace blink
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698