diff options
author | xiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-30 20:57:01 +0000 |
---|---|---|
committer | xiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-30 20:57:01 +0000 |
commit | 172a3a8063c95204c3279e5a36dc0ecb4c1b50be (patch) | |
tree | 5b39ac05654f8d025a42c94fea7acd58d65ea9f5 /ui/oak | |
parent | 0943b71cfbf7d6fb894882427cbf2fefb53f9574 (diff) | |
download | chromium_src-172a3a8063c95204c3279e5a36dc0ecb4c1b50be.zip chromium_src-172a3a8063c95204c3279e5a36dc0ecb4c1b50be.tar.gz chromium_src-172a3a8063c95204c3279e5a36dc0ecb4c1b50be.tar.bz2 |
Reland 179231
> views: Fix a Widget destruction crash.
>
> For WIDGET_OWNS_NATIVE_WIDGET widget, we destroy root view before we delete
> |native_widget_|. If a WidgetDelegateView is in root view's hierarchy, the
> native widget destruction would crash because |widget_delegate_| is accessed
> in OnNativeWidgetDestroying but it is deleted with root view already.
>
> This CL marks WidgetDelegateView as owned by client so that it does not go
> away with the root view hierarchy and be deleted on DeleteDelegate.
>
> BUG=164791
> TEST=Covered with a new unit test.
>
> R=ben@chromium.org
BUG=164791,172842
TEST=No memory leak as in 172842.
Review URL: https://chromiumcodereview.appspot.com/11953066
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@179694 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/oak')
-rw-r--r-- | ui/oak/oak_window.cc | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/ui/oak/oak_window.cc b/ui/oak/oak_window.cc index 832a7a9..7cf7dff 100644 --- a/ui/oak/oak_window.cc +++ b/ui/oak/oak_window.cc @@ -68,6 +68,7 @@ bool OakWindow::ShouldShowWindowIcon() const { void OakWindow::DeleteDelegate() { instance = NULL; + delete this; } //////////////////////////////////////////////////////////////////////////////// |