Index: chrome/browser/ui/browser_navigator.cc |
diff --git a/chrome/browser/ui/browser_navigator.cc b/chrome/browser/ui/browser_navigator.cc |
index b0961df5d6a65bb2557bdf1a4b4afba565d4d5c8..c32b1b6c06c5b1e16a2c377832bfa509df6781f5 100644 |
--- a/chrome/browser/ui/browser_navigator.cc |
+++ b/chrome/browser/ui/browser_navigator.cc |
@@ -288,11 +288,19 @@ class ScopedBrowserShower { |
: params_(params) { |
} |
~ScopedBrowserShower() { |
- if (params_->window_action == chrome::NavigateParams::SHOW_WINDOW_INACTIVE) |
+ if (params_->window_action == |
+ chrome::NavigateParams::SHOW_WINDOW_INACTIVE) { |
params_->browser->window()->ShowInactive(); |
- else if (params_->window_action == chrome::NavigateParams::SHOW_WINDOW) |
+ } else if (params_->window_action == chrome::NavigateParams::SHOW_WINDOW) { |
params_->browser->window()->Show(); |
+ // If a user gesture opened a popup window, focus the contents. |
+ if (params_->user_gesture && params_->disposition == NEW_POPUP && |
+ params_->target_contents) { |
+ params_->target_contents->Focus(); |
+ } |
+ } |
} |
+ |
private: |
chrome::NavigateParams* params_; |
DISALLOW_COPY_AND_ASSIGN(ScopedBrowserShower); |