| Index: chrome/browser/ui/views/app_list/win/app_list_service_win.cc
|
| diff --git a/chrome/browser/ui/views/app_list/win/app_list_service_win.cc b/chrome/browser/ui/views/app_list/win/app_list_service_win.cc
|
| index c4680ca95144efeabfb4c952bb0a0efd93948bf2..c7c33f8a258c053589572a3d50311ad444221fc7 100644
|
| --- a/chrome/browser/ui/views/app_list/win/app_list_service_win.cc
|
| +++ b/chrome/browser/ui/views/app_list/win/app_list_service_win.cc
|
| @@ -4,13 +4,11 @@
|
|
|
| #include "chrome/browser/ui/views/app_list/win/app_list_service_win.h"
|
|
|
| -#include <dwmapi.h>
|
| #include <stddef.h>
|
| #include <stdint.h>
|
| #include <sstream>
|
|
|
| #include "base/command_line.h"
|
| -#include "base/files/file_util.h"
|
| #include "base/macros.h"
|
| #include "base/memory/singleton.h"
|
| #include "base/message_loop/message_loop.h"
|
| @@ -19,21 +17,15 @@
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "base/threading/sequenced_worker_pool.h"
|
| #include "base/time/time.h"
|
| -#include "base/win/shortcut.h"
|
| -#include "base/win/windows_version.h"
|
| -#include "chrome/app/chrome_dll_resource.h"
|
| #include "chrome/browser/browser_process.h"
|
| #include "chrome/browser/browser_shutdown.h"
|
| #include "chrome/browser/platform_util.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/profiles/profile_manager.h"
|
| -#include "chrome/browser/shell_integration_win.h"
|
| #include "chrome/browser/ui/app_list/app_list_util.h"
|
| -#include "chrome/browser/ui/ash/app_list/app_list_service_ash.h"
|
| #include "chrome/browser/ui/views/app_list/win/activation_tracker_win.h"
|
| #include "chrome/browser/ui/views/app_list/win/app_list_controller_delegate_win.h"
|
| #include "chrome/browser/ui/views/app_list/win/app_list_win.h"
|
| -#include "chrome/browser/web_applications/web_app.h"
|
| #include "chrome/common/channel_info.h"
|
| #include "chrome/common/chrome_constants.h"
|
| #include "chrome/common/chrome_switches.h"
|
| @@ -45,7 +37,6 @@
|
| #include "content/public/common/content_switches.h"
|
| #include "ui/app_list/views/app_list_view.h"
|
| #include "ui/base/ui_base_switches.h"
|
| -#include "ui/base/win/shell.h"
|
|
|
| #if defined(GOOGLE_CHROME_BUILD)
|
| #include "chrome/installer/util/google_update_settings.h"
|
| @@ -69,56 +60,6 @@ namespace {
|
|
|
| const int kUnusedAppListNoWarmupDays = 28;
|
|
|
| -int GetAppListIconIndex() {
|
| - BrowserDistribution* dist = BrowserDistribution::GetDistribution();
|
| - return dist->GetIconIndex(BrowserDistribution::SHORTCUT_APP_LAUNCHER);
|
| -}
|
| -
|
| -base::FilePath GetAppListIconPath() {
|
| - base::FilePath icon_path;
|
| - if (!PathService::Get(base::FILE_EXE, &icon_path)) {
|
| - NOTREACHED();
|
| - return base::FilePath();
|
| - }
|
| -
|
| - return icon_path;
|
| -}
|
| -
|
| -base::string16 GetAppListShortcutName() {
|
| - BrowserDistribution* dist = BrowserDistribution::GetDistribution();
|
| - return dist->GetShortcutName(BrowserDistribution::SHORTCUT_APP_LAUNCHER);
|
| -}
|
| -
|
| -base::CommandLine GetAppListCommandLine() {
|
| - const char* const kSwitchesToCopy[] = { switches::kUserDataDir };
|
| - base::CommandLine* current = base::CommandLine::ForCurrentProcess();
|
| - base::FilePath chrome_exe;
|
| - if (!PathService::Get(base::FILE_EXE, &chrome_exe)) {
|
| - NOTREACHED();
|
| - return base::CommandLine(base::CommandLine::NO_PROGRAM);
|
| - }
|
| - base::CommandLine command_line(chrome_exe);
|
| - command_line.CopySwitchesFrom(*current, kSwitchesToCopy,
|
| - arraysize(kSwitchesToCopy));
|
| - command_line.AppendSwitch(switches::kShowAppList);
|
| - return command_line;
|
| -}
|
| -
|
| -base::string16 GetAppModelId() {
|
| - // The AppModelId should be the same for all profiles in a user data directory
|
| - // but different for different user data directories, so base it on the
|
| - // initial profile in the current user data directory.
|
| - base::FilePath initial_profile_path;
|
| - base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
|
| - if (command_line->HasSwitch(switches::kUserDataDir)) {
|
| - initial_profile_path =
|
| - command_line->GetSwitchValuePath(switches::kUserDataDir).AppendASCII(
|
| - chrome::kInitialProfile);
|
| - }
|
| - return shell_integration::win::GetAppListAppModelIdForProfile(
|
| - initial_profile_path);
|
| -}
|
| -
|
| #if defined(GOOGLE_CHROME_BUILD)
|
| void SetDidRunForNDayActiveStats() {
|
| DCHECK(content::BrowserThread::GetBlockingPool()->RunsTasksOnCurrentThread());
|
| @@ -145,97 +86,6 @@ void SetDidRunForNDayActiveStats() {
|
| }
|
| #endif // GOOGLE_CHROME_BUILD
|
|
|
| -// The start menu shortcut is created on first run by users that are
|
| -// upgrading. The desktop and taskbar shortcuts are created the first time the
|
| -// user enables the app list. The taskbar shortcut is created in
|
| -// |user_data_dir| and will use a Windows Application Model Id of
|
| -// |app_model_id|. This runs on the FILE thread and not in the blocking IO
|
| -// thread pool as there are other tasks running (also on the FILE thread)
|
| -// which fiddle with shortcut icons
|
| -// (shell_integration::MigrateWin7ShortcutsOnPath). Having different threads
|
| -// fiddle with the same shortcuts could cause race issues.
|
| -void CreateAppListShortcuts(
|
| - const base::FilePath& user_data_dir,
|
| - const base::string16& app_model_id,
|
| - const web_app::ShortcutLocations& creation_locations) {
|
| - DCHECK_CURRENTLY_ON(content::BrowserThread::FILE);
|
| -
|
| - // Shortcut paths under which to create shortcuts.
|
| - std::vector<base::FilePath> shortcut_paths =
|
| - web_app::internals::GetShortcutPaths(creation_locations);
|
| -
|
| - bool pin_to_taskbar = creation_locations.in_quick_launch_bar &&
|
| - base::win::CanPinShortcutToTaskbar();
|
| -
|
| - // Create a shortcut in the |user_data_dir| for taskbar pinning.
|
| - if (pin_to_taskbar)
|
| - shortcut_paths.push_back(user_data_dir);
|
| - bool success = true;
|
| -
|
| - base::FilePath chrome_exe;
|
| - if (!PathService::Get(base::FILE_EXE, &chrome_exe)) {
|
| - NOTREACHED();
|
| - return;
|
| - }
|
| -
|
| - base::string16 app_list_shortcut_name = GetAppListShortcutName();
|
| -
|
| - base::string16 wide_switches(GetAppListCommandLine().GetArgumentsString());
|
| -
|
| - base::win::ShortcutProperties shortcut_properties;
|
| - shortcut_properties.set_target(chrome_exe);
|
| - shortcut_properties.set_working_dir(chrome_exe.DirName());
|
| - shortcut_properties.set_arguments(wide_switches);
|
| - shortcut_properties.set_description(app_list_shortcut_name);
|
| - shortcut_properties.set_icon(chrome_exe, GetAppListIconIndex());
|
| - shortcut_properties.set_app_id(app_model_id);
|
| -
|
| - for (size_t i = 0; i < shortcut_paths.size(); ++i) {
|
| - base::FilePath shortcut_file =
|
| - shortcut_paths[i].Append(app_list_shortcut_name).
|
| - AddExtension(installer::kLnkExt);
|
| - if (!base::PathExists(shortcut_file.DirName()) &&
|
| - !base::CreateDirectory(shortcut_file.DirName())) {
|
| - NOTREACHED();
|
| - return;
|
| - }
|
| - success = success && base::win::CreateOrUpdateShortcutLink(
|
| - shortcut_file, shortcut_properties,
|
| - base::win::SHORTCUT_CREATE_ALWAYS);
|
| - }
|
| -
|
| - if (success && pin_to_taskbar) {
|
| - base::FilePath shortcut_to_pin =
|
| - user_data_dir.Append(app_list_shortcut_name).
|
| - AddExtension(installer::kLnkExt);
|
| - success = base::win::PinShortcutToTaskbar(shortcut_to_pin) && success;
|
| - }
|
| -}
|
| -
|
| -// Customizes the app list |hwnd| for Windows (eg: disable aero peek, set up
|
| -// restart params).
|
| -void SetWindowAttributes(HWND hwnd) {
|
| - if (base::win::GetVersion() > base::win::VERSION_VISTA) {
|
| - // Disable aero peek. Without this, hovering over the taskbar popup puts
|
| - // Windows into a mode for switching between windows in the same
|
| - // application. The app list has just one window, so it is just distracting.
|
| - BOOL disable_value = TRUE;
|
| - ::DwmSetWindowAttribute(hwnd,
|
| - DWMWA_DISALLOW_PEEK,
|
| - &disable_value,
|
| - sizeof(disable_value));
|
| - }
|
| -
|
| - ui::win::SetAppIdForWindow(GetAppModelId(), hwnd);
|
| - base::CommandLine relaunch = GetAppListCommandLine();
|
| - base::string16 app_name(GetAppListShortcutName());
|
| - ui::win::SetRelaunchDetailsForWindow(
|
| - relaunch.GetCommandLineString(), app_name, hwnd);
|
| - ::SetWindowText(hwnd, app_name.c_str());
|
| - ui::win::SetAppIconForWindow(GetAppListIconPath(), GetAppListIconIndex(),
|
| - hwnd);
|
| -}
|
| -
|
| } // namespace
|
|
|
| // static
|
| @@ -287,23 +137,7 @@ void AppListServiceWin::Init(Profile* initial_profile) {
|
| }
|
|
|
| void AppListServiceWin::CreateShortcut() {
|
| - // Check if the app launcher shortcuts have ever been created before.
|
| - // Shortcuts should only be created once. If the user unpins the taskbar
|
| - // shortcut, they can restore it by pinning the start menu or desktop
|
| - // shortcut.
|
| - web_app::ShortcutLocations shortcut_locations;
|
| - shortcut_locations.on_desktop = true;
|
| - shortcut_locations.in_quick_launch_bar = true;
|
| - shortcut_locations.applications_menu_location =
|
| - web_app::APP_MENU_LOCATION_SUBDIR_CHROME_DEPRECATED;
|
| - base::FilePath user_data_dir(
|
| - g_browser_process->profile_manager()->user_data_dir());
|
| -
|
| - content::BrowserThread::PostTask(
|
| - content::BrowserThread::FILE,
|
| - FROM_HERE,
|
| - base::Bind(&CreateAppListShortcuts,
|
| - user_data_dir, GetAppModelId(), shortcut_locations));
|
| + NOTREACHED();
|
| }
|
|
|
| void AppListServiceWin::ScheduleWarmup() {
|
| @@ -395,7 +229,6 @@ void AppListServiceWin::OnViewCreated() {
|
| shower().app_list()->SetNextPaintCallback(next_paint_callback_);
|
| next_paint_callback_.Reset();
|
| }
|
| - SetWindowAttributes(shower().app_list()->GetHWND());
|
| activation_tracker_.reset(new ActivationTrackerWin(this));
|
| }
|
|
|
|
|