Index: content/browser/service_worker/service_worker_version.cc |
diff --git a/content/browser/service_worker/service_worker_version.cc b/content/browser/service_worker/service_worker_version.cc |
index f28609efbce01fdb31087dcff923ecaf0c3b0d14..4d0cd0bfdf0bb6570f540f5c201278a3858555a8 100644 |
--- a/content/browser/service_worker/service_worker_version.cc |
+++ b/content/browser/service_worker/service_worker_version.cc |
@@ -210,6 +210,13 @@ class WindowOpenedObserver : public WebContentsObserver { |
DISALLOW_COPY_AND_ASSIGN(WindowOpenedObserver); |
}; |
+void DidOpenWindowOnUI( |
+ const WindowOpenedCallback& callback, WebContents* web_contents) { |
+ DCHECK(web_contents); |
+ |
+ new WindowOpenedObserver(web_contents, callback); |
+} |
+ |
void OpenWindowOnUI( |
const GURL& url, |
const GURL& script_url, |
@@ -241,11 +248,9 @@ void OpenWindowOnUI( |
ui::PAGE_TRANSITION_AUTO_TOPLEVEL, |
false); |
- WebContents* web_contents = |
- GetContentClient()->browser()->OpenURL(browser_context, params); |
- DCHECK(web_contents); |
- |
- new WindowOpenedObserver(web_contents, callback); |
+ GetContentClient()->browser()->OpenURL( |
+ browser_context, params, |
+ base::Bind(&DidOpenWindowOnUI, callback)); |
} |
void KillEmbeddedWorkerProcess(int process_id, ResultCode code) { |