summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordimich@chromium.org <dimich@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-07 17:31:38 +0000
committerdimich@chromium.org <dimich@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-07 17:31:38 +0000
commit0d1210d6475798d740cf7d8fbca726b132f865f9 (patch)
tree5c66c6a2aed93af03b165dd665ad523d7ecdb38a
parent367251f58d002d5f591969787f21d58a58a0b291 (diff)
downloadchromium_src-0d1210d6475798d740cf7d8fbca726b132f865f9.zip
chromium_src-0d1210d6475798d740cf7d8fbca726b132f865f9.tar.gz
chromium_src-0d1210d6475798d740cf7d8fbca726b132f865f9.tar.bz2
First click on Dock icon (OSX) should restore session if Chrome was launched as hidden login item.
Review URL: http://codereview.chromium.org/3246007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58709 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/app_controller_mac.mm17
1 files changed, 17 insertions, 0 deletions
diff --git a/chrome/browser/app_controller_mac.mm b/chrome/browser/app_controller_mac.mm
index eb4452c..60d4620 100644
--- a/chrome/browser/app_controller_mac.mm
+++ b/chrome/browser/app_controller_mac.mm
@@ -850,6 +850,23 @@ void RecordLastRunAppBundlePath() {
if (flag)
return YES;
+ // If launched as a hidden login item (due to installation of a persistent app
+ // or by the user, for example in System Preferenecs->Accounts->Login Items),
+ // allow session to be restored first time the user clicks on a Dock icon.
+ // Normally, it'd just open a new empty page.
+ {
+ static BOOL doneOnce = NO;
+ if (!doneOnce) {
+ doneOnce = YES;
+ if (mac_util::WasLaunchedAsHiddenLoginItem()) {
+ SessionService* sessionService =
+ [self defaultProfile]->GetSessionService();
+ if (sessionService &&
+ sessionService->RestoreIfNecessary(std::vector<GURL>()))
+ return NO;
+ }
+ }
+ }
// Otherwise open a new window.
{
AutoReset<bool> auto_reset_in_run(&g_is_opening_new_window, true);