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

Side by Side Diff: content/browser/tab_contents/tab_contents.cc

Issue 9473001: Extract minimal RenderViewHost interface for embedders, leaving (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Ready for initial review. Created 8 years, 9 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 "content/browser/tab_contents/tab_contents.h" 5 #include "content/browser/tab_contents/tab_contents.h"
6 6
7 #include <cmath> 7 #include <cmath>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after
432 432
433 // Accelerated video and animation are slower than regular when using a 433 // Accelerated video and animation are slower than regular when using a
434 // software 3d rasterizer. 434 // software 3d rasterizer.
435 if (gpu_data_manager->ShouldUseSoftwareRendering()) { 435 if (gpu_data_manager->ShouldUseSoftwareRendering()) {
436 prefs.accelerated_video_enabled = false; 436 prefs.accelerated_video_enabled = false;
437 prefs.accelerated_animation_enabled = false; 437 prefs.accelerated_animation_enabled = false;
438 } 438 }
439 } 439 }
440 440
441 if (ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings( 441 if (ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings(
442 rvh->process()->GetID())) { 442 rvh->GetProcess()->GetID())) {
443 prefs.loads_images_automatically = true; 443 prefs.loads_images_automatically = true;
444 prefs.javascript_enabled = true; 444 prefs.javascript_enabled = true;
445 } 445 }
446 446
447 prefs.is_online = !net::NetworkChangeNotifier::IsOffline(); 447 prefs.is_online = !net::NetworkChangeNotifier::IsOffline();
448 448
449 // Force accelerated compositing and 2d canvas off for chrome:, about: and 449 // Force accelerated compositing and 2d canvas off for chrome:, about: and
450 // chrome-devtools: pages (unless it's specifically allowed). 450 // chrome-devtools: pages (unless it's specifically allowed).
451 if ((url.SchemeIs(chrome::kChromeDevToolsScheme) || 451 if ((url.SchemeIs(chrome::kChromeDevToolsScheme) ||
452 url.SchemeIs(chrome::kChromeUIScheme) || 452 url.SchemeIs(chrome::kChromeUIScheme) ||
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
578 return; 578 return;
579 if (delegate_) 579 if (delegate_)
580 delegate_->Detach(this); 580 delegate_->Detach(this);
581 delegate_ = delegate; 581 delegate_ = delegate;
582 if (delegate_) 582 if (delegate_)
583 delegate_->Attach(this); 583 delegate_->Attach(this);
584 } 584 }
585 585
586 content::RenderProcessHost* TabContents::GetRenderProcessHost() const { 586 content::RenderProcessHost* TabContents::GetRenderProcessHost() const {
587 if (render_manager_.current_host()) 587 if (render_manager_.current_host())
588 return render_manager_.current_host()->process(); 588 return render_manager_.current_host()->GetProcess();
589 else 589 else
590 return NULL; 590 return NULL;
591 } 591 }
592 592
593 RenderViewHost* TabContents::GetRenderViewHost() const { 593 RenderViewHost* TabContents::GetRenderViewHost() const {
594 return render_manager_.current_host(); 594 return render_manager_.current_host();
595 } 595 }
596 596
597 RenderWidgetHostView* TabContents::GetRenderWidgetHostView() const { 597 RenderWidgetHostView* TabContents::GetRenderWidgetHostView() const {
598 return render_manager_.GetRenderWidgetHostView(); 598 return render_manager_.GetRenderWidgetHostView();
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
684 SiteInstance* site_instance, int32 page_id) { 684 SiteInstance* site_instance, int32 page_id) {
685 if (GetMaxPageIDForSiteInstance(site_instance) < page_id) 685 if (GetMaxPageIDForSiteInstance(site_instance) < page_id)
686 max_page_ids_[site_instance->GetId()] = page_id; 686 max_page_ids_[site_instance->GetId()] = page_id;
687 } 687 }
688 688
689 void TabContents::CopyMaxPageIDsFrom(TabContents* tab_contents) { 689 void TabContents::CopyMaxPageIDsFrom(TabContents* tab_contents) {
690 max_page_ids_ = tab_contents->max_page_ids_; 690 max_page_ids_ = tab_contents->max_page_ids_;
691 } 691 }
692 692
693 SiteInstance* TabContents::GetSiteInstance() const { 693 SiteInstance* TabContents::GetSiteInstance() const {
694 return render_manager_.current_host()->site_instance(); 694 return render_manager_.current_host()->GetSiteInstance();
695 } 695 }
696 696
697 SiteInstance* TabContents::GetPendingSiteInstance() const { 697 SiteInstance* TabContents::GetPendingSiteInstance() const {
698 RenderViewHost* dest_rvh = render_manager_.pending_render_view_host() ? 698 RenderViewHost* dest_rvh = render_manager_.pending_render_view_host() ?
699 render_manager_.pending_render_view_host() : 699 render_manager_.pending_render_view_host() :
700 render_manager_.current_host(); 700 render_manager_.current_host();
701 return dest_rvh->site_instance(); 701 return dest_rvh->GetSiteInstance();
702 } 702 }
703 703
704 bool TabContents::IsLoading() const { 704 bool TabContents::IsLoading() const {
705 return is_loading_; 705 return is_loading_;
706 } 706 }
707 707
708 bool TabContents::IsWaitingForResponse() const { 708 bool TabContents::IsWaitingForResponse() const {
709 return waiting_for_response_; 709 return waiting_for_response_;
710 } 710 }
711 711
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
775 rwhv->SetActive(true); 775 rwhv->SetActive(true);
776 #endif 776 #endif
777 } 777 }
778 778
779 last_selected_time_ = base::TimeTicks::Now(); 779 last_selected_time_ = base::TimeTicks::Now();
780 780
781 FOR_EACH_OBSERVER(WebContentsObserver, observers_, DidBecomeSelected()); 781 FOR_EACH_OBSERVER(WebContentsObserver, observers_, DidBecomeSelected());
782 782
783 // The resize rect might have changed while this was inactive -- send the new 783 // The resize rect might have changed while this was inactive -- send the new
784 // one to make sure it's up to date. 784 // one to make sure it's up to date.
785 RenderViewHost* rvh = GetRenderViewHost(); 785 RenderViewHostImpl* rvh =
786 static_cast<RenderViewHostImpl*>(GetRenderViewHost());
786 if (rvh) { 787 if (rvh) {
787 rvh->ResizeRectChanged(GetRootWindowResizerRect()); 788 rvh->ResizeRectChanged(GetRootWindowResizerRect());
788 } 789 }
789 } 790 }
790 791
791 792
792 base::TimeTicks TabContents::GetLastSelectedTime() const { 793 base::TimeTicks TabContents::GetLastSelectedTime() const {
793 return last_selected_time_; 794 return last_selected_time_;
794 } 795 }
795 796
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
827 // here practically impossible to understand, this also means we end up 828 // here practically impossible to understand, this also means we end up
828 // calling TabContents::WasHidden() twice if callers call both versions of 829 // calling TabContents::WasHidden() twice if callers call both versions of
829 // HideContents() on a TabContents. 830 // HideContents() on a TabContents.
830 WasHidden(); 831 WasHidden();
831 } 832 }
832 833
833 bool TabContents::NeedToFireBeforeUnload() { 834 bool TabContents::NeedToFireBeforeUnload() {
834 // TODO(creis): Should we fire even for interstitial pages? 835 // TODO(creis): Should we fire even for interstitial pages?
835 return WillNotifyDisconnection() && 836 return WillNotifyDisconnection() &&
836 !ShowingInterstitialPage() && 837 !ShowingInterstitialPage() &&
837 !GetRenderViewHost()->SuddenTerminationAllowed(); 838 !static_cast<RenderViewHostImpl*>(
839 GetRenderViewHost())->SuddenTerminationAllowed();
838 } 840 }
839 841
840 void TabContents::Stop() { 842 void TabContents::Stop() {
841 render_manager_.Stop(); 843 render_manager_.Stop();
842 FOR_EACH_OBSERVER(WebContentsObserver, observers_, StopNavigation()); 844 FOR_EACH_OBSERVER(WebContentsObserver, observers_, StopNavigation());
843 } 845 }
844 846
845 WebContents* TabContents::Clone() { 847 WebContents* TabContents::Clone() {
846 // We create a new SiteInstance so that the new tab won't share processes 848 // We create a new SiteInstance so that the new tab won't share processes
847 // with the old one. This can be changed in the future if we need it to share 849 // with the old one. This can be changed in the future if we need it to share
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
986 } 988 }
987 989
988 bool TabContents::NavigateToEntry( 990 bool TabContents::NavigateToEntry(
989 const NavigationEntryImpl& entry, 991 const NavigationEntryImpl& entry,
990 NavigationController::ReloadType reload_type) { 992 NavigationController::ReloadType reload_type) {
991 // The renderer will reject IPC messages with URLs longer than 993 // The renderer will reject IPC messages with URLs longer than
992 // this limit, so don't attempt to navigate with a longer URL. 994 // this limit, so don't attempt to navigate with a longer URL.
993 if (entry.GetURL().spec().size() > content::kMaxURLChars) 995 if (entry.GetURL().spec().size() > content::kMaxURLChars)
994 return false; 996 return false;
995 997
996 RenderViewHost* dest_render_view_host = render_manager_.Navigate(entry); 998 RenderViewHostImpl* dest_render_view_host =
999 static_cast<RenderViewHostImpl*>(render_manager_.Navigate(entry));
997 if (!dest_render_view_host) 1000 if (!dest_render_view_host)
998 return false; // Unable to create the desired render view host. 1001 return false; // Unable to create the desired render view host.
999 1002
1000 // For security, we should never send non-Web-UI URLs to a Web UI renderer. 1003 // For security, we should never send non-Web-UI URLs to a Web UI renderer.
1001 // Double check that here. 1004 // Double check that here.
1002 int enabled_bindings = dest_render_view_host->enabled_bindings(); 1005 int enabled_bindings = dest_render_view_host->GetEnabledBindings();
1003 WebUIControllerFactory* factory = 1006 WebUIControllerFactory* factory =
1004 content::GetContentClient()->browser()->GetWebUIControllerFactory(); 1007 content::GetContentClient()->browser()->GetWebUIControllerFactory();
1005 bool is_allowed_in_web_ui_renderer = 1008 bool is_allowed_in_web_ui_renderer =
1006 factory && 1009 factory &&
1007 factory->IsURLAcceptableForWebUI(GetBrowserContext(), entry.GetURL()); 1010 factory->IsURLAcceptableForWebUI(GetBrowserContext(), entry.GetURL());
1008 #if defined(OS_CHROMEOS) 1011 #if defined(OS_CHROMEOS)
1009 is_allowed_in_web_ui_renderer |= entry.GetURL().SchemeIs(chrome::kDataScheme); 1012 is_allowed_in_web_ui_renderer |= entry.GetURL().SchemeIs(chrome::kDataScheme);
1010 #endif 1013 #endif
1011 CHECK(!(enabled_bindings & content::BINDINGS_POLICY_WEB_UI) || 1014 CHECK(!(enabled_bindings & content::BINDINGS_POLICY_WEB_UI) ||
1012 is_allowed_in_web_ui_renderer); 1015 is_allowed_in_web_ui_renderer);
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
1050 void TabContents::SetHistoryLengthAndPrune( 1053 void TabContents::SetHistoryLengthAndPrune(
1051 const SiteInstance* site_instance, 1054 const SiteInstance* site_instance,
1052 int history_length, 1055 int history_length,
1053 int32 minimum_page_id) { 1056 int32 minimum_page_id) {
1054 // SetHistoryLengthAndPrune doesn't work when there are pending cross-site 1057 // SetHistoryLengthAndPrune doesn't work when there are pending cross-site
1055 // navigations. Callers should ensure that this is the case. 1058 // navigations. Callers should ensure that this is the case.
1056 if (render_manager_.pending_render_view_host()) { 1059 if (render_manager_.pending_render_view_host()) {
1057 NOTREACHED(); 1060 NOTREACHED();
1058 return; 1061 return;
1059 } 1062 }
1060 RenderViewHost* rvh = GetRenderViewHost(); 1063 RenderViewHostImpl* rvh = GetRenderViewHostImpl();
1061 if (!rvh) { 1064 if (!rvh) {
1062 NOTREACHED(); 1065 NOTREACHED();
1063 return; 1066 return;
1064 } 1067 }
1065 if (site_instance && rvh->site_instance() != site_instance) { 1068 if (site_instance && rvh->GetSiteInstance() != site_instance) {
1066 NOTREACHED(); 1069 NOTREACHED();
1067 return; 1070 return;
1068 } 1071 }
1069 rvh->Send(new ViewMsg_SetHistoryLengthAndPrune(rvh->routing_id(), 1072 rvh->Send(new ViewMsg_SetHistoryLengthAndPrune(rvh->GetRoutingID(),
1070 history_length, 1073 history_length,
1071 minimum_page_id)); 1074 minimum_page_id));
1072 } 1075 }
1073 1076
1074 void TabContents::FocusThroughTabTraversal(bool reverse) { 1077 void TabContents::FocusThroughTabTraversal(bool reverse) {
1075 if (ShowingInterstitialPage()) { 1078 if (ShowingInterstitialPage()) {
1076 render_manager_.interstitial_page()->FocusThroughTabTraversal(reverse); 1079 render_manager_.interstitial_page()->FocusThroughTabTraversal(reverse);
1077 return; 1080 return;
1078 } 1081 }
1079 GetRenderViewHost()->SetInitialFocus(reverse); 1082 GetRenderViewHostImpl()->SetInitialFocus(reverse);
1080 } 1083 }
1081 1084
1082 bool TabContents::ShowingInterstitialPage() const { 1085 bool TabContents::ShowingInterstitialPage() const {
1083 return render_manager_.interstitial_page() != NULL; 1086 return render_manager_.interstitial_page() != NULL;
1084 } 1087 }
1085 1088
1086 InterstitialPage* TabContents::GetInterstitialPage() const { 1089 InterstitialPage* TabContents::GetInterstitialPage() const {
1087 return render_manager_.interstitial_page(); 1090 return render_manager_.interstitial_page();
1088 } 1091 }
1089 1092
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
1139 const std::string& TabContents::GetContentsMimeType() const { 1142 const std::string& TabContents::GetContentsMimeType() const {
1140 return contents_mime_type_; 1143 return contents_mime_type_;
1141 } 1144 }
1142 1145
1143 bool TabContents::WillNotifyDisconnection() const { 1146 bool TabContents::WillNotifyDisconnection() const {
1144 return notify_disconnection_; 1147 return notify_disconnection_;
1145 } 1148 }
1146 1149
1147 void TabContents::SetOverrideEncoding(const std::string& encoding) { 1150 void TabContents::SetOverrideEncoding(const std::string& encoding) {
1148 SetEncoding(encoding); 1151 SetEncoding(encoding);
1149 GetRenderViewHost()->Send(new ViewMsg_SetPageEncoding( 1152 GetRenderViewHostImpl()->Send(new ViewMsg_SetPageEncoding(
1150 GetRenderViewHost()->routing_id(), encoding)); 1153 GetRenderViewHost()->GetRoutingID(), encoding));
1151 } 1154 }
1152 1155
1153 void TabContents::ResetOverrideEncoding() { 1156 void TabContents::ResetOverrideEncoding() {
1154 encoding_.clear(); 1157 encoding_.clear();
1155 GetRenderViewHost()->Send(new ViewMsg_ResetPageEncodingToDefault( 1158 GetRenderViewHostImpl()->Send(new ViewMsg_ResetPageEncodingToDefault(
1156 GetRenderViewHost()->routing_id())); 1159 GetRenderViewHost()->GetRoutingID()));
1157 } 1160 }
1158 1161
1159 content::RendererPreferences* TabContents::GetMutableRendererPrefs() { 1162 content::RendererPreferences* TabContents::GetMutableRendererPrefs() {
1160 return &renderer_preferences_; 1163 return &renderer_preferences_;
1161 } 1164 }
1162 1165
1163 void TabContents::SetNewTabStartTime(const base::TimeTicks& time) { 1166 void TabContents::SetNewTabStartTime(const base::TimeTicks& time) {
1164 new_tab_start_time_ = time; 1167 new_tab_start_time_ = time;
1165 } 1168 }
1166 1169
(...skipping 13 matching lines...) Expand all
1180 if (delegate_ && delegate_->IsPopupOrPanel(this)) 1183 if (delegate_ && delegate_->IsPopupOrPanel(this))
1181 return false; 1184 return false;
1182 return true; 1185 return true;
1183 #else 1186 #else
1184 return true; 1187 return true;
1185 #endif 1188 #endif
1186 } 1189 }
1187 1190
1188 void TabContents::SystemDragEnded() { 1191 void TabContents::SystemDragEnded() {
1189 if (GetRenderViewHost()) 1192 if (GetRenderViewHost())
1190 GetRenderViewHost()->DragSourceSystemDragEnded(); 1193 GetRenderViewHostImpl()->DragSourceSystemDragEnded();
1191 if (delegate_) 1194 if (delegate_)
1192 delegate_->DragEnded(); 1195 delegate_->DragEnded();
1193 } 1196 }
1194 1197
1195 void TabContents::SetClosedByUserGesture(bool value) { 1198 void TabContents::SetClosedByUserGesture(bool value) {
1196 closed_by_user_gesture_ = value; 1199 closed_by_user_gesture_ = value;
1197 } 1200 }
1198 1201
1199 bool TabContents::GetClosedByUserGesture() const { 1202 bool TabContents::GetClosedByUserGesture() const {
1200 return closed_by_user_gesture_; 1203 return closed_by_user_gesture_;
1201 } 1204 }
1202 1205
1203 double TabContents::GetZoomLevel() const { 1206 double TabContents::GetZoomLevel() const {
1204 HostZoomMapImpl* zoom_map = static_cast<HostZoomMapImpl*>( 1207 HostZoomMapImpl* zoom_map = static_cast<HostZoomMapImpl*>(
1205 HostZoomMap::GetForBrowserContext(GetBrowserContext())); 1208 HostZoomMap::GetForBrowserContext(GetBrowserContext()));
1206 if (!zoom_map) 1209 if (!zoom_map)
1207 return 0; 1210 return 0;
1208 1211
1209 double zoom_level; 1212 double zoom_level;
1210 if (temporary_zoom_settings_) { 1213 if (temporary_zoom_settings_) {
1211 zoom_level = zoom_map->GetTemporaryZoomLevel( 1214 zoom_level = zoom_map->GetTemporaryZoomLevel(
1212 GetRenderProcessHost()->GetID(), GetRenderViewHost()->routing_id()); 1215 GetRenderProcessHost()->GetID(), GetRenderViewHost()->GetRoutingID());
1213 } else { 1216 } else {
1214 GURL url; 1217 GURL url;
1215 NavigationEntry* active_entry = GetController().GetActiveEntry(); 1218 NavigationEntry* active_entry = GetController().GetActiveEntry();
1216 // Since zoom map is updated using rewritten URL, use rewritten URL 1219 // Since zoom map is updated using rewritten URL, use rewritten URL
1217 // to get the zoom level. 1220 // to get the zoom level.
1218 url = active_entry ? active_entry->GetURL() : GURL::EmptyGURL(); 1221 url = active_entry ? active_entry->GetURL() : GURL::EmptyGURL();
1219 zoom_level = zoom_map->GetZoomLevel(net::GetHostOrSpecFromURL(url)); 1222 zoom_level = zoom_map->GetZoomLevel(net::GetHostOrSpecFromURL(url));
1220 } 1223 }
1221 return zoom_level; 1224 return zoom_level;
1222 } 1225 }
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
1311 // -> Use committed Web UI. 1314 // -> Use committed Web UI.
1312 if (controller_.GetPendingEntry() && 1315 if (controller_.GetPendingEntry() &&
1313 (controller_.GetLastCommittedEntry() || 1316 (controller_.GetLastCommittedEntry() ||
1314 render_manager_.pending_web_ui())) 1317 render_manager_.pending_web_ui()))
1315 return render_manager_.pending_web_ui(); 1318 return render_manager_.pending_web_ui();
1316 return render_manager_.web_ui(); 1319 return render_manager_.web_ui();
1317 } 1320 }
1318 1321
1319 bool TabContents::GotResponseToLockMouseRequest(bool allowed) { 1322 bool TabContents::GotResponseToLockMouseRequest(bool allowed) {
1320 return GetRenderViewHost() ? 1323 return GetRenderViewHost() ?
1321 GetRenderViewHost()->GotResponseToLockMouseRequest(allowed) : false; 1324 GetRenderViewHostImpl()->GotResponseToLockMouseRequest(allowed) : false;
1322 } 1325 }
1323 1326
1324 bool TabContents::FocusLocationBarByDefault() { 1327 bool TabContents::FocusLocationBarByDefault() {
1325 content::WebUI* web_ui = GetWebUIForCurrentState(); 1328 content::WebUI* web_ui = GetWebUIForCurrentState();
1326 if (web_ui) 1329 if (web_ui)
1327 return web_ui->ShouldFocusLocationBarByDefault(); 1330 return web_ui->ShouldFocusLocationBarByDefault();
1328 NavigationEntry* entry = controller_.GetActiveEntry(); 1331 NavigationEntry* entry = controller_.GetActiveEntry();
1329 if (entry && entry->GetURL() == GURL(chrome::kAboutBlankURL)) 1332 if (entry && entry->GetURL() == GURL(chrome::kAboutBlankURL))
1330 return true; 1333 return true;
1331 return false; 1334 return false;
(...skipping 19 matching lines...) Expand all
1351 new WebIntentsDispatcherImpl(this, intent, intent_id); 1354 new WebIntentsDispatcherImpl(this, intent, intent_id);
1352 delegate_->WebIntentDispatch(this, intents_dispatcher); 1355 delegate_->WebIntentDispatch(this, intents_dispatcher);
1353 } 1356 }
1354 1357
1355 void TabContents::OnDidStartProvisionalLoadForFrame(int64 frame_id, 1358 void TabContents::OnDidStartProvisionalLoadForFrame(int64 frame_id,
1356 bool is_main_frame, 1359 bool is_main_frame,
1357 const GURL& opener_url, 1360 const GURL& opener_url,
1358 const GURL& url) { 1361 const GURL& url) {
1359 bool is_error_page = (url.spec() == chrome::kUnreachableWebDataURL); 1362 bool is_error_page = (url.spec() == chrome::kUnreachableWebDataURL);
1360 GURL validated_url(url); 1363 GURL validated_url(url);
1361 GetRenderViewHost()->FilterURL(ChildProcessSecurityPolicyImpl::GetInstance(), 1364 GetRenderViewHostImpl()->FilterURL(
1362 GetRenderProcessHost()->GetID(), &validated_url); 1365 ChildProcessSecurityPolicyImpl::GetInstance(),
1366 GetRenderProcessHost()->GetID(),
1367 &validated_url);
1363 1368
1364 RenderViewHost* rvh = 1369 RenderViewHost* rvh =
1365 render_manager_.pending_render_view_host() ? 1370 render_manager_.pending_render_view_host() ?
1366 render_manager_.pending_render_view_host() : GetRenderViewHost(); 1371 render_manager_.pending_render_view_host() : GetRenderViewHost();
1367 // Notify observers about the start of the provisional load. 1372 // Notify observers about the start of the provisional load.
1368 FOR_EACH_OBSERVER(WebContentsObserver, observers_, 1373 FOR_EACH_OBSERVER(WebContentsObserver, observers_,
1369 DidStartProvisionalLoadForFrame(frame_id, is_main_frame, 1374 DidStartProvisionalLoadForFrame(frame_id, is_main_frame,
1370 validated_url, is_error_page, rvh)); 1375 validated_url, is_error_page, rvh));
1371 1376
1372 if (is_main_frame) { 1377 if (is_main_frame) {
(...skipping 27 matching lines...) Expand all
1400 void TabContents::OnDidFailProvisionalLoadWithError( 1405 void TabContents::OnDidFailProvisionalLoadWithError(
1401 const ViewHostMsg_DidFailProvisionalLoadWithError_Params& params) { 1406 const ViewHostMsg_DidFailProvisionalLoadWithError_Params& params) {
1402 VLOG(1) << "Failed Provisional Load: " << params.url.possibly_invalid_spec() 1407 VLOG(1) << "Failed Provisional Load: " << params.url.possibly_invalid_spec()
1403 << ", error_code: " << params.error_code 1408 << ", error_code: " << params.error_code
1404 << ", error_description: " << params.error_description 1409 << ", error_description: " << params.error_description
1405 << ", is_main_frame: " << params.is_main_frame 1410 << ", is_main_frame: " << params.is_main_frame
1406 << ", showing_repost_interstitial: " << 1411 << ", showing_repost_interstitial: " <<
1407 params.showing_repost_interstitial 1412 params.showing_repost_interstitial
1408 << ", frame_id: " << params.frame_id; 1413 << ", frame_id: " << params.frame_id;
1409 GURL validated_url(params.url); 1414 GURL validated_url(params.url);
1410 GetRenderViewHost()->FilterURL(ChildProcessSecurityPolicyImpl::GetInstance(), 1415 GetRenderViewHostImpl()->FilterURL(
1411 GetRenderProcessHost()->GetID(), &validated_url); 1416 ChildProcessSecurityPolicyImpl::GetInstance(),
1417 GetRenderProcessHost()->GetID(),
1418 &validated_url);
1412 1419
1413 if (net::ERR_ABORTED == params.error_code) { 1420 if (net::ERR_ABORTED == params.error_code) {
1414 // EVIL HACK ALERT! Ignore failed loads when we're showing interstitials. 1421 // EVIL HACK ALERT! Ignore failed loads when we're showing interstitials.
1415 // This means that the interstitial won't be torn down properly, which is 1422 // This means that the interstitial won't be torn down properly, which is
1416 // bad. But if we have an interstitial, go back to another tab type, and 1423 // bad. But if we have an interstitial, go back to another tab type, and
1417 // then load the same interstitial again, we could end up getting the first 1424 // then load the same interstitial again, we could end up getting the first
1418 // interstitial's "failed" message (as a result of the cancel) when we're on 1425 // interstitial's "failed" message (as a result of the cancel) when we're on
1419 // the second one. 1426 // the second one.
1420 // 1427 //
1421 // We can't tell this apart, so we think we're tearing down the current page 1428 // We can't tell this apart, so we think we're tearing down the current page
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
1619 int active_match_ordinal, 1626 int active_match_ordinal,
1620 bool final_update) { 1627 bool final_update) {
1621 delegate_->FindReply(this, request_id, number_of_matches, selection_rect, 1628 delegate_->FindReply(this, request_id, number_of_matches, selection_rect,
1622 active_match_ordinal, final_update); 1629 active_match_ordinal, final_update);
1623 // Send a notification to the renderer that we are ready to receive more 1630 // Send a notification to the renderer that we are ready to receive more
1624 // results from the scoping effort of the Find operation. The FindInPage 1631 // results from the scoping effort of the Find operation. The FindInPage
1625 // scoping is asynchronous and periodically sends results back up to the 1632 // scoping is asynchronous and periodically sends results back up to the
1626 // browser using IPC. In an effort to not spam the browser we have the 1633 // browser using IPC. In an effort to not spam the browser we have the
1627 // browser send an ACK for each FindReply message and have the renderer 1634 // browser send an ACK for each FindReply message and have the renderer
1628 // queue up the latest status message while waiting for this ACK. 1635 // queue up the latest status message while waiting for this ACK.
1629 GetRenderViewHost()->Send( 1636 GetRenderViewHostImpl()->Send(
1630 new ViewMsg_FindReplyACK(GetRenderViewHost()->routing_id())); 1637 new ViewMsg_FindReplyACK(GetRenderViewHost()->GetRoutingID()));
1631 } 1638 }
1632 1639
1633 void TabContents::OnCrashedPlugin(const FilePath& plugin_path) { 1640 void TabContents::OnCrashedPlugin(const FilePath& plugin_path) {
1634 delegate_->CrashedPlugin(this, plugin_path); 1641 delegate_->CrashedPlugin(this, plugin_path);
1635 } 1642 }
1636 1643
1637 void TabContents::OnAppCacheAccessed(const GURL& manifest_url, 1644 void TabContents::OnAppCacheAccessed(const GURL& manifest_url,
1638 bool blocked_by_policy) { 1645 bool blocked_by_policy) {
1639 // Notify observers about navigation. 1646 // Notify observers about navigation.
1640 FOR_EACH_OBSERVER(WebContentsObserver, observers_, 1647 FOR_EACH_OBSERVER(WebContentsObserver, observers_,
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
1731 } 1738 }
1732 1739
1733 void TabContents::UpdateMaxPageIDIfNecessary(RenderViewHost* rvh) { 1740 void TabContents::UpdateMaxPageIDIfNecessary(RenderViewHost* rvh) {
1734 // If we are creating a RVH for a restored controller, then we need to make 1741 // If we are creating a RVH for a restored controller, then we need to make
1735 // sure the RenderView starts with a next_page_id_ larger than the number 1742 // sure the RenderView starts with a next_page_id_ larger than the number
1736 // of restored entries. This must be called before the RenderView starts 1743 // of restored entries. This must be called before the RenderView starts
1737 // navigating (to avoid a race between the browser updating max_page_id and 1744 // navigating (to avoid a race between the browser updating max_page_id and
1738 // the renderer updating next_page_id_). Because of this, we only call this 1745 // the renderer updating next_page_id_). Because of this, we only call this
1739 // from CreateRenderView and allow that to notify the RenderView for us. 1746 // from CreateRenderView and allow that to notify the RenderView for us.
1740 int max_restored_page_id = controller_.GetMaxRestoredPageID(); 1747 int max_restored_page_id = controller_.GetMaxRestoredPageID();
1741 if (max_restored_page_id > GetMaxPageIDForSiteInstance(rvh->site_instance())) 1748 if (max_restored_page_id >
1742 UpdateMaxPageIDForSiteInstance(rvh->site_instance(), max_restored_page_id); 1749 GetMaxPageIDForSiteInstance(rvh->GetSiteInstance()))
1750 UpdateMaxPageIDForSiteInstance(rvh->GetSiteInstance(),
1751 max_restored_page_id);
1743 } 1752 }
1744 1753
1745 bool TabContents::UpdateTitleForEntry(NavigationEntryImpl* entry, 1754 bool TabContents::UpdateTitleForEntry(NavigationEntryImpl* entry,
1746 const string16& title) { 1755 const string16& title) {
1747 // For file URLs without a title, use the pathname instead. In the case of a 1756 // For file URLs without a title, use the pathname instead. In the case of a
1748 // synthesized title, we don't want the update to count toward the "one set 1757 // synthesized title, we don't want the update to count toward the "one set
1749 // per page of the title to history." 1758 // per page of the title to history."
1750 string16 final_title; 1759 string16 final_title;
1751 bool explicit_set; 1760 bool explicit_set;
1752 if (entry && entry->GetURL().SchemeIsFile() && title.empty()) { 1761 if (entry && entry->GetURL().SchemeIsFile() && title.empty()) {
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
1852 if (!entry) 1861 if (!entry)
1853 return; 1862 return;
1854 1863
1855 // When we're creating views, we're still doing initial setup, so we always 1864 // When we're creating views, we're still doing initial setup, so we always
1856 // use the pending Web UI rather than any possibly existing committed one. 1865 // use the pending Web UI rather than any possibly existing committed one.
1857 if (render_manager_.pending_web_ui()) 1866 if (render_manager_.pending_web_ui())
1858 render_manager_.pending_web_ui()->RenderViewCreated(render_view_host); 1867 render_manager_.pending_web_ui()->RenderViewCreated(render_view_host);
1859 1868
1860 if (entry->IsViewSourceMode()) { 1869 if (entry->IsViewSourceMode()) {
1861 // Put the renderer in view source mode. 1870 // Put the renderer in view source mode.
1862 render_view_host->Send( 1871 static_cast<RenderViewHostImpl*>(render_view_host)->Send(
1863 new ViewMsg_EnableViewSourceMode(render_view_host->routing_id())); 1872 new ViewMsg_EnableViewSourceMode(render_view_host->GetRoutingID()));
1864 } 1873 }
1865 1874
1866 GetView()->RenderViewCreated(render_view_host); 1875 GetView()->RenderViewCreated(render_view_host);
1867 1876
1868 FOR_EACH_OBSERVER( 1877 FOR_EACH_OBSERVER(
1869 WebContentsObserver, observers_, RenderViewCreated(render_view_host)); 1878 WebContentsObserver, observers_, RenderViewCreated(render_view_host));
1870 } 1879 }
1871 1880
1872 void TabContents::RenderViewReady(RenderViewHost* rvh) { 1881 void TabContents::RenderViewReady(RenderViewHost* rvh) {
1873 if (rvh != GetRenderViewHost()) { 1882 if (rvh != GetRenderViewHost()) {
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
1989 // the swapped out RVHs. We don't expect to hear from any other RVHs. 1998 // the swapped out RVHs. We don't expect to hear from any other RVHs.
1990 DCHECK(rvh == GetRenderViewHost() || render_manager_.IsSwappedOut(rvh)); 1999 DCHECK(rvh == GetRenderViewHost() || render_manager_.IsSwappedOut(rvh));
1991 2000
1992 // We must be prepared to handle state updates for any page, these occur 2001 // We must be prepared to handle state updates for any page, these occur
1993 // when the user is scrolling and entering form data, as well as when we're 2002 // when the user is scrolling and entering form data, as well as when we're
1994 // leaving a page, in which case our state may have already been moved to 2003 // leaving a page, in which case our state may have already been moved to
1995 // the next page. The navigation controller will look up the appropriate 2004 // the next page. The navigation controller will look up the appropriate
1996 // NavigationEntry and update it when it is notified via the delegate. 2005 // NavigationEntry and update it when it is notified via the delegate.
1997 2006
1998 int entry_index = controller_.GetEntryIndexWithPageID( 2007 int entry_index = controller_.GetEntryIndexWithPageID(
1999 rvh->site_instance(), page_id); 2008 rvh->GetSiteInstance(), page_id);
2000 if (entry_index < 0) 2009 if (entry_index < 0)
2001 return; 2010 return;
2002 NavigationEntry* entry = controller_.GetEntryAtIndex(entry_index); 2011 NavigationEntry* entry = controller_.GetEntryAtIndex(entry_index);
2003 2012
2004 if (state == entry->GetContentState()) 2013 if (state == entry->GetContentState())
2005 return; // Nothing to update. 2014 return; // Nothing to update.
2006 entry->SetContentState(state); 2015 entry->SetContentState(state);
2007 controller_.NotifyEntryChanged(entry, entry_index); 2016 controller_.NotifyEntryChanged(entry, entry_index);
2008 } 2017 }
2009 2018
2010 void TabContents::UpdateTitle(RenderViewHost* rvh, 2019 void TabContents::UpdateTitle(RenderViewHost* rvh,
2011 int32 page_id, 2020 int32 page_id,
2012 const string16& title, 2021 const string16& title,
2013 base::i18n::TextDirection title_direction) { 2022 base::i18n::TextDirection title_direction) {
2014 // If we have a title, that's a pretty good indication that we've started 2023 // If we have a title, that's a pretty good indication that we've started
2015 // getting useful data. 2024 // getting useful data.
2016 SetNotWaitingForResponse(); 2025 SetNotWaitingForResponse();
2017 2026
2018 // Try to find the navigation entry, which might not be the current one. 2027 // Try to find the navigation entry, which might not be the current one.
2019 // For example, it might be from a pending RVH for the pending entry. 2028 // For example, it might be from a pending RVH for the pending entry.
2020 NavigationEntryImpl* entry = controller_.GetEntryWithPageID( 2029 NavigationEntryImpl* entry = controller_.GetEntryWithPageID(
2021 rvh->site_instance(), page_id); 2030 rvh->GetSiteInstance(), page_id);
2022 2031
2023 // We can handle title updates when we don't have an entry in 2032 // We can handle title updates when we don't have an entry in
2024 // UpdateTitleForEntry, but only if the update is from the current RVH. 2033 // UpdateTitleForEntry, but only if the update is from the current RVH.
2025 if (!entry && rvh != GetRenderViewHost()) 2034 if (!entry && rvh != GetRenderViewHost())
2026 return; 2035 return;
2027 2036
2028 // TODO(evan): make use of title_direction. 2037 // TODO(evan): make use of title_direction.
2029 // http://code.google.com/p/chromium/issues/detail?id=27094 2038 // http://code.google.com/p/chromium/issues/detail?id=27094
2030 if (!UpdateTitleForEntry(entry, title)) 2039 if (!UpdateTitleForEntry(entry, title))
2031 return; 2040 return;
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
2200 const string16& message, 2209 const string16& message,
2201 const string16& default_prompt, 2210 const string16& default_prompt,
2202 const GURL& frame_url, 2211 const GURL& frame_url,
2203 ui::JavascriptMessageType javascript_message_type, 2212 ui::JavascriptMessageType javascript_message_type,
2204 IPC::Message* reply_msg, 2213 IPC::Message* reply_msg,
2205 bool* did_suppress_message) { 2214 bool* did_suppress_message) {
2206 // Suppress JavaScript dialogs when requested. Also suppress messages when 2215 // Suppress JavaScript dialogs when requested. Also suppress messages when
2207 // showing an interstitial as it's shown over the previous page and we don't 2216 // showing an interstitial as it's shown over the previous page and we don't
2208 // want the hidden page's dialogs to interfere with the interstitial. 2217 // want the hidden page's dialogs to interfere with the interstitial.
2209 bool suppress_this_message = 2218 bool suppress_this_message =
2210 rvh->is_swapped_out() || 2219 static_cast<RenderViewHostImpl*>(rvh)->is_swapped_out() ||
2211 ShowingInterstitialPage() || 2220 ShowingInterstitialPage() ||
2212 !delegate_ || 2221 !delegate_ ||
2213 delegate_->ShouldSuppressDialogs() || 2222 delegate_->ShouldSuppressDialogs() ||
2214 !delegate_->GetJavaScriptDialogCreator(); 2223 !delegate_->GetJavaScriptDialogCreator();
2215 2224
2216 if (!suppress_this_message) { 2225 if (!suppress_this_message) {
2217 content::JavaScriptDialogCreator::TitleType title_type; 2226 content::JavaScriptDialogCreator::TitleType title_type;
2218 string16 title; 2227 string16 title;
2219 2228
2220 if (!frame_url.has_host()) { 2229 if (!frame_url.has_host()) {
(...skipping 20 matching lines...) Expand all
2241 // pressed "Cancel". 2250 // pressed "Cancel".
2242 OnDialogClosed(rvh, reply_msg, false, string16()); 2251 OnDialogClosed(rvh, reply_msg, false, string16());
2243 } 2252 }
2244 2253
2245 *did_suppress_message = suppress_this_message; 2254 *did_suppress_message = suppress_this_message;
2246 } 2255 }
2247 2256
2248 void TabContents::RunBeforeUnloadConfirm(RenderViewHost* rvh, 2257 void TabContents::RunBeforeUnloadConfirm(RenderViewHost* rvh,
2249 const string16& message, 2258 const string16& message,
2250 IPC::Message* reply_msg) { 2259 IPC::Message* reply_msg) {
2260 RenderViewHostImpl* rvhi = static_cast<RenderViewHostImpl*>(rvh);
2251 if (delegate_) 2261 if (delegate_)
2252 delegate_->WillRunBeforeUnloadConfirm(); 2262 delegate_->WillRunBeforeUnloadConfirm();
2253 2263
2254 bool suppress_this_message = 2264 bool suppress_this_message =
2255 rvh->is_swapped_out() || 2265 rvhi->is_swapped_out() ||
2256 !delegate_ || 2266 !delegate_ ||
2257 delegate_->ShouldSuppressDialogs() || 2267 delegate_->ShouldSuppressDialogs() ||
2258 !delegate_->GetJavaScriptDialogCreator(); 2268 !delegate_->GetJavaScriptDialogCreator();
2259 if (suppress_this_message) { 2269 if (suppress_this_message) {
2260 // The reply must be sent to the RVH that sent the request. 2270 // The reply must be sent to the RVH that sent the request.
2261 rvh->JavaScriptDialogClosed(reply_msg, true, string16()); 2271 rvhi->JavaScriptDialogClosed(reply_msg, true, string16());
2262 return; 2272 return;
2263 } 2273 }
2264 2274
2265 is_showing_before_unload_dialog_ = true; 2275 is_showing_before_unload_dialog_ = true;
2266 dialog_creator_ = delegate_->GetJavaScriptDialogCreator(); 2276 dialog_creator_ = delegate_->GetJavaScriptDialogCreator();
2267 dialog_creator_->RunBeforeUnloadDialog( 2277 dialog_creator_->RunBeforeUnloadDialog(
2268 this, message, 2278 this, message,
2269 base::Bind(&TabContents::OnDialogClosed, base::Unretained(this), rvh, 2279 base::Bind(&TabContents::OnDialogClosed, base::Unretained(this), rvh,
2270 reply_msg)); 2280 reply_msg));
2271 } 2281 }
(...skipping 15 matching lines...) Expand all
2287 // Notify observers. 2297 // Notify observers.
2288 FOR_EACH_OBSERVER(WebContentsObserver, observers_, DidGetIgnoredUIEvent()); 2298 FOR_EACH_OBSERVER(WebContentsObserver, observers_, DidGetIgnoredUIEvent());
2289 } 2299 }
2290 2300
2291 void TabContents::RendererUnresponsive(RenderViewHost* rvh, 2301 void TabContents::RendererUnresponsive(RenderViewHost* rvh,
2292 bool is_during_unload) { 2302 bool is_during_unload) {
2293 // Don't show hung renderer dialog for a swapped out RVH. 2303 // Don't show hung renderer dialog for a swapped out RVH.
2294 if (rvh != GetRenderViewHost()) 2304 if (rvh != GetRenderViewHost())
2295 return; 2305 return;
2296 2306
2307 RenderViewHostImpl* rvhi = static_cast<RenderViewHostImpl*>(rvh);
2308
2297 // Ignore renderer unresponsive event if debugger is attached to the tab 2309 // Ignore renderer unresponsive event if debugger is attached to the tab
2298 // since the event may be a result of the renderer sitting on a breakpoint. 2310 // since the event may be a result of the renderer sitting on a breakpoint.
2299 // See http://crbug.com/65458 2311 // See http://crbug.com/65458
2300 DevToolsAgentHost* agent = 2312 DevToolsAgentHost* agent =
2301 content::DevToolsAgentHostRegistry::GetDevToolsAgentHost(rvh); 2313 content::DevToolsAgentHostRegistry::GetDevToolsAgentHost(rvh);
2302 if (agent && 2314 if (agent &&
2303 DevToolsManagerImpl::GetInstance()->GetDevToolsClientHostFor(agent)) 2315 DevToolsManagerImpl::GetInstance()->GetDevToolsClientHostFor(agent))
2304 return; 2316 return;
2305 2317
2306 if (is_during_unload) { 2318 if (is_during_unload) {
2307 // Hang occurred while firing the beforeunload/unload handler. 2319 // Hang occurred while firing the beforeunload/unload handler.
2308 // Pretend the handler fired so tab closing continues as if it had. 2320 // Pretend the handler fired so tab closing continues as if it had.
2309 rvh->set_sudden_termination_allowed(true); 2321 rvhi->set_sudden_termination_allowed(true);
2310 2322
2311 if (!render_manager_.ShouldCloseTabOnUnresponsiveRenderer()) 2323 if (!render_manager_.ShouldCloseTabOnUnresponsiveRenderer())
2312 return; 2324 return;
2313 2325
2314 // If the tab hangs in the beforeunload/unload handler there's really 2326 // If the tab hangs in the beforeunload/unload handler there's really
2315 // nothing we can do to recover. Pretend the unload listeners have 2327 // nothing we can do to recover. Pretend the unload listeners have
2316 // all fired and close the tab. If the hang is in the beforeunload handler 2328 // all fired and close the tab. If the hang is in the beforeunload handler
2317 // then the user will not have the option of cancelling the close. 2329 // then the user will not have the option of cancelling the close.
2318 Close(rvh); 2330 Close(rvh);
2319 return; 2331 return;
2320 } 2332 }
2321 2333
2322 if (!GetRenderViewHost() || !GetRenderViewHost()->IsRenderViewLive()) 2334 if (!GetRenderViewHostImpl() || !GetRenderViewHostImpl()->IsRenderViewLive())
2323 return; 2335 return;
2324 2336
2325 if (delegate_) 2337 if (delegate_)
2326 delegate_->RendererUnresponsive(this); 2338 delegate_->RendererUnresponsive(this);
2327 } 2339 }
2328 2340
2329 void TabContents::RendererResponsive(RenderViewHost* render_view_host) { 2341 void TabContents::RendererResponsive(RenderViewHost* render_view_host) {
2330 if (delegate_) 2342 if (delegate_)
2331 delegate_->RendererResponsive(this); 2343 delegate_->RendererResponsive(this);
2332 } 2344 }
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
2405 // Can be NULL during tests. 2417 // Can be NULL during tests.
2406 RenderWidgetHostView* rwh_view = view_->CreateViewForWidget(render_view_host); 2418 RenderWidgetHostView* rwh_view = view_->CreateViewForWidget(render_view_host);
2407 2419
2408 // Now that the RenderView has been created, we need to tell it its size. 2420 // Now that the RenderView has been created, we need to tell it its size.
2409 if (rwh_view) 2421 if (rwh_view)
2410 rwh_view->SetSize(view_->GetContainerSize()); 2422 rwh_view->SetSize(view_->GetContainerSize());
2411 2423
2412 // Make sure we use the correct starting page_id in the new RenderView. 2424 // Make sure we use the correct starting page_id in the new RenderView.
2413 UpdateMaxPageIDIfNecessary(render_view_host); 2425 UpdateMaxPageIDIfNecessary(render_view_host);
2414 int32 max_page_id = 2426 int32 max_page_id =
2415 GetMaxPageIDForSiteInstance(render_view_host->site_instance()); 2427 GetMaxPageIDForSiteInstance(render_view_host->GetSiteInstance());
2416 2428
2417 if (!render_view_host->CreateRenderView(string16(), max_page_id)) 2429 if (!static_cast<RenderViewHostImpl*>(
2430 render_view_host)->CreateRenderView(string16(), max_page_id))
2418 return false; 2431 return false;
2419 2432
2420 #if defined(OS_LINUX) || defined(OS_OPENBSD) 2433 #if defined(OS_LINUX) || defined(OS_OPENBSD)
2421 // Force a ViewMsg_Resize to be sent, needed to make plugins show up on 2434 // Force a ViewMsg_Resize to be sent, needed to make plugins show up on
2422 // linux. See crbug.com/83941. 2435 // linux. See crbug.com/83941.
2423 if (rwh_view) { 2436 if (rwh_view) {
2424 if (RenderWidgetHost* render_widget_host = rwh_view->GetRenderWidgetHost()) 2437 if (RenderWidgetHost* render_widget_host = rwh_view->GetRenderWidgetHost())
2425 render_widget_host->WasResized(); 2438 render_widget_host->WasResized();
2426 } 2439 }
2427 #endif 2440 #endif
2428 2441
2429 return true; 2442 return true;
2430 } 2443 }
2431 2444
2432 void TabContents::OnDialogClosed(RenderViewHost* rvh, 2445 void TabContents::OnDialogClosed(RenderViewHost* rvh,
2433 IPC::Message* reply_msg, 2446 IPC::Message* reply_msg,
2434 bool success, 2447 bool success,
2435 const string16& user_input) { 2448 const string16& user_input) {
2436 if (is_showing_before_unload_dialog_ && !success) { 2449 if (is_showing_before_unload_dialog_ && !success) {
2437 // If a beforeunload dialog is canceled, we need to stop the throbber from 2450 // If a beforeunload dialog is canceled, we need to stop the throbber from
2438 // spinning, since we forced it to start spinning in Navigate. 2451 // spinning, since we forced it to start spinning in Navigate.
2439 DidStopLoading(); 2452 DidStopLoading();
2440 2453
2441 tab_close_start_time_ = base::TimeTicks(); 2454 tab_close_start_time_ = base::TimeTicks();
2442 } 2455 }
2443 is_showing_before_unload_dialog_ = false; 2456 is_showing_before_unload_dialog_ = false;
2444 rvh->JavaScriptDialogClosed(reply_msg, success, user_input); 2457 static_cast<RenderViewHostImpl*>(
2458 rvh)->JavaScriptDialogClosed(reply_msg, success, user_input);
2445 } 2459 }
2446 2460
2447 void TabContents::SetEncoding(const std::string& encoding) { 2461 void TabContents::SetEncoding(const std::string& encoding) {
2448 encoding_ = content::GetContentClient()->browser()-> 2462 encoding_ = content::GetContentClient()->browser()->
2449 GetCanonicalEncodingNameByAliasName(encoding); 2463 GetCanonicalEncodingNameByAliasName(encoding);
2450 } 2464 }
2451 2465
2452 void TabContents::SaveURL(const GURL& url, 2466 void TabContents::SaveURL(const GURL& url,
2453 const GURL& referrer, 2467 const GURL& referrer,
2454 bool is_main_frame) { 2468 bool is_main_frame) {
(...skipping 16 matching lines...) Expand all
2471 save_info, 2485 save_info,
2472 this); 2486 this);
2473 } 2487 }
2474 2488
2475 void TabContents::CreateViewAndSetSizeForRVH(RenderViewHost* rvh) { 2489 void TabContents::CreateViewAndSetSizeForRVH(RenderViewHost* rvh) {
2476 RenderWidgetHostView* rwh_view = GetView()->CreateViewForWidget(rvh); 2490 RenderWidgetHostView* rwh_view = GetView()->CreateViewForWidget(rvh);
2477 // Can be NULL during tests. 2491 // Can be NULL during tests.
2478 if (rwh_view) 2492 if (rwh_view)
2479 rwh_view->SetSize(GetView()->GetContainerSize()); 2493 rwh_view->SetSize(GetView()->GetContainerSize());
2480 } 2494 }
2495
2496 RenderViewHostImpl* TabContents::GetRenderViewHostImpl() {
2497 return static_cast<RenderViewHostImpl*>(GetRenderViewHost());
2498 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698