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

Side by Side Diff: content/browser/renderer_host/render_widget_host_view_aura.cc

Issue 784883002: Removes the old <select> popup code Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years 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 (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 "content/browser/renderer_host/render_widget_host_view_aura.h" 5 #include "content/browser/renderer_host/render_widget_host_view_aura.h"
6 6
7 #include "base/auto_reset.h" 7 #include "base/auto_reset.h"
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback_helpers.h" 10 #include "base/callback_helpers.h"
(...skipping 518 matching lines...) Expand 10 before | Expand all | Expand 10 after
529 if (transient_window_client) { 529 if (transient_window_client) {
530 transient_window_client->AddTransientChild( 530 transient_window_client->AddTransientChild(
531 popup_parent_host_view_->window_, window_); 531 popup_parent_host_view_->window_, window_);
532 } 532 }
533 533
534 aura::Window* root = popup_parent_host_view_->window_->GetRootWindow(); 534 aura::Window* root = popup_parent_host_view_->window_->GetRootWindow();
535 aura::client::ParentWindowWithContext(window_, root, bounds_in_screen); 535 aura::client::ParentWindowWithContext(window_, root, bounds_in_screen);
536 536
537 SetBounds(bounds_in_screen); 537 SetBounds(bounds_in_screen);
538 Show(); 538 Show();
539 if (NeedsMouseCapture())
540 window_->SetCapture();
541 539
542 event_filter_for_popup_exit_.reset(new EventFilterForPopupExit(this)); 540 event_filter_for_popup_exit_.reset(new EventFilterForPopupExit(this));
543 } 541 }
544 542
545 void RenderWidgetHostViewAura::InitAsFullscreen( 543 void RenderWidgetHostViewAura::InitAsFullscreen(
546 RenderWidgetHostView* reference_host_view) { 544 RenderWidgetHostView* reference_host_view) {
547 is_fullscreen_ = true; 545 is_fullscreen_ = true;
548 window_->SetType(ui::wm::WINDOW_TYPE_NORMAL); 546 window_->SetType(ui::wm::WINDOW_TYPE_NORMAL);
549 window_->Init(aura::WINDOW_LAYER_SOLID_COLOR); 547 window_->Init(aura::WINDOW_LAYER_SOLID_COLOR);
550 window_->SetName("RenderWidgetHostViewAura"); 548 window_->SetName("RenderWidgetHostViewAura");
(...skipping 890 matching lines...) Expand 10 before | Expand all | Expand 10 after
1441 } 1439 }
1442 1440
1443 void RenderWidgetHostViewAura::InsertText(const base::string16& text) { 1441 void RenderWidgetHostViewAura::InsertText(const base::string16& text) {
1444 DCHECK(text_input_type_ != ui::TEXT_INPUT_TYPE_NONE); 1442 DCHECK(text_input_type_ != ui::TEXT_INPUT_TYPE_NONE);
1445 if (host_) 1443 if (host_)
1446 host_->ImeConfirmComposition(text, gfx::Range::InvalidRange(), false); 1444 host_->ImeConfirmComposition(text, gfx::Range::InvalidRange(), false);
1447 has_composition_text_ = false; 1445 has_composition_text_ = false;
1448 } 1446 }
1449 1447
1450 void RenderWidgetHostViewAura::InsertChar(base::char16 ch, int flags) { 1448 void RenderWidgetHostViewAura::InsertChar(base::char16 ch, int flags) {
1451 if (popup_child_host_view_ && popup_child_host_view_->NeedsInputGrab()) {
1452 popup_child_host_view_->InsertChar(ch, flags);
1453 return;
1454 }
1455
1456 // Ignore character messages for VKEY_RETURN sent on CTRL+M. crbug.com/315547 1449 // Ignore character messages for VKEY_RETURN sent on CTRL+M. crbug.com/315547
1457 if (host_ && (accept_return_character_ || ch != ui::VKEY_RETURN)) { 1450 if (host_ && (accept_return_character_ || ch != ui::VKEY_RETURN)) {
1458 double now = ui::EventTimeForNow().InSecondsF(); 1451 double now = ui::EventTimeForNow().InSecondsF();
1459 // Send a blink::WebInputEvent::Char event to |host_|. 1452 // Send a blink::WebInputEvent::Char event to |host_|.
1460 NativeWebKeyboardEvent webkit_event(ui::ET_KEY_PRESSED, 1453 NativeWebKeyboardEvent webkit_event(ui::ET_KEY_PRESSED,
1461 true /* is_char */, 1454 true /* is_char */,
1462 ch, 1455 ch,
1463 flags, 1456 flags,
1464 now); 1457 now);
1465 ForwardKeyboardEvent(webkit_event); 1458 ForwardKeyboardEvent(webkit_event);
(...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after
1795 } 1788 }
1796 1789
1797 //////////////////////////////////////////////////////////////////////////////// 1790 ////////////////////////////////////////////////////////////////////////////////
1798 // RenderWidgetHostViewAura, ui::EventHandler implementation: 1791 // RenderWidgetHostViewAura, ui::EventHandler implementation:
1799 1792
1800 void RenderWidgetHostViewAura::OnKeyEvent(ui::KeyEvent* event) { 1793 void RenderWidgetHostViewAura::OnKeyEvent(ui::KeyEvent* event) {
1801 TRACE_EVENT0("input", "RenderWidgetHostViewAura::OnKeyEvent"); 1794 TRACE_EVENT0("input", "RenderWidgetHostViewAura::OnKeyEvent");
1802 if (touch_editing_client_ && touch_editing_client_->HandleInputEvent(event)) 1795 if (touch_editing_client_ && touch_editing_client_->HandleInputEvent(event))
1803 return; 1796 return;
1804 1797
1805 if (popup_child_host_view_ && popup_child_host_view_->NeedsInputGrab()) {
1806 popup_child_host_view_->OnKeyEvent(event);
1807 if (event->handled())
1808 return;
1809 }
1810
1811 // We need to handle the Escape key for Pepper Flash. 1798 // We need to handle the Escape key for Pepper Flash.
1812 if (is_fullscreen_ && event->key_code() == ui::VKEY_ESCAPE) { 1799 if (is_fullscreen_ && event->key_code() == ui::VKEY_ESCAPE) {
1813 // Focus the window we were created from. 1800 // Focus the window we were created from.
1814 if (host_tracker_.get() && !host_tracker_->windows().empty()) { 1801 if (host_tracker_.get() && !host_tracker_->windows().empty()) {
1815 aura::Window* host = *(host_tracker_->windows().begin()); 1802 aura::Window* host = *(host_tracker_->windows().begin());
1816 aura::client::FocusClient* client = aura::client::GetFocusClient(host); 1803 aura::client::FocusClient* client = aura::client::GetFocusClient(host);
1817 if (client) { 1804 if (client) {
1818 // Calling host->Focus() may delete |this|. We create a local observer 1805 // Calling host->Focus() may delete |this|. We create a local observer
1819 // for that. In that case we exit without further access to any members. 1806 // for that. In that case we exit without further access to any members.
1820 aura::WindowTracker tracker; 1807 aura::WindowTracker tracker;
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
1966 // have grabbed keyboard focus. 1953 // have grabbed keyboard focus.
1967 if (event->type() == ui::ET_MOUSE_PRESSED) 1954 if (event->type() == ui::ET_MOUSE_PRESSED)
1968 SetKeyboardFocus(); 1955 SetKeyboardFocus();
1969 } 1956 }
1970 1957
1971 switch (event->type()) { 1958 switch (event->type()) {
1972 case ui::ET_MOUSE_PRESSED: 1959 case ui::ET_MOUSE_PRESSED:
1973 window_->SetCapture(); 1960 window_->SetCapture();
1974 break; 1961 break;
1975 case ui::ET_MOUSE_RELEASED: 1962 case ui::ET_MOUSE_RELEASED:
1976 if (!NeedsMouseCapture()) 1963 window_->ReleaseCapture();
1977 window_->ReleaseCapture();
1978 break; 1964 break;
1979 default: 1965 default:
1980 break; 1966 break;
1981 } 1967 }
1982 1968
1983 // Needed to propagate mouse event to |window_->parent()->delegate()|, but 1969 // Needed to propagate mouse event to |window_->parent()->delegate()|, but
1984 // note that it might be something other than a WebContentsViewAura instance. 1970 // note that it might be something other than a WebContentsViewAura instance.
1985 // TODO(pkotwicz): Find a better way of doing this. 1971 // TODO(pkotwicz): Find a better way of doing this.
1986 // In fullscreen mode which is typically used by flash, don't forward 1972 // In fullscreen mode which is typically used by flash, don't forward
1987 // the mouse events to the parent. The renderer and the plugin process 1973 // the mouse events to the parent. The renderer and the plugin process
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after
2308 return root_window->GetProperty(aura::client::kRootWindowInputMethodKey); 2294 return root_window->GetProperty(aura::client::kRootWindowInputMethodKey);
2309 } 2295 }
2310 2296
2311 void RenderWidgetHostViewAura::Shutdown() { 2297 void RenderWidgetHostViewAura::Shutdown() {
2312 if (!in_shutdown_) { 2298 if (!in_shutdown_) {
2313 in_shutdown_ = true; 2299 in_shutdown_ = true;
2314 host_->Shutdown(); 2300 host_->Shutdown();
2315 } 2301 }
2316 } 2302 }
2317 2303
2318 bool RenderWidgetHostViewAura::NeedsInputGrab() {
2319 return popup_type_ == blink::WebPopupTypeSelect;
2320 }
2321
2322 bool RenderWidgetHostViewAura::NeedsMouseCapture() {
2323 #if defined(OS_LINUX) && !defined(OS_CHROMEOS)
2324 return NeedsInputGrab();
2325 #endif
2326 return false;
2327 }
2328
2329 void RenderWidgetHostViewAura::FinishImeCompositionSession() { 2304 void RenderWidgetHostViewAura::FinishImeCompositionSession() {
2330 if (!has_composition_text_) 2305 if (!has_composition_text_)
2331 return; 2306 return;
2332 if (host_) { 2307 if (host_) {
2333 host_->ImeConfirmComposition(base::string16(), gfx::Range::InvalidRange(), 2308 host_->ImeConfirmComposition(base::string16(), gfx::Range::InvalidRange(),
2334 false); 2309 false);
2335 } 2310 }
2336 ImeCancelComposition(); 2311 ImeCancelComposition();
2337 } 2312 }
2338 2313
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
2573 2548
2574 //////////////////////////////////////////////////////////////////////////////// 2549 ////////////////////////////////////////////////////////////////////////////////
2575 // RenderWidgetHostViewBase, public: 2550 // RenderWidgetHostViewBase, public:
2576 2551
2577 // static 2552 // static
2578 void RenderWidgetHostViewBase::GetDefaultScreenInfo(WebScreenInfo* results) { 2553 void RenderWidgetHostViewBase::GetDefaultScreenInfo(WebScreenInfo* results) {
2579 GetScreenInfoForWindow(results, NULL); 2554 GetScreenInfoForWindow(results, NULL);
2580 } 2555 }
2581 2556
2582 } // namespace content 2557 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698