OLD | NEW |
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/shell_integration_linux.h" | 5 #include "chrome/browser/shell_integration_linux.h" |
6 | 6 |
7 #include <fcntl.h> | 7 #include <fcntl.h> |
8 | 8 |
9 #if defined(USE_GLIB) | 9 #if defined(USE_GLIB) |
10 #include <glib.h> | 10 #include <glib.h> |
(...skipping 677 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
688 } | 688 } |
689 } | 689 } |
690 | 690 |
691 return false; | 691 return false; |
692 } | 692 } |
693 | 693 |
694 base::FilePath GetWebShortcutFilename(const GURL& url) { | 694 base::FilePath GetWebShortcutFilename(const GURL& url) { |
695 // Use a prefix, because xdg-desktop-menu requires it. | 695 // Use a prefix, because xdg-desktop-menu requires it. |
696 std::string filename = | 696 std::string filename = |
697 std::string(chrome::kBrowserProcessExecutableName) + "-" + url.spec(); | 697 std::string(chrome::kBrowserProcessExecutableName) + "-" + url.spec(); |
698 file_util::ReplaceIllegalCharactersInPath(&filename, '_'); | 698 base::i18n::ReplaceIllegalCharactersInPath(&filename, '_'); |
699 | 699 |
700 base::FilePath desktop_path; | 700 base::FilePath desktop_path; |
701 if (!PathService::Get(base::DIR_USER_DESKTOP, &desktop_path)) | 701 if (!PathService::Get(base::DIR_USER_DESKTOP, &desktop_path)) |
702 return base::FilePath(); | 702 return base::FilePath(); |
703 | 703 |
704 base::FilePath filepath = desktop_path.Append(filename); | 704 base::FilePath filepath = desktop_path.Append(filename); |
705 base::FilePath alternative_filepath(filepath.value() + ".desktop"); | 705 base::FilePath alternative_filepath(filepath.value() + ".desktop"); |
706 for (size_t i = 1; i < 100; ++i) { | 706 for (size_t i = 1; i < 100; ++i) { |
707 if (base::PathExists(base::FilePath(alternative_filepath))) { | 707 if (base::PathExists(base::FilePath(alternative_filepath))) { |
708 alternative_filepath = base::FilePath( | 708 alternative_filepath = base::FilePath( |
709 filepath.value() + "_" + base::IntToString(i) + ".desktop"); | 709 filepath.value() + "_" + base::IntToString(i) + ".desktop"); |
710 } else { | 710 } else { |
711 return base::FilePath(alternative_filepath).BaseName(); | 711 return base::FilePath(alternative_filepath).BaseName(); |
712 } | 712 } |
713 } | 713 } |
714 | 714 |
715 return base::FilePath(); | 715 return base::FilePath(); |
716 } | 716 } |
717 | 717 |
718 base::FilePath GetExtensionShortcutFilename(const base::FilePath& profile_path, | 718 base::FilePath GetExtensionShortcutFilename(const base::FilePath& profile_path, |
719 const std::string& extension_id) { | 719 const std::string& extension_id) { |
720 DCHECK(!extension_id.empty()); | 720 DCHECK(!extension_id.empty()); |
721 | 721 |
722 // Use a prefix, because xdg-desktop-menu requires it. | 722 // Use a prefix, because xdg-desktop-menu requires it. |
723 std::string filename(chrome::kBrowserProcessExecutableName); | 723 std::string filename(chrome::kBrowserProcessExecutableName); |
724 filename.append("-") | 724 filename.append("-") |
725 .append(extension_id) | 725 .append(extension_id) |
726 .append("-") | 726 .append("-") |
727 .append(profile_path.BaseName().value()); | 727 .append(profile_path.BaseName().value()); |
728 file_util::ReplaceIllegalCharactersInPath(&filename, '_'); | 728 base::i18n::ReplaceIllegalCharactersInPath(&filename, '_'); |
729 // Spaces in filenames break xdg-desktop-menu | 729 // Spaces in filenames break xdg-desktop-menu |
730 // (see https://bugs.freedesktop.org/show_bug.cgi?id=66605). | 730 // (see https://bugs.freedesktop.org/show_bug.cgi?id=66605). |
731 base::ReplaceChars(filename, " ", "_", &filename); | 731 base::ReplaceChars(filename, " ", "_", &filename); |
732 return base::FilePath(filename.append(".desktop")); | 732 return base::FilePath(filename.append(".desktop")); |
733 } | 733 } |
734 | 734 |
735 std::vector<base::FilePath> GetExistingProfileShortcutFilenames( | 735 std::vector<base::FilePath> GetExistingProfileShortcutFilenames( |
736 const base::FilePath& profile_path, | 736 const base::FilePath& profile_path, |
737 const base::FilePath& directory) { | 737 const base::FilePath& directory) { |
738 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); | 738 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
739 // Use a prefix, because xdg-desktop-menu requires it. | 739 // Use a prefix, because xdg-desktop-menu requires it. |
740 std::string prefix(chrome::kBrowserProcessExecutableName); | 740 std::string prefix(chrome::kBrowserProcessExecutableName); |
741 prefix.append("-"); | 741 prefix.append("-"); |
742 std::string suffix("-"); | 742 std::string suffix("-"); |
743 suffix.append(profile_path.BaseName().value()); | 743 suffix.append(profile_path.BaseName().value()); |
744 file_util::ReplaceIllegalCharactersInPath(&suffix, '_'); | 744 base::i18n::ReplaceIllegalCharactersInPath(&suffix, '_'); |
745 // Spaces in filenames break xdg-desktop-menu | 745 // Spaces in filenames break xdg-desktop-menu |
746 // (see https://bugs.freedesktop.org/show_bug.cgi?id=66605). | 746 // (see https://bugs.freedesktop.org/show_bug.cgi?id=66605). |
747 base::ReplaceChars(suffix, " ", "_", &suffix); | 747 base::ReplaceChars(suffix, " ", "_", &suffix); |
748 std::string glob = prefix + "*" + suffix + ".desktop"; | 748 std::string glob = prefix + "*" + suffix + ".desktop"; |
749 | 749 |
750 base::FileEnumerator files(directory, false, base::FileEnumerator::FILES, | 750 base::FileEnumerator files(directory, false, base::FileEnumerator::FILES, |
751 glob); | 751 glob); |
752 base::FilePath shortcut_file = files.Next(); | 752 base::FilePath shortcut_file = files.Next(); |
753 std::vector<base::FilePath> shortcut_paths; | 753 std::vector<base::FilePath> shortcut_paths; |
754 while (!shortcut_file.empty()) { | 754 while (!shortcut_file.empty()) { |
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1072 for (std::vector<base::FilePath>::const_iterator it = | 1072 for (std::vector<base::FilePath>::const_iterator it = |
1073 shortcut_filenames_app_menu.begin(); | 1073 shortcut_filenames_app_menu.begin(); |
1074 it != shortcut_filenames_app_menu.end(); ++it) { | 1074 it != shortcut_filenames_app_menu.end(); ++it) { |
1075 DeleteShortcutInApplicationsMenu(*it, | 1075 DeleteShortcutInApplicationsMenu(*it, |
1076 base::FilePath(kDirectoryFilename)); | 1076 base::FilePath(kDirectoryFilename)); |
1077 } | 1077 } |
1078 } | 1078 } |
1079 } | 1079 } |
1080 | 1080 |
1081 } // namespace shell_integration_linux | 1081 } // namespace shell_integration_linux |
OLD | NEW |