Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/renderer/service_worker/service_worker_context_client.h" | 5 #include "content/renderer/service_worker/service_worker_context_client.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/lazy_instance.h" | 10 #include "base/lazy_instance.h" |
| (...skipping 665 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 676 base::Time::FromDoubleT(event_dispatch_time))); | 676 base::Time::FromDoubleT(event_dispatch_time))); |
| 677 } | 677 } |
| 678 | 678 |
| 679 void ServiceWorkerContextClient::didHandleExtendableMessageEvent( | 679 void ServiceWorkerContextClient::didHandleExtendableMessageEvent( |
| 680 int request_id, | 680 int request_id, |
| 681 blink::WebServiceWorkerEventResult result, | 681 blink::WebServiceWorkerEventResult result, |
| 682 double event_dispatch_time) { | 682 double event_dispatch_time) { |
| 683 const DispatchExtendableMessageEventCallback* callback = | 683 const DispatchExtendableMessageEventCallback* callback = |
| 684 context_->message_event_callbacks.Lookup(request_id); | 684 context_->message_event_callbacks.Lookup(request_id); |
| 685 DCHECK(callback); | 685 DCHECK(callback); |
| 686 if (result == blink::WebServiceWorkerEventResultCompleted) { | 686 callback->Run(result == blink::WebServiceWorkerEventResultCompleted |
| 687 callback->Run(SERVICE_WORKER_OK, | 687 ? SERVICE_WORKER_OK |
| 688 base::Time::FromDoubleT(event_dispatch_time)); | 688 : SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED, |
| 689 } else { | 689 base::Time::FromDoubleT(event_dispatch_time)); |
|
falken
2017/01/05 01:53:00
If we're rewriting this code I'd actually prefer i
xiaofengzhang
2017/01/05 02:07:49
yes, agree, the best option would be to use a swit
falken
2017/01/05 02:20:28
Yes, we should change to switch everywhere here. I
| |
| 690 callback->Run(SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED, | |
| 691 base::Time::FromDoubleT(event_dispatch_time)); | |
| 692 } | |
| 693 context_->message_event_callbacks.Remove(request_id); | 690 context_->message_event_callbacks.Remove(request_id); |
| 694 } | 691 } |
| 695 | 692 |
| 696 void ServiceWorkerContextClient::didHandleInstallEvent( | 693 void ServiceWorkerContextClient::didHandleInstallEvent( |
| 697 int request_id, | 694 int request_id, |
| 698 blink::WebServiceWorkerEventResult result, | 695 blink::WebServiceWorkerEventResult result, |
| 699 double event_dispatch_time) { | 696 double event_dispatch_time) { |
| 700 Send(new ServiceWorkerHostMsg_InstallEventFinished( | 697 Send(new ServiceWorkerHostMsg_InstallEventFinished( |
| 701 GetRoutingID(), request_id, result, proxy_->hasFetchEventHandler(), | 698 GetRoutingID(), request_id, result, proxy_->hasFetchEventHandler(), |
| 702 base::Time::FromDoubleT(event_dispatch_time))); | 699 base::Time::FromDoubleT(event_dispatch_time))); |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 727 blink::WebServiceWorkerEventResult result, | 724 blink::WebServiceWorkerEventResult result, |
| 728 double event_dispatch_time) { | 725 double event_dispatch_time) { |
| 729 if (context_->preload_requests.Lookup(fetch_event_id)) { | 726 if (context_->preload_requests.Lookup(fetch_event_id)) { |
| 730 // Deletes NavigationPreloadRequest. If the network request is ongoing, it | 727 // Deletes NavigationPreloadRequest. If the network request is ongoing, it |
| 731 // will be canceled by deleting the mojom::URLLoaderPtr in the | 728 // will be canceled by deleting the mojom::URLLoaderPtr in the |
| 732 // NavigationPreloadRequest. | 729 // NavigationPreloadRequest. |
| 733 context_->preload_requests.Remove(fetch_event_id); | 730 context_->preload_requests.Remove(fetch_event_id); |
| 734 } | 731 } |
| 735 const FetchCallback* callback = | 732 const FetchCallback* callback = |
| 736 context_->fetch_event_callbacks.Lookup(fetch_event_id); | 733 context_->fetch_event_callbacks.Lookup(fetch_event_id); |
| 737 if (!callback) | 734 DCHECK(callback); |
|
falken
2017/01/05 01:53:00
How do you know this DCHECK is safe? I assume the
xiaofengzhang
2017/01/05 02:07:48
thanks a lot for your kindly review.
This is come
falken
2017/01/05 02:20:28
OK I'll defer to horo/shimazu. We also should conf
xiaofengzhang
2017/01/05 02:58:11
@iclelland
How do you think this change?
horo
2017/01/05 03:00:14
l-g-t-m for DCHECKs.
iclelland
2017/01/06 18:07:49
Agreed -- it would be a bug here if callback was n
xiaofengzhang
2017/01/09 02:55:22
Thanks iclelland for your kindly review.
For "it w
| |
| 738 return; | |
| 739 | |
| 740 callback->Run(result == blink::WebServiceWorkerEventResultCompleted | 735 callback->Run(result == blink::WebServiceWorkerEventResultCompleted |
| 741 ? SERVICE_WORKER_OK | 736 ? SERVICE_WORKER_OK |
| 742 : SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED, | 737 : SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED, |
| 743 base::Time::FromDoubleT(event_dispatch_time)); | 738 base::Time::FromDoubleT(event_dispatch_time)); |
| 744 context_->fetch_event_callbacks.Remove(fetch_event_id); | 739 context_->fetch_event_callbacks.Remove(fetch_event_id); |
| 745 } | 740 } |
| 746 | 741 |
| 747 void ServiceWorkerContextClient::didHandleNotificationClickEvent( | 742 void ServiceWorkerContextClient::didHandleNotificationClickEvent( |
| 748 int request_id, | 743 int request_id, |
| 749 blink::WebServiceWorkerEventResult result, | 744 blink::WebServiceWorkerEventResult result, |
| (...skipping 20 matching lines...) Expand all Loading... | |
| 770 GetRoutingID(), request_id, result, | 765 GetRoutingID(), request_id, result, |
| 771 base::Time::FromDoubleT(event_dispatch_time))); | 766 base::Time::FromDoubleT(event_dispatch_time))); |
| 772 } | 767 } |
| 773 | 768 |
| 774 void ServiceWorkerContextClient::didHandleSyncEvent( | 769 void ServiceWorkerContextClient::didHandleSyncEvent( |
| 775 int request_id, | 770 int request_id, |
| 776 blink::WebServiceWorkerEventResult result, | 771 blink::WebServiceWorkerEventResult result, |
| 777 double event_dispatch_time) { | 772 double event_dispatch_time) { |
| 778 const SyncCallback* callback = | 773 const SyncCallback* callback = |
| 779 context_->sync_event_callbacks.Lookup(request_id); | 774 context_->sync_event_callbacks.Lookup(request_id); |
| 780 if (!callback) | 775 DCHECK(callback); |
|
falken
2017/01/05 01:53:00
Ditto.
| |
| 781 return; | 776 callback->Run(result == blink::WebServiceWorkerEventResultCompleted |
| 782 if (result == blink::WebServiceWorkerEventResultCompleted) { | 777 ? SERVICE_WORKER_OK |
| 783 callback->Run(SERVICE_WORKER_OK, | 778 : SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED, |
| 784 base::Time::FromDoubleT(event_dispatch_time)); | 779 base::Time::FromDoubleT(event_dispatch_time)); |
| 785 } else { | |
| 786 callback->Run(SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED, | |
| 787 base::Time::FromDoubleT(event_dispatch_time)); | |
| 788 } | |
| 789 context_->sync_event_callbacks.Remove(request_id); | 780 context_->sync_event_callbacks.Remove(request_id); |
| 790 } | 781 } |
| 791 | 782 |
| 792 blink::WebServiceWorkerNetworkProvider* | 783 blink::WebServiceWorkerNetworkProvider* |
| 793 ServiceWorkerContextClient::createServiceWorkerNetworkProvider( | 784 ServiceWorkerContextClient::createServiceWorkerNetworkProvider( |
| 794 blink::WebDataSource* data_source) { | 785 blink::WebDataSource* data_source) { |
| 795 DCHECK(main_thread_task_runner_->RunsTasksOnCurrentThread()); | 786 DCHECK(main_thread_task_runner_->RunsTasksOnCurrentThread()); |
| 796 | 787 |
| 797 // Create a content::ServiceWorkerNetworkProvider for this data source so | 788 // Create a content::ServiceWorkerNetworkProvider for this data source so |
| 798 // we can observe its requests. | 789 // we can observe its requests. |
| (...skipping 481 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1280 } | 1271 } |
| 1281 | 1272 |
| 1282 base::WeakPtr<ServiceWorkerContextClient> | 1273 base::WeakPtr<ServiceWorkerContextClient> |
| 1283 ServiceWorkerContextClient::GetWeakPtr() { | 1274 ServiceWorkerContextClient::GetWeakPtr() { |
| 1284 DCHECK(worker_task_runner_->RunsTasksOnCurrentThread()); | 1275 DCHECK(worker_task_runner_->RunsTasksOnCurrentThread()); |
| 1285 DCHECK(context_); | 1276 DCHECK(context_); |
| 1286 return context_->weak_factory.GetWeakPtr(); | 1277 return context_->weak_factory.GetWeakPtr(); |
| 1287 } | 1278 } |
| 1288 | 1279 |
| 1289 } // namespace content | 1280 } // namespace content |
| OLD | NEW |