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

Side by Side Diff: chrome/browser/extensions/external_provider_impl.cc

Issue 300843013: Install and launch kiosk app from cached crx file at start up. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix ExternalProviderImplChromeOSTest.AppMode test case. Created 6 years, 5 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/extensions/external_provider_impl.h" 5 #include "chrome/browser/extensions/external_provider_impl.h"
6 6
7 #include <set> 7 #include <set>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 16 matching lines...) Expand all
27 #include "chrome/common/chrome_switches.h" 27 #include "chrome/common/chrome_switches.h"
28 #include "chrome/common/pref_names.h" 28 #include "chrome/common/pref_names.h"
29 #include "content/public/browser/browser_thread.h" 29 #include "content/public/browser/browser_thread.h"
30 #include "extensions/browser/extension_system.h" 30 #include "extensions/browser/extension_system.h"
31 #include "extensions/browser/external_provider_interface.h" 31 #include "extensions/browser/external_provider_interface.h"
32 #include "extensions/common/extension.h" 32 #include "extensions/common/extension.h"
33 #include "extensions/common/manifest.h" 33 #include "extensions/common/manifest.h"
34 #include "ui/base/l10n/l10n_util.h" 34 #include "ui/base/l10n/l10n_util.h"
35 35
36 #if defined(OS_CHROMEOS) 36 #if defined(OS_CHROMEOS)
37 #include "chrome/browser/chromeos/app_mode/kiosk_app_manager.h"
37 #include "chrome/browser/chromeos/customization_document.h" 38 #include "chrome/browser/chromeos/customization_document.h"
38 #include "chrome/browser/chromeos/extensions/device_local_account_external_polic y_loader.h" 39 #include "chrome/browser/chromeos/extensions/device_local_account_external_polic y_loader.h"
39 #include "chrome/browser/chromeos/login/users/user.h" 40 #include "chrome/browser/chromeos/login/users/user.h"
40 #include "chrome/browser/chromeos/login/users/user_manager.h" 41 #include "chrome/browser/chromeos/login/users/user_manager.h"
41 #include "chrome/browser/chromeos/policy/app_pack_updater.h" 42 #include "chrome/browser/chromeos/policy/app_pack_updater.h"
42 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" 43 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
43 #include "chrome/browser/chromeos/policy/device_local_account.h" 44 #include "chrome/browser/chromeos/policy/device_local_account.h"
44 #include "chrome/browser/chromeos/policy/device_local_account_policy_service.h" 45 #include "chrome/browser/chromeos/policy/device_local_account_policy_service.h"
45 #include "chrome/browser/chromeos/profiles/profile_helper.h" 46 #include "chrome/browser/chromeos/profiles/profile_helper.h"
46 #else 47 #else
(...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 linked_ptr<ExternalProviderInterface>( 392 linked_ptr<ExternalProviderInterface>(
392 new ExternalProviderImpl( 393 new ExternalProviderImpl(
393 service, 394 service,
394 external_loader, 395 external_loader,
395 profile, 396 profile,
396 crx_location, 397 crx_location,
397 Manifest::EXTERNAL_POLICY_DOWNLOAD, 398 Manifest::EXTERNAL_POLICY_DOWNLOAD,
398 Extension::NO_FLAGS))); 399 Extension::NO_FLAGS)));
399 } 400 }
400 401
402 // No external app install in app mode.
xiyuan 2014/07/08 21:51:00 nit: Update the comment.
jennyz 2014/07/12 00:03:21 Done.
403 if (chrome::IsRunningInForcedAppMode()) {
404 #if defined(OS_CHROMEOS)
405 chromeos::KioskAppManager* kiosk_app_manager =
406 chromeos::KioskAppManager::Get();
407 DCHECK(kiosk_app_manager);
408 if (kiosk_app_manager && !kiosk_app_manager->external_loader_created()) {
409 provider_list->push_back(linked_ptr<ExternalProviderInterface>(
410 new ExternalProviderImpl(service,
411 kiosk_app_manager->CreateExternalLoader(),
412 profile,
413 Manifest::EXTERNAL_PREF,
414 Manifest::INVALID_LOCATION,
415 Extension::NO_FLAGS)));
416 }
417 #endif
418 return;
419 }
420
401 // In tests don't install extensions from default external sources. 421 // In tests don't install extensions from default external sources.
402 // It would only slowdown tests and make them flaky. 422 // It would only slowdown tests and make them flaky.
403 if (CommandLine::ForCurrentProcess()->HasSwitch( 423 if (CommandLine::ForCurrentProcess()->HasSwitch(
404 switches::kDisableDefaultApps)) 424 switches::kDisableDefaultApps))
405 return; 425 return;
406 426
407 // No external app install in app mode.
408 if (chrome::IsRunningInForcedAppMode())
409 return;
410
411 // On Mac OS, items in /Library/... should be written by the superuser. 427 // On Mac OS, items in /Library/... should be written by the superuser.
412 // Check that all components of the path are writable by root only. 428 // Check that all components of the path are writable by root only.
413 ExternalPrefLoader::Options check_admin_permissions_on_mac; 429 ExternalPrefLoader::Options check_admin_permissions_on_mac;
414 #if defined(OS_MACOSX) 430 #if defined(OS_MACOSX)
415 check_admin_permissions_on_mac = 431 check_admin_permissions_on_mac =
416 ExternalPrefLoader::ENSURE_PATH_CONTROLLED_BY_ADMIN; 432 ExternalPrefLoader::ENSURE_PATH_CONTROLLED_BY_ADMIN;
417 #else 433 #else
418 check_admin_permissions_on_mac = ExternalPrefLoader::NONE; 434 check_admin_permissions_on_mac = ExternalPrefLoader::NONE;
419 #endif 435 #endif
420 436
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
551 service, 567 service,
552 new ExternalComponentLoader(profile), 568 new ExternalComponentLoader(profile),
553 profile, 569 profile,
554 Manifest::INVALID_LOCATION, 570 Manifest::INVALID_LOCATION,
555 Manifest::EXTERNAL_COMPONENT, 571 Manifest::EXTERNAL_COMPONENT,
556 Extension::FROM_WEBSTORE | Extension::WAS_INSTALLED_BY_DEFAULT))); 572 Extension::FROM_WEBSTORE | Extension::WAS_INSTALLED_BY_DEFAULT)));
557 } 573 }
558 } 574 }
559 575
560 } // namespace extensions 576 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698