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

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

Issue 24261010: Allow explicitly whitelisted apps/extensions in public sessions (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Comments addressed. Created 7 years, 3 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/extension_system.h" 5 #include "chrome/browser/extensions/extension_system.h"
6 6
7 #include "base/base_switches.h" 7 #include "base/base_switches.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
(...skipping 30 matching lines...) Expand all
41 #include "chrome/common/chrome_version_info.h" 41 #include "chrome/common/chrome_version_info.h"
42 #include "chrome/common/extensions/extension.h" 42 #include "chrome/common/extensions/extension.h"
43 #include "chrome/common/extensions/features/feature_channel.h" 43 #include "chrome/common/extensions/features/feature_channel.h"
44 #include "content/public/browser/browser_thread.h" 44 #include "content/public/browser/browser_thread.h"
45 #include "content/public/browser/url_data_source.h" 45 #include "content/public/browser/url_data_source.h"
46 #include "extensions/common/constants.h" 46 #include "extensions/common/constants.h"
47 #include "extensions/common/manifest.h" 47 #include "extensions/common/manifest.h"
48 48
49 #if defined(OS_CHROMEOS) 49 #if defined(OS_CHROMEOS)
50 #include "chrome/browser/app_mode/app_mode_utils.h" 50 #include "chrome/browser/app_mode/app_mode_utils.h"
51 #include "chrome/browser/chromeos/extensions/device_local_account_management_pol icy_provider.h"
52 #include "chrome/browser/chromeos/login/user.h"
53 #include "chrome/browser/chromeos/login/user_manager.h"
54 #include "chrome/browser/chromeos/policy/device_local_account.h"
51 #include "chromeos/chromeos_switches.h" 55 #include "chromeos/chromeos_switches.h"
52 #include "chromeos/login/login_state.h" 56 #include "chromeos/login/login_state.h"
53 #endif 57 #endif
54 58
55 using content::BrowserThread; 59 using content::BrowserThread;
56 60
57 namespace extensions { 61 namespace extensions {
58 62
59 // 63 //
60 // ExtensionSystem 64 // ExtensionSystem
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 104
101 rules_store_.reset(new StateStore( 105 rules_store_.reset(new StateStore(
102 profile_, 106 profile_,
103 profile_->GetPath().AppendASCII(ExtensionService::kRulesStoreName), 107 profile_->GetPath().AppendASCII(ExtensionService::kRulesStoreName),
104 false)); 108 false));
105 109
106 blacklist_.reset(new Blacklist(ExtensionPrefs::Get(profile_))); 110 blacklist_.reset(new Blacklist(ExtensionPrefs::Get(profile_)));
107 111
108 standard_management_policy_provider_.reset( 112 standard_management_policy_provider_.reset(
109 new StandardManagementPolicyProvider(ExtensionPrefs::Get(profile_))); 113 new StandardManagementPolicyProvider(ExtensionPrefs::Get(profile_)));
110 #endif 114
115 #if defined (OS_CHROMEOS)
116 const chromeos::User* user = chromeos::UserManager::Get()->GetActiveUser();
117 if (user && policy::IsDeviceLocalAccountUser(user->email())) {
118 device_local_account_management_policy_provider_.reset(
119 new chromeos::DeviceLocalAccountManagementPolicyProvider);
120 }
121 #endif // defined (OS_CHROMEOS)
122
123 #endif // defined(ENABLE_EXTENSIONS)
111 } 124 }
112 125
113 void ExtensionSystemImpl::Shared::RegisterManagementPolicyProviders() { 126 void ExtensionSystemImpl::Shared::RegisterManagementPolicyProviders() {
114 // TODO(yoz): Remove once crbug.com/159265 is fixed. 127 // TODO(yoz): Remove once crbug.com/159265 is fixed.
115 #if defined(ENABLE_EXTENSIONS) 128 #if defined(ENABLE_EXTENSIONS)
116 DCHECK(standard_management_policy_provider_.get()); 129 DCHECK(standard_management_policy_provider_.get());
117 management_policy_->RegisterProvider( 130 management_policy_->RegisterProvider(
118 standard_management_policy_provider_.get()); 131 standard_management_policy_provider_.get());
119 #endif 132
133 #if defined (OS_CHROMEOS)
134 if (device_local_account_management_policy_provider_) {
135 management_policy_->RegisterProvider(
136 device_local_account_management_policy_provider_.get());
137 }
138 #endif // defined (OS_CHROMEOS)
139
140 #endif // defined(ENABLE_EXTENSIONS)
asargent_no_longer_on_chrome 2013/09/24 20:29:00 It seems a little unfortunate to have this #ifdef'
bartfab (slow) 2013/09/26 12:39:13 Just to clarify, because the name is somewhat misl
120 } 141 }
121 142
122 void ExtensionSystemImpl::Shared::Init(bool extensions_enabled) { 143 void ExtensionSystemImpl::Shared::Init(bool extensions_enabled) {
123 const CommandLine* command_line = CommandLine::ForCurrentProcess(); 144 const CommandLine* command_line = CommandLine::ForCurrentProcess();
124 145
125 navigation_observer_.reset(new NavigationObserver(profile_)); 146 navigation_observer_.reset(new NavigationObserver(profile_));
126 147
127 bool allow_noisy_errors = !command_line->HasSwitch(switches::kNoErrorDialogs); 148 bool allow_noisy_errors = !command_line->HasSwitch(switches::kNoErrorDialogs);
128 ExtensionErrorReporter::Init(allow_noisy_errors); 149 ExtensionErrorReporter::Init(allow_noisy_errors);
129 150
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
382 void ExtensionSystemImpl::UnregisterExtensionWithRequestContexts( 403 void ExtensionSystemImpl::UnregisterExtensionWithRequestContexts(
383 const std::string& extension_id, 404 const std::string& extension_id,
384 const extension_misc::UnloadedExtensionReason reason) { 405 const extension_misc::UnloadedExtensionReason reason) {
385 BrowserThread::PostTask( 406 BrowserThread::PostTask(
386 BrowserThread::IO, FROM_HERE, 407 BrowserThread::IO, FROM_HERE,
387 base::Bind(&ExtensionInfoMap::RemoveExtension, info_map(), 408 base::Bind(&ExtensionInfoMap::RemoveExtension, info_map(),
388 extension_id, reason)); 409 extension_id, reason));
389 } 410 }
390 411
391 } // namespace extensions 412 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698