OLD | NEW |
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 <algorithm> | 5 #include <algorithm> |
6 #include <set> | 6 #include <set> |
7 | 7 |
8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
(...skipping 16 matching lines...) Expand all Loading... |
27 #include "ui/views/test/test_widget_observer.h" | 27 #include "ui/views/test/test_widget_observer.h" |
28 #include "ui/views/test/widget_test.h" | 28 #include "ui/views/test/widget_test.h" |
29 #include "ui/views/views_delegate.h" | 29 #include "ui/views/views_delegate.h" |
30 #include "ui/views/widget/native_widget_delegate.h" | 30 #include "ui/views/widget/native_widget_delegate.h" |
31 #include "ui/views/widget/root_view.h" | 31 #include "ui/views/widget/root_view.h" |
32 #include "ui/views/widget/widget_deletion_observer.h" | 32 #include "ui/views/widget/widget_deletion_observer.h" |
33 #include "ui/views/window/dialog_delegate.h" | 33 #include "ui/views/window/dialog_delegate.h" |
34 #include "ui/views/window/native_frame_view.h" | 34 #include "ui/views/window/native_frame_view.h" |
35 | 35 |
36 #if defined(OS_WIN) | 36 #if defined(OS_WIN) |
| 37 #include "ui/aura/window.h" |
| 38 #include "ui/aura/window_tree_host.h" |
| 39 #include "ui/base/view_prop.h" |
| 40 #include "ui/base/win/window_event_target.h" |
37 #include "ui/views/win/hwnd_util.h" | 41 #include "ui/views/win/hwnd_util.h" |
38 #endif | 42 #endif |
39 | 43 |
40 #if defined(OS_MACOSX) | 44 #if defined(OS_MACOSX) |
41 #include "base/mac/mac_util.h" | 45 #include "base/mac/mac_util.h" |
42 #endif | 46 #endif |
43 | 47 |
44 namespace views { | 48 namespace views { |
45 namespace test { | 49 namespace test { |
46 | 50 |
(...skipping 3330 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3377 | 3381 |
3378 EXPECT_NE(test_rect.size(), widget->GetWindowBoundsInScreen().size()); | 3382 EXPECT_NE(test_rect.size(), widget->GetWindowBoundsInScreen().size()); |
3379 | 3383 |
3380 EXPECT_EQ(test_rect, root_view->bounds()); | 3384 EXPECT_EQ(test_rect, root_view->bounds()); |
3381 widget->ReorderNativeViews(); | 3385 widget->ReorderNativeViews(); |
3382 EXPECT_EQ(test_rect, root_view->bounds()); | 3386 EXPECT_EQ(test_rect, root_view->bounds()); |
3383 | 3387 |
3384 widget->CloseNow(); | 3388 widget->CloseNow(); |
3385 } | 3389 } |
3386 | 3390 |
| 3391 #if defined(OS_WIN) |
| 3392 // This test validates that sending WM_CHAR/WM_SYSCHAR/WM_SYSDEADCHAR |
| 3393 // messages via the WindowEventTarget interface implemented by the |
| 3394 // HWNDMessageHandler class does not cause a crash due to an unprocessed |
| 3395 // event |
| 3396 TEST_F(WidgetTest, CharMessagesAsKeyboardMessagesDoesNotCrash) { |
| 3397 Widget widget; |
| 3398 Widget::InitParams params = |
| 3399 CreateParams(Widget::InitParams::TYPE_WINDOW); |
| 3400 params.native_widget = new PlatformDesktopNativeWidget(&widget); |
| 3401 params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; |
| 3402 widget.Init(params); |
| 3403 widget.Show(); |
| 3404 |
| 3405 ui::WindowEventTarget* target = |
| 3406 reinterpret_cast<ui::WindowEventTarget*>(ui::ViewProp::GetValue( |
| 3407 widget.GetNativeWindow()->GetHost()->GetAcceleratedWidget(), |
| 3408 ui::WindowEventTarget::kWin32InputEventTarget)); |
| 3409 EXPECT_NE(nullptr, target); |
| 3410 bool handled = false; |
| 3411 target->HandleKeyboardMessage(WM_CHAR, 0, 0, &handled); |
| 3412 target->HandleKeyboardMessage(WM_SYSCHAR, 0, 0, &handled); |
| 3413 target->HandleKeyboardMessage(WM_SYSDEADCHAR, 0, 0, &handled); |
| 3414 widget.CloseNow(); |
| 3415 } |
| 3416 #endif |
| 3417 |
3387 } // namespace test | 3418 } // namespace test |
3388 } // namespace views | 3419 } // namespace views |
OLD | NEW |