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

Side by Side Diff: chrome/browser/ui/apps/chrome_app_delegate.cc

Issue 1725883002: Add KeepAliveStateObserver, add the Restart option (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@KeepAlive
Patch Set: Address comments Created 4 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/apps/chrome_app_delegate.h" 5 #include "chrome/browser/ui/apps/chrome_app_delegate.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 } 145 }
146 return NULL; 146 return NULL;
147 } 147 }
148 148
149 ChromeAppDelegate::ChromeAppDelegate(bool keep_alive) 149 ChromeAppDelegate::ChromeAppDelegate(bool keep_alive)
150 : has_been_shown_(false), 150 : has_been_shown_(false),
151 is_hidden_(true), 151 is_hidden_(true),
152 new_window_contents_delegate_(new NewWindowContentsDelegate()), 152 new_window_contents_delegate_(new NewWindowContentsDelegate()),
153 weak_factory_(this) { 153 weak_factory_(this) {
154 if (keep_alive) { 154 if (keep_alive) {
155 keep_alive_.reset( 155 keep_alive_.reset(new ScopedKeepAlive(KeepAliveOrigin::CHROME_APP_DELEGATE,
156 new ScopedKeepAlive(KeepAliveOrigin::CHROME_APP_DELEGATE)); 156 KeepAliveRestartOption::DISABLED));
157 } 157 }
158 registrar_.Add(this, 158 registrar_.Add(this,
159 chrome::NOTIFICATION_APP_TERMINATING, 159 chrome::NOTIFICATION_APP_TERMINATING,
160 content::NotificationService::AllSources()); 160 content::NotificationService::AllSources());
161 } 161 }
162 162
163 ChromeAppDelegate::~ChromeAppDelegate() { 163 ChromeAppDelegate::~ChromeAppDelegate() {
164 // Unregister now to prevent getting notified if |keep_alive_| is the last. 164 // Unregister now to prevent getting notified if |keep_alive_| is the last.
165 terminating_callback_.Reset(); 165 terminating_callback_.Reset();
166 } 166 }
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
320 content::BrowserThread::PostDelayedTask( 320 content::BrowserThread::PostDelayedTask(
321 content::BrowserThread::UI, FROM_HERE, 321 content::BrowserThread::UI, FROM_HERE,
322 base::Bind(&ChromeAppDelegate::RelinquishKeepAliveAfterTimeout, 322 base::Bind(&ChromeAppDelegate::RelinquishKeepAliveAfterTimeout,
323 weak_factory_.GetWeakPtr()), 323 weak_factory_.GetWeakPtr()),
324 base::TimeDelta::FromSeconds(kAppWindowFirstShowTimeoutSeconds)); 324 base::TimeDelta::FromSeconds(kAppWindowFirstShowTimeoutSeconds));
325 } 325 }
326 326
327 void ChromeAppDelegate::OnShow() { 327 void ChromeAppDelegate::OnShow() {
328 has_been_shown_ = true; 328 has_been_shown_ = true;
329 is_hidden_ = false; 329 is_hidden_ = false;
330 keep_alive_.reset(new ScopedKeepAlive(KeepAliveOrigin::CHROME_APP_DELEGATE)); 330 keep_alive_.reset(new ScopedKeepAlive(KeepAliveOrigin::CHROME_APP_DELEGATE,
331 KeepAliveRestartOption::DISABLED));
331 } 332 }
332 333
333 void ChromeAppDelegate::Observe(int type, 334 void ChromeAppDelegate::Observe(int type,
334 const content::NotificationSource& source, 335 const content::NotificationSource& source,
335 const content::NotificationDetails& details) { 336 const content::NotificationDetails& details) {
336 switch (type) { 337 switch (type) {
337 case chrome::NOTIFICATION_APP_TERMINATING: 338 case chrome::NOTIFICATION_APP_TERMINATING:
338 if (!terminating_callback_.is_null()) 339 if (!terminating_callback_.is_null())
339 terminating_callback_.Run(); 340 terminating_callback_.Run();
340 break; 341 break;
341 default: 342 default:
342 NOTREACHED() << "Received unexpected notification"; 343 NOTREACHED() << "Received unexpected notification";
343 } 344 }
344 } 345 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/app_list/profile_loader.cc ('k') | chrome/browser/ui/views/panels/panel_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698