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

Side by Side Diff: chrome/browser/chromeos/app_mode/kiosk_app_manager.cc

Issue 900553006: Updated KioskAppManager to track whether an app was auto-launched. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Review feedback Created 5 years, 10 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/chromeos/app_mode/kiosk_app_manager.h" 5 #include "chrome/browser/chromeos/app_mode/kiosk_app_manager.h"
6 6
7 #include <map> 7 #include <map>
8 #include <set> 8 #include <set>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 return; 93 return;
94 94
95 instance.Pointer()->CleanUp(); 95 instance.Pointer()->CleanUp();
96 } 96 }
97 97
98 // static 98 // static
99 void KioskAppManager::RegisterPrefs(PrefRegistrySimple* registry) { 99 void KioskAppManager::RegisterPrefs(PrefRegistrySimple* registry) {
100 registry->RegisterDictionaryPref(kKioskDictionaryName); 100 registry->RegisterDictionaryPref(kKioskDictionaryName);
101 } 101 }
102 102
103 KioskAppManager::App::App(const KioskAppData& data, bool is_extension_pending) 103 KioskAppManager::App::App(
104 const KioskAppData& data,
105 bool is_extension_pending,
106 bool auto_launched_with_zero_delay)
104 : app_id(data.app_id()), 107 : app_id(data.app_id()),
105 user_id(data.user_id()), 108 user_id(data.user_id()),
106 name(data.name()), 109 name(data.name()),
107 icon(data.icon()), 110 icon(data.icon()),
108 is_loading(data.IsLoading() || is_extension_pending) { 111 is_loading(data.IsLoading() || is_extension_pending),
112 was_auto_launched_with_zero_delay(auto_launched_with_zero_delay) {
109 } 113 }
110 114
111 KioskAppManager::App::App() : is_loading(false) {} 115 KioskAppManager::App::App() : is_loading(false),
116 was_auto_launched_with_zero_delay(false) {}
117
112 KioskAppManager::App::~App() {} 118 KioskAppManager::App::~App() {}
113 119
114 std::string KioskAppManager::GetAutoLaunchApp() const { 120 std::string KioskAppManager::GetAutoLaunchApp() const {
115 return auto_launch_app_id_; 121 return auto_launch_app_id_;
116 } 122 }
117 123
118 void KioskAppManager::SetAutoLaunchApp(const std::string& app_id) { 124 void KioskAppManager::SetAutoLaunchApp(const std::string& app_id) {
119 SetAutoLoginState(AUTOLOGIN_REQUESTED); 125 SetAutoLoginState(AUTOLOGIN_REQUESTED);
120 // Clean first, so the proper change callbacks are triggered even 126 // Clean first, so the proper change callbacks are triggered even
121 // if we are only changing AutoLoginState here. 127 // if we are only changing AutoLoginState here.
122 if (!auto_launch_app_id_.empty()) { 128 if (!auto_launch_app_id_.empty()) {
123 CrosSettings::Get()->SetString(kAccountsPrefDeviceLocalAccountAutoLoginId, 129 CrosSettings::Get()->SetString(kAccountsPrefDeviceLocalAccountAutoLoginId,
124 std::string()); 130 std::string());
125 } 131 }
126 132
127 CrosSettings::Get()->SetString( 133 CrosSettings::Get()->SetString(
128 kAccountsPrefDeviceLocalAccountAutoLoginId, 134 kAccountsPrefDeviceLocalAccountAutoLoginId,
129 app_id.empty() ? std::string() : GenerateKioskAppAccountId(app_id)); 135 app_id.empty() ? std::string() : GenerateKioskAppAccountId(app_id));
130 CrosSettings::Get()->SetInteger( 136 CrosSettings::Get()->SetInteger(
131 kAccountsPrefDeviceLocalAccountAutoLoginDelay, 0); 137 kAccountsPrefDeviceLocalAccountAutoLoginDelay, 0);
132 } 138 }
133 139
140 void KioskAppManager::SetAppWasAutoLaunchedWithZeroDelay(
141 const std::string& app_id) {
142 DCHECK_EQ(auto_launch_app_id_, app_id);
143 currently_auto_launched_with_zero_delay_app_ = app_id;
144 }
145
134 void KioskAppManager::EnableConsumerKioskAutoLaunch( 146 void KioskAppManager::EnableConsumerKioskAutoLaunch(
135 const KioskAppManager::EnableKioskAutoLaunchCallback& callback) { 147 const KioskAppManager::EnableKioskAutoLaunchCallback& callback) {
136 policy::BrowserPolicyConnectorChromeOS* connector = 148 policy::BrowserPolicyConnectorChromeOS* connector =
137 g_browser_process->platform_part()->browser_policy_connector_chromeos(); 149 g_browser_process->platform_part()->browser_policy_connector_chromeos();
138 connector->GetInstallAttributes()->LockDevice( 150 connector->GetInstallAttributes()->LockDevice(
139 std::string(), // user 151 std::string(), // user
140 policy::DEVICE_MODE_CONSUMER_KIOSK_AUTOLAUNCH, 152 policy::DEVICE_MODE_CONSUMER_KIOSK_AUTOLAUNCH,
141 std::string(), // device_id 153 std::string(), // device_id
142 base::Bind( 154 base::Bind(
143 &KioskAppManager::OnLockDevice, base::Unretained(this), callback)); 155 &KioskAppManager::OnLockDevice, base::Unretained(this), callback));
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 } 316 }
305 317
306 policy::SetDeviceLocalAccounts(CrosSettings::Get(), device_local_accounts); 318 policy::SetDeviceLocalAccounts(CrosSettings::Get(), device_local_accounts);
307 } 319 }
308 320
309 void KioskAppManager::GetApps(Apps* apps) const { 321 void KioskAppManager::GetApps(Apps* apps) const {
310 apps->clear(); 322 apps->clear();
311 apps->reserve(apps_.size()); 323 apps->reserve(apps_.size());
312 for (size_t i = 0; i < apps_.size(); ++i) { 324 for (size_t i = 0; i < apps_.size(); ++i) {
313 const KioskAppData& app_data = *apps_[i]; 325 const KioskAppData& app_data = *apps_[i];
314 if (app_data.status() != KioskAppData::STATUS_ERROR) 326 if (app_data.status() != KioskAppData::STATUS_ERROR) {
315 apps->push_back(App( 327 apps->push_back(App(
316 app_data, external_cache_->IsExtensionPending(app_data.app_id()))); 328 app_data, external_cache_->IsExtensionPending(app_data.app_id()),
329 app_data.app_id() == currently_auto_launched_with_zero_delay_app_));
330 }
317 } 331 }
318 } 332 }
319 333
320 bool KioskAppManager::GetApp(const std::string& app_id, App* app) const { 334 bool KioskAppManager::GetApp(const std::string& app_id, App* app) const {
321 const KioskAppData* data = GetAppData(app_id); 335 const KioskAppData* data = GetAppData(app_id);
322 if (!data) 336 if (!data)
323 return false; 337 return false;
324 338
325 *app = App(*data, external_cache_->IsExtensionPending(app_id)); 339 *app = App(*data, external_cache_->IsExtensionPending(app_id),
340 app_id == currently_auto_launched_with_zero_delay_app_);
326 return true; 341 return true;
327 } 342 }
328 343
329 bool KioskAppManager::GetDisableBailoutShortcut() const { 344 bool KioskAppManager::GetDisableBailoutShortcut() const {
330 bool enable; 345 bool enable;
331 if (CrosSettings::Get()->GetBoolean( 346 if (CrosSettings::Get()->GetBoolean(
332 kAccountsPrefDeviceLocalAccountAutoLoginBailoutEnabled, &enable)) { 347 kAccountsPrefDeviceLocalAccountAutoLoginBailoutEnabled, &enable)) {
333 return !enable; 348 return !enable;
334 } 349 }
335 350
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after
634 *cache_dir = user_data_dir.AppendASCII(kCrxCacheDir); 649 *cache_dir = user_data_dir.AppendASCII(kCrxCacheDir);
635 } 650 }
636 651
637 void KioskAppManager::GetCrxUnpackDir(base::FilePath* unpack_dir) { 652 void KioskAppManager::GetCrxUnpackDir(base::FilePath* unpack_dir) {
638 base::FilePath temp_dir; 653 base::FilePath temp_dir;
639 base::GetTempDir(&temp_dir); 654 base::GetTempDir(&temp_dir);
640 *unpack_dir = temp_dir.AppendASCII(kCrxUnpackDir); 655 *unpack_dir = temp_dir.AppendASCII(kCrxUnpackDir);
641 } 656 }
642 657
643 } // namespace chromeos 658 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698