OLD | NEW |
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 <stddef.h> | 5 #include <stddef.h> |
6 #include <stdint.h> | 6 #include <stdint.h> |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <memory> | 9 #include <memory> |
10 #include <utility> | 10 #include <utility> |
(...skipping 708 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
719 base::Unretained(this), done, result), | 719 base::Unretained(this), done, result), |
720 CreateReceiver(BrowserThread::UI, done, result)); | 720 CreateReceiver(BrowserThread::UI, done, result)); |
721 } | 721 } |
722 | 722 |
723 void DispatchInstallEventOnIOThread(const base::Closure& done, | 723 void DispatchInstallEventOnIOThread(const base::Closure& done, |
724 ServiceWorkerStatusCode* result) { | 724 ServiceWorkerStatusCode* result) { |
725 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 725 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
726 int request_id = | 726 int request_id = |
727 version_->StartRequest(ServiceWorkerMetrics::EventType::INSTALL, | 727 version_->StartRequest(ServiceWorkerMetrics::EventType::INSTALL, |
728 CreateReceiver(BrowserThread::UI, done, result)); | 728 CreateReceiver(BrowserThread::UI, done, result)); |
729 version_ | 729 version_->event_dispatcher()->DispatchInstallEvent( |
730 ->RegisterRequestCallback<ServiceWorkerHostMsg_InstallEventFinished>( | 730 base::Bind(&self::ReceiveInstallEventOnIOThread, base::Unretained(this), |
731 request_id, base::Bind(&self::ReceiveInstallEventOnIOThread, | 731 done, result, request_id)); |
732 base::Unretained(this), done, result)); | |
733 version_->DispatchEvent({request_id}, | |
734 ServiceWorkerMsg_InstallEvent(request_id)); | |
735 } | 732 } |
736 | 733 |
737 void ReceiveInstallEventOnIOThread(const base::Closure& done, | 734 void ReceiveInstallEventOnIOThread(const base::Closure& done, |
738 ServiceWorkerStatusCode* out_result, | 735 ServiceWorkerStatusCode* out_result, |
739 int request_id, | 736 int request_id, |
740 blink::WebServiceWorkerEventResult result, | 737 ServiceWorkerStatusCode status, |
741 bool has_fetch_handler, | 738 bool has_fetch_handler, |
742 base::Time dispatch_event_time) { | 739 base::Time dispatch_event_time) { |
743 version_->FinishRequest( | 740 version_->FinishRequest(request_id, status == SERVICE_WORKER_OK, |
744 request_id, result == blink::WebServiceWorkerEventResultCompleted, | 741 dispatch_event_time); |
745 dispatch_event_time); | |
746 version_->set_fetch_handler_existence( | 742 version_->set_fetch_handler_existence( |
747 has_fetch_handler | 743 has_fetch_handler |
748 ? ServiceWorkerVersion::FetchHandlerExistence::EXISTS | 744 ? ServiceWorkerVersion::FetchHandlerExistence::EXISTS |
749 : ServiceWorkerVersion::FetchHandlerExistence::DOES_NOT_EXIST); | 745 : ServiceWorkerVersion::FetchHandlerExistence::DOES_NOT_EXIST); |
750 | 746 |
751 ServiceWorkerStatusCode status = SERVICE_WORKER_OK; | |
752 if (result == blink::WebServiceWorkerEventResultRejected) | |
753 status = SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED; | |
754 | |
755 *out_result = status; | 747 *out_result = status; |
756 if (!done.is_null()) | 748 if (!done.is_null()) |
757 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, done); | 749 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, done); |
758 } | 750 } |
759 | 751 |
760 void StoreOnIOThread(const base::Closure& done, | 752 void StoreOnIOThread(const base::Closure& done, |
761 ServiceWorkerStatusCode* result, | 753 ServiceWorkerStatusCode* result, |
762 int64_t version_id) { | 754 int64_t version_id) { |
763 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 755 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
764 ServiceWorkerVersion* version = | 756 ServiceWorkerVersion* version = |
(...skipping 2171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2936 // effect in CanSuspendRenderer(). | 2928 // effect in CanSuspendRenderer(). |
2937 shell()->web_contents()->WasHidden(); | 2929 shell()->web_contents()->WasHidden(); |
2938 EXPECT_TRUE(rph->IsProcessBackgrounded()); | 2930 EXPECT_TRUE(rph->IsProcessBackgrounded()); |
2939 | 2931 |
2940 // The process which has service worker thread shouldn't be suspended. | 2932 // The process which has service worker thread shouldn't be suspended. |
2941 EXPECT_FALSE(memory_coordinator->CanSuspendRenderer(render_process_id)); | 2933 EXPECT_FALSE(memory_coordinator->CanSuspendRenderer(render_process_id)); |
2942 } | 2934 } |
2943 #endif | 2935 #endif |
2944 | 2936 |
2945 } // namespace content | 2937 } // namespace content |
OLD | NEW |