Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/profiles/profile_impl.h" | 5 #include "chrome/browser/profiles/profile_impl.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
| 9 #include "base/environment.h" | 9 #include "base/environment.h" |
| 10 #include "base/file_path.h" | 10 #include "base/file_path.h" |
| (...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 214 } | 214 } |
| 215 | 215 |
| 216 FilePath GetCachePath(const FilePath& base) { | 216 FilePath GetCachePath(const FilePath& base) { |
| 217 return base.Append(chrome::kCacheDirname); | 217 return base.Append(chrome::kCacheDirname); |
| 218 } | 218 } |
| 219 | 219 |
| 220 FilePath GetMediaCachePath(const FilePath& base) { | 220 FilePath GetMediaCachePath(const FilePath& base) { |
| 221 return base.Append(chrome::kMediaCacheDirname); | 221 return base.Append(chrome::kMediaCacheDirname); |
| 222 } | 222 } |
| 223 | 223 |
| 224 void DoInstallDefaultAppsOnUIThread(const FilePath& profile_path, | |
|
Mattias Nissler (ping if slow)
2011/09/26 17:26:37
Unrelated?
pastarmovj
2011/09/29 15:15:03
Yes this is part of a CL that is landed on trunk b
| |
| 225 const std::list<FilePath>& crx_path_list) { | |
| 226 Profile* profile = | |
| 227 g_browser_process->profile_manager()->GetProfileByPath(profile_path); | |
| 228 if (profile) { | |
| 229 ExtensionService* extension_service = profile->GetExtensionService(); | |
| 230 for (std::list<FilePath>::const_iterator iter = crx_path_list.begin(); | |
| 231 iter != crx_path_list.end(); ++iter) { | |
| 232 scoped_refptr<CrxInstaller> crx_installer = | |
| 233 extension_service->MakeCrxInstaller(NULL); | |
| 234 crx_installer->set_allow_silent_install(true); | |
| 235 crx_installer->set_delete_source(false); | |
| 236 crx_installer->set_install_cause(extension_misc::INSTALL_CAUSE_UPDATE); | |
| 237 crx_installer->InstallCrx(*iter); | |
| 238 } | |
| 239 } | |
| 240 } | |
| 241 | |
| 242 void InstallDefaultApps(const FilePath& profile_path) { | |
| 243 FilePath apps_dir; | |
| 244 FilePath file; | |
| 245 std::list<FilePath> crx_path_list; | |
| 246 | |
| 247 if (PathService::Get(chrome::DIR_DEFAULT_APPS, &apps_dir)) { | |
| 248 file_util::FileEnumerator file_enumerator(apps_dir, false, | |
| 249 file_util::FileEnumerator::FILES); | |
| 250 while (!(file = file_enumerator.Next()).value().empty()) { | |
| 251 if (LowerCaseEqualsASCII(file.Extension(), ".crx")) | |
| 252 crx_path_list.push_back(file); | |
| 253 } | |
| 254 } | |
| 255 // No need to post the task if nothing was there to install. | |
| 256 if (!crx_path_list.size()) | |
| 257 return; | |
| 258 | |
| 259 // Finish the install on the UI thread. | |
| 260 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, | |
| 261 base::Bind(&DoInstallDefaultAppsOnUIThread, | |
| 262 profile_path, crx_path_list)); | |
| 263 } | |
| 264 | |
| 224 // Simple task to log the size of the current profile. | 265 // Simple task to log the size of the current profile. |
| 225 class ProfileSizeTask : public Task { | 266 class ProfileSizeTask : public Task { |
| 226 public: | 267 public: |
| 227 explicit ProfileSizeTask(const FilePath& path) : path_(path) {} | 268 explicit ProfileSizeTask(const FilePath& path) : path_(path) {} |
| 228 virtual ~ProfileSizeTask() {} | 269 virtual ~ProfileSizeTask() {} |
| 229 | 270 |
| 230 virtual void Run(); | 271 virtual void Run(); |
| 231 private: | 272 private: |
| 232 FilePath path_; | 273 FilePath path_; |
| 233 }; | 274 }; |
| (...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 541 #elif defined(OS_MACOSX) | 582 #elif defined(OS_MACOSX) |
| 542 std::string brand = keystone_glue::BrandCode(); | 583 std::string brand = keystone_glue::BrandCode(); |
| 543 #else | 584 #else |
| 544 std::string brand; | 585 std::string brand; |
| 545 #endif | 586 #endif |
| 546 // TODO(caitkp): when we move to multi-profiles (M16) we will want to change | 587 // TODO(caitkp): when we move to multi-profiles (M16) we will want to change |
| 547 // this check, as |FirstRun::IsChromeFirstRun()| checks for the first run | 588 // this check, as |FirstRun::IsChromeFirstRun()| checks for the first run |
| 548 // ever, not first run per profile. | 589 // ever, not first run per profile. |
| 549 if (FirstRun::IsChromeFirstRun() && | 590 if (FirstRun::IsChromeFirstRun() && |
| 550 !LowerCaseEqualsASCII(brand, "ecdb")) { | 591 !LowerCaseEqualsASCII(brand, "ecdb")) { |
| 551 InstallDefaultApps(); | 592 BrowserThread::PostTask( |
| 593 BrowserThread::FILE, FROM_HERE, | |
| 594 base::Bind(&InstallDefaultApps, GetPath())); | |
| 552 } | 595 } |
| 553 #endif | 596 #endif |
| 554 | 597 |
| 555 extension_service_->Init(); | 598 extension_service_->Init(); |
| 556 | 599 |
| 557 if (extensions_enabled) { | 600 if (extensions_enabled) { |
| 558 // Load any extensions specified with --load-extension. | 601 // Load any extensions specified with --load-extension. |
| 559 if (command_line->HasSwitch(switches::kLoadExtension)) { | 602 if (command_line->HasSwitch(switches::kLoadExtension)) { |
| 560 FilePath path = command_line->GetSwitchValuePath( | 603 FilePath path = command_line->GetSwitchValuePath( |
| 561 switches::kLoadExtension); | 604 switches::kLoadExtension); |
| (...skipping 19 matching lines...) Expand all Loading... | |
| 581 if (!command_line->HasSwitch(switches::kImport) && | 624 if (!command_line->HasSwitch(switches::kImport) && |
| 582 !command_line->HasSwitch(switches::kImportFromFile)) { | 625 !command_line->HasSwitch(switches::kImportFromFile)) { |
| 583 if (g_browser_process->profile_manager()->will_import()) { | 626 if (g_browser_process->profile_manager()->will_import()) { |
| 584 extension_service_->InitEventRoutersAfterImport(); | 627 extension_service_->InitEventRoutersAfterImport(); |
| 585 } else { | 628 } else { |
| 586 extension_service_->InitEventRouters(); | 629 extension_service_->InitEventRouters(); |
| 587 } | 630 } |
| 588 } | 631 } |
| 589 } | 632 } |
| 590 | 633 |
| 591 void ProfileImpl::InstallDefaultApps() { | |
| 592 FilePath apps_dir; | |
| 593 FilePath file; | |
| 594 std::list<FilePath> crx_path_list; | |
| 595 | |
| 596 if (PathService::Get(chrome::DIR_DEFAULT_APPS, &apps_dir)) { | |
| 597 file_util::FileEnumerator file_enumerator(apps_dir, false, | |
| 598 file_util::FileEnumerator::FILES); | |
| 599 while (!(file = file_enumerator.Next()).value().empty()) { | |
| 600 if (LowerCaseEqualsASCII(file.Extension(), ".crx")) | |
| 601 crx_path_list.push_back(file); | |
| 602 } | |
| 603 } | |
| 604 | |
| 605 for (std::list<FilePath>::iterator iter = crx_path_list.begin(); | |
| 606 iter != crx_path_list.end(); ++iter) { | |
| 607 scoped_refptr<CrxInstaller> crx_installer = | |
| 608 extension_service_->MakeCrxInstaller(NULL); | |
| 609 crx_installer->set_allow_silent_install(true); | |
| 610 crx_installer->set_delete_source(false); | |
| 611 crx_installer->set_install_cause(extension_misc::INSTALL_CAUSE_UPDATE); | |
| 612 crx_installer->InstallCrx(*iter); | |
| 613 } | |
| 614 } | |
| 615 | |
| 616 void ProfileImpl::RegisterComponentExtensions() { | 634 void ProfileImpl::RegisterComponentExtensions() { |
| 617 // Register the component extensions. | 635 // Register the component extensions. |
| 618 // | 636 // |
| 619 // Component extension manifest must contain a 'key' property with a unique | 637 // Component extension manifest must contain a 'key' property with a unique |
| 620 // public key, serialized in base64. You can create a suitable value with the | 638 // public key, serialized in base64. You can create a suitable value with the |
| 621 // following commands on a unixy system: | 639 // following commands on a unixy system: |
| 622 // | 640 // |
| 623 // ssh-keygen -t rsa -b 1024 -N '' -f /tmp/key.pem | 641 // ssh-keygen -t rsa -b 1024 -N '' -f /tmp/key.pem |
| 624 // openssl rsa -pubout -outform DER < /tmp/key.pem 2>/dev/null | base64 -w 0 | 642 // openssl rsa -pubout -outform DER < /tmp/key.pem 2>/dev/null | base64 -w 0 |
| 625 typedef std::list<std::pair<FilePath::StringType, int> > | 643 typedef std::list<std::pair<FilePath::StringType, int> > |
| (...skipping 1195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1821 SpellCheckProfile* ProfileImpl::GetSpellCheckProfile() { | 1839 SpellCheckProfile* ProfileImpl::GetSpellCheckProfile() { |
| 1822 if (!spellcheck_profile_.get()) | 1840 if (!spellcheck_profile_.get()) |
| 1823 spellcheck_profile_.reset(new SpellCheckProfile()); | 1841 spellcheck_profile_.reset(new SpellCheckProfile()); |
| 1824 return spellcheck_profile_.get(); | 1842 return spellcheck_profile_.get(); |
| 1825 } | 1843 } |
| 1826 | 1844 |
| 1827 void ProfileImpl::SetDownloadManagerDelegate( | 1845 void ProfileImpl::SetDownloadManagerDelegate( |
| 1828 ChromeDownloadManagerDelegate* delegate) { | 1846 ChromeDownloadManagerDelegate* delegate) { |
| 1829 download_manager_delegate_ = delegate; | 1847 download_manager_delegate_ = delegate; |
| 1830 } | 1848 } |
| OLD | NEW |