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

Unified Diff: ui/views/test/event_generator_delegate_mac.mm

Issue 987733002: MacViews: Fix WidgetTest.WidgetDeleted_InOnMousePressed (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/views/cocoa/bridged_native_widget.mm ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/views/test/event_generator_delegate_mac.mm
diff --git a/ui/views/test/event_generator_delegate_mac.mm b/ui/views/test/event_generator_delegate_mac.mm
index 32878cd3a947c0a28846c70fe1833e393148c4a8..221237d3299640c37899840c940b2a1773fd4073 100644
--- a/ui/views/test/event_generator_delegate_mac.mm
+++ b/ui/views/test/event_generator_delegate_mac.mm
@@ -280,7 +280,7 @@ class EventGeneratorDelegateMac : public ui::EventTarget,
~EventGeneratorDelegateMac() override;
ui::test::EventGenerator* owner_;
- NSWindow* window_;
+ base::scoped_nsobject<NSWindow> window_;
scoped_ptr<base::mac::ScopedObjCClassSwizzler> swizzle_pressed_;
scoped_ptr<base::mac::ScopedObjCClassSwizzler> swizzle_current_event_;
base::scoped_nsobject<NSMenu> fake_menu_;
@@ -288,9 +288,7 @@ class EventGeneratorDelegateMac : public ui::EventTarget,
DISALLOW_COPY_AND_ASSIGN(EventGeneratorDelegateMac);
};
-EventGeneratorDelegateMac::EventGeneratorDelegateMac()
- : owner_(NULL),
- window_(NULL) {
+EventGeneratorDelegateMac::EventGeneratorDelegateMac() : owner_(NULL) {
DCHECK(!ui::test::EventGenerator::default_delegate);
ui::test::EventGenerator::default_delegate = this;
// Install a fake "edit" menu. This is normally provided by Chrome's
@@ -362,7 +360,11 @@ void EventGeneratorDelegateMac::SetContext(ui::test::EventGenerator* owner,
swizzle_pressed_.reset();
swizzle_current_event_.reset();
owner_ = owner;
- window_ = window;
+
+ // Retain the NSWindow (note it can be nil). This matches Cocoa's tendency to
+ // have autoreleased objects, or objects still in the event queue, that
+ // reference the NSWindow.
+ window_.reset([window retain]);
// Normally, edit menu items have a `nil` target. This results in -[NSMenu
// performKeyEquivalent:] relying on -[NSApplication targetForAction:to:from:]
« no previous file with comments | « ui/views/cocoa/bridged_native_widget.mm ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698