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

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

Issue 16032007: Create RenderFrame/RenderFrameHost for the main frame of a page. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added basic renderer and browser test for existence. Created 7 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 "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/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 1144 matching lines...) Expand 10 before | Expand all | Expand 10 after
1155 } 1155 }
1156 break; 1156 break;
1157 } 1157 }
1158 default: 1158 default:
1159 NOTREACHED(); 1159 NOTREACHED();
1160 } 1160 }
1161 } 1161 }
1162 1162
1163 void WebContentsImpl::Init(const WebContents::CreateParams& params) { 1163 void WebContentsImpl::Init(const WebContents::CreateParams& params) {
1164 render_manager_.Init( 1164 render_manager_.Init(
1165 params.browser_context, params.site_instance, params.routing_id); 1165 params.browser_context, params.site_instance, params.routing_id,
1166 params.main_frame_routing_id);
1166 1167
1167 view_.reset(GetContentClient()->browser()-> 1168 view_.reset(GetContentClient()->browser()->
1168 OverrideCreateWebContentsView(this, &render_view_host_delegate_view_)); 1169 OverrideCreateWebContentsView(this, &render_view_host_delegate_view_));
1169 if (view_) { 1170 if (view_) {
1170 CHECK(render_view_host_delegate_view_); 1171 CHECK(render_view_host_delegate_view_);
1171 } else { 1172 } else {
1172 WebContentsViewDelegate* delegate = 1173 WebContentsViewDelegate* delegate =
1173 GetContentClient()->browser()->GetWebContentsViewDelegate(this); 1174 GetContentClient()->browser()->GetWebContentsViewDelegate(this);
1174 1175
1175 if (browser_plugin_guest_) { 1176 if (browser_plugin_guest_) {
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
1371 } 1372 }
1372 } 1373 }
1373 1374
1374 void WebContentsImpl::LostMouseLock() { 1375 void WebContentsImpl::LostMouseLock() {
1375 if (delegate_) 1376 if (delegate_)
1376 delegate_->LostMouseLock(); 1377 delegate_->LostMouseLock();
1377 } 1378 }
1378 1379
1379 void WebContentsImpl::CreateNewWindow( 1380 void WebContentsImpl::CreateNewWindow(
1380 int route_id, 1381 int route_id,
1382 int main_frame_route_id,
1381 const ViewHostMsg_CreateWindow_Params& params, 1383 const ViewHostMsg_CreateWindow_Params& params,
1382 SessionStorageNamespace* session_storage_namespace) { 1384 SessionStorageNamespace* session_storage_namespace) {
1383 if (delegate_ && !delegate_->ShouldCreateWebContents( 1385 if (delegate_ && !delegate_->ShouldCreateWebContents(
1384 this, route_id, params.window_container_type, params.frame_name, 1386 this, route_id, params.window_container_type, params.frame_name,
1385 params.target_url)) { 1387 params.target_url)) {
1386 GetRenderViewHost()->GetProcess()->ResumeRequestsForView(route_id); 1388 GetRenderViewHost()->GetProcess()->ResumeRequestsForView(route_id);
1389 GetRenderViewHost()->GetProcess()->ResumeRequestsForView(
1390 main_frame_route_id);
1387 return; 1391 return;
1388 } 1392 }
1389 1393
1390 // We usually create the new window in the same BrowsingInstance (group of 1394 // We usually create the new window in the same BrowsingInstance (group of
1391 // script-related windows), by passing in the current SiteInstance. However, 1395 // script-related windows), by passing in the current SiteInstance. However,
1392 // if the opener is being suppressed (in a non-guest), we create a new 1396 // if the opener is being suppressed (in a non-guest), we create a new
1393 // SiteInstance in its own BrowsingInstance. 1397 // SiteInstance in its own BrowsingInstance.
1394 bool is_guest = GetRenderProcessHost()->IsGuest(); 1398 bool is_guest = GetRenderProcessHost()->IsGuest();
1395 1399
1396 scoped_refptr<SiteInstance> site_instance = 1400 scoped_refptr<SiteInstance> site_instance =
(...skipping 20 matching lines...) Expand all
1417 DOMStorageContextImpl* dom_storage_context = 1421 DOMStorageContextImpl* dom_storage_context =
1418 static_cast<DOMStorageContextImpl*>(partition->GetDOMStorageContext()); 1422 static_cast<DOMStorageContextImpl*>(partition->GetDOMStorageContext());
1419 SessionStorageNamespaceImpl* session_storage_namespace_impl = 1423 SessionStorageNamespaceImpl* session_storage_namespace_impl =
1420 static_cast<SessionStorageNamespaceImpl*>(session_storage_namespace); 1424 static_cast<SessionStorageNamespaceImpl*>(session_storage_namespace);
1421 CHECK(session_storage_namespace_impl->IsFromContext(dom_storage_context)); 1425 CHECK(session_storage_namespace_impl->IsFromContext(dom_storage_context));
1422 new_contents->GetController().SetSessionStorageNamespace( 1426 new_contents->GetController().SetSessionStorageNamespace(
1423 partition_id, 1427 partition_id,
1424 session_storage_namespace); 1428 session_storage_namespace);
1425 CreateParams create_params(GetBrowserContext(), site_instance); 1429 CreateParams create_params(GetBrowserContext(), site_instance);
1426 create_params.routing_id = route_id; 1430 create_params.routing_id = route_id;
1431 create_params.main_frame_routing_id = main_frame_route_id;
1427 if (!is_guest) { 1432 if (!is_guest) {
1428 create_params.context = view_->GetNativeView(); 1433 create_params.context = view_->GetNativeView();
1429 create_params.initial_size = view_->GetContainerSize(); 1434 create_params.initial_size = view_->GetContainerSize();
1430 } else { 1435 } else {
1431 // This makes |new_contents| act as a guest. 1436 // This makes |new_contents| act as a guest.
1432 // For more info, see comment above class BrowserPluginGuest. 1437 // For more info, see comment above class BrowserPluginGuest.
1433 int instance_id = GetBrowserPluginGuestManager()->get_next_instance_id(); 1438 int instance_id = GetBrowserPluginGuestManager()->get_next_instance_id();
1434 WebContentsImpl* new_contents_impl = 1439 WebContentsImpl* new_contents_impl =
1435 static_cast<WebContentsImpl*>(new_contents); 1440 static_cast<WebContentsImpl*>(new_contents);
1436 new_contents_impl->browser_plugin_guest_.reset( 1441 new_contents_impl->browser_plugin_guest_.reset(
(...skipping 2138 matching lines...) Expand 10 before | Expand all | Expand 10 after
3575 } 3580 }
3576 3581
3577 BrowserPluginGuestManager* 3582 BrowserPluginGuestManager*
3578 WebContentsImpl::GetBrowserPluginGuestManager() const { 3583 WebContentsImpl::GetBrowserPluginGuestManager() const {
3579 return static_cast<BrowserPluginGuestManager*>( 3584 return static_cast<BrowserPluginGuestManager*>(
3580 GetBrowserContext()->GetUserData( 3585 GetBrowserContext()->GetUserData(
3581 browser_plugin::kBrowserPluginGuestManagerKeyName)); 3586 browser_plugin::kBrowserPluginGuestManagerKeyName));
3582 } 3587 }
3583 3588
3584 } // namespace content 3589 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698