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(); |