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

Side by Side Diff: chrome/browser/ui/browser_navigator.cc

Issue 621553002: Focus the contents of popup windows (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2125
Patch Set: Created 6 years, 2 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "chrome/browser/ui/browser_navigator.h" 5 #include "chrome/browser/ui/browser_navigator.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/prefs/pref_service.h" 10 #include "base/prefs/pref_service.h"
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after
281 } 281 }
282 282
283 // This class makes sure the Browser object held in |params| is made visible 283 // This class makes sure the Browser object held in |params| is made visible
284 // by the time it goes out of scope, provided |params| wants it to be shown. 284 // by the time it goes out of scope, provided |params| wants it to be shown.
285 class ScopedBrowserShower { 285 class ScopedBrowserShower {
286 public: 286 public:
287 explicit ScopedBrowserShower(chrome::NavigateParams* params) 287 explicit ScopedBrowserShower(chrome::NavigateParams* params)
288 : params_(params) { 288 : params_(params) {
289 } 289 }
290 ~ScopedBrowserShower() { 290 ~ScopedBrowserShower() {
291 if (params_->window_action == chrome::NavigateParams::SHOW_WINDOW_INACTIVE) 291 if (params_->window_action ==
292 chrome::NavigateParams::SHOW_WINDOW_INACTIVE) {
292 params_->browser->window()->ShowInactive(); 293 params_->browser->window()->ShowInactive();
293 else if (params_->window_action == chrome::NavigateParams::SHOW_WINDOW) 294 } else if (params_->window_action == chrome::NavigateParams::SHOW_WINDOW) {
294 params_->browser->window()->Show(); 295 params_->browser->window()->Show();
296 // If a user gesture opened a popup window, focus the contents.
297 if (params_->user_gesture && params_->disposition == NEW_POPUP &&
298 params_->target_contents) {
299 params_->target_contents->Focus();
300 }
301 }
295 } 302 }
303
296 private: 304 private:
297 chrome::NavigateParams* params_; 305 chrome::NavigateParams* params_;
298 DISALLOW_COPY_AND_ASSIGN(ScopedBrowserShower); 306 DISALLOW_COPY_AND_ASSIGN(ScopedBrowserShower);
299 }; 307 };
300 308
301 // This class manages the lifetime of a WebContents created by the 309 // This class manages the lifetime of a WebContents created by the
302 // Navigate() function. When Navigate() creates a WebContents for a URL, 310 // Navigate() function. When Navigate() creates a WebContents for a URL,
303 // an instance of this class takes ownership of it via TakeOwnership() until the 311 // an instance of this class takes ownership of it via TakeOwnership() until the
304 // WebContents is added to a tab strip at which time ownership is 312 // WebContents is added to a tab strip at which time ownership is
305 // relinquished via ReleaseOwnership(). If this object goes out of scope without 313 // relinquished via ReleaseOwnership(). If this object goes out of scope without
(...skipping 445 matching lines...) Expand 10 before | Expand all | Expand 10 after
751 bool reverse_on_redirect = false; 759 bool reverse_on_redirect = false;
752 content::BrowserURLHandler::GetInstance()->RewriteURLIfNecessary( 760 content::BrowserURLHandler::GetInstance()->RewriteURLIfNecessary(
753 &rewritten_url, browser_context, &reverse_on_redirect); 761 &rewritten_url, browser_context, &reverse_on_redirect);
754 762
755 // Some URLs are mapped to uber subpages. Do not allow them in incognito. 763 // Some URLs are mapped to uber subpages. Do not allow them in incognito.
756 return !(rewritten_url.scheme() == content::kChromeUIScheme && 764 return !(rewritten_url.scheme() == content::kChromeUIScheme &&
757 rewritten_url.host() == chrome::kChromeUIUberHost); 765 rewritten_url.host() == chrome::kChromeUIUberHost);
758 } 766 }
759 767
760 } // namespace chrome 768 } // namespace chrome
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698