// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "chrome/browser/ui/autofill/popup_controller_common.h" #include "content/public/browser/render_view_host.h" #include "content/public/browser/web_contents.h" namespace autofill { PopupControllerCommon::PopupControllerCommon( const gfx::RectF& element_bounds, base::i18n::TextDirection text_direction, const gfx::NativeView container_view, content::WebContents* web_contents) : element_bounds_(element_bounds), text_direction_(text_direction), container_view_(container_view), web_contents_(web_contents), key_press_event_target_(NULL) { } PopupControllerCommon::~PopupControllerCommon() {} void PopupControllerCommon::SetKeyPressCallback( content::RenderWidgetHost::KeyPressEventCallback callback) { DCHECK(key_press_event_callback_.is_null()); key_press_event_callback_ = callback; } void PopupControllerCommon::RegisterKeyPressCallback() { if (web_contents_ && !key_press_event_target_) { key_press_event_target_ = web_contents_->GetRenderViewHost(); key_press_event_target_->GetWidget()->AddKeyPressEventCallback( key_press_event_callback_); } } void PopupControllerCommon::RemoveKeyPressCallback() { if (web_contents_ && (!web_contents_->IsBeingDestroyed()) && key_press_event_target_ == web_contents_->GetRenderViewHost()) { web_contents_->GetRenderViewHost() ->GetWidget() ->RemoveKeyPressEventCallback(key_press_event_callback_); } key_press_event_target_ = NULL; } } // namespace autofill