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

Side by Side Diff: content/browser/service_worker/service_worker_provider_host.cc

Issue 893783002: Revert of Gather the ServiceWorker client information in the browser process. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@rfh_getvisibilitystate
Patch Set: Created 5 years, 10 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "content/browser/service_worker/service_worker_provider_host.h" 5 #include "content/browser/service_worker/service_worker_provider_host.h"
6 6
7 #include "base/stl_util.h" 7 #include "base/stl_util.h"
8 #include "content/browser/frame_host/render_frame_host_impl.h"
9 #include "content/browser/message_port_message_filter.h" 8 #include "content/browser/message_port_message_filter.h"
10 #include "content/browser/service_worker/service_worker_context_core.h" 9 #include "content/browser/service_worker/service_worker_context_core.h"
11 #include "content/browser/service_worker/service_worker_context_request_handler. h" 10 #include "content/browser/service_worker/service_worker_context_request_handler. h"
12 #include "content/browser/service_worker/service_worker_controllee_request_handl er.h" 11 #include "content/browser/service_worker/service_worker_controllee_request_handl er.h"
13 #include "content/browser/service_worker/service_worker_dispatcher_host.h" 12 #include "content/browser/service_worker/service_worker_dispatcher_host.h"
14 #include "content/browser/service_worker/service_worker_handle.h" 13 #include "content/browser/service_worker/service_worker_handle.h"
15 #include "content/browser/service_worker/service_worker_registration_handle.h" 14 #include "content/browser/service_worker/service_worker_registration_handle.h"
16 #include "content/browser/service_worker/service_worker_utils.h" 15 #include "content/browser/service_worker/service_worker_utils.h"
17 #include "content/browser/service_worker/service_worker_version.h" 16 #include "content/browser/service_worker/service_worker_version.h"
18 #include "content/common/resource_request_body.h" 17 #include "content/common/resource_request_body.h"
(...skipping 18 matching lines...) Expand all
37 36
38 if (web_contents && web_contents->GetDelegate()) { 37 if (web_contents && web_contents->GetDelegate()) {
39 result = true; 38 result = true;
40 web_contents->GetDelegate()->ActivateContents(web_contents); 39 web_contents->GetDelegate()->ActivateContents(web_contents);
41 } 40 }
42 41
43 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, 42 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
44 base::Bind(callback, result)); 43 base::Bind(callback, result));
45 } 44 }
46 45
47 void GetClientInfoOnUIThread(
48 int render_process_id,
49 int render_frame_id,
50 const ServiceWorkerProviderHost::GetClientInfoCallback& callback) {
51 RenderFrameHostImpl* render_frame_host = static_cast<RenderFrameHostImpl*>(
52 RenderFrameHost::FromID(render_process_id, render_frame_id));
53 if (!render_frame_host) {
54 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
55 base::Bind(callback, ServiceWorkerClientInfo()));
56 }
57
58 // TODO(mlamouri,michaeln): it is possible to end up collecting information
59 // for a frame that is actually being navigated and isn't exactly what we are
60 // expecting.
61 ServiceWorkerClientInfo client_info(
62 render_frame_host->GetVisibilityState(),
63 render_frame_host->IsFocused(),
64 render_frame_host->GetLastCommittedURL(),
65 render_frame_host->GetParent() ? REQUEST_CONTEXT_FRAME_TYPE_NESTED
66 : REQUEST_CONTEXT_FRAME_TYPE_TOP_LEVEL);
67
68 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
69 base::Bind(callback, client_info));
70 }
71
72 } // anonymous namespace 46 } // anonymous namespace
73 47
74 ServiceWorkerProviderHost::ServiceWorkerProviderHost( 48 ServiceWorkerProviderHost::ServiceWorkerProviderHost(
75 int render_process_id, 49 int render_process_id,
76 int render_frame_id, 50 int render_frame_id,
77 int provider_id, 51 int provider_id,
78 base::WeakPtr<ServiceWorkerContextCore> context, 52 base::WeakPtr<ServiceWorkerContextCore> context,
79 ServiceWorkerDispatcherHost* dispatcher_host) 53 ServiceWorkerDispatcherHost* dispatcher_host)
80 : render_process_id_(render_process_id), 54 : render_process_id_(render_process_id),
81 render_frame_id_(render_frame_id), 55 render_frame_id_(render_frame_id),
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 void ServiceWorkerProviderHost::Focus(const FocusCallback& callback) { 263 void ServiceWorkerProviderHost::Focus(const FocusCallback& callback) {
290 BrowserThread::PostTask( 264 BrowserThread::PostTask(
291 BrowserThread::UI, FROM_HERE, 265 BrowserThread::UI, FROM_HERE,
292 base::Bind(&FocusOnUIThread, 266 base::Bind(&FocusOnUIThread,
293 render_process_id_, 267 render_process_id_,
294 render_frame_id_, 268 render_frame_id_,
295 callback)); 269 callback));
296 } 270 }
297 271
298 void ServiceWorkerProviderHost::GetClientInfo( 272 void ServiceWorkerProviderHost::GetClientInfo(
299 const GetClientInfoCallback& callback) { 273 int embedded_worker_id,
300 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, 274 int request_id) {
301 base::Bind(&GetClientInfoOnUIThread, 275 Send(new ServiceWorkerMsg_GetClientInfo(
302 render_process_id_, 276 kDocumentMainThreadId, embedded_worker_id, request_id, provider_id()));
303 render_frame_id_,
304 callback));
305 } 277 }
306 278
307 void ServiceWorkerProviderHost::AddScopedProcessReferenceToPattern( 279 void ServiceWorkerProviderHost::AddScopedProcessReferenceToPattern(
308 const GURL& pattern) { 280 const GURL& pattern) {
309 associated_patterns_.push_back(pattern); 281 associated_patterns_.push_back(pattern);
310 IncreaseProcessReference(pattern); 282 IncreaseProcessReference(pattern);
311 } 283 }
312 284
313 void ServiceWorkerProviderHost::PrepareForCrossSiteTransfer() { 285 void ServiceWorkerProviderHost::PrepareForCrossSiteTransfer() {
314 DCHECK_NE(ChildProcessHost::kInvalidUniqueID, render_process_id_); 286 DCHECK_NE(ChildProcessHost::kInvalidUniqueID, render_process_id_);
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
486 return context_ != NULL; 458 return context_ != NULL;
487 } 459 }
488 460
489 void ServiceWorkerProviderHost::Send(IPC::Message* message) const { 461 void ServiceWorkerProviderHost::Send(IPC::Message* message) const {
490 DCHECK(dispatcher_host_); 462 DCHECK(dispatcher_host_);
491 DCHECK(IsReadyToSendMessages()); 463 DCHECK(IsReadyToSendMessages());
492 dispatcher_host_->Send(message); 464 dispatcher_host_->Send(message);
493 } 465 }
494 466
495 } // namespace content 467 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/service_worker/service_worker_provider_host.h ('k') | content/browser/service_worker/service_worker_version.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698