summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorshess@chromium.org <shess@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-18 17:25:00 +0000
committershess@chromium.org <shess@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-18 17:25:00 +0000
commit253b073edfdab221f0c71caf5c92759705d04170 (patch)
tree261f0adf11d8a5c7405dab7524382650c9bc8136
parent3375579bb68c22ad488a0a3ccc36b3ad1b5b6833 (diff)
downloadchromium_src-253b073edfdab221f0c71caf5c92759705d04170.zip
chromium_src-253b073edfdab221f0c71caf5c92759705d04170.tar.gz
chromium_src-253b073edfdab221f0c71caf5c92759705d04170.tar.bz2
[Mac] Try to fix zombie -mouseMoved: message.
ScopedTrackingArea added code to automagically break forwarding for tracking areas to prevent use-after-free messages. In BookmarkBarFolderController, the pointer was cleared before this code could kick in. Call it manually. BUG=78756 TEST=crash server. Review URL: http://codereview.chromium.org/6875014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81961 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller.mm1
-rw-r--r--chrome/browser/ui/cocoa/tracking_area.h1
2 files changed, 2 insertions, 0 deletions
diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller.mm
index 97d600b..ba14668 100644
--- a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller.mm
+++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller.mm
@@ -1002,6 +1002,7 @@ struct LayoutMetrics {
- (void)removeScrollTracking {
if (scrollTrackingArea_.get()) {
[[[self window] contentView] removeTrackingArea:scrollTrackingArea_.get()];
+ [scrollTrackingArea_.get() clearOwner];
}
scrollTrackingArea_.reset();
}
diff --git a/chrome/browser/ui/cocoa/tracking_area.h b/chrome/browser/ui/cocoa/tracking_area.h
index a32ca03..b044e4d 100644
--- a/chrome/browser/ui/cocoa/tracking_area.h
+++ b/chrome/browser/ui/cocoa/tracking_area.h
@@ -52,6 +52,7 @@ class ScopedCrTrackingArea {
~ScopedCrTrackingArea();
// This will call |scoped_nsobject<>::reset()| to take ownership of the new
+ // tracking area. Note that -clearOwner is NOT called on the existing
// tracking area.
void reset(CrTrackingArea* tracking_area = nil);