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

Side by Side Diff: content/child/service_worker/service_worker_dispatcher.cc

Issue 813673005: Service Worker: Improve some exception messages (Chromium). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: typo Created 5 years, 11 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/child/service_worker/service_worker_dispatcher.h" 5 #include "content/child/service_worker/service_worker_dispatcher.h"
6 6
7 #include "base/debug/trace_event.h" 7 #include "base/debug/trace_event.h"
8 #include "base/lazy_instance.h" 8 #include "base/lazy_instance.h"
9 #include "base/stl_util.h" 9 #include "base/stl_util.h"
10 #include "base/threading/thread_local.h" 10 #include "base/threading/thread_local.h"
11 #include "content/child/child_thread.h" 11 #include "content/child/child_thread.h"
12 #include "content/child/service_worker/service_worker_handle_reference.h" 12 #include "content/child/service_worker/service_worker_handle_reference.h"
13 #include "content/child/service_worker/service_worker_provider_context.h" 13 #include "content/child/service_worker/service_worker_provider_context.h"
14 #include "content/child/service_worker/service_worker_registration_handle_refere nce.h" 14 #include "content/child/service_worker/service_worker_registration_handle_refere nce.h"
15 #include "content/child/service_worker/web_service_worker_impl.h" 15 #include "content/child/service_worker/web_service_worker_impl.h"
16 #include "content/child/service_worker/web_service_worker_registration_impl.h" 16 #include "content/child/service_worker/web_service_worker_registration_impl.h"
17 #include "content/child/thread_safe_sender.h" 17 #include "content/child/thread_safe_sender.h"
18 #include "content/child/webmessageportchannel_impl.h" 18 #include "content/child/webmessageportchannel_impl.h"
19 #include "content/common/service_worker/service_worker_messages.h" 19 #include "content/common/service_worker/service_worker_messages.h"
20 #include "content/common/service_worker/service_worker_types.h"
20 #include "content/public/common/url_utils.h" 21 #include "content/public/common/url_utils.h"
21 #include "third_party/WebKit/public/platform/WebServiceWorkerClientsInfo.h" 22 #include "third_party/WebKit/public/platform/WebServiceWorkerClientsInfo.h"
22 #include "third_party/WebKit/public/platform/WebServiceWorkerProviderClient.h" 23 #include "third_party/WebKit/public/platform/WebServiceWorkerProviderClient.h"
24 #include "third_party/WebKit/public/platform/WebString.h"
23 #include "third_party/WebKit/public/web/WebSecurityOrigin.h" 25 #include "third_party/WebKit/public/web/WebSecurityOrigin.h"
24 26
25 using blink::WebServiceWorkerError; 27 using blink::WebServiceWorkerError;
26 using blink::WebServiceWorkerProvider; 28 using blink::WebServiceWorkerProvider;
27 using base::ThreadLocalPointer; 29 using base::ThreadLocalPointer;
28 30
29 namespace content { 31 namespace content {
30 32
31 namespace { 33 namespace {
32 34
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 int provider_id, 97 int provider_id,
96 const GURL& pattern, 98 const GURL& pattern,
97 const GURL& script_url, 99 const GURL& script_url,
98 WebServiceWorkerRegistrationCallbacks* callbacks) { 100 WebServiceWorkerRegistrationCallbacks* callbacks) {
99 DCHECK(callbacks); 101 DCHECK(callbacks);
100 102
101 if (pattern.possibly_invalid_spec().size() > GetMaxURLChars() || 103 if (pattern.possibly_invalid_spec().size() > GetMaxURLChars() ||
102 script_url.possibly_invalid_spec().size() > GetMaxURLChars()) { 104 script_url.possibly_invalid_spec().size() > GetMaxURLChars()) {
103 scoped_ptr<WebServiceWorkerRegistrationCallbacks> 105 scoped_ptr<WebServiceWorkerRegistrationCallbacks>
104 owned_callbacks(callbacks); 106 owned_callbacks(callbacks);
105 scoped_ptr<WebServiceWorkerError> error(new WebServiceWorkerError( 107 std::string error_message(kServiceWorkerRegisterErrorPrefix);
106 WebServiceWorkerError::ErrorTypeSecurity, "URL too long")); 108 error_message += "The provided scriptURL or scope is too long.";
109 scoped_ptr<WebServiceWorkerError> error(
110 new WebServiceWorkerError(WebServiceWorkerError::ErrorTypeSecurity,
111 blink::WebString::fromUTF8(error_message)));
107 callbacks->onError(error.release()); 112 callbacks->onError(error.release());
108 return; 113 return;
109 } 114 }
110 115
111 int request_id = pending_registration_callbacks_.Add(callbacks); 116 int request_id = pending_registration_callbacks_.Add(callbacks);
112 TRACE_EVENT_ASYNC_BEGIN2("ServiceWorker", 117 TRACE_EVENT_ASYNC_BEGIN2("ServiceWorker",
113 "ServiceWorkerDispatcher::RegisterServiceWorker", 118 "ServiceWorkerDispatcher::RegisterServiceWorker",
114 request_id, 119 request_id,
115 "Scope", pattern.spec(), 120 "Scope", pattern.spec(),
116 "Script URL", script_url.spec()); 121 "Script URL", script_url.spec());
117 thread_safe_sender_->Send(new ServiceWorkerHostMsg_RegisterServiceWorker( 122 thread_safe_sender_->Send(new ServiceWorkerHostMsg_RegisterServiceWorker(
118 CurrentWorkerId(), request_id, provider_id, pattern, script_url)); 123 CurrentWorkerId(), request_id, provider_id, pattern, script_url));
119 } 124 }
120 125
121 void ServiceWorkerDispatcher::UnregisterServiceWorker( 126 void ServiceWorkerDispatcher::UnregisterServiceWorker(
122 int provider_id, 127 int provider_id,
123 const GURL& pattern, 128 const GURL& pattern,
124 WebServiceWorkerUnregistrationCallbacks* callbacks) { 129 WebServiceWorkerUnregistrationCallbacks* callbacks) {
125 DCHECK(callbacks); 130 DCHECK(callbacks);
126 131
127 if (pattern.possibly_invalid_spec().size() > GetMaxURLChars()) { 132 if (pattern.possibly_invalid_spec().size() > GetMaxURLChars()) {
128 scoped_ptr<WebServiceWorkerUnregistrationCallbacks> 133 scoped_ptr<WebServiceWorkerUnregistrationCallbacks>
129 owned_callbacks(callbacks); 134 owned_callbacks(callbacks);
130 scoped_ptr<WebServiceWorkerError> error(new WebServiceWorkerError( 135 std::string error_message(kServiceWorkerUnregisterErrorPrefix);
131 WebServiceWorkerError::ErrorTypeSecurity, "URL too long")); 136 error_message += "The provided scope is too long.";
137 scoped_ptr<WebServiceWorkerError> error(
138 new WebServiceWorkerError(WebServiceWorkerError::ErrorTypeSecurity,
139 blink::WebString::fromUTF8(error_message)));
132 callbacks->onError(error.release()); 140 callbacks->onError(error.release());
133 return; 141 return;
134 } 142 }
135 143
136 int request_id = pending_unregistration_callbacks_.Add(callbacks); 144 int request_id = pending_unregistration_callbacks_.Add(callbacks);
137 TRACE_EVENT_ASYNC_BEGIN1("ServiceWorker", 145 TRACE_EVENT_ASYNC_BEGIN1("ServiceWorker",
138 "ServiceWorkerDispatcher::UnregisterServiceWorker", 146 "ServiceWorkerDispatcher::UnregisterServiceWorker",
139 request_id, 147 request_id,
140 "Scope", pattern.spec()); 148 "Scope", pattern.spec());
141 thread_safe_sender_->Send(new ServiceWorkerHostMsg_UnregisterServiceWorker( 149 thread_safe_sender_->Send(new ServiceWorkerHostMsg_UnregisterServiceWorker(
142 CurrentWorkerId(), request_id, provider_id, pattern)); 150 CurrentWorkerId(), request_id, provider_id, pattern));
143 } 151 }
144 152
145 void ServiceWorkerDispatcher::GetRegistration( 153 void ServiceWorkerDispatcher::GetRegistration(
146 int provider_id, 154 int provider_id,
147 const GURL& document_url, 155 const GURL& document_url,
148 WebServiceWorkerRegistrationCallbacks* callbacks) { 156 WebServiceWorkerRegistrationCallbacks* callbacks) {
149 DCHECK(callbacks); 157 DCHECK(callbacks);
150 158
151 if (document_url.possibly_invalid_spec().size() > GetMaxURLChars()) { 159 if (document_url.possibly_invalid_spec().size() > GetMaxURLChars()) {
152 scoped_ptr<WebServiceWorkerRegistrationCallbacks> 160 scoped_ptr<WebServiceWorkerRegistrationCallbacks>
153 owned_callbacks(callbacks); 161 owned_callbacks(callbacks);
154 scoped_ptr<WebServiceWorkerError> error(new WebServiceWorkerError( 162 std::string error_message(kServiceWorkerGetRegistrationErrorPrefix);
155 WebServiceWorkerError::ErrorTypeSecurity, "URL too long")); 163 error_message += "The provided documentURL is too long.";
164 scoped_ptr<WebServiceWorkerError> error(
165 new WebServiceWorkerError(WebServiceWorkerError::ErrorTypeSecurity,
166 blink::WebString::fromUTF8(error_message)));
156 callbacks->onError(error.release()); 167 callbacks->onError(error.release());
157 return; 168 return;
158 } 169 }
159 170
160 int request_id = pending_get_registration_callbacks_.Add(callbacks); 171 int request_id = pending_get_registration_callbacks_.Add(callbacks);
161 TRACE_EVENT_ASYNC_BEGIN1("ServiceWorker", 172 TRACE_EVENT_ASYNC_BEGIN1("ServiceWorker",
162 "ServiceWorkerDispatcher::GetRegistration", 173 "ServiceWorkerDispatcher::GetRegistration",
163 request_id, 174 request_id,
164 "Document URL", document_url.spec()); 175 "Document URL", document_url.spec());
165 thread_safe_sender_->Send(new ServiceWorkerHostMsg_GetRegistration( 176 thread_safe_sender_->Send(new ServiceWorkerHostMsg_GetRegistration(
(...skipping 570 matching lines...) Expand 10 before | Expand all | Expand 10 after
736 attrs.installing, thread_safe_sender_.get()); 747 attrs.installing, thread_safe_sender_.get());
737 ServiceWorkerHandleReference::Adopt( 748 ServiceWorkerHandleReference::Adopt(
738 attrs.waiting, thread_safe_sender_.get()); 749 attrs.waiting, thread_safe_sender_.get());
739 ServiceWorkerHandleReference::Adopt( 750 ServiceWorkerHandleReference::Adopt(
740 attrs.active, thread_safe_sender_.get()); 751 attrs.active, thread_safe_sender_.get());
741 } 752 }
742 return registration; 753 return registration;
743 } 754 }
744 755
745 } // namespace content 756 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698