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