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

Side by Side Diff: chrome/browser/web_applications/web_app.cc

Issue 3823002: Move windows version-related stuff out of base/win_util and into base/win/win... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 2 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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/web_applications/web_app.h" 5 #include "chrome/browser/web_applications/web_app.h"
6 6
7 #if defined(OS_WIN) 7 #if defined(OS_WIN)
8 #include <shellapi.h> 8 #include <shellapi.h>
9 #include <shlobj.h> 9 #include <shlobj.h>
10 #endif // defined(OS_WIN) 10 #endif // defined(OS_WIN)
11 11
12 #include <algorithm> 12 #include <algorithm>
13 #include <string> 13 #include <string>
14 #include <vector> 14 #include <vector>
15 15
16 #include "base/callback.h" 16 #include "base/callback.h"
17 #include "base/file_util.h" 17 #include "base/file_util.h"
18 #include "base/md5.h" 18 #include "base/md5.h"
19 #include "base/message_loop.h" 19 #include "base/message_loop.h"
20 #include "base/path_service.h" 20 #include "base/path_service.h"
21 #include "base/thread.h" 21 #include "base/thread.h"
22 #include "base/scoped_ptr.h" 22 #include "base/scoped_ptr.h"
23 #include "base/utf_string_conversions.h" 23 #include "base/utf_string_conversions.h"
24 #include "base/win/windows_version.h"
24 #include "chrome/browser/browser_thread.h" 25 #include "chrome/browser/browser_thread.h"
25 #include "chrome/browser/download/download_util.h" 26 #include "chrome/browser/download/download_util.h"
26 #include "chrome/browser/profile.h" 27 #include "chrome/browser/profile.h"
27 #include "chrome/browser/tab_contents/tab_contents.h" 28 #include "chrome/browser/tab_contents/tab_contents.h"
28 #include "chrome/common/chrome_constants.h" 29 #include "chrome/common/chrome_constants.h"
29 #include "chrome/common/chrome_paths.h" 30 #include "chrome/common/chrome_paths.h"
30 #include "chrome/common/chrome_plugin_util.h" 31 #include "chrome/common/chrome_plugin_util.h"
31 #include "chrome/common/notification_registrar.h" 32 #include "chrome/common/notification_registrar.h"
32 #include "chrome/common/notification_service.h" 33 #include "chrome/common/notification_service.h"
33 #include "chrome/common/url_constants.h" 34 #include "chrome/common/url_constants.h"
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 chrome::DIR_USER_DESKTOP, 287 chrome::DIR_USER_DESKTOP,
287 NULL 288 NULL
288 }, { 289 }, {
289 shortcut_info_.create_in_applications_menu, 290 shortcut_info_.create_in_applications_menu,
290 base::DIR_START_MENU, 291 base::DIR_START_MENU,
291 NULL 292 NULL
292 }, { 293 }, {
293 shortcut_info_.create_in_quick_launch_bar, 294 shortcut_info_.create_in_quick_launch_bar,
294 // For Win7, create_in_quick_launch_bar means pinning to taskbar. Use 295 // For Win7, create_in_quick_launch_bar means pinning to taskbar. Use
295 // base::PATH_START as a flag for this case. 296 // base::PATH_START as a flag for this case.
296 (win_util::GetWinVersion() >= win_util::WINVERSION_WIN7) ? 297 (base::win::GetVersion() >= base::win::VERSION_WIN7) ?
297 base::PATH_START : base::DIR_APP_DATA, 298 base::PATH_START : base::DIR_APP_DATA,
298 (win_util::GetWinVersion() >= win_util::WINVERSION_WIN7) ? 299 (base::win::GetVersion() >= base::win::VERSION_WIN7) ?
299 NULL : L"Microsoft\\Internet Explorer\\Quick Launch" 300 NULL : L"Microsoft\\Internet Explorer\\Quick Launch"
300 } 301 }
301 }; 302 };
302 303
303 // Populate shortcut_paths. 304 // Populate shortcut_paths.
304 for (int i = 0; i < arraysize(locations); ++i) { 305 for (int i = 0; i < arraysize(locations); ++i) {
305 if (locations[i].use_this_location) { 306 if (locations[i].use_this_location) {
306 FilePath path; 307 FilePath path;
307 308
308 // Skip the Win7 case. 309 // Skip the Win7 case.
309 if (locations[i].location_id == base::PATH_START) 310 if (locations[i].location_id == base::PATH_START)
310 continue; 311 continue;
311 312
312 if (!PathService::Get(locations[i].location_id, &path)) { 313 if (!PathService::Get(locations[i].location_id, &path)) {
313 NOTREACHED(); 314 NOTREACHED();
314 return false; 315 return false;
315 } 316 }
316 317
317 if (locations[i].sub_dir != NULL) 318 if (locations[i].sub_dir != NULL)
318 path = path.Append(locations[i].sub_dir); 319 path = path.Append(locations[i].sub_dir);
319 320
320 shortcut_paths.push_back(path); 321 shortcut_paths.push_back(path);
321 } 322 }
322 } 323 }
323 324
324 bool pin_to_taskbar = 325 bool pin_to_taskbar =
325 shortcut_info_.create_in_quick_launch_bar && 326 shortcut_info_.create_in_quick_launch_bar &&
326 (win_util::GetWinVersion() >= win_util::WINVERSION_WIN7); 327 (base::win::GetVersion() >= base::win::VERSION_WIN7);
327 328
328 // For Win7's pinning support, any shortcut could be used. So we only create 329 // For Win7's pinning support, any shortcut could be used. So we only create
329 // the shortcut file when there is no shortcut file will be created. That is, 330 // the shortcut file when there is no shortcut file will be created. That is,
330 // user only selects "Pin to taskbar". 331 // user only selects "Pin to taskbar".
331 if (pin_to_taskbar && shortcut_paths.empty()) { 332 if (pin_to_taskbar && shortcut_paths.empty()) {
332 // Creates the shortcut in web_app_path_ in this case. 333 // Creates the shortcut in web_app_path_ in this case.
333 shortcut_paths.push_back(web_app_path_); 334 shortcut_paths.push_back(web_app_path_);
334 } 335 }
335 336
336 if (shortcut_paths.empty()) { 337 if (shortcut_paths.empty()) {
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
570 chrome::DIR_USER_DESKTOP, 571 chrome::DIR_USER_DESKTOP,
571 NULL 572 NULL
572 }, { 573 }, {
573 shortcut_info_.create_in_applications_menu, 574 shortcut_info_.create_in_applications_menu,
574 base::DIR_START_MENU, 575 base::DIR_START_MENU,
575 NULL 576 NULL
576 }, { 577 }, {
577 shortcut_info_.create_in_quick_launch_bar, 578 shortcut_info_.create_in_quick_launch_bar,
578 // For Win7, create_in_quick_launch_bar means pinning to taskbar. 579 // For Win7, create_in_quick_launch_bar means pinning to taskbar.
579 base::DIR_APP_DATA, 580 base::DIR_APP_DATA,
580 (win_util::GetWinVersion() >= win_util::WINVERSION_WIN7) ? 581 (base::win::GetVersion() >= base::win::VERSION_WIN7) ?
581 L"Microsoft\\Internet Explorer\\Quick Launch\\User Pinned\\TaskBar" : 582 L"Microsoft\\Internet Explorer\\Quick Launch\\User Pinned\\TaskBar" :
582 L"Microsoft\\Internet Explorer\\Quick Launch" 583 L"Microsoft\\Internet Explorer\\Quick Launch"
583 } 584 }
584 }; 585 };
585 586
586 for (int i = 0; i < arraysize(locations); ++i) { 587 for (int i = 0; i < arraysize(locations); ++i) {
587 locations[i].use_this_location = false; 588 locations[i].use_this_location = false;
588 589
589 FilePath path; 590 FilePath path;
590 if (!PathService::Get(locations[i].location_id, &path)) { 591 if (!PathService::Get(locations[i].location_id, &path)) {
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
757 758
758 void UpdateShortcutForTabContents(TabContents* tab_contents) { 759 void UpdateShortcutForTabContents(TabContents* tab_contents) {
759 #if defined(OS_WIN) 760 #if defined(OS_WIN)
760 // UpdateShortcutWorker will delete itself when it's done. 761 // UpdateShortcutWorker will delete itself when it's done.
761 UpdateShortcutWorker* worker = new UpdateShortcutWorker(tab_contents); 762 UpdateShortcutWorker* worker = new UpdateShortcutWorker(tab_contents);
762 worker->Run(); 763 worker->Run();
763 #endif // defined(OS_WIN) 764 #endif // defined(OS_WIN)
764 } 765 }
765 766
766 }; // namespace web_app 767 }; // namespace web_app
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698