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

Unified Diff: chrome/browser/ui/app_list/app_list_service_views.cc

Issue 492163002: Fix Profile* lifetime issues in Chrome's AppListViewDelegate (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: update unit test, cl format Created 6 years, 4 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
Index: chrome/browser/ui/app_list/app_list_service_views.cc
diff --git a/chrome/browser/ui/app_list/app_list_service_views.cc b/chrome/browser/ui/app_list/app_list_service_views.cc
index 072ee57dda0be8fd196fe60f027d754e144b8c28..88fa4b8f0c1b6ba03341805fa82828f5fa6a62d8 100644
--- a/chrome/browser/ui/app_list/app_list_service_views.cc
+++ b/chrome/browser/ui/app_list/app_list_service_views.cc
@@ -6,6 +6,7 @@
#include "chrome/browser/ui/app_list/app_list_controller_delegate.h"
#include "chrome/browser/ui/app_list/scoped_keep_alive.h"
+#include "ui/app_list/views/app_list_view.h"
AppListServiceViews::AppListServiceViews(
scoped_ptr<AppListControllerDelegate> controller_delegate)
@@ -63,6 +64,16 @@ AppListControllerDelegate* AppListServiceViews::GetControllerDelegate() {
return controller_delegate_.get();
}
+void AppListServiceViews::DestroyAppList() {
+ if (!shower_.HasView())
+ return;
+
+ // Use CloseNow(). This can't be asynchronous because the profile will be
+ // deleted once this function returns.
+ shower_.app_list()->GetWidget()->CloseNow();
+ DCHECK(!shower_.HasView());
+}
+
AppListControllerDelegate*
AppListServiceViews::GetControllerDelegateForCreate() {
return controller_delegate_.get();

Powered by Google App Engine
This is Rietveld 408576698