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

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

Issue 15994016: Support custom window features, such as 'moo=foo'. (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: 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 1322 matching lines...) Expand 10 before | Expand all | Expand 10 after
1333 void WebContentsImpl::LostMouseLock() { 1333 void WebContentsImpl::LostMouseLock() {
1334 if (delegate_) 1334 if (delegate_)
1335 delegate_->LostMouseLock(); 1335 delegate_->LostMouseLock();
1336 } 1336 }
1337 1337
1338 void WebContentsImpl::CreateNewWindow( 1338 void WebContentsImpl::CreateNewWindow(
1339 int route_id, 1339 int route_id,
1340 const ViewHostMsg_CreateWindow_Params& params, 1340 const ViewHostMsg_CreateWindow_Params& params,
1341 SessionStorageNamespace* session_storage_namespace) { 1341 SessionStorageNamespace* session_storage_namespace) {
1342 if (delegate_ && !delegate_->ShouldCreateWebContents( 1342 if (delegate_ && !delegate_->ShouldCreateWebContents(
1343 this, route_id, params.window_container_type, params.frame_name, 1343 this,
1344 params.target_url)) { 1344 route_id,
1345 params.window_container_type,
1346 params.frame_name,
1347 params.target_url,
1348 params.window_features)) {
1345 GetRenderViewHost()->GetProcess()->ResumeRequestsForView(route_id); 1349 GetRenderViewHost()->GetProcess()->ResumeRequestsForView(route_id);
1346 return; 1350 return;
1347 } 1351 }
1348 1352
1349 // We usually create the new window in the same BrowsingInstance (group of 1353 // We usually create the new window in the same BrowsingInstance (group of
1350 // script-related windows), by passing in the current SiteInstance. However, 1354 // script-related windows), by passing in the current SiteInstance. However,
1351 // if the opener is being suppressed (in a non-guest), we create a new 1355 // if the opener is being suppressed (in a non-guest), we create a new
1352 // SiteInstance in its own BrowsingInstance. 1356 // SiteInstance in its own BrowsingInstance.
1353 bool is_guest = GetRenderProcessHost()->IsGuest(); 1357 bool is_guest = GetRenderProcessHost()->IsGuest();
1354 1358
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
1412 // later. 1416 // later.
1413 DCHECK_NE(MSG_ROUTING_NONE, route_id); 1417 DCHECK_NE(MSG_ROUTING_NONE, route_id);
1414 pending_contents_[route_id] = new_contents; 1418 pending_contents_[route_id] = new_contents;
1415 registrar_.Add(this, NOTIFICATION_WEB_CONTENTS_DESTROYED, 1419 registrar_.Add(this, NOTIFICATION_WEB_CONTENTS_DESTROYED,
1416 Source<WebContents>(new_contents)); 1420 Source<WebContents>(new_contents));
1417 } 1421 }
1418 1422
1419 if (delegate_) { 1423 if (delegate_) {
1420 delegate_->WebContentsCreated( 1424 delegate_->WebContentsCreated(
1421 this, params.opener_frame_id, params.frame_name, 1425 this, params.opener_frame_id, params.frame_name,
1422 params.target_url, new_contents); 1426 params.target_url, params.window_features, new_contents);
1423 } 1427 }
1424 1428
1425 if (params.opener_suppressed) { 1429 if (params.opener_suppressed) {
1426 // When the opener is suppressed, the original renderer cannot access the 1430 // When the opener is suppressed, the original renderer cannot access the
1427 // new window. As a result, we need to show and navigate the window here. 1431 // new window. As a result, we need to show and navigate the window here.
1428 bool was_blocked = false; 1432 bool was_blocked = false;
1429 if (delegate_) { 1433 if (delegate_) {
1430 gfx::Rect initial_pos; 1434 gfx::Rect initial_pos;
1431 delegate_->AddNewContents( 1435 delegate_->AddNewContents(
1432 this, new_contents, params.disposition, initial_pos, 1436 this, new_contents, params.disposition, initial_pos,
(...skipping 2024 matching lines...) Expand 10 before | Expand all | Expand 10 after
3457 } 3461 }
3458 3462
3459 BrowserPluginGuestManager* 3463 BrowserPluginGuestManager*
3460 WebContentsImpl::GetBrowserPluginGuestManager() const { 3464 WebContentsImpl::GetBrowserPluginGuestManager() const {
3461 return static_cast<BrowserPluginGuestManager*>( 3465 return static_cast<BrowserPluginGuestManager*>(
3462 GetBrowserContext()->GetUserData( 3466 GetBrowserContext()->GetUserData(
3463 browser_plugin::kBrowserPluginGuestManagerKeyName)); 3467 browser_plugin::kBrowserPluginGuestManagerKeyName));
3464 } 3468 }
3465 3469
3466 } // namespace content 3470 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698