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