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

Side by Side Diff: chrome/browser/prerender/prerender_contents.cc

Issue 10540078: TabContentsWrapper -> TabContents, part 23. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/prerender/prerender_contents.h" 5 #include "chrome/browser/prerender/prerender_contents.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/process_util.h" 10 #include "base/process_util.h"
11 #include "base/utf_string_conversions.h" 11 #include "base/utf_string_conversions.h"
12 #include "chrome/browser/history/history_tab_helper.h" 12 #include "chrome/browser/history/history_tab_helper.h"
13 #include "chrome/browser/history/history_types.h" 13 #include "chrome/browser/history/history_types.h"
14 #include "chrome/browser/prerender/prerender_final_status.h" 14 #include "chrome/browser/prerender/prerender_final_status.h"
15 #include "chrome/browser/prerender/prerender_manager.h" 15 #include "chrome/browser/prerender/prerender_manager.h"
16 #include "chrome/browser/prerender/prerender_render_view_host_observer.h" 16 #include "chrome/browser/prerender/prerender_render_view_host_observer.h"
17 #include "chrome/browser/prerender/prerender_tracker.h" 17 #include "chrome/browser/prerender/prerender_tracker.h"
18 #include "chrome/browser/profiles/profile.h" 18 #include "chrome/browser/profiles/profile.h"
19 #include "chrome/browser/ui/browser.h" 19 #include "chrome/browser/ui/browser.h"
20 #include "chrome/browser/ui/browser_finder.h" 20 #include "chrome/browser/ui/browser_finder.h"
21 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" 21 #include "chrome/browser/ui/tab_contents/tab_contents.h"
22 #include "chrome/common/chrome_notification_types.h" 22 #include "chrome/common/chrome_notification_types.h"
23 #include "chrome/common/icon_messages.h" 23 #include "chrome/common/icon_messages.h"
24 #include "chrome/common/prerender_messages.h" 24 #include "chrome/common/prerender_messages.h"
25 #include "chrome/common/url_constants.h" 25 #include "chrome/common/url_constants.h"
26 #include "content/public/browser/resource_request_details.h" 26 #include "content/public/browser/resource_request_details.h"
27 #include "content/public/browser/browser_child_process_host.h" 27 #include "content/public/browser/browser_child_process_host.h"
28 #include "content/public/browser/notification_service.h" 28 #include "content/public/browser/notification_service.h"
29 #include "content/public/browser/render_process_host.h" 29 #include "content/public/browser/render_process_host.h"
30 #include "content/public/browser/render_view_host.h" 30 #include "content/public/browser/render_view_host.h"
31 #include "content/public/browser/web_contents.h" 31 #include "content/public/browser/web_contents.h"
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 } 182 }
183 183
184 virtual void JSOutOfMemory(WebContents* tab) OVERRIDE { 184 virtual void JSOutOfMemory(WebContents* tab) OVERRIDE {
185 prerender_contents_->OnJSOutOfMemory(); 185 prerender_contents_->OnJSOutOfMemory();
186 } 186 }
187 187
188 virtual bool ShouldSuppressDialogs() OVERRIDE { 188 virtual bool ShouldSuppressDialogs() OVERRIDE {
189 return prerender_contents_->ShouldSuppressDialogs(); 189 return prerender_contents_->ShouldSuppressDialogs();
190 } 190 }
191 191
192 // Commits the History of Pages to the given TabContentsWrapper. 192 // Commits the History of Pages to the given TabContents.
193 void CommitHistory(TabContentsWrapper* tab) { 193 void CommitHistory(TabContents* tab) {
194 for (size_t i = 0; i < add_page_vector_.size(); ++i) 194 for (size_t i = 0; i < add_page_vector_.size(); ++i)
195 tab->history_tab_helper()->UpdateHistoryForNavigation( 195 tab->history_tab_helper()->UpdateHistoryForNavigation(
196 add_page_vector_[i].get()); 196 add_page_vector_[i].get());
197 } 197 }
198 198
199 private: 199 private:
200 typedef std::vector<scoped_refptr<history::HistoryAddPageArgs> > 200 typedef std::vector<scoped_refptr<history::HistoryAddPageArgs> >
201 AddPageVector; 201 AddPageVector;
202 202
203 // Caches pages to be added to the history. 203 // Caches pages to be added to the history.
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
313 313
314 // Everything after this point sets up the WebContents object and associated 314 // Everything after this point sets up the WebContents object and associated
315 // RenderView for the prerender page. Don't do this for members of the 315 // RenderView for the prerender page. Don't do this for members of the
316 // control group. 316 // control group.
317 if (is_control_group) 317 if (is_control_group)
318 return; 318 return;
319 319
320 prerendering_has_started_ = true; 320 prerendering_has_started_ = true;
321 321
322 WebContents* new_contents = CreateWebContents(session_storage_namespace); 322 WebContents* new_contents = CreateWebContents(session_storage_namespace);
323 prerender_contents_.reset(new TabContentsWrapper(new_contents)); 323 prerender_contents_.reset(new TabContents(new_contents));
324 content::WebContentsObserver::Observe(new_contents); 324 content::WebContentsObserver::Observe(new_contents);
325 325
326 tab_contents_delegate_.reset(new TabContentsDelegateImpl(this)); 326 tab_contents_delegate_.reset(new TabContentsDelegateImpl(this));
327 new_contents->SetDelegate(tab_contents_delegate_.get()); 327 new_contents->SetDelegate(tab_contents_delegate_.get());
328 328
329 // Set the size of the prerender WebContents. 329 // Set the size of the prerender WebContents.
330 prerender_contents_->web_contents()->GetView()->SizeContents(size_); 330 prerender_contents_->web_contents()->GetView()->SizeContents(size_);
331 331
332 // Register as an observer of the RenderViewHost so we get messages. 332 // Register as an observer of the RenderViewHost so we get messages.
333 render_view_host_observer_.reset( 333 render_view_host_observer_.reset(
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after
667 if (metrics == NULL) 667 if (metrics == NULL)
668 return; 668 return;
669 669
670 size_t private_bytes, shared_bytes; 670 size_t private_bytes, shared_bytes;
671 if (metrics->GetMemoryBytes(&private_bytes, &shared_bytes) && 671 if (metrics->GetMemoryBytes(&private_bytes, &shared_bytes) &&
672 private_bytes > prerender_manager_->config().max_bytes) { 672 private_bytes > prerender_manager_->config().max_bytes) {
673 Destroy(FINAL_STATUS_MEMORY_LIMIT_EXCEEDED); 673 Destroy(FINAL_STATUS_MEMORY_LIMIT_EXCEEDED);
674 } 674 }
675 } 675 }
676 676
677 TabContentsWrapper* PrerenderContents::ReleasePrerenderContents() { 677 TabContents* PrerenderContents::ReleasePrerenderContents() {
678 prerender_contents_->web_contents()->SetDelegate(NULL); 678 prerender_contents_->web_contents()->SetDelegate(NULL);
679 render_view_host_observer_.reset(); 679 render_view_host_observer_.reset();
680 content::WebContentsObserver::Observe(NULL); 680 content::WebContentsObserver::Observe(NULL);
681 return prerender_contents_.release(); 681 return prerender_contents_.release();
682 } 682 }
683 683
684 WebContents* PrerenderContents::GetWebContents() { 684 WebContents* PrerenderContents::GetWebContents() {
685 if (!prerender_contents_.get()) 685 if (!prerender_contents_.get())
686 return NULL; 686 return NULL;
687 return prerender_contents_->web_contents(); 687 return prerender_contents_->web_contents();
688 } 688 }
689 689
690 RenderViewHost* PrerenderContents::GetRenderViewHostMutable() { 690 RenderViewHost* PrerenderContents::GetRenderViewHostMutable() {
691 return const_cast<RenderViewHost*>(GetRenderViewHost()); 691 return const_cast<RenderViewHost*>(GetRenderViewHost());
692 } 692 }
693 693
694 const RenderViewHost* PrerenderContents::GetRenderViewHost() const { 694 const RenderViewHost* PrerenderContents::GetRenderViewHost() const {
695 if (!prerender_contents_.get()) 695 if (!prerender_contents_.get())
696 return NULL; 696 return NULL;
697 return prerender_contents_->web_contents()->GetRenderViewHost(); 697 return prerender_contents_->web_contents()->GetRenderViewHost();
698 } 698 }
699 699
700 void PrerenderContents::CommitHistory(TabContentsWrapper* tab) { 700 void PrerenderContents::CommitHistory(TabContents* tab) {
701 if (tab_contents_delegate_.get()) 701 if (tab_contents_delegate_.get())
702 tab_contents_delegate_->CommitHistory(tab); 702 tab_contents_delegate_->CommitHistory(tab);
703 } 703 }
704 704
705 Value* PrerenderContents::GetAsValue() const { 705 Value* PrerenderContents::GetAsValue() const {
706 if (!prerender_contents_.get()) 706 if (!prerender_contents_.get())
707 return NULL; 707 return NULL;
708 DictionaryValue* dict_value = new DictionaryValue(); 708 DictionaryValue* dict_value = new DictionaryValue();
709 dict_value->SetString("url", prerender_url_.spec()); 709 dict_value->SetString("url", prerender_url_.spec());
710 base::TimeTicks current_time = base::TimeTicks::Now(); 710 base::TimeTicks current_time = base::TimeTicks::Now();
711 base::TimeDelta duration = current_time - load_start_time_; 711 base::TimeDelta duration = current_time - load_start_time_;
712 dict_value->SetInteger("duration", duration.InSeconds()); 712 dict_value->SetInteger("duration", duration.InSeconds());
713 return dict_value; 713 return dict_value;
714 } 714 }
715 715
716 bool PrerenderContents::IsCrossSiteNavigationPending() const { 716 bool PrerenderContents::IsCrossSiteNavigationPending() const {
717 if (!prerender_contents_.get() || !prerender_contents_->web_contents()) 717 if (!prerender_contents_.get() || !prerender_contents_->web_contents())
718 return false; 718 return false;
719 const WebContents* web_contents = prerender_contents_->web_contents(); 719 const WebContents* web_contents = prerender_contents_->web_contents();
720 return (web_contents->GetSiteInstance() != 720 return (web_contents->GetSiteInstance() !=
721 web_contents->GetPendingSiteInstance()); 721 web_contents->GetPendingSiteInstance());
722 } 722 }
723 723
724 724
725 } // namespace prerender 725 } // namespace prerender
OLDNEW
« no previous file with comments | « chrome/browser/prerender/prerender_contents.h ('k') | chrome/browser/prerender/prerender_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698