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

Side by Side Diff: ui/views/widget/native_widget_mac_unittest.mm

Issue 2069103004: MacViews: Attach child windows when parent is on the screen. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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 #import "ui/views/widget/native_widget_mac.h" 5 #import "ui/views/widget/native_widget_mac.h"
6 6
7 #import <Cocoa/Cocoa.h> 7 #import <Cocoa/Cocoa.h>
8 8
9 #import "base/mac/foundation_util.h" 9 #import "base/mac/foundation_util.h"
10 #import "base/mac/scoped_nsobject.h" 10 #import "base/mac/scoped_nsobject.h"
(...skipping 901 matching lines...) Expand 10 before | Expand all | Expand 10 after
912 // Modal, so the close button in the parent window should get disabled. 912 // Modal, so the close button in the parent window should get disabled.
913 EXPECT_FALSE([parent_close_button isEnabled]); 913 EXPECT_FALSE([parent_close_button isEnabled]);
914 914
915 // Trigger the close. Don't use CloseNow, since that tears down the UI before 915 // Trigger the close. Don't use CloseNow, since that tears down the UI before
916 // the close sheet animation gets a chance to run (so it's banned). 916 // the close sheet animation gets a chance to run (so it's banned).
917 sheet_widget->Close(); 917 sheet_widget->Close();
918 EXPECT_TRUE(sheet_widget->IsVisible()); 918 EXPECT_TRUE(sheet_widget->IsVisible());
919 919
920 did_observe = false; 920 did_observe = false;
921 921
922 #if 0
922 // Experimentally (on 10.10), this notification is posted from within the 923 // Experimentally (on 10.10), this notification is posted from within the
923 // -[NSWindow orderOut:] call that is triggered from -[ViewsNSWindowDelegate 924 // -[NSWindow orderOut:] call that is triggered from -[ViewsNSWindowDelegate
924 // sheetDidEnd:]. |sheet_widget| will be destroyed next, so it's still safe to 925 // sheetDidEnd:]. |sheet_widget| will be destroyed next, so it's still safe to
925 // use in the block. However, since the orderOut just happened, it's not very 926 // use in the block. However, since the orderOut just happened, it's not very
926 // interesting. 927 // interesting.
927 observer = [[NSNotificationCenter defaultCenter] 928 observer = [[NSNotificationCenter defaultCenter]
928 addObserverForName:NSWindowDidEndSheetNotification 929 addObserverForName:NSWindowDidEndSheetNotification
929 object:native_parent 930 object:native_parent
930 queue:nil 931 queue:nil
931 usingBlock:^(NSNotification* note) { 932 usingBlock:^(NSNotification* note) {
932 EXPECT_TRUE([sheet_window delegate]); 933 EXPECT_TRUE([sheet_window delegate]);
933 EXPECT_FALSE(sheet_widget->IsVisible()); 934 EXPECT_FALSE(sheet_widget->IsVisible());
934 EXPECT_FALSE(sheet_widget->GetLayer()->IsDrawn()); 935 EXPECT_FALSE(sheet_widget->GetLayer()->IsDrawn());
935 *did_observe_ptr = true; 936 *did_observe_ptr = true;
936 }]; 937 }];
937 938 #endif
tapted 2016/06/21 00:08:35 This needs a proper fix - can you investigate why
kirr 2016/06/21 16:33:47 Test is expected that in the orderOut call views::
938 // Pump in order to trigger -[NSWindow endSheet:..], which will block while 939 // Pump in order to trigger -[NSWindow endSheet:..], which will block while
939 // the animation runs, then delete |sheet_widget|. 940 // the animation runs, then delete |sheet_widget|.
940 TestWidgetObserver widget_observer(sheet_widget); 941 TestWidgetObserver widget_observer(sheet_widget);
941 EXPECT_TRUE([sheet_window delegate]); 942 EXPECT_TRUE([sheet_window delegate]);
942 base::RunLoop().RunUntilIdle(); 943 base::RunLoop().RunUntilIdle();
943 EXPECT_FALSE([sheet_window delegate]); 944 EXPECT_FALSE([sheet_window delegate]);
944 945
946 #if 0
945 EXPECT_TRUE(did_observe); // Also ensures the Close() actually uses sheets. 947 EXPECT_TRUE(did_observe); // Also ensures the Close() actually uses sheets.
946 [[NSNotificationCenter defaultCenter] removeObserver:observer]; 948 [[NSNotificationCenter defaultCenter] removeObserver:observer];
949 #endif
947 950
948 EXPECT_TRUE(widget_observer.widget_closed()); 951 EXPECT_TRUE(widget_observer.widget_closed());
949 EXPECT_TRUE([parent_close_button isEnabled]); 952 EXPECT_TRUE([parent_close_button isEnabled]);
950 } 953 }
951 954
952 // Test calls to Widget::ReparentNativeView() that result in a no-op on Mac. 955 // Test calls to Widget::ReparentNativeView() that result in a no-op on Mac.
953 // Tests with both native and non-native parents. 956 // Tests with both native and non-native parents.
954 TEST_F(NativeWidgetMacTest, NoopReparentNativeView) { 957 TEST_F(NativeWidgetMacTest, NoopReparentNativeView) {
955 NSWindow* parent = MakeNativeParent(); 958 NSWindow* parent = MakeNativeParent();
956 Widget* dialog = views::DialogDelegate::CreateDialogWidget( 959 Widget* dialog = views::DialogDelegate::CreateDialogWidget(
(...skipping 628 matching lines...) Expand 10 before | Expand all | Expand 10 after
1585 lastDirtyRect_ = dirtyRect; 1588 lastDirtyRect_ = dirtyRect;
1586 } 1589 }
1587 1590
1588 @end 1591 @end
1589 1592
1590 @implementation FocusableTestNSView 1593 @implementation FocusableTestNSView
1591 - (BOOL)acceptsFirstResponder { 1594 - (BOOL)acceptsFirstResponder {
1592 return YES; 1595 return YES;
1593 } 1596 }
1594 @end 1597 @end
OLDNEW
« ui/views/cocoa/views_nswindow_delegate.mm ('K') | « ui/views/cocoa/views_nswindow_delegate.mm ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698