OLD | NEW |
---|---|
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/startup_app_launcher.h" | 5 #include "chrome/browser/chromeos/app_mode/startup_app_launcher.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/files/file_path.h" | 8 #include "base/files/file_path.h" |
9 #include "base/json/json_file_value_serializer.h" | 9 #include "base/json/json_file_value_serializer.h" |
10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
(...skipping 14 matching lines...) Expand all Loading... | |
25 #include "chrome/browser/signin/signin_manager_factory.h" | 25 #include "chrome/browser/signin/signin_manager_factory.h" |
26 #include "chrome/browser/ui/extensions/application_launch.h" | 26 #include "chrome/browser/ui/extensions/application_launch.h" |
27 #include "chrome/common/chrome_paths.h" | 27 #include "chrome/common/chrome_paths.h" |
28 #include "chrome/common/chrome_switches.h" | 28 #include "chrome/common/chrome_switches.h" |
29 #include "chrome/common/chrome_version_info.h" | 29 #include "chrome/common/chrome_version_info.h" |
30 #include "chrome/common/extensions/manifest_url_handler.h" | 30 #include "chrome/common/extensions/manifest_url_handler.h" |
31 #include "content/public/browser/browser_thread.h" | 31 #include "content/public/browser/browser_thread.h" |
32 #include "content/public/browser/notification_service.h" | 32 #include "content/public/browser/notification_service.h" |
33 #include "extensions/browser/extension_system.h" | 33 #include "extensions/browser/extension_system.h" |
34 #include "extensions/common/extension.h" | 34 #include "extensions/common/extension.h" |
35 #include "extensions/common/manifest_constants.h" | |
35 #include "extensions/common/manifest_handlers/kiosk_mode_info.h" | 36 #include "extensions/common/manifest_handlers/kiosk_mode_info.h" |
36 #include "extensions/common/manifest_handlers/offline_enabled_info.h" | 37 #include "extensions/common/manifest_handlers/offline_enabled_info.h" |
37 #include "google_apis/gaia/gaia_auth_consumer.h" | 38 #include "google_apis/gaia/gaia_auth_consumer.h" |
38 #include "google_apis/gaia/gaia_constants.h" | 39 #include "google_apis/gaia/gaia_constants.h" |
39 #include "net/base/load_flags.h" | 40 #include "net/base/load_flags.h" |
40 #include "net/url_request/url_fetcher.h" | 41 #include "net/url_request/url_fetcher.h" |
41 #include "net/url_request/url_fetcher_delegate.h" | 42 #include "net/url_request/url_fetcher_delegate.h" |
42 #include "net/url_request/url_request_context_getter.h" | 43 #include "net/url_request/url_request_context_getter.h" |
43 #include "net/url_request/url_request_status.h" | 44 #include "net/url_request/url_request_status.h" |
44 #include "url/gurl.h" | 45 #include "url/gurl.h" |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
141 } | 142 } |
142 | 143 |
143 // If we are restarting chrome (i.e. on crash), we need to initialize | 144 // If we are restarting chrome (i.e. on crash), we need to initialize |
144 // OAuth2TokenService as well. | 145 // OAuth2TokenService as well. |
145 InitializeTokenService(); | 146 InitializeTokenService(); |
146 } | 147 } |
147 | 148 |
148 void StartupAppLauncher::MaybeInitializeNetwork() { | 149 void StartupAppLauncher::MaybeInitializeNetwork() { |
149 const Extension* extension = extensions::ExtensionSystem::Get(profile_)-> | 150 const Extension* extension = extensions::ExtensionSystem::Get(profile_)-> |
150 extension_service()->GetInstalledExtension(app_id_); | 151 extension_service()->GetInstalledExtension(app_id_); |
152 // Kiosk apps are platform apps and platform apps default to be | |
153 // offline enabled if "offline_enabled" key is not provided. However, | |
154 // network check should be performed in that case. The only case the check | |
155 // should be skipped is the kiosk app explicitly declares "offline_enabled" | |
156 // true in its manifest. | |
miket_OOO
2014/03/05 18:32:22
Is this a good idea? It's giving a lot of subtlety
xiyuan
2014/03/05 18:44:18
Agree that having a new key would be more straight
| |
151 const bool requires_network = !extension || | 157 const bool requires_network = !extension || |
158 !extension->manifest()->HasKey( | |
159 extensions::manifest_keys::kOfflineEnabled) || | |
152 !extensions::OfflineEnabledInfo::IsOfflineEnabled(extension); | 160 !extensions::OfflineEnabledInfo::IsOfflineEnabled(extension); |
153 | 161 |
154 if (requires_network) { | 162 if (requires_network) { |
155 delegate_->InitializeNetwork(); | 163 delegate_->InitializeNetwork(); |
156 return; | 164 return; |
157 } | 165 } |
158 | 166 |
159 // Offline enabled app attempts update if network is ready. Otherwise, | 167 // Offline enabled app attempts update if network is ready. Otherwise, |
160 // go directly to launch. | 168 // go directly to launch. |
161 if (delegate_->IsNetworkReady()) | 169 if (delegate_->IsNetworkReady()) |
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
309 ready_to_launch_ = true; | 317 ready_to_launch_ = true; |
310 delegate_->OnReadyToLaunch(); | 318 delegate_->OnReadyToLaunch(); |
311 } | 319 } |
312 | 320 |
313 void StartupAppLauncher::UpdateAppData() { | 321 void StartupAppLauncher::UpdateAppData() { |
314 KioskAppManager::Get()->ClearAppData(app_id_); | 322 KioskAppManager::Get()->ClearAppData(app_id_); |
315 KioskAppManager::Get()->UpdateAppDataFromProfile(app_id_, profile_, NULL); | 323 KioskAppManager::Get()->UpdateAppDataFromProfile(app_id_, profile_, NULL); |
316 } | 324 } |
317 | 325 |
318 } // namespace chromeos | 326 } // namespace chromeos |
OLD | NEW |