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

Side by Side Diff: chrome/browser/dom_distiller/tab_utils.cc

Issue 1432143002: Track where WebContents are created in order to better understand issue. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "chrome/browser/dom_distiller/tab_utils.h" 5 #include "chrome/browser/dom_distiller/tab_utils.h"
6 6
7 #include "base/message_loop/message_loop.h" 7 #include "base/message_loop/message_loop.h"
8 #include "chrome/browser/dom_distiller/dom_distiller_service_factory.h" 8 #include "chrome/browser/dom_distiller/dom_distiller_service_factory.h"
9 #include "chrome/browser/ui/tab_contents/core_tab_helper.h" 9 #include "chrome/browser/ui/tab_contents/core_tab_helper.h"
10 #include "chrome/browser/ui/tab_contents/core_tab_helper_delegate.h" 10 #include "chrome/browser/ui/tab_contents/core_tab_helper_delegate.h"
11 #include "components/dom_distiller/content/browser/distiller_page_web_contents.h " 11 #include "components/dom_distiller/content/browser/distiller_page_web_contents.h "
12 #include "components/dom_distiller/core/distiller_page.h" 12 #include "components/dom_distiller/core/distiller_page.h"
13 #include "components/dom_distiller/core/dom_distiller_service.h" 13 #include "components/dom_distiller/core/dom_distiller_service.h"
14 #include "components/dom_distiller/core/task_tracker.h" 14 #include "components/dom_distiller/core/task_tracker.h"
15 #include "components/dom_distiller/core/url_constants.h" 15 #include "components/dom_distiller/core/url_constants.h"
16 #include "components/dom_distiller/core/url_utils.h" 16 #include "components/dom_distiller/core/url_utils.h"
17 #include "content/public/browser/browser_context.h" 17 #include "content/public/browser/browser_context.h"
18 #include "content/public/browser/navigation_controller.h" 18 #include "content/public/browser/navigation_controller.h"
19 #include "content/public/browser/web_contents.h" 19 #include "content/public/browser/web_contents.h"
20 #include "content/public/browser/web_contents_observer.h" 20 #include "content/public/browser/web_contents_observer.h"
21 #include "content/public/browser/web_contents_source.h"
21 22
22 namespace { 23 namespace {
23 24
24 using dom_distiller::ViewRequestDelegate; 25 using dom_distiller::ViewRequestDelegate;
25 using dom_distiller::DistilledArticleProto; 26 using dom_distiller::DistilledArticleProto;
26 using dom_distiller::ArticleDistillationUpdate; 27 using dom_distiller::ArticleDistillationUpdate;
27 using dom_distiller::ViewerHandle; 28 using dom_distiller::ViewerHandle;
28 using dom_distiller::SourcePageHandleWebContents; 29 using dom_distiller::SourcePageHandleWebContents;
29 using dom_distiller::DomDistillerService; 30 using dom_distiller::DomDistillerService;
30 using dom_distiller::DomDistillerServiceFactory; 31 using dom_distiller::DomDistillerServiceFactory;
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 } // namespace 137 } // namespace
137 138
138 void DistillCurrentPageAndView(content::WebContents* old_web_contents) { 139 void DistillCurrentPageAndView(content::WebContents* old_web_contents) {
139 DCHECK(old_web_contents); 140 DCHECK(old_web_contents);
140 // Create new WebContents. 141 // Create new WebContents.
141 content::WebContents::CreateParams create_params( 142 content::WebContents::CreateParams create_params(
142 old_web_contents->GetBrowserContext()); 143 old_web_contents->GetBrowserContext());
143 content::WebContents* new_web_contents = 144 content::WebContents* new_web_contents =
144 content::WebContents::Create(create_params); 145 content::WebContents::Create(create_params);
145 DCHECK(new_web_contents); 146 DCHECK(new_web_contents);
147 WebContentsSource::CreateForWebContentsAndLocation(new_web_contents,
148 FROM_HERE);
146 149
147 // Copy all navigation state from the old WebContents to the new one. 150 // Copy all navigation state from the old WebContents to the new one.
148 new_web_contents->GetController().CopyStateFrom( 151 new_web_contents->GetController().CopyStateFrom(
149 old_web_contents->GetController()); 152 old_web_contents->GetController());
150 153
151 // StartNavigationToDistillerViewer must come before swapping the tab contents 154 // StartNavigationToDistillerViewer must come before swapping the tab contents
152 // to avoid triggering a reload of the page. This reloadmakes it very 155 // to avoid triggering a reload of the page. This reloadmakes it very
153 // difficult to distinguish between the intermediate reload and a user hitting 156 // difficult to distinguish between the intermediate reload and a user hitting
154 // the back button. 157 // the back button.
155 StartNavigationToDistillerViewer(new_web_contents, 158 StartNavigationToDistillerViewer(new_web_contents,
(...skipping 13 matching lines...) Expand all
169 DCHECK(source_web_contents); 172 DCHECK(source_web_contents);
170 DCHECK(destination_web_contents); 173 DCHECK(destination_web_contents);
171 174
172 scoped_ptr<SourcePageHandleWebContents> source_page_handle( 175 scoped_ptr<SourcePageHandleWebContents> source_page_handle(
173 new SourcePageHandleWebContents(source_web_contents, false)); 176 new SourcePageHandleWebContents(source_web_contents, false));
174 177
175 MaybeStartDistillation(source_page_handle.Pass()); 178 MaybeStartDistillation(source_page_handle.Pass());
176 StartNavigationToDistillerViewer(destination_web_contents, 179 StartNavigationToDistillerViewer(destination_web_contents,
177 source_web_contents->GetLastCommittedURL()); 180 source_web_contents->GetLastCommittedURL());
178 } 181 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698