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

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: Address comments 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 2856 matching lines...) Expand 10 before | Expand all | Expand 10 after
2867 return; 2867 return;
2868 2868
2869 if (delegate_) 2869 if (delegate_)
2870 view_->SetOverscrollControllerEnabled(delegate_->CanOverscrollContent()); 2870 view_->SetOverscrollControllerEnabled(delegate_->CanOverscrollContent());
2871 2871
2872 NotificationService::current()->Notify( 2872 NotificationService::current()->Notify(
2873 NOTIFICATION_WEB_CONTENTS_RENDER_VIEW_HOST_CREATED, 2873 NOTIFICATION_WEB_CONTENTS_RENDER_VIEW_HOST_CREATED,
2874 Source<WebContents>(this), 2874 Source<WebContents>(this),
2875 Details<RenderViewHost>(render_view_host)); 2875 Details<RenderViewHost>(render_view_host));
2876 NavigationEntry* entry = controller_.GetActiveEntry(); 2876 NavigationEntry* entry = controller_.GetActiveEntry();
2877 if (!entry) 2877 if (entry) {
2878 return; 2878 // When we're creating views, we're still doing initial setup, so we always
2879 // use the pending Web UI rather than any possibly existing committed one.
2880 if (render_manager_.pending_web_ui())
2881 render_manager_.pending_web_ui()->RenderViewCreated(render_view_host);
2879 2882
2880 // When we're creating views, we're still doing initial setup, so we always 2883 if (entry->IsViewSourceMode()) {
2881 // use the pending Web UI rather than any possibly existing committed one. 2884 // Put the renderer in view source mode.
2882 if (render_manager_.pending_web_ui()) 2885 render_view_host->Send(
2883 render_manager_.pending_web_ui()->RenderViewCreated(render_view_host); 2886 new ViewMsg_EnableViewSourceMode(render_view_host->GetRoutingID()));
2887 }
2884 2888
2885 if (entry->IsViewSourceMode()) { 2889 view_->RenderViewCreated(render_view_host);
2886 // Put the renderer in view source mode.
2887 render_view_host->Send(
2888 new ViewMsg_EnableViewSourceMode(render_view_host->GetRoutingID()));
2889 } 2890 }
2890
2891 view_->RenderViewCreated(render_view_host);
2892
2893 FOR_EACH_OBSERVER( 2891 FOR_EACH_OBSERVER(
2894 WebContentsObserver, observers_, RenderViewCreated(render_view_host)); 2892 WebContentsObserver, observers_, RenderViewCreated(render_view_host));
2895 } 2893 }
2896 2894
2897 void WebContentsImpl::RenderViewReady(RenderViewHost* rvh) { 2895 void WebContentsImpl::RenderViewReady(RenderViewHost* rvh) {
2898 if (rvh != GetRenderViewHost()) { 2896 if (rvh != GetRenderViewHost()) {
2899 // Don't notify the world, since this came from a renderer in the 2897 // Don't notify the world, since this came from a renderer in the
2900 // background. 2898 // background.
2901 return; 2899 return;
2902 } 2900 }
(...skipping 726 matching lines...) Expand 10 before | Expand all | Expand 10 after
3629 3627
3630 WebUIImpl* WebContentsImpl::CreateWebUIForRenderManager(const GURL& url) { 3628 WebUIImpl* WebContentsImpl::CreateWebUIForRenderManager(const GURL& url) {
3631 return static_cast<WebUIImpl*>(CreateWebUI(url)); 3629 return static_cast<WebUIImpl*>(CreateWebUI(url));
3632 } 3630 }
3633 3631
3634 NavigationEntry* 3632 NavigationEntry*
3635 WebContentsImpl::GetLastCommittedNavigationEntryForRenderManager() { 3633 WebContentsImpl::GetLastCommittedNavigationEntryForRenderManager() {
3636 return controller_.GetLastCommittedEntry(); 3634 return controller_.GetLastCommittedEntry();
3637 } 3635 }
3638 3636
3639 bool WebContentsImpl::CreateRenderViewForRenderManager( 3637 bool WebContentsImpl::CreateRenderView(RenderViewHost* render_view_host,
3640 RenderViewHost* render_view_host, int opener_route_id) { 3638 int opener_route_id,
3641 TRACE_EVENT0("browser", "WebContentsImpl::CreateRenderViewForRenderManager"); 3639 int max_page_id) {
3642 // Can be NULL during tests. 3640 // Can be NULL during tests.
3643 RenderWidgetHostView* rwh_view = view_->CreateViewForWidget(render_view_host); 3641 RenderWidgetHostView* rwh_view = view_->CreateViewForWidget(render_view_host);
3644 3642
3645 // Now that the RenderView has been created, we need to tell it its size. 3643 // Now that the RenderView has been created, we need to tell it its size.
3646 if (rwh_view) 3644 if (rwh_view)
3647 rwh_view->SetSize(view_->GetContainerSize()); 3645 rwh_view->SetSize(view_->GetContainerSize());
3648 3646
3649 // Make sure we use the correct starting page_id in the new RenderView.
3650 UpdateMaxPageIDIfNecessary(render_view_host);
3651 int32 max_page_id =
3652 GetMaxPageIDForSiteInstance(render_view_host->GetSiteInstance());
Charlie Reis 2013/08/21 22:06:26 These max page ID calls have to stay, or else the
michaelbai 2013/08/21 23:32:17 Done.
3653
3654 if (!static_cast<RenderViewHostImpl*>( 3647 if (!static_cast<RenderViewHostImpl*>(
3655 render_view_host)->CreateRenderView(string16(), 3648 render_view_host)->CreateRenderView(string16(),
3656 opener_route_id, 3649 opener_route_id,
3657 max_page_id)) { 3650 max_page_id)) {
3658 return false; 3651 return false;
3659 } 3652 }
3660 3653
3661 #if defined(OS_LINUX) || defined(OS_OPENBSD) 3654 #if defined(OS_LINUX) || defined(OS_OPENBSD)
3662 // Force a ViewMsg_Resize to be sent, needed to make plugins show up on 3655 // Force a ViewMsg_Resize to be sent, needed to make plugins show up on
3663 // linux. See crbug.com/83941. 3656 // linux. See crbug.com/83941.
3664 if (rwh_view) { 3657 if (rwh_view) {
3665 if (RenderWidgetHost* render_widget_host = rwh_view->GetRenderWidgetHost()) 3658 if (RenderWidgetHost* render_widget_host = rwh_view->GetRenderWidgetHost())
3666 render_widget_host->WasResized(); 3659 render_widget_host->WasResized();
3667 } 3660 }
3668 #endif 3661 #endif
3669 3662
3670 return true; 3663 return true;
3671 } 3664 }
3672 3665
3666 bool WebContentsImpl::CreateRenderViewForRenderManager(
3667 RenderViewHost* render_view_host, int opener_route_id) {
3668 TRACE_EVENT0("browser", "WebContentsImpl::CreateRenderViewForRenderManager");
3669
3670 // Make sure we use the correct starting page_id in the new RenderView.
3671 UpdateMaxPageIDIfNecessary(render_view_host);
3672 int32 max_page_id =
3673 GetMaxPageIDForSiteInstance(render_view_host->GetSiteInstance());
3674 return CreateRenderView(render_view_host, opener_route_id, max_page_id);
3675 }
3676
3677 #if defined(OS_ANDROID)
3678 bool WebContentsImpl::CreateRenderViewWithoutNavigationEntry(
3679 RenderViewHost* render_view_host) {
3680 return CreateRenderView(render_view_host, MSG_ROUTING_NONE, -1);
Charlie Reis 2013/08/21 22:06:26 Just call CreatRenderViewForRenderManager here.
michaelbai 2013/08/21 23:32:17 Done.
3681 }
3682 #endif
3683
3673 void WebContentsImpl::OnDialogClosed(RenderViewHost* rvh, 3684 void WebContentsImpl::OnDialogClosed(RenderViewHost* rvh,
3674 IPC::Message* reply_msg, 3685 IPC::Message* reply_msg,
3675 bool success, 3686 bool success,
3676 const string16& user_input) { 3687 const string16& user_input) {
3677 if (is_showing_before_unload_dialog_ && !success) { 3688 if (is_showing_before_unload_dialog_ && !success) {
3678 // If a beforeunload dialog is canceled, we need to stop the throbber from 3689 // If a beforeunload dialog is canceled, we need to stop the throbber from
3679 // spinning, since we forced it to start spinning in Navigate. 3690 // spinning, since we forced it to start spinning in Navigate.
3680 DidStopLoading(rvh); 3691 DidStopLoading(rvh);
3681 controller_.DiscardNonCommittedEntries(); 3692 controller_.DiscardNonCommittedEntries();
3682 3693
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
3731 } 3742 }
3732 3743
3733 void WebContentsImpl::ClearAllPowerSaveBlockers() { 3744 void WebContentsImpl::ClearAllPowerSaveBlockers() {
3734 for (PowerSaveBlockerMap::iterator i(power_save_blockers_.begin()); 3745 for (PowerSaveBlockerMap::iterator i(power_save_blockers_.begin());
3735 i != power_save_blockers_.end(); ++i) 3746 i != power_save_blockers_.end(); ++i)
3736 STLDeleteValues(&power_save_blockers_[i->first]); 3747 STLDeleteValues(&power_save_blockers_[i->first]);
3737 power_save_blockers_.clear(); 3748 power_save_blockers_.clear();
3738 } 3749 }
3739 3750
3740 } // namespace content 3751 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698