Index: chrome/browser/ui/gtk/extensions/native_app_window_gtk.cc |
=================================================================== |
--- chrome/browser/ui/gtk/extensions/native_app_window_gtk.cc (revision 182229) |
+++ chrome/browser/ui/gtk/extensions/native_app_window_gtk.cc (working copy) |
@@ -4,7 +4,6 @@ |
#include "chrome/browser/ui/gtk/extensions/native_app_window_gtk.h" |
-#include "base/message_loop.h" |
#include "base/utf_string_conversions.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/ui/gtk/extensions/extension_keybinding_registry_gtk.h" |
@@ -185,15 +184,12 @@ |
// To help catch bugs in any event handlers that might get fired during the |
// destruction, set window_ to NULL before any handlers will run. |
window_ = NULL; |
- gtk_widget_destroy(window); |
- // On other platforms, the native window doesn't get destroyed synchronously. |
- // We simulate that here so that ShellWindow can assume that it doesn't get |
- // deleted immediately upon calling Close(). |
- MessageLoop::current()->PostTask( |
- FROM_HERE, |
- base::Bind(&ShellWindow::OnNativeClose, |
- base::Unretained(shell_window_))); |
+ // OnNativeClose does a delete this so no other members should |
+ // be accessed after. gtk_widget_destroy is safe (and must |
+ // be last). |
+ shell_window_->OnNativeClose(); |
+ gtk_widget_destroy(window); |
} |
void NativeAppWindowGtk::Activate() { |