diff options
author | jcampan@chromium.org <jcampan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-01-09 20:21:11 +0000 |
---|---|---|
committer | jcampan@chromium.org <jcampan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-01-09 20:21:11 +0000 |
commit | cfd727ff8ea3e853a5e2f7c39cd1902fac090ecb (patch) | |
tree | e4f752f4fa1c3985abe91af25e7918c90a59768f /chrome/renderer | |
parent | 9b341774ce43e4034ac4465997b31e7b15fa1928 (diff) | |
download | chromium_src-cfd727ff8ea3e853a5e2f7c39cd1902fac090ecb.zip chromium_src-cfd727ff8ea3e853a5e2f7c39cd1902fac090ecb.tar.gz chromium_src-cfd727ff8ea3e853a5e2f7c39cd1902fac090ecb.tar.bz2 |
The popup for autofill is now never activated, even when clicked.
This allows us to hide it when the page loses focus.
(doing that previously would have caused the popup to be hidden before the click in the popup was sent to the renderer).
Most of the file changes are just renaming focus_on_show to activatable.
TEST=Open a form and make an autofill popup. Focus another window, the popup should disappear. Ensure the autofill still work properly, and the combo-box as well.
BUG=3844,5830
Review URL: http://codereview.chromium.org/17455
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7823 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer')
-rw-r--r-- | chrome/renderer/mock_render_thread.cc | 2 | ||||
-rw-r--r-- | chrome/renderer/mock_render_thread.h | 2 | ||||
-rw-r--r-- | chrome/renderer/render_view.cc | 4 | ||||
-rw-r--r-- | chrome/renderer/render_view.h | 3 | ||||
-rw-r--r-- | chrome/renderer/render_widget.cc | 11 | ||||
-rw-r--r-- | chrome/renderer/render_widget.h | 8 |
6 files changed, 14 insertions, 16 deletions
diff --git a/chrome/renderer/mock_render_thread.cc b/chrome/renderer/mock_render_thread.cc index 0f9db0d..a100a01 100644 --- a/chrome/renderer/mock_render_thread.cc +++ b/chrome/renderer/mock_render_thread.cc @@ -128,7 +128,7 @@ void MockRenderThread::OnMessageReceived(const IPC::Message& msg) { // The Widget expects to be returned valid route_id. void MockRenderThread::OnMsgCreateWidget(int opener_id, - bool focus_on_show, + bool activatable, int* route_id) { opener_id_ = opener_id; *route_id = routing_id_; diff --git a/chrome/renderer/mock_render_thread.h b/chrome/renderer/mock_render_thread.h index fc28517..5293461 100644 --- a/chrome/renderer/mock_render_thread.h +++ b/chrome/renderer/mock_render_thread.h @@ -94,7 +94,7 @@ class MockRenderThread : public RenderThreadBase { // The Widget expects to be returned valid route_id. void OnMsgCreateWidget(int opener_id, - bool focus_on_show, + bool activatable, int* route_id); // Routing id what will be assigned to the Widget. diff --git a/chrome/renderer/render_view.cc b/chrome/renderer/render_view.cc index c94e430..295e73a 100644 --- a/chrome/renderer/render_view.cc +++ b/chrome/renderer/render_view.cc @@ -1814,10 +1814,10 @@ WebView* RenderView::CreateWebView(WebView* webview, bool user_gesture) { } WebWidget* RenderView::CreatePopupWidget(WebView* webview, - bool focus_on_show) { + bool activatable) { RenderWidget* widget = RenderWidget::Create(routing_id_, render_thread_, - focus_on_show); + activatable); return widget->webwidget(); } diff --git a/chrome/renderer/render_view.h b/chrome/renderer/render_view.h index 23fd8b6..d60cd2c 100644 --- a/chrome/renderer/render_view.h +++ b/chrome/renderer/render_view.h @@ -204,8 +204,7 @@ class RenderView : public RenderWidget, bool is_redirect); virtual WebView* CreateWebView(WebView* webview, bool user_gesture); - virtual WebWidget* CreatePopupWidget(WebView* webview, - bool focus_on_show); + virtual WebWidget* CreatePopupWidget(WebView* webview, bool activatable); virtual WebPluginDelegate* CreatePluginDelegate( WebView* webview, const GURL& url, diff --git a/chrome/renderer/render_widget.cc b/chrome/renderer/render_widget.cc index a213c83..82a7fe7 100644 --- a/chrome/renderer/render_widget.cc +++ b/chrome/renderer/render_widget.cc @@ -69,8 +69,7 @@ DeferredCloses* DeferredCloses::current_ = NULL; /////////////////////////////////////////////////////////////////////////////// -RenderWidget::RenderWidget(RenderThreadBase* render_thread, - bool focus_on_show) +RenderWidget::RenderWidget(RenderThreadBase* render_thread, bool activatable) : routing_id_(MSG_ROUTING_NONE), opener_id_(MSG_ROUTING_NONE), render_thread_(render_thread), @@ -91,7 +90,7 @@ RenderWidget::RenderWidget(RenderThreadBase* render_thread, ime_control_new_state_(false), ime_control_updated_(false), ime_control_busy_(false), - focus_on_show_(focus_on_show) { + activatable_(activatable) { RenderProcess::AddRefProcess(); DCHECK(render_thread_); } @@ -111,10 +110,10 @@ RenderWidget::~RenderWidget() { /*static*/ RenderWidget* RenderWidget::Create(int32 opener_id, RenderThreadBase* render_thread, - bool focus_on_show) { + bool activatable) { DCHECK(opener_id != MSG_ROUTING_NONE); scoped_refptr<RenderWidget> widget = new RenderWidget(render_thread, - focus_on_show); + activatable); widget->Init(opener_id); // adds reference return widget; } @@ -130,7 +129,7 @@ void RenderWidget::Init(int32 opener_id) { webwidget_.swap(&webwidget); bool result = render_thread_->Send( - new ViewHostMsg_CreateWidget(opener_id, focus_on_show_, &routing_id_)); + new ViewHostMsg_CreateWidget(opener_id, activatable_, &routing_id_)); if (result) { render_thread_->AddRoute(routing_id_, this); // Take a reference on behalf of the RenderThread. This will be balanced diff --git a/chrome/renderer/render_widget.h b/chrome/renderer/render_widget.h index dfdb825..2ee001d 100644 --- a/chrome/renderer/render_widget.h +++ b/chrome/renderer/render_widget.h @@ -32,7 +32,7 @@ class RenderWidget : public IPC::Channel::Listener, // RenderThreadBase implementation, mostly commonly g_render_thread. static RenderWidget* Create(int32 opener_id, RenderThreadBase* render_thread, - bool focus_on_show); + bool activatable); // The routing ID assigned by the RenderProcess. Will be MSG_ROUTING_NONE if // not yet assigned a view ID, in which case, the process MUST NOT send @@ -89,7 +89,7 @@ class RenderWidget : public IPC::Channel::Listener, // without ref-counting is an error. friend class base::RefCounted<RenderWidget>; - RenderWidget(RenderThreadBase* render_thread, bool focus_on_show); + RenderWidget(RenderThreadBase* render_thread, bool activatable); virtual ~RenderWidget(); // Initializes this view with the given opener. CompleteInit must be called @@ -265,8 +265,8 @@ class RenderWidget : public IPC::Channel::Listener, bool ime_control_updated_; bool ime_control_busy_; - // Whether the window for this RenderWidget should be focused when shown. - bool focus_on_show_; + // Whether the window for this RenderWidget can be activated. + bool activatable_; // Holds all the needed plugin window moves for a scroll. std::vector<WebPluginGeometry> plugin_window_moves_; |