Index: content/browser/service_worker/service_worker_navigation_handle.cc |
diff --git a/content/browser/service_worker/service_worker_navigation_handle.cc b/content/browser/service_worker/service_worker_navigation_handle.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..8401c34c288fae93e413fa02e073f22a08dd8bab |
--- /dev/null |
+++ b/content/browser/service_worker/service_worker_navigation_handle.cc |
@@ -0,0 +1,40 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "content/browser/service_worker/service_worker_navigation_handle.h" |
+ |
+#include "base/bind.h" |
+#include "content/browser/service_worker/service_worker_navigation_handle_core.h" |
+#include "content/common/service_worker/service_worker_types.h" |
+#include "content/public/browser/browser_thread.h" |
+ |
+namespace content { |
+ |
+ServiceWorkerNavigationHandle::ServiceWorkerNavigationHandle( |
+ ServiceWorkerContextWrapper* context_wrapper) |
+ : service_worker_provider_host_id_(kInvalidServiceWorkerProviderId), |
+ weak_factory_(this) { |
+ DCHECK_CURRENTLY_ON(BrowserThread::UI); |
+ core_ = new ServiceWorkerNavigationHandleCore(weak_factory_.GetWeakPtr(), |
+ context_wrapper); |
+} |
+ |
+ServiceWorkerNavigationHandle::~ServiceWorkerNavigationHandle() { |
+ DCHECK_CURRENTLY_ON(BrowserThread::UI); |
+ // Delete the ServiceWorkerNavigationHandleCore on the IO thread. |
+ // It's safe to use base::Unretained since this is the only call to the |
+ // destructor. |
+ BrowserThread::PostTask( |
+ BrowserThread::IO, FROM_HERE, |
+ base::Bind(&ServiceWorkerNavigationHandleCore::Destroy, |
+ base::Unretained(core_))); |
kinuko
2015/10/20 14:46:07
nit: could this use BrowserThread::DeleteSoon() an
clamy
2015/10/21 16:33:48
Done.
|
+} |
+ |
+void ServiceWorkerNavigationHandle::DidCreateServiceWorkerProviderHost( |
+ int service_worker_provider_host_id) { |
+ DCHECK_CURRENTLY_ON(BrowserThread::UI); |
+ service_worker_provider_host_id_ = service_worker_provider_host_id; |
+} |
+ |
+} // namespace content |