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

Side by Side Diff: chrome/browser/ui/autofill/popup_controller_common.cc

Issue 2762233004: Fix autofill popup controller key press callback registration (Closed)
Patch Set: Fix typo Created 3 years, 8 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/autofill/popup_controller_common.h" 5 #include "chrome/browser/ui/autofill/popup_controller_common.h"
6 6
7 #include "content/public/browser/render_view_host.h"
8 #include "content/public/browser/web_contents.h"
9
10 namespace autofill { 7 namespace autofill {
11 8
12 PopupControllerCommon::PopupControllerCommon( 9 PopupControllerCommon::PopupControllerCommon(
13 const gfx::RectF& element_bounds, 10 const gfx::RectF& element_bounds,
14 base::i18n::TextDirection text_direction, 11 base::i18n::TextDirection text_direction,
15 const gfx::NativeView container_view, 12 gfx::NativeView container_view)
16 content::WebContents* web_contents) 13 : element_bounds(element_bounds),
17 : element_bounds_(element_bounds), 14 text_direction(text_direction),
18 text_direction_(text_direction), 15 container_view(container_view) {}
19 container_view_(container_view), 16
20 web_contents_(web_contents),
21 key_press_event_target_(NULL) {
22 }
23 PopupControllerCommon::~PopupControllerCommon() {} 17 PopupControllerCommon::~PopupControllerCommon() {}
24 18
25 void PopupControllerCommon::SetKeyPressCallback(
26 content::RenderWidgetHost::KeyPressEventCallback callback) {
27 DCHECK(key_press_event_callback_.is_null());
28 key_press_event_callback_ = callback;
29 }
30
31 void PopupControllerCommon::RegisterKeyPressCallback() {
32 if (web_contents_ && !key_press_event_target_) {
33 key_press_event_target_ = web_contents_->GetRenderViewHost();
34 key_press_event_target_->GetWidget()->AddKeyPressEventCallback(
35 key_press_event_callback_);
36 }
37 }
38
39 void PopupControllerCommon::RemoveKeyPressCallback() {
40 if (web_contents_ && (!web_contents_->IsBeingDestroyed()) &&
41 key_press_event_target_ == web_contents_->GetRenderViewHost()) {
42 web_contents_->GetRenderViewHost()
43 ->GetWidget()
44 ->RemoveKeyPressEventCallback(key_press_event_callback_);
45 }
46 key_press_event_target_ = NULL;
47 }
48
49 } // namespace autofill 19 } // namespace autofill
OLDNEW
« no previous file with comments | « chrome/browser/ui/autofill/popup_controller_common.h ('k') | chrome/test/data/autofill/cross_origin_iframe.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698