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 778 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
789 base::Unretained(this), done, result), | 789 base::Unretained(this), done, result), |
790 CreateReceiver(BrowserThread::UI, done, result)); | 790 CreateReceiver(BrowserThread::UI, done, result)); |
791 } | 791 } |
792 | 792 |
793 void DispatchInstallEventOnIOThread(const base::Closure& done, | 793 void DispatchInstallEventOnIOThread(const base::Closure& done, |
794 ServiceWorkerStatusCode* result) { | 794 ServiceWorkerStatusCode* result) { |
795 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 795 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
796 int request_id = | 796 int request_id = |
797 version_->StartRequest(ServiceWorkerMetrics::EventType::INSTALL, | 797 version_->StartRequest(ServiceWorkerMetrics::EventType::INSTALL, |
798 CreateReceiver(BrowserThread::UI, done, result)); | 798 CreateReceiver(BrowserThread::UI, done, result)); |
799 version_ | 799 version_->event_dispatcher()->DispatchInstallEvent( |
800 ->RegisterRequestCallback<ServiceWorkerHostMsg_InstallEventFinished>( | 800 nullptr, base::Bind(&self::ReceiveInstallEventOnIOThread, |
801 request_id, base::Bind(&self::ReceiveInstallEventOnIOThread, | 801 base::Unretained(this), done, result, request_id)); |
802 base::Unretained(this), done, result)); | |
803 version_->DispatchEvent({request_id}, | |
804 ServiceWorkerMsg_InstallEvent(request_id)); | |
805 } | 802 } |
806 | 803 |
807 void ReceiveInstallEventOnIOThread(const base::Closure& done, | 804 void ReceiveInstallEventOnIOThread(const base::Closure& done, |
808 ServiceWorkerStatusCode* out_result, | 805 ServiceWorkerStatusCode* out_result, |
809 int request_id, | 806 int request_id, |
810 blink::WebServiceWorkerEventResult result, | 807 ServiceWorkerStatusCode status, |
811 bool has_fetch_handler, | 808 bool has_fetch_handler, |
812 base::Time dispatch_event_time) { | 809 base::Time dispatch_event_time) { |
813 version_->FinishRequest( | 810 version_->FinishRequest(request_id, status == SERVICE_WORKER_OK, |
814 request_id, result == blink::kWebServiceWorkerEventResultCompleted, | 811 dispatch_event_time); |
815 dispatch_event_time); | |
816 version_->set_fetch_handler_existence( | 812 version_->set_fetch_handler_existence( |
817 has_fetch_handler | 813 has_fetch_handler |
818 ? ServiceWorkerVersion::FetchHandlerExistence::EXISTS | 814 ? ServiceWorkerVersion::FetchHandlerExistence::EXISTS |
819 : ServiceWorkerVersion::FetchHandlerExistence::DOES_NOT_EXIST); | 815 : ServiceWorkerVersion::FetchHandlerExistence::DOES_NOT_EXIST); |
820 | 816 |
821 ServiceWorkerStatusCode status = SERVICE_WORKER_OK; | |
822 if (result == blink::kWebServiceWorkerEventResultRejected) | |
823 status = SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED; | |
824 | |
825 *out_result = status; | 817 *out_result = status; |
826 if (!done.is_null()) | 818 if (!done.is_null()) |
827 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, done); | 819 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, done); |
828 } | 820 } |
829 | 821 |
830 void StoreOnIOThread(const base::Closure& done, | 822 void StoreOnIOThread(const base::Closure& done, |
831 ServiceWorkerStatusCode* result, | 823 ServiceWorkerStatusCode* result, |
832 int64_t version_id) { | 824 int64_t version_id) { |
833 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 825 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
834 ServiceWorkerVersion* version = | 826 ServiceWorkerVersion* version = |
(...skipping 2168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3003 // effect in CanSuspendRenderer(). | 2995 // effect in CanSuspendRenderer(). |
3004 shell()->web_contents()->WasHidden(); | 2996 shell()->web_contents()->WasHidden(); |
3005 EXPECT_TRUE(rph->IsProcessBackgrounded()); | 2997 EXPECT_TRUE(rph->IsProcessBackgrounded()); |
3006 | 2998 |
3007 // The process which has service worker thread shouldn't be suspended. | 2999 // The process which has service worker thread shouldn't be suspended. |
3008 EXPECT_FALSE(memory_coordinator->CanSuspendRenderer(render_process_id)); | 3000 EXPECT_FALSE(memory_coordinator->CanSuspendRenderer(render_process_id)); |
3009 } | 3001 } |
3010 #endif | 3002 #endif |
3011 | 3003 |
3012 } // namespace content | 3004 } // namespace content |
OLD | NEW |