Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(231)

Unified Diff: content/browser/service_worker/service_worker_provider_host.cc

Issue 1202453002: ServiceWorker: Implement navigate() method in WindowClient (chromium side). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/service_worker/service_worker_provider_host.cc
diff --git a/content/browser/service_worker/service_worker_provider_host.cc b/content/browser/service_worker/service_worker_provider_host.cc
index 878aa2a933cbc1861b365e5929479795d753ebab..a8f77f51b40fb287715e26c4a4c534a4fb2459a2 100644
--- a/content/browser/service_worker/service_worker_provider_host.cc
+++ b/content/browser/service_worker/service_worker_provider_host.cc
@@ -56,6 +56,21 @@ ServiceWorkerClientInfo FocusOnUIThread(int render_process_id,
render_frame_id);
}
+ServiceWorkerClientInfo NavigateOnUIThread(const GURL& url,
+ int render_process_id,
+ int render_frame_id) {
+ RenderFrameHostImpl* render_frame_host =
+ RenderFrameHostImpl::FromID(render_process_id, render_frame_id);
+
+ if (!render_frame_host)
+ return ServiceWorkerClientInfo();
+
+ render_frame_host->NavigateToURL(url);
+
+ return ServiceWorkerProviderHost::GetWindowClientInfoOnUI(render_process_id,
+ render_frame_id);
+}
+
} // anonymous namespace
ServiceWorkerProviderHost::OneShotGetReadyCallback::OneShotGetReadyCallback(
@@ -400,6 +415,19 @@ void ServiceWorkerProviderHost::Focus(const GetClientInfoCallback& callback) {
base::Bind(&FocusOnUIThread, render_process_id_, route_id_), callback);
}
+void ServiceWorkerProviderHost::Navigate(
+ const GURL& url,
+ const GetClientInfoCallback& callback) {
+ if (provider_type_ != SERVICE_WORKER_PROVIDER_FOR_WINDOW) {
+ callback.Run(ServiceWorkerClientInfo());
+ return;
+ }
+ BrowserThread::PostTaskAndReplyWithResult(
+ BrowserThread::UI, FROM_HERE,
+ base::Bind(&NavigateOnUIThread, url, render_process_id_, route_id_),
+ callback);
+}
+
void ServiceWorkerProviderHost::GetWindowClientInfo(
const GetClientInfoCallback& callback) const {
if (provider_type_ != SERVICE_WORKER_PROVIDER_FOR_WINDOW) {

Powered by Google App Engine
This is Rietveld 408576698