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

Side by Side Diff: content/browser/web_contents/web_contents_impl.cc

Issue 23018005: Start renderer in ContentViewCoreImpl::EvaluateJavaScript. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 4 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
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/web_contents/web_contents_impl.h" 5 #include "content/browser/web_contents/web_contents_impl.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/debug/trace_event.h" 10 #include "base/debug/trace_event.h"
(...skipping 2848 matching lines...) Expand 10 before | Expand all | Expand 10 after
2859 return; 2859 return;
2860 2860
2861 if (delegate_) 2861 if (delegate_)
2862 view_->SetOverscrollControllerEnabled(delegate_->CanOverscrollContent()); 2862 view_->SetOverscrollControllerEnabled(delegate_->CanOverscrollContent());
2863 2863
2864 NotificationService::current()->Notify( 2864 NotificationService::current()->Notify(
2865 NOTIFICATION_WEB_CONTENTS_RENDER_VIEW_HOST_CREATED, 2865 NOTIFICATION_WEB_CONTENTS_RENDER_VIEW_HOST_CREATED,
2866 Source<WebContents>(this), 2866 Source<WebContents>(this),
2867 Details<RenderViewHost>(render_view_host)); 2867 Details<RenderViewHost>(render_view_host));
2868 NavigationEntry* entry = controller_.GetActiveEntry(); 2868 NavigationEntry* entry = controller_.GetActiveEntry();
2869 if (!entry) 2869 if (!entry) {
2870 FOR_EACH_OBSERVER(
2871 WebContentsObserver, observers_, RenderViewCreated(render_view_host));
michaelbai 2013/08/20 00:40:22 I think this might reasonable, since the RenderVie
2870 return; 2872 return;
2873 }
2871 2874
joth 2013/08/20 05:00:44 style nit: I'd put "if (entry)" around all this co
michaelbai 2013/08/20 19:15:20 Done.
2872 // When we're creating views, we're still doing initial setup, so we always 2875 // When we're creating views, we're still doing initial setup, so we always
2873 // use the pending Web UI rather than any possibly existing committed one. 2876 // use the pending Web UI rather than any possibly existing committed one.
2874 if (render_manager_.pending_web_ui()) 2877 if (render_manager_.pending_web_ui())
2875 render_manager_.pending_web_ui()->RenderViewCreated(render_view_host); 2878 render_manager_.pending_web_ui()->RenderViewCreated(render_view_host);
2876 2879
2877 if (entry->IsViewSourceMode()) { 2880 if (entry->IsViewSourceMode()) {
2878 // Put the renderer in view source mode. 2881 // Put the renderer in view source mode.
2879 render_view_host->Send( 2882 render_view_host->Send(
2880 new ViewMsg_EnableViewSourceMode(render_view_host->GetRoutingID())); 2883 new ViewMsg_EnableViewSourceMode(render_view_host->GetRoutingID()));
2881 } 2884 }
(...skipping 731 matching lines...) Expand 10 before | Expand all | Expand 10 after
3613 3616
3614 WebUIImpl* WebContentsImpl::CreateWebUIForRenderManager(const GURL& url) { 3617 WebUIImpl* WebContentsImpl::CreateWebUIForRenderManager(const GURL& url) {
3615 return static_cast<WebUIImpl*>(CreateWebUI(url)); 3618 return static_cast<WebUIImpl*>(CreateWebUI(url));
3616 } 3619 }
3617 3620
3618 NavigationEntry* 3621 NavigationEntry*
3619 WebContentsImpl::GetLastCommittedNavigationEntryForRenderManager() { 3622 WebContentsImpl::GetLastCommittedNavigationEntryForRenderManager() {
3620 return controller_.GetLastCommittedEntry(); 3623 return controller_.GetLastCommittedEntry();
3621 } 3624 }
3622 3625
3623 bool WebContentsImpl::CreateRenderViewForRenderManager( 3626 bool WebContentsImpl::CreateRenderViewInternal(RenderViewHost* render_view_host,
3624 RenderViewHost* render_view_host, int opener_route_id) { 3627 int opener_route_id,
3625 TRACE_EVENT0("browser", "WebContentsImpl::CreateRenderViewForRenderManager"); 3628 int max_page_id) {
3626 // Can be NULL during tests. 3629 // Can be NULL during tests.
3627 RenderWidgetHostView* rwh_view = view_->CreateViewForWidget(render_view_host); 3630 RenderWidgetHostView* rwh_view = view_->CreateViewForWidget(render_view_host);
3628 3631
3629 // Now that the RenderView has been created, we need to tell it its size. 3632 // Now that the RenderView has been created, we need to tell it its size.
3630 if (rwh_view) 3633 if (rwh_view)
3631 rwh_view->SetSize(view_->GetContainerSize()); 3634 rwh_view->SetSize(view_->GetContainerSize());
3632 3635
3633 // Make sure we use the correct starting page_id in the new RenderView.
3634 UpdateMaxPageIDIfNecessary(render_view_host);
3635 int32 max_page_id =
3636 GetMaxPageIDForSiteInstance(render_view_host->GetSiteInstance());
3637
3638 if (!static_cast<RenderViewHostImpl*>( 3636 if (!static_cast<RenderViewHostImpl*>(
3639 render_view_host)->CreateRenderView(string16(), 3637 render_view_host)->CreateRenderView(string16(),
3640 opener_route_id, 3638 opener_route_id,
3641 max_page_id)) { 3639 max_page_id)) {
3642 return false; 3640 return false;
3643 } 3641 }
3644 3642
3645 #if defined(OS_LINUX) || defined(OS_OPENBSD) 3643 #if defined(OS_LINUX) || defined(OS_OPENBSD)
3646 // Force a ViewMsg_Resize to be sent, needed to make plugins show up on 3644 // Force a ViewMsg_Resize to be sent, needed to make plugins show up on
3647 // linux. See crbug.com/83941. 3645 // linux. See crbug.com/83941.
3648 if (rwh_view) { 3646 if (rwh_view) {
3649 if (RenderWidgetHost* render_widget_host = rwh_view->GetRenderWidgetHost()) 3647 if (RenderWidgetHost* render_widget_host = rwh_view->GetRenderWidgetHost())
3650 render_widget_host->WasResized(); 3648 render_widget_host->WasResized();
3651 } 3649 }
3652 #endif 3650 #endif
3653 3651
3654 return true; 3652 return true;
3655 } 3653 }
3656 3654
3655 bool WebContentsImpl::CreateRenderViewForRenderManager(
3656 RenderViewHost* render_view_host, int opener_route_id) {
3657 TRACE_EVENT0("browser", "WebContentsImpl::CreateRenderViewForRenderManager");
3658
3659 // Make sure we use the correct starting page_id in the new RenderView.
3660 UpdateMaxPageIDIfNecessary(render_view_host);
3661 int32 max_page_id =
3662 GetMaxPageIDForSiteInstance(render_view_host->GetSiteInstance());
3663 return CreateRenderViewInternal(render_view_host, opener_route_id,
3664 max_page_id);
3665 }
3666
3667 #if defined(OS_ANDROID)
3668 bool WebContentsImpl::CreateRenderView(RenderViewHost* render_view_host,
3669 int opener_route_id,
3670 int max_page_id) {
3671 return CreateRenderViewInternal(render_view_host, opener_route_id,
3672 max_page_id);
3673 }
3674 #endif
3675
3657 void WebContentsImpl::OnDialogClosed(RenderViewHost* rvh, 3676 void WebContentsImpl::OnDialogClosed(RenderViewHost* rvh,
3658 IPC::Message* reply_msg, 3677 IPC::Message* reply_msg,
3659 bool success, 3678 bool success,
3660 const string16& user_input) { 3679 const string16& user_input) {
3661 if (is_showing_before_unload_dialog_ && !success) { 3680 if (is_showing_before_unload_dialog_ && !success) {
3662 // If a beforeunload dialog is canceled, we need to stop the throbber from 3681 // If a beforeunload dialog is canceled, we need to stop the throbber from
3663 // spinning, since we forced it to start spinning in Navigate. 3682 // spinning, since we forced it to start spinning in Navigate.
3664 DidStopLoading(rvh); 3683 DidStopLoading(rvh);
3665 controller_.DiscardNonCommittedEntries(); 3684 controller_.DiscardNonCommittedEntries();
3666 3685
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
3715 } 3734 }
3716 3735
3717 void WebContentsImpl::ClearAllPowerSaveBlockers() { 3736 void WebContentsImpl::ClearAllPowerSaveBlockers() {
3718 for (PowerSaveBlockerMap::iterator i(power_save_blockers_.begin()); 3737 for (PowerSaveBlockerMap::iterator i(power_save_blockers_.begin());
3719 i != power_save_blockers_.end(); ++i) 3738 i != power_save_blockers_.end(); ++i)
3720 STLDeleteValues(&power_save_blockers_[i->first]); 3739 STLDeleteValues(&power_save_blockers_[i->first]);
3721 power_save_blockers_.clear(); 3740 power_save_blockers_.clear();
3722 } 3741 }
3723 3742
3724 } // namespace content 3743 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698