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

Side by Side Diff: ui/views/widget/widget_unittest.cc

Issue 881163002: Fix a crash which occurs due to a CHECK firing in the HWNDMessageHandler::OnKeyEvent code path on W… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 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 (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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698