Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / ui / views / test / widget_test_mac.mm
index 84f2bd0..3a3017b 100644 (file)
@@ -6,6 +6,7 @@
 
 #include <Cocoa/Cocoa.h>
 
+#import "base/mac/scoped_nsobject.h"
 #include "ui/views/widget/root_view.h"
 
 namespace views {
@@ -13,8 +14,11 @@ namespace test {
 
 // static
 void WidgetTest::SimulateNativeDestroy(Widget* widget) {
-  DCHECK([widget->GetNativeWindow() isReleasedWhenClosed]);
-  [widget->GetNativeWindow() close];
+  // Retain the window while closing it, otherwise the window may lose its last
+  // owner before -[NSWindow close] completes (this offends AppKit). Usually
+  // this reference will exist on an event delivered to the runloop.
+  base::scoped_nsobject<NSWindow> window([widget->GetNativeWindow() retain]);
+  [window close];
 }
 
 // static