| 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 |