Chromium Code Reviews| Index: chrome/browser/ui/app_list_service.cc |
| diff --git a/chrome/browser/ui/app_list_service.cc b/chrome/browser/ui/app_list_service.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..95f4c66c7efa4e14c79efb938a138ceceae413ef |
| --- /dev/null |
| +++ b/chrome/browser/ui/app_list_service.cc |
| @@ -0,0 +1,110 @@ |
| +// Copyright 2013 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "chrome/browser/ui/app_list_service.h" |
| + |
| +#include "base/file_path.h" |
| + |
| +// TODO(tapted): split this into 2-3 files. |
| +#if defined(ENABLE_APP_LIST) |
| +#include "base/file_util.h" |
| +#include "build/build_config.h" |
| +#include "chrome/browser/browser_process.h" |
| +#include "chrome/browser/extensions/extension_prefs.h" |
| +#include "chrome/browser/prefs/pref_registry_simple.h" |
| +#include "chrome/browser/prefs/pref_service.h" |
| +#include "chrome/common/chrome_constants.h" |
| +#include "chrome/common/pref_names.h" |
| +#endif |
| + |
| +namespace { |
| +class AppListServiceDisabled : public AppListService { |
| + public: |
| + AppListServiceDisabled() {} |
| + |
| + private: |
| + DISALLOW_COPY_AND_ASSIGN(AppListServiceDisabled); |
| +}; |
| +} |
| + |
| +// static |
| +AppListService* AppListService::GetDisabled() { |
|
benwells
2013/02/11 04:12:32
Oh, OK I see now. So this means calling code won't
|
| + CR_DEFINE_STATIC_LOCAL(AppListServiceDisabled, disabled_instance, ()); |
| + return &disabled_instance; |
| +} |
| + |
| +#if defined(ENABLE_APP_LIST) |
| + |
| +// Note: AppListService::Get() will be platform-specific. |
| + |
| +// static |
| +base::FilePath AppListService::GetAppListProfilePath( |
| + const base::FilePath& user_data_dir) { |
| + PrefService* local_state = g_browser_process->local_state(); |
| + DCHECK(local_state); |
| + |
| + std::string app_list_profile; |
| + if (local_state->HasPrefPath(prefs::kAppListProfile)) |
| + app_list_profile = local_state->GetString(prefs::kAppListProfile); |
| + |
| + // If the user has no profile preference for the app launcher, default to the |
| + // last browser profile used. |
| + if (app_list_profile.empty() && |
| + local_state->HasPrefPath(prefs::kProfileLastUsed)) |
| + app_list_profile = local_state->GetString(prefs::kProfileLastUsed); |
| + |
| + std::string profile_path = app_list_profile.empty() ? |
| + chrome::kInitialProfile : |
| + app_list_profile; |
| + |
| + return user_data_dir.AppendASCII(profile_path); |
| +} |
| + |
| +// static |
| +void AppListService::RegisterAppListPrefs(PrefRegistrySimple* registry) { |
| + registry->RegisterStringPref(prefs::kAppListProfile, ""); |
| +} |
| + |
| +#else |
| + |
| +// static |
| +AppListService* AppListService::Get() { |
| + return GetDisabled(); |
| +} |
| + |
| +// static |
| +base::FilePath AppListService::GetAppListProfilePath( |
| + const base::FilePath& user_data_dir) { |
| + NOTREACHED(); |
| + return base::FilePath(); |
| +} |
| + |
| +// static |
| +void AppListService::RegisterAppListPrefs(PrefRegistrySimple* registry) {} |
| + |
| +#endif // else defined(ENABLE_APP_LIST) |
| + |
| +void AppListService::Init(Profile* initial_profile) {} |
| + |
| +void AppListService::ShowAppList(Profile* profile) {} |
| + |
| +void AppListService::SetAppListProfile( |
| + const base::FilePath& profile_file_path) {} |
| + |
| +void AppListService::DismissAppList() {} |
| + |
| +Profile* AppListService::GetCurrentAppListProfile() { return NULL; } |
| + |
| +bool AppListService::IsAppListVisible() { return false; } |
| + |
| +void AppListService::NotifyAppListOfBeginExtensionInstall( |
| + Profile* profile, |
| + const std::string& extension_id, |
| + const std::string& extension_name, |
| + const gfx::ImageSkia& installing_icon) {} |
| + |
| +void AppListService::NotifyAppListOfDownloadProgress( |
| + Profile* profile, |
| + const std::string& extension_id, |
| + int percent_downloaded) {} |