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

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

Issue 897673002: First step in enabling creating tabs without an Activity on Android. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@a-base-mounir
Patch Set: rebase 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
« no previous file with comments | « chrome/chrome_browser.gypi ('k') | content/public/browser/content_browser_client.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_version.h" 5 #include "content/browser/service_worker/service_worker_version.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/memory/ref_counted.h" 8 #include "base/memory/ref_counted.h"
9 #include "base/stl_util.h" 9 #include "base/stl_util.h"
10 #include "base/strings/string16.h" 10 #include "base/strings/string16.h"
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 render_frame_id)); 212 render_frame_id));
213 Observe(nullptr); 213 Observe(nullptr);
214 base::MessageLoop::current()->DeleteSoon(FROM_HERE, this); 214 base::MessageLoop::current()->DeleteSoon(FROM_HERE, this);
215 } 215 }
216 216
217 const WindowOpenedCallback callback_; 217 const WindowOpenedCallback callback_;
218 218
219 DISALLOW_COPY_AND_ASSIGN(WindowOpenedObserver); 219 DISALLOW_COPY_AND_ASSIGN(WindowOpenedObserver);
220 }; 220 };
221 221
222 void DidOpenURL(const WindowOpenedCallback& callback,
223 WebContents* web_contents) {
224 DCHECK(web_contents);
225
226 new WindowOpenedObserver(web_contents, callback);
227 }
228
222 void OpenWindowOnUI( 229 void OpenWindowOnUI(
223 const GURL& url, 230 const GURL& url,
224 const GURL& script_url, 231 const GURL& script_url,
225 int process_id, 232 int process_id,
226 const scoped_refptr<ServiceWorkerContextWrapper>& context_wrapper, 233 const scoped_refptr<ServiceWorkerContextWrapper>& context_wrapper,
227 const WindowOpenedCallback& callback) { 234 const WindowOpenedCallback& callback) {
228 DCHECK_CURRENTLY_ON(BrowserThread::UI); 235 DCHECK_CURRENTLY_ON(BrowserThread::UI);
229 236
230 BrowserContext* browser_context = context_wrapper->storage_partition() 237 BrowserContext* browser_context = context_wrapper->storage_partition()
231 ? context_wrapper->storage_partition()->browser_context() 238 ? context_wrapper->storage_partition()->browser_context()
(...skipping 11 matching lines...) Expand all
243 MSG_ROUTING_NONE)); 250 MSG_ROUTING_NONE));
244 return; 251 return;
245 } 252 }
246 253
247 OpenURLParams params( 254 OpenURLParams params(
248 url, Referrer::SanitizeForRequest( 255 url, Referrer::SanitizeForRequest(
249 url, Referrer(script_url, blink::WebReferrerPolicyDefault)), 256 url, Referrer(script_url, blink::WebReferrerPolicyDefault)),
250 NEW_FOREGROUND_TAB, ui::PAGE_TRANSITION_AUTO_TOPLEVEL, 257 NEW_FOREGROUND_TAB, ui::PAGE_TRANSITION_AUTO_TOPLEVEL,
251 true /* is_renderer_initiated */); 258 true /* is_renderer_initiated */);
252 259
253 WebContents* web_contents = 260 GetContentClient()->browser()->OpenURL(
254 GetContentClient()->browser()->OpenURL(browser_context, params); 261 browser_context, params,
255 DCHECK(web_contents); 262 base::Bind(&DidOpenURL, callback));
256
257 new WindowOpenedObserver(web_contents, callback);
258 } 263 }
259 264
260 void KillEmbeddedWorkerProcess(int process_id, ResultCode code) { 265 void KillEmbeddedWorkerProcess(int process_id, ResultCode code) {
261 DCHECK_CURRENTLY_ON(BrowserThread::UI); 266 DCHECK_CURRENTLY_ON(BrowserThread::UI);
262 267
263 RenderProcessHost* render_process_host = 268 RenderProcessHost* render_process_host =
264 RenderProcessHost::FromID(process_id); 269 RenderProcessHost::FromID(process_id);
265 if (render_process_host->GetHandle() != base::kNullProcessHandle) 270 if (render_process_host->GetHandle() != base::kNullProcessHandle)
266 render_process_host->ReceivedBadMessage(); 271 render_process_host->ReceivedBadMessage();
267 } 272 }
(...skipping 1149 matching lines...) Expand 10 before | Expand all | Expand 10 after
1417 int request_id) { 1422 int request_id) {
1418 callbacks->Remove(request_id); 1423 callbacks->Remove(request_id);
1419 if (is_doomed_) { 1424 if (is_doomed_) {
1420 // The stop should be already scheduled, but try to stop immediately, in 1425 // The stop should be already scheduled, but try to stop immediately, in
1421 // order to release worker resources soon. 1426 // order to release worker resources soon.
1422 StopWorkerIfIdle(); 1427 StopWorkerIfIdle();
1423 } 1428 }
1424 } 1429 }
1425 1430
1426 } // namespace content 1431 } // namespace content
OLDNEW
« no previous file with comments | « chrome/chrome_browser.gypi ('k') | content/public/browser/content_browser_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698