diff options
author | tfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-27 19:20:18 +0000 |
---|---|---|
committer | tfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-27 19:20:18 +0000 |
commit | 4f3b44679a442a13d949ca2deea1bc15612e8db0 (patch) | |
tree | 467728ace4aace084d1da233b7023b9e28487032 | |
parent | c7007d8241c86117f650361929c6887fd57522c4 (diff) | |
download | chromium_src-4f3b44679a442a13d949ca2deea1bc15612e8db0.zip chromium_src-4f3b44679a442a13d949ca2deea1bc15612e8db0.tar.gz chromium_src-4f3b44679a442a13d949ca2deea1bc15612e8db0.tar.bz2 |
importer: Allow chrome to import internal chrome pages (i.e, chrome:// and about: urls).
Bookmark Manager allow users to import and export bookmarks to a html file,
while it allow the users to export bookmarks like about:blank, chrome://version,
it doesn't allow to import such bookmarks. This patch changes that behavior
allowing the "Import Bookmarks from HTML File" process to import bookmarks
with schemes like about: and chrome://.
BUG=223528
TEST=bookmark some internal chrome pages (ones that start with chrome://* or about:*).
Export then to html file through Bookmark Manager. Now import that html file,
all the entries should be imported correctly.
TBR=dbeam@chromium.org, isherman@chromium.org, pkasting@chromium.org, thakis@chromium.org
Review URL: https://codereview.chromium.org/19461003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@214052 0039d316-1c4b-4281-b951-d872f2087c98
56 files changed, 280 insertions, 184 deletions
diff --git a/chrome/android/testshell/testshell_tab.cc b/chrome/android/testshell/testshell_tab.cc index 27a014b..ac47441 100644 --- a/chrome/android/testshell/testshell_tab.cc +++ b/chrome/android/testshell/testshell_tab.cc @@ -7,8 +7,8 @@ #include "base/android/jni_string.h" #include "base/logging.h" #include "chrome/browser/android/chrome_web_contents_delegate_android.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/ui/android/window_android_helper.h" +#include "chrome/common/net/url_fixer_upper.h" #include "content/public/browser/android/content_view_core.h" #include "content/public/browser/web_contents.h" #include "jni/TestShellTab_jni.h" diff --git a/chrome/browser/autocomplete/autocomplete_input.cc b/chrome/browser/autocomplete/autocomplete_input.cc index 349e611..718cd9b 100644 --- a/chrome/browser/autocomplete/autocomplete_input.cc +++ b/chrome/browser/autocomplete/autocomplete_input.cc @@ -7,8 +7,8 @@ #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" #include "chrome/browser/external_protocol/external_protocol_handler.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/profiles/profile_io_data.h" +#include "chrome/common/net/url_fixer_upper.h" #include "content/public/common/url_constants.h" #include "net/base/net_util.h" #include "net/base/registry_controlled_domains/registry_controlled_domain.h" diff --git a/chrome/browser/autocomplete/builtin_provider.cc b/chrome/browser/autocomplete/builtin_provider.cc index 6c5ab97..d61743d 100644 --- a/chrome/browser/autocomplete/builtin_provider.cc +++ b/chrome/browser/autocomplete/builtin_provider.cc @@ -4,18 +4,19 @@ #include "chrome/browser/autocomplete/builtin_provider.h" +#include <algorithm> + #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" #include "chrome/browser/autocomplete/autocomplete_input.h" -#include "chrome/browser/browser_about_handler.h" -#include "chrome/browser/net/url_fixer_upper.h" +#include "chrome/common/net/url_fixer_upper.h" #include "chrome/common/url_constants.h" namespace { // This list should be kept in sync with chrome/common/url_constants.h. // Only include useful sub-pages, confirmation alerts are not useful. -const char* kChromeSettingsSubPages[] = { +const char* const kChromeSettingsSubPages[] = { chrome::kAutofillSubPage, chrome::kClearBrowserDataSubPage, chrome::kContentSettingsSubPage, @@ -38,9 +39,12 @@ BuiltinProvider::BuiltinProvider(AutocompleteProviderListener* listener, Profile* profile) : AutocompleteProvider(listener, profile, AutocompleteProvider::TYPE_BUILTIN) { - std::vector<std::string> builtins(ChromePaths()); + std::vector<std::string> builtins( + chrome::kChromeHostURLs, + chrome::kChromeHostURLs + chrome::kNumberOfChromeHostURLs); + std::sort(builtins.begin(), builtins.end()); for (std::vector<std::string>::iterator i(builtins.begin()); - i != builtins.end(); ++i) + i != builtins.end(); ++i) builtins_.push_back(ASCIIToUTF16(*i)); string16 settings(ASCIIToUTF16(chrome::kChromeUISettingsHost) + ASCIIToUTF16("/")); diff --git a/chrome/browser/autocomplete/builtin_provider_unittest.cc b/chrome/browser/autocomplete/builtin_provider_unittest.cc index c118945..0315dc6 100644 --- a/chrome/browser/autocomplete/builtin_provider_unittest.cc +++ b/chrome/browser/autocomplete/builtin_provider_unittest.cc @@ -143,7 +143,7 @@ TEST_F(BuiltinProviderTest, ChromeURLs) { const string16 kSeparator3 = ASCIIToUTF16(content::kStandardSchemeSeparator); // This makes assumptions about the chrome URLs listed by the BuiltinProvider. - // Currently they are derived from ChromePaths() in browser_about_handler.cc. + // Currently they are derived from chrome::kChromeHostURLs[]. const string16 kHostM1 = ASCIIToUTF16(content::kChromeUIMediaInternalsHost); const string16 kHostM2 = ASCIIToUTF16(chrome::kChromeUIMemoryHost); const string16 kHostM3 = ASCIIToUTF16(chrome::kChromeUIMemoryInternalsHost); @@ -189,7 +189,7 @@ TEST_F(BuiltinProviderTest, ChromeURLs) { // Disabled on Android where we use native UI instead of chrome://settings. TEST_F(BuiltinProviderTest, ChromeSettingsSubpages) { // This makes assumptions about the chrome URLs listed by the BuiltinProvider. - // Currently they are derived from ChromePaths() in browser_about_handler.cc. + // Currently they are derived from chrome::kChromeHostURLs[]. const string16 kSettings = ASCIIToUTF16(chrome::kChromeUISettingsURL); const string16 kDefaultPage1 = ASCIIToUTF16(chrome::kAutofillSubPage); const string16 kDefaultPage2 = ASCIIToUTF16(chrome::kClearBrowserDataSubPage); diff --git a/chrome/browser/autocomplete/history_provider.cc b/chrome/browser/autocomplete/history_provider.cc index d462c05..6a45f3c 100644 --- a/chrome/browser/autocomplete/history_provider.cc +++ b/chrome/browser/autocomplete/history_provider.cc @@ -13,8 +13,8 @@ #include "chrome/browser/autocomplete/autocomplete_provider_listener.h" #include "chrome/browser/history/history_service.h" #include "chrome/browser/history/history_service_factory.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/profiles/profile.h" +#include "chrome/common/net/url_fixer_upper.h" #include "chrome/common/url_constants.h" #include "url/url_util.h" diff --git a/chrome/browser/autocomplete/history_quick_provider.cc b/chrome/browser/autocomplete/history_quick_provider.cc index fc74e13..ea890ab 100644 --- a/chrome/browser/autocomplete/history_quick_provider.cc +++ b/chrome/browser/autocomplete/history_quick_provider.cc @@ -25,7 +25,6 @@ #include "chrome/browser/history/in_memory_url_index.h" #include "chrome/browser/history/in_memory_url_index_types.h" #include "chrome/browser/history/scored_history_match.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/omnibox/omnibox_field_trial.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/search/search.h" @@ -34,6 +33,7 @@ #include "chrome/browser/search_engines/template_url_service_factory.h" #include "chrome/common/autocomplete_match_type.h" #include "chrome/common/chrome_switches.h" +#include "chrome/common/net/url_fixer_upper.h" #include "chrome/common/pref_names.h" #include "chrome/common/url_constants.h" #include "content/public/browser/browser_thread.h" diff --git a/chrome/browser/autocomplete/history_url_provider.cc b/chrome/browser/autocomplete/history_url_provider.cc index 48c56a1..18e8f27 100644 --- a/chrome/browser/autocomplete/history_url_provider.cc +++ b/chrome/browser/autocomplete/history_url_provider.cc @@ -21,12 +21,12 @@ #include "chrome/browser/history/history_service.h" #include "chrome/browser/history/history_service_factory.h" #include "chrome/browser/history/history_types.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/omnibox/omnibox_field_trial.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/search_engines/template_url_service.h" #include "chrome/browser/search_engines/template_url_service_factory.h" #include "chrome/common/chrome_switches.h" +#include "chrome/common/net/url_fixer_upper.h" #include "chrome/common/pref_names.h" #include "chrome/common/url_constants.h" #include "net/base/net_util.h" diff --git a/chrome/browser/autocomplete/history_url_provider_unittest.cc b/chrome/browser/autocomplete/history_url_provider_unittest.cc index 0138751..35a2873 100644 --- a/chrome/browser/autocomplete/history_url_provider_unittest.cc +++ b/chrome/browser/autocomplete/history_url_provider_unittest.cc @@ -17,10 +17,10 @@ #include "chrome/browser/autocomplete/history_quick_provider.h" #include "chrome/browser/history/history_service.h" #include "chrome/browser/history/history_service_factory.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/search_engines/template_url.h" #include "chrome/browser/search_engines/template_url_service.h" #include "chrome/browser/search_engines/template_url_service_factory.h" +#include "chrome/common/net/url_fixer_upper.h" #include "chrome/test/base/testing_browser_process.h" #include "chrome/test/base/testing_profile.h" #include "content/public/test/test_browser_thread_bundle.h" diff --git a/chrome/browser/autocomplete/search_provider.cc b/chrome/browser/autocomplete/search_provider.cc index 8806491..89d2925 100644 --- a/chrome/browser/autocomplete/search_provider.cc +++ b/chrome/browser/autocomplete/search_provider.cc @@ -29,7 +29,6 @@ #include "chrome/browser/history/history_service_factory.h" #include "chrome/browser/history/in_memory_database.h" #include "chrome/browser/metrics/variations/variations_http_header_provider.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/omnibox/omnibox_field_trial.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/search/search.h" @@ -37,6 +36,7 @@ #include "chrome/browser/search_engines/template_url_prepopulate_data.h" #include "chrome/browser/search_engines/template_url_service.h" #include "chrome/browser/search_engines/template_url_service_factory.h" +#include "chrome/common/net/url_fixer_upper.h" #include "chrome/common/pref_names.h" #include "chrome/common/url_constants.h" #include "grit/generated_resources.h" diff --git a/chrome/browser/autocomplete/zero_suggest_provider.cc b/chrome/browser/autocomplete/zero_suggest_provider.cc index da79e36..1266eb0 100644 --- a/chrome/browser/autocomplete/zero_suggest_provider.cc +++ b/chrome/browser/autocomplete/zero_suggest_provider.cc @@ -20,7 +20,6 @@ #include "chrome/browser/autocomplete/search_provider.h" #include "chrome/browser/autocomplete/url_prefix.h" #include "chrome/browser/metrics/variations/variations_http_header_provider.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/omnibox/omnibox_field_trial.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/search/search.h" @@ -28,6 +27,7 @@ #include "chrome/browser/search_engines/template_url_service_factory.h" #include "chrome/browser/sync/profile_sync_service.h" #include "chrome/browser/sync/profile_sync_service_factory.h" +#include "chrome/common/net/url_fixer_upper.h" #include "chrome/common/pref_names.h" #include "chrome/common/url_constants.h" #include "net/base/escape.h" diff --git a/chrome/browser/browser_about_handler.cc b/chrome/browser/browser_about_handler.cc index 877dfbf..4471269 100644 --- a/chrome/browser/browser_about_handler.cc +++ b/chrome/browser/browser_about_handler.cc @@ -12,104 +12,11 @@ #include "base/memory/singleton.h" #include "base/strings/string_util.h" #include "chrome/browser/lifetime/application_lifetime.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/ui/browser_dialogs.h" #include "chrome/common/chrome_switches.h" +#include "chrome/common/net/url_fixer_upper.h" #include "chrome/common/url_constants.h" -namespace { - -// Add paths here to be included in chrome://chrome-urls (about:about). -// These paths will also be suggested by BuiltinProvider. -const char* const kPaths[] = { - chrome::kChromeUICacheHost, - chrome::kChromeUIChromeURLsHost, - chrome::kChromeUICrashesHost, - chrome::kChromeUICreditsHost, - chrome::kChromeUIDNSHost, - chrome::kChromeUIFlagsHost, - chrome::kChromeUIHistoryHost, - chrome::kChromeUIIPCHost, - chrome::kChromeUIMemoryHost, - chrome::kChromeUIMemoryInternalsHost, -#if defined(OS_ANDROID) || defined(OS_IOS) - chrome::kChromeUINetExportHost, -#endif - chrome::kChromeUINetInternalsHost, - chrome::kChromeUINewTabHost, - chrome::kChromeUIOmniboxHost, - chrome::kChromeUIPredictorsHost, - chrome::kChromeUIProfilerHost, - chrome::kChromeUIQuotaInternalsHost, - chrome::kChromeUISignInInternalsHost, - chrome::kChromeUIStatsHost, - chrome::kChromeUISyncInternalsHost, - chrome::kChromeUITermsHost, - chrome::kChromeUITranslateInternalsHost, - chrome::kChromeUIUserActionsHost, - chrome::kChromeUIVersionHost, -#if defined(OS_ANDROID) - chrome::kChromeUIWelcomeHost, -#else - chrome::kChromeUIBookmarksHost, - chrome::kChromeUIDownloadsHost, - chrome::kChromeUIFlashHost, - chrome::kChromeUIInspectHost, - chrome::kChromeUIPluginsHost, - chrome::kChromeUISettingsHost, -#endif -#if defined(OS_WIN) - chrome::kChromeUIConflictsHost, -#endif -#if defined(OS_LINUX) || defined(OS_OPENBSD) - chrome::kChromeUILinuxProxyConfigHost, - chrome::kChromeUISandboxHost, -#endif -#if defined(OS_CHROMEOS) - chrome::kChromeUIChooseMobileNetworkHost, - chrome::kChromeUICryptohomeHost, - chrome::kChromeUIDiagnosticsHost, - chrome::kChromeUIDiscardsHost, - chrome::kChromeUIDriveInternalsHost, - chrome::kChromeUIImageBurnerHost, - chrome::kChromeUIKeyboardOverlayHost, - chrome::kChromeUILoginHost, - chrome::kChromeUINetworkHost, - chrome::kChromeUIOobeHost, - chrome::kChromeUIOSCreditsHost, - chrome::kChromeUIProxySettingsHost, - chrome::kChromeUISystemInfoHost, - chrome::kChromeUITaskManagerHost, -#endif -#if !defined(DISABLE_NACL) - chrome::kChromeUINaClHost, -#endif -#if defined(ENABLE_CONFIGURATION_POLICY) - chrome::kChromeUIPolicyHost, -#endif -#if defined(ENABLE_EXTENSIONS) - chrome::kChromeUIExtensionsHost, -#endif -#if defined(ENABLE_PRINTING) - chrome::kChromeUIPrintHost, -#endif - content::kChromeUIAccessibilityHost, - content::kChromeUIAppCacheInternalsHost, - content::kChromeUIBlobInternalsHost, - content::kChromeUIGpuHost, - content::kChromeUIHistogramHost, - content::kChromeUIIndexedDBInternalsHost, - content::kChromeUIMediaInternalsHost, - content::kChromeUINetworkViewCacheHost, - content::kChromeUITracingHost, - content::kChromeUIWebRTCInternalsHost, -#if defined(ENABLE_WEBRTC) - chrome::kChromeUIWebRtcLogsHost, -#endif -}; - -} // namespace - bool WillHandleBrowserAboutURL(GURL* url, content::BrowserContext* browser_context) { // TODO(msw): Eliminate "about:*" constants and literals from code and tests, @@ -197,8 +104,3 @@ bool HandleNonNavigationAboutURL(const GURL& url) { return false; } -std::vector<std::string> ChromePaths() { - std::vector<std::string> paths(kPaths, kPaths + arraysize(kPaths)); - std::sort(paths.begin(), paths.end()); - return paths; -} diff --git a/chrome/browser/browser_about_handler.h b/chrome/browser/browser_about_handler.h index 640101d..8519522 100644 --- a/chrome/browser/browser_about_handler.h +++ b/chrome/browser/browser_about_handler.h @@ -36,9 +36,6 @@ bool WillHandleBrowserAboutURL(GURL* url, // case, normal tab navigation should be skipped. bool HandleNonNavigationAboutURL(const GURL& url); -// Gets the paths that are shown in chrome://chrome-urls. -std::vector<std::string> ChromePaths(); - #if defined(USE_TCMALLOC) // A map of header strings (e.g. "Browser", "Renderer PID 123") // to the tcmalloc output collected for each process. diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc index 48b6a88..badf609 100644 --- a/chrome/browser/chrome_browser_main.cc +++ b/chrome/browser/chrome_browser_main.cc @@ -169,8 +169,8 @@ #include "chrome/browser/chrome_browser_main_win.h" #include "chrome/browser/first_run/try_chrome_dialog_view.h" #include "chrome/browser/first_run/upgrade_util_win.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/ui/network_profile_bubble.h" +#include "chrome/common/net/url_fixer_upper.h" #include "chrome/installer/util/helper.h" #include "chrome/installer/util/install_util.h" #include "chrome/installer/util/shell_util.h" diff --git a/chrome/browser/collected_cookies_browsertest.cc b/chrome/browser/collected_cookies_browsertest.cc index b26c17e..223d084 100644 --- a/chrome/browser/collected_cookies_browsertest.cc +++ b/chrome/browser/collected_cookies_browsertest.cc @@ -6,10 +6,10 @@ #include "chrome/app/chrome_command_ids.h" #include "chrome/browser/content_settings/cookie_settings.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_dialogs.h" #include "chrome/browser/ui/tabs/tab_strip_model.h" +#include "chrome/common/net/url_fixer_upper.h" #include "chrome/common/url_constants.h" #include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/ui_test_utils.h" diff --git a/chrome/browser/extensions/extension_tab_util.cc b/chrome/browser/extensions/extension_tab_util.cc index 9f6fd69..b5d5ab9 100644 --- a/chrome/browser/extensions/extension_tab_util.cc +++ b/chrome/browser/extensions/extension_tab_util.cc @@ -10,7 +10,6 @@ #include "chrome/browser/extensions/tab_helper.h" #include "chrome/browser/extensions/window_controller.h" #include "chrome/browser/extensions/window_controller_list.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/sessions/session_id.h" #include "chrome/browser/ui/browser.h" @@ -24,6 +23,7 @@ #include "chrome/common/extensions/manifest_url_handler.h" #include "chrome/common/extensions/permissions/api_permission.h" #include "chrome/common/extensions/permissions/permissions_data.h" +#include "chrome/common/net/url_fixer_upper.h" #include "chrome/common/url_constants.h" #include "content/public/browser/favicon_status.h" #include "content/public/browser/navigation_entry.h" diff --git a/chrome/browser/policy/url_blacklist_manager.cc b/chrome/browser/policy/url_blacklist_manager.cc index 54a1d70..062ed5a 100644 --- a/chrome/browser/policy/url_blacklist_manager.cc +++ b/chrome/browser/policy/url_blacklist_manager.cc @@ -12,7 +12,7 @@ #include "base/strings/string_number_conversions.h" #include "base/values.h" #include "chrome/browser/chrome_notification_types.h" -#include "chrome/browser/net/url_fixer_upper.h" +#include "chrome/common/net/url_fixer_upper.h" #include "chrome/common/pref_names.h" #include "components/user_prefs/pref_registry_syncable.h" #include "content/public/browser/browser_thread.h" diff --git a/chrome/browser/prefs/session_startup_pref.cc b/chrome/browser/prefs/session_startup_pref.cc index df16539..478790a 100644 --- a/chrome/browser/prefs/session_startup_pref.cc +++ b/chrome/browser/prefs/session_startup_pref.cc @@ -9,9 +9,9 @@ #include "base/prefs/pref_service.h" #include "base/values.h" #include "base/version.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/prefs/scoped_user_pref_update.h" #include "chrome/browser/profiles/profile.h" +#include "chrome/common/net/url_fixer_upper.h" #include "chrome/common/pref_names.h" #include "components/user_prefs/pref_registry_syncable.h" diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc index 2de8986..b5b0b8d 100644 --- a/chrome/browser/profiles/profile_impl.cc +++ b/chrome/browser/profiles/profile_impl.cc @@ -51,7 +51,6 @@ #include "chrome/browser/net/pref_proxy_config_tracker.h" #include "chrome/browser/net/proxy_service_factory.h" #include "chrome/browser/net/ssl_config_service_manager.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/plugins/chrome_plugin_service_filter.h" #include "chrome/browser/plugins/plugin_prefs.h" #include "chrome/browser/policy/profile_policy_connector.h" @@ -77,6 +76,7 @@ #include "chrome/common/chrome_paths_internal.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/chrome_version_info.h" +#include "chrome/common/net/url_fixer_upper.h" #include "chrome/common/pref_names.h" #include "chrome/common/startup_metric_utils.h" #include "chrome/common/url_constants.h" diff --git a/chrome/browser/repost_form_warning_browsertest.cc b/chrome/browser/repost_form_warning_browsertest.cc index d6f0529..6dc64b3 100644 --- a/chrome/browser/repost_form_warning_browsertest.cc +++ b/chrome/browser/repost_form_warning_browsertest.cc @@ -4,9 +4,9 @@ #include "chrome/app/chrome_command_ids.h" #include "chrome/browser/chrome_notification_types.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/tabs/tab_strip_model.h" +#include "chrome/common/net/url_fixer_upper.h" #include "chrome/common/url_constants.h" #include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/ui_test_utils.h" diff --git a/chrome/browser/search_engines/template_url_service.cc b/chrome/browser/search_engines/template_url_service.cc index 7392921..cb9a697 100644 --- a/chrome/browser/search_engines/template_url_service.cc +++ b/chrome/browser/search_engines/template_url_service.cc @@ -25,7 +25,6 @@ #include "chrome/browser/history/history_notifications.h" #include "chrome/browser/history/history_service.h" #include "chrome/browser/history/history_service_factory.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/rlz/rlz.h" #include "chrome/browser/search_engines/search_host_to_urls_map.h" @@ -38,6 +37,7 @@ #include "chrome/common/chrome_switches.h" #include "chrome/common/env_vars.h" #include "chrome/common/extensions/api/omnibox/omnibox_handler.h" +#include "chrome/common/net/url_fixer_upper.h" #include "chrome/common/pref_names.h" #include "chrome/common/url_constants.h" #include "content/public/browser/notification_service.h" diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc index 6179ef43..a9835f4 100644 --- a/chrome/browser/ui/browser.cc +++ b/chrome/browser/ui/browser.cc @@ -63,7 +63,6 @@ #include "chrome/browser/infobars/simple_alert_infobar_delegate.h" #include "chrome/browser/lifetime/application_lifetime.h" #include "chrome/browser/media/media_capture_devices_dispatcher.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/notifications/notification_ui_manager.h" #include "chrome/browser/pepper_broker_infobar_delegate.h" #include "chrome/browser/prefs/incognito_mode_prefs.h" @@ -145,6 +144,7 @@ #include "chrome/common/extensions/background_info.h" #include "chrome/common/extensions/extension.h" #include "chrome/common/extensions/extension_constants.h" +#include "chrome/common/net/url_fixer_upper.h" #include "chrome/common/pref_names.h" #include "chrome/common/profiling.h" #include "chrome/common/search_types.h" diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_editor_controller.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_editor_controller.mm index c690275..a2b01a5 100644 --- a/chrome/browser/ui/cocoa/bookmarks/bookmark_editor_controller.mm +++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_editor_controller.mm @@ -9,9 +9,9 @@ #include "base/strings/sys_string_conversions.h" #include "chrome/browser/bookmarks/bookmark_expanded_state_tracker.h" #include "chrome/browser/bookmarks/bookmark_model.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/bookmarks/bookmark_utils.h" +#include "chrome/common/net/url_fixer_upper.h" #include "components/user_prefs/user_prefs.h" #include "ui/base/l10n/l10n_util.h" diff --git a/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm b/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm index 7bbea78..55ce2eb 100644 --- a/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm +++ b/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm @@ -23,7 +23,6 @@ #include "chrome/browser/devtools/devtools_window.h" #include "chrome/browser/extensions/tab_helper.h" #include "chrome/browser/favicon/favicon_tab_helper.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/themes/theme_service.h" @@ -54,6 +53,7 @@ #include "chrome/browser/ui/tabs/tab_strip_model_delegate.h" #include "chrome/browser/ui/tabs/tab_utils.h" #include "chrome/common/chrome_switches.h" +#include "chrome/common/net/url_fixer_upper.h" #include "chrome/common/pref_names.h" #include "components/web_modal/web_contents_modal_dialog_manager.h" #include "content/public/browser/navigation_controller.h" diff --git a/chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm b/chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm index f942a1d..7f3e9f0 100644 --- a/chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm +++ b/chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm @@ -19,7 +19,6 @@ #include "chrome/browser/autocomplete/autocomplete_match.h" #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/command_updater.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/search/search.h" #include "chrome/browser/search_engines/template_url_service.h" @@ -50,6 +49,7 @@ #include "chrome/browser/ui/toolbar/toolbar_model.h" #include "chrome/browser/ui/toolbar/wrench_menu_model.h" #include "chrome/browser/upgrade_detector.h" +#include "chrome/common/net/url_fixer_upper.h" #include "chrome/common/pref_names.h" #include "content/public/browser/notification_details.h" #include "content/public/browser/notification_observer.h" diff --git a/chrome/browser/ui/gtk/bookmarks/bookmark_editor_gtk.cc b/chrome/browser/ui/gtk/bookmarks/bookmark_editor_gtk.cc index cf5cd3d..ba5e752 100644 --- a/chrome/browser/ui/gtk/bookmarks/bookmark_editor_gtk.cc +++ b/chrome/browser/ui/gtk/bookmarks/bookmark_editor_gtk.cc @@ -18,7 +18,6 @@ #include "chrome/browser/bookmarks/bookmark_model_factory.h" #include "chrome/browser/bookmarks/bookmark_utils.h" #include "chrome/browser/history/history_service.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/bookmarks/bookmark_utils.h" #include "chrome/browser/ui/gtk/bookmarks/bookmark_tree_model.h" @@ -26,6 +25,7 @@ #include "chrome/browser/ui/gtk/gtk_theme_service.h" #include "chrome/browser/ui/gtk/gtk_util.h" #include "chrome/browser/ui/gtk/menu_gtk.h" +#include "chrome/common/net/url_fixer_upper.h" #include "components/user_prefs/user_prefs.h" #include "grit/chromium_strings.h" #include "grit/generated_resources.h" diff --git a/chrome/browser/ui/gtk/browser_toolbar_gtk.cc b/chrome/browser/ui/gtk/browser_toolbar_gtk.cc index 4d4d6ac..0575a3e 100644 --- a/chrome/browser/ui/gtk/browser_toolbar_gtk.cc +++ b/chrome/browser/ui/gtk/browser_toolbar_gtk.cc @@ -18,7 +18,6 @@ #include "base/prefs/pref_service.h" #include "chrome/app/chrome_command_ids.h" #include "chrome/browser/chrome_notification_types.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/themes/theme_properties.h" #include "chrome/browser/themes/theme_service.h" @@ -44,6 +43,7 @@ #include "chrome/browser/ui/gtk/view_id_util.h" #include "chrome/browser/ui/toolbar/encoding_menu_controller.h" #include "chrome/browser/upgrade_detector.h" +#include "chrome/common/net/url_fixer_upper.h" #include "chrome/common/pref_names.h" #include "chrome/common/url_constants.h" #include "content/public/browser/host_zoom_map.h" diff --git a/chrome/browser/ui/gtk/edit_search_engine_dialog.cc b/chrome/browser/ui/gtk/edit_search_engine_dialog.cc index 41249b0..0b5dd354 100644 --- a/chrome/browser/ui/gtk/edit_search_engine_dialog.cc +++ b/chrome/browser/ui/gtk/edit_search_engine_dialog.cc @@ -10,12 +10,12 @@ #include "base/i18n/rtl.h" #include "base/message_loop/message_loop.h" #include "base/strings/utf_string_conversions.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/search_engines/template_url.h" #include "chrome/browser/search_engines/template_url_service.h" #include "chrome/browser/ui/gtk/gtk_util.h" #include "chrome/browser/ui/search_engines/edit_search_engine_controller.h" +#include "chrome/common/net/url_fixer_upper.h" #include "grit/generated_resources.h" #include "grit/theme_resources.h" #include "grit/ui_resources.h" diff --git a/chrome/browser/ui/omnibox/omnibox_edit_model.cc b/chrome/browser/ui/omnibox/omnibox_edit_model.cc index bdc292c..4d8f585 100644 --- a/chrome/browser/ui/omnibox/omnibox_edit_model.cc +++ b/chrome/browser/ui/omnibox/omnibox_edit_model.cc @@ -28,7 +28,6 @@ #include "chrome/browser/extensions/api/omnibox/omnibox_api.h" #include "chrome/browser/google/google_url_tracker.h" #include "chrome/browser/net/predictor.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/omnibox/omnibox_log.h" #include "chrome/browser/predictors/autocomplete_action_predictor.h" #include "chrome/browser/predictors/autocomplete_action_predictor_factory.h" @@ -51,6 +50,7 @@ #include "chrome/browser/ui/search/instant_controller.h" #include "chrome/browser/ui/search/search_tab_helper.h" #include "chrome/common/chrome_switches.h" +#include "chrome/common/net/url_fixer_upper.h" #include "chrome/common/pref_names.h" #include "chrome/common/url_constants.h" #include "content/public/browser/navigation_controller.h" diff --git a/chrome/browser/ui/search_engines/edit_search_engine_controller.cc b/chrome/browser/ui/search_engines/edit_search_engine_controller.cc index 241da08..096ed4c 100644 --- a/chrome/browser/ui/search_engines/edit_search_engine_controller.cc +++ b/chrome/browser/ui/search_engines/edit_search_engine_controller.cc @@ -6,11 +6,11 @@ #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/search_engines/template_url.h" #include "chrome/browser/search_engines/template_url_service.h" #include "chrome/browser/search_engines/template_url_service_factory.h" +#include "chrome/common/net/url_fixer_upper.h" #include "content/public/browser/user_metrics.h" #include "url/gurl.h" diff --git a/chrome/browser/ui/startup/startup_browser_creator.cc b/chrome/browser/ui/startup/startup_browser_creator.cc index b41a339..9b079ab 100644 --- a/chrome/browser/ui/startup/startup_browser_creator.cc +++ b/chrome/browser/ui/startup/startup_browser_creator.cc @@ -37,7 +37,6 @@ #include "chrome/browser/extensions/unpacked_installer.h" #include "chrome/browser/first_run/first_run.h" #include "chrome/browser/google/google_util.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/notifications/desktop_notification_service.h" #include "chrome/browser/prefs/incognito_mode_prefs.h" #include "chrome/browser/prefs/session_startup_pref.h" @@ -56,6 +55,7 @@ #include "chrome/common/chrome_result_codes.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/chrome_version_info.h" +#include "chrome/common/net/url_fixer_upper.h" #include "chrome/common/pref_names.h" #include "chrome/common/url_constants.h" #include "chrome/installer/util/browser_distribution.h" diff --git a/chrome/browser/ui/startup/startup_browser_creator_impl.cc b/chrome/browser/ui/startup/startup_browser_creator_impl.cc index 58b0b8b..5f7041b 100644 --- a/chrome/browser/ui/startup/startup_browser_creator_impl.cc +++ b/chrome/browser/ui/startup/startup_browser_creator_impl.cc @@ -37,7 +37,6 @@ #include "chrome/browser/google/google_util.h" #include "chrome/browser/infobars/infobar_service.h" #include "chrome/browser/net/predictor.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/notifications/desktop_notification_service.h" #include "chrome/browser/performance_monitor/startup_timer.h" #include "chrome/browser/prefs/incognito_mode_prefs.h" @@ -77,6 +76,7 @@ #include "chrome/common/chrome_switches.h" #include "chrome/common/chrome_version_info.h" #include "chrome/common/extensions/extension_constants.h" +#include "chrome/common/net/url_fixer_upper.h" #include "chrome/common/pref_names.h" #include "chrome/common/url_constants.h" #include "chrome/installer/util/browser_distribution.h" diff --git a/chrome/browser/ui/views/bookmarks/bookmark_editor_view.cc b/chrome/browser/ui/views/bookmarks/bookmark_editor_view.cc index 77819fe..44bc5e2 100644 --- a/chrome/browser/ui/views/bookmarks/bookmark_editor_view.cc +++ b/chrome/browser/ui/views/bookmarks/bookmark_editor_view.cc @@ -15,10 +15,10 @@ #include "chrome/browser/bookmarks/bookmark_model_factory.h" #include "chrome/browser/bookmarks/bookmark_utils.h" #include "chrome/browser/history/history_service.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/bookmarks/bookmark_utils.h" #include "chrome/browser/ui/views/constrained_window_views.h" +#include "chrome/common/net/url_fixer_upper.h" #include "components/user_prefs/user_prefs.h" #include "grit/chromium_strings.h" #include "grit/generated_resources.h" diff --git a/chrome/browser/ui/views/omnibox/omnibox_view_win.cc b/chrome/browser/ui/views/omnibox/omnibox_view_win.cc index d4b80da..df7e448 100644 --- a/chrome/browser/ui/views/omnibox/omnibox_view_win.cc +++ b/chrome/browser/ui/views/omnibox/omnibox_view_win.cc @@ -31,7 +31,6 @@ #include "chrome/browser/bookmarks/bookmark_node_data.h" #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/command_updater.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/search/search.h" #include "chrome/browser/ui/browser.h" @@ -40,6 +39,7 @@ #include "chrome/browser/ui/omnibox/omnibox_popup_model.h" #include "chrome/browser/ui/views/location_bar/location_bar_view.h" #include "chrome/browser/ui/views/omnibox/omnibox_view_views.h" +#include "chrome/common/net/url_fixer_upper.h" #include "content/public/browser/user_metrics.h" #include "content/public/browser/web_contents.h" #include "extensions/common/constants.h" diff --git a/chrome/browser/ui/webui/about_ui.cc b/chrome/browser/ui/webui/about_ui.cc index 864eb3f..b0e9c87 100644 --- a/chrome/browser/ui/webui/about_ui.cc +++ b/chrome/browser/ui/webui/about_ui.cc @@ -28,16 +28,15 @@ #include "base/threading/thread.h" #include "base/values.h" #include "chrome/browser/about_flags.h" -#include "chrome/browser/browser_about_handler.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/defaults.h" #include "chrome/browser/memory_details.h" #include "chrome/browser/net/predictor.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/ui/browser_dialogs.h" #include "chrome/common/chrome_paths.h" +#include "chrome/common/net/url_fixer_upper.h" #include "chrome/common/render_messages.h" #include "chrome/common/url_constants.h" #include "content/public/browser/browser_thread.h" @@ -384,9 +383,12 @@ std::string ChromeURLs() { AppendHeader(&html, 0, "Chrome URLs"); AppendBody(&html); html += "<h2>List of Chrome URLs</h2>\n<ul>\n"; - std::vector<std::string> paths(ChromePaths()); - for (std::vector<std::string>::const_iterator i = paths.begin(); - i != paths.end(); ++i) + std::vector<std::string> hosts( + chrome::kChromeHostURLs, + chrome::kChromeHostURLs + chrome::kNumberOfChromeHostURLs); + std::sort(hosts.begin(), hosts.end()); + for (std::vector<std::string>::const_iterator i = hosts.begin(); + i != hosts.end(); ++i) html += "<li><a href='chrome://" + *i + "/'>chrome://" + *i + "</a></li>\n"; html += "</ul>\n<h2>For Debug</h2>\n" "<p>The following pages are for debugging purposes only. Because they " diff --git a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc b/chrome/browser/ui/webui/net_internals/net_internals_ui.cc index 9eea52a..cecd557 100644 --- a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc +++ b/chrome/browser/ui/webui/net_internals/net_internals_ui.cc @@ -39,7 +39,6 @@ #include "chrome/browser/net/chrome_net_log.h" #include "chrome/browser/net/chrome_network_delegate.h" #include "chrome/browser/net/connection_tester.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/prerender/prerender_manager.h" #include "chrome/browser/prerender/prerender_manager_factory.h" #include "chrome/browser/profiles/profile.h" @@ -49,6 +48,7 @@ #include "chrome/common/chrome_version_info.h" #include "chrome/common/extensions/extension_set.h" #include "chrome/common/logging_chrome.h" +#include "chrome/common/net/url_fixer_upper.h" #include "chrome/common/pref_names.h" #include "chrome/common/url_constants.h" #include "content/public/browser/browser_thread.h" diff --git a/chrome/browser/ui/webui/options/browser_options_handler.cc b/chrome/browser/ui/webui/options/browser_options_handler.cc index 20b0027..94deb7c 100644 --- a/chrome/browser/ui/webui/options/browser_options_handler.cc +++ b/chrome/browser/ui/webui/options/browser_options_handler.cc @@ -28,7 +28,6 @@ #include "chrome/browser/download/download_prefs.h" #include "chrome/browser/gpu/gpu_mode_manager.h" #include "chrome/browser/lifetime/application_lifetime.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/prefs/session_startup_pref.h" #include "chrome/browser/printing/cloud_print/cloud_print_proxy_service.h" #include "chrome/browser/printing/cloud_print/cloud_print_proxy_service_factory.h" @@ -60,6 +59,7 @@ #include "chrome/common/chrome_constants.h" #include "chrome/common/chrome_paths.h" #include "chrome/common/chrome_switches.h" +#include "chrome/common/net/url_fixer_upper.h" #include "chrome/common/pref_names.h" #include "chrome/common/url_constants.h" #include "content/public/browser/browser_thread.h" diff --git a/chrome/browser/ui/webui/options/core_options_handler.cc b/chrome/browser/ui/webui/options/core_options_handler.cc index c933690..524ee10 100644 --- a/chrome/browser/ui/webui/options/core_options_handler.cc +++ b/chrome/browser/ui/webui/options/core_options_handler.cc @@ -14,9 +14,9 @@ #include "base/values.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/chrome_notification_types.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/options/options_util.h" +#include "chrome/common/net/url_fixer_upper.h" #include "chrome/common/pref_names.h" #include "chrome/common/url_constants.h" #include "content/public/browser/notification_details.h" diff --git a/chrome/browser/ui/webui/options/startup_pages_handler.cc b/chrome/browser/ui/webui/options/startup_pages_handler.cc index 127cfad..8c22b50 100644 --- a/chrome/browser/ui/webui/options/startup_pages_handler.cc +++ b/chrome/browser/ui/webui/options/startup_pages_handler.cc @@ -13,9 +13,9 @@ #include "chrome/browser/autocomplete/autocomplete_result.h" #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/custom_home_pages_table_model.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/prefs/session_startup_pref.h" #include "chrome/browser/profiles/profile.h" +#include "chrome/common/net/url_fixer_upper.h" #include "chrome/common/pref_names.h" #include "content/public/browser/notification_details.h" #include "content/public/browser/web_ui.h" diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi index a55106d..0f57fb2 100644 --- a/chrome/chrome_browser.gypi +++ b/chrome/chrome_browser.gypi @@ -1151,8 +1151,6 @@ 'browser/net/timed_cache.h', 'browser/net/transport_security_persister.cc', 'browser/net/transport_security_persister.h', - 'browser/net/url_fixer_upper.cc', - 'browser/net/url_fixer_upper.h', 'browser/net/url_info.cc', 'browser/net/url_info.h', 'browser/notifications/balloon.cc', diff --git a/chrome/chrome_common.gypi b/chrome/chrome_common.gypi index 6ae85c4..fde3124 100644 --- a/chrome/chrome_common.gypi +++ b/chrome/chrome_common.gypi @@ -736,6 +736,8 @@ 'common/net/net_resource_provider.cc', 'common/net/net_resource_provider.h', 'common/net/predictor_common.h', + 'common/net/url_fixer_upper.cc', + 'common/net/url_fixer_upper.h', 'common/net/url_util.cc', 'common/net/url_util.h', 'common/net/x509_certificate_model.cc', diff --git a/chrome/chrome_tests_unit.gypi b/chrome/chrome_tests_unit.gypi index c3acb95..1994f84 100644 --- a/chrome/chrome_tests_unit.gypi +++ b/chrome/chrome_tests_unit.gypi @@ -976,7 +976,6 @@ 'browser/net/sqlite_server_bound_cert_store_unittest.cc', 'browser/net/ssl_config_service_manager_pref_unittest.cc', 'browser/net/transport_security_persister_unittest.cc', - 'browser/net/url_fixer_upper_unittest.cc', 'browser/net/url_info_unittest.cc', 'browser/notifications/desktop_notification_service_unittest.cc', 'browser/notifications/message_center_notifications_unittest_win.cc', @@ -1716,6 +1715,7 @@ 'common/metrics/metrics_util_unittest.cc', 'common/metrics/variations/variations_util_unittest.cc', 'common/multi_process_lock_unittest.cc', + 'common/net/url_fixer_upper_unittest.cc', 'common/net/x509_certificate_model_unittest.cc', 'common/partial_circular_buffer_unittest.cc', 'common/policy/policy_schema_unittest.cc', @@ -1782,6 +1782,7 @@ 'tools/convert_dict/convert_dict_unittest.cc', 'utility/extensions/unpacker_unittest.cc', 'utility/importer/bookmark_html_reader_unittest.cc', + 'utility/importer/bookmarks_file_importer_unittest.cc', 'utility/importer/firefox_importer_unittest.cc', 'utility/importer/safari_importer_unittest.mm', diff --git a/chrome/common/importer/firefox_importer_utils.cc b/chrome/common/importer/firefox_importer_utils.cc index 5ec56d6..44d7dbc 100644 --- a/chrome/common/importer/firefox_importer_utils.cc +++ b/chrome/common/importer/firefox_importer_utils.cc @@ -128,22 +128,6 @@ bool GetFirefoxVersionAndPathFromProfile(const base::FilePath& profile_path, return ret; } -bool CanImportURL(const GURL& url) { - const char* kInvalidSchemes[] = {"wyciwyg", "place", "about", "chrome"}; - - // The URL is not valid. - if (!url.is_valid()) - return false; - - // Filter out the URLs with unsupported schemes. - for (size_t i = 0; i < arraysize(kInvalidSchemes); ++i) { - if (url.SchemeIs(kInvalidSchemes[i])) - return false; - } - - return true; -} - bool ReadPrefFile(const base::FilePath& path, std::string* content) { if (content == NULL) return false; diff --git a/chrome/common/importer/firefox_importer_utils.h b/chrome/common/importer/firefox_importer_utils.h index 54c5a74..5dac529 100644 --- a/chrome/common/importer/firefox_importer_utils.h +++ b/chrome/common/importer/firefox_importer_utils.h @@ -72,10 +72,6 @@ base::FilePath GetProfilesINI(); // "Genenral.StartWithLastProfile" has the value "1". void ParseProfileINI(const base::FilePath& file, base::DictionaryValue* root); -// Returns true if we want to add the URL to the history. We filter out the URL -// with a unsupported scheme. -bool CanImportURL(const GURL& url); - // Returns the home page set in Firefox in a particular profile. GURL GetHomepage(const base::FilePath& profile_path); diff --git a/chrome/browser/net/url_fixer_upper.cc b/chrome/common/net/url_fixer_upper.cc index 49671ac..45a4786 100644 --- a/chrome/browser/net/url_fixer_upper.cc +++ b/chrome/common/net/url_fixer_upper.cc @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/browser/net/url_fixer_upper.h" +#include "chrome/common/net/url_fixer_upper.h" #include <algorithm> diff --git a/chrome/browser/net/url_fixer_upper.h b/chrome/common/net/url_fixer_upper.h index 57ed512..27a7aa9 100644 --- a/chrome/browser/net/url_fixer_upper.h +++ b/chrome/common/net/url_fixer_upper.h @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_BROWSER_NET_URL_FIXER_UPPER_H_ -#define CHROME_BROWSER_NET_URL_FIXER_UPPER_H_ +#ifndef CHROME_COMMON_NET_URL_FIXER_UPPER_H_ +#define CHROME_COMMON_NET_URL_FIXER_UPPER_H_ #include <string> @@ -64,7 +64,8 @@ namespace URLFixerUpper { // For "regular" input, even if it is possibly a file with a full path, you // should use FixupURL() directly. This function should only be used when // relative path handling is desired, as for command line processing. - GURL FixupRelativeFile(const base::FilePath& base_dir, const base::FilePath& text); + GURL FixupRelativeFile(const base::FilePath& base_dir, + const base::FilePath& text); // Offsets the beginning index of |part| by |offset|, which is allowed to be // negative. In some cases, the desired component does not exist at the given @@ -78,6 +79,7 @@ namespace URLFixerUpper { // directory. For tests, we allow our idea of $HOME to be overriden // by this variable. extern const char* home_directory_override; -}; -#endif // CHROME_BROWSER_NET_URL_FIXER_UPPER_H_ +} // namespace URLFixerUpper + +#endif // CHROME_COMMON_NET_URL_FIXER_UPPER_H_ diff --git a/chrome/browser/net/url_fixer_upper_unittest.cc b/chrome/common/net/url_fixer_upper_unittest.cc index 19e796b..6efb6bc 100644 --- a/chrome/browser/net/url_fixer_upper_unittest.cc +++ b/chrome/common/net/url_fixer_upper_unittest.cc @@ -9,8 +9,8 @@ #include "base/path_service.h" #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/common/chrome_paths.h" +#include "chrome/common/net/url_fixer_upper.h" #include "net/base/net_util.h" #include "testing/gtest/include/gtest/gtest.h" #include "url/gurl.h" diff --git a/chrome/common/url_constants.cc b/chrome/common/url_constants.cc index 79e856b..5a54a74 100644 --- a/chrome/common/url_constants.cc +++ b/chrome/common/url_constants.cc @@ -4,6 +4,10 @@ #include "chrome/common/url_constants.h" +#include <algorithm> + +#include "base/basictypes.h" +#include "content/public/common/url_constants.h" #include "url/url_util.h" namespace chrome { @@ -511,6 +515,96 @@ const char kLearnMoreEnterpriseURL[] = const char kNotificationsHelpURL[] = "https://support.google.com/chrome/?p=ui_notifications"; +// Add hosts here to be included in chrome://chrome-urls (about:about). +// These hosts will also be suggested by BuiltinProvider. +const char* const kChromeHostURLs[] = { + kChromeUICacheHost, + kChromeUIChromeURLsHost, + kChromeUICrashesHost, + kChromeUICreditsHost, + kChromeUIDNSHost, + kChromeUIFlagsHost, + kChromeUIHistoryHost, + kChromeUIIPCHost, + kChromeUIMemoryHost, + kChromeUIMemoryInternalsHost, +#if defined(OS_ANDROID) || defined(OS_IOS) + kChromeUINetExportHost, +#endif + kChromeUINetInternalsHost, + kChromeUINewTabHost, + kChromeUIOmniboxHost, + kChromeUIPredictorsHost, + kChromeUIProfilerHost, + kChromeUIQuotaInternalsHost, + kChromeUISignInInternalsHost, + kChromeUIStatsHost, + kChromeUISyncInternalsHost, + kChromeUITermsHost, + kChromeUITranslateInternalsHost, + kChromeUIUserActionsHost, + kChromeUIVersionHost, +#if defined(OS_ANDROID) + kChromeUIWelcomeHost, +#else + kChromeUIBookmarksHost, + kChromeUIDownloadsHost, + kChromeUIFlashHost, + kChromeUIInspectHost, + kChromeUIPluginsHost, + kChromeUISettingsHost, +#endif +#if defined(OS_WIN) + kChromeUIConflictsHost, +#endif +#if defined(OS_LINUX) || defined(OS_OPENBSD) + kChromeUILinuxProxyConfigHost, + kChromeUISandboxHost, +#endif +#if defined(OS_CHROMEOS) + kChromeUIChooseMobileNetworkHost, + kChromeUICryptohomeHost, + kChromeUIDiagnosticsHost, + kChromeUIDiscardsHost, + kChromeUIDriveInternalsHost, + kChromeUIImageBurnerHost, + kChromeUIKeyboardOverlayHost, + kChromeUILoginHost, + kChromeUINetworkHost, + kChromeUIOobeHost, + kChromeUIOSCreditsHost, + kChromeUIProxySettingsHost, + kChromeUISystemInfoHost, + kChromeUITaskManagerHost, +#endif +#if !defined(DISABLE_NACL) + kChromeUINaClHost, +#endif +#if defined(ENABLE_CONFIGURATION_POLICY) + kChromeUIPolicyHost, +#endif +#if defined(ENABLE_EXTENSIONS) + kChromeUIExtensionsHost, +#endif +#if defined(ENABLE_PRINTING) + kChromeUIPrintHost, +#endif + content::kChromeUIAccessibilityHost, + content::kChromeUIAppCacheInternalsHost, + content::kChromeUIBlobInternalsHost, + content::kChromeUIGpuHost, + content::kChromeUIHistogramHost, + content::kChromeUIIndexedDBInternalsHost, + content::kChromeUIMediaInternalsHost, + content::kChromeUINetworkViewCacheHost, + content::kChromeUITracingHost, + content::kChromeUIWebRTCInternalsHost, +#if defined(ENABLE_WEBRTC) + kChromeUIWebRtcLogsHost, +#endif +}; +const size_t kNumberOfChromeHostURLs = arraysize(kChromeHostURLs); + const char* const kChromeDebugURLs[] = { content::kChromeUICrashURL, content::kChromeUIKillURL, diff --git a/chrome/common/url_constants.h b/chrome/common/url_constants.h index c4b2e93..c3ff8fc 100644 --- a/chrome/common/url_constants.h +++ b/chrome/common/url_constants.h @@ -7,6 +7,9 @@ #ifndef CHROME_COMMON_URL_CONSTANTS_H_ #define CHROME_COMMON_URL_CONSTANTS_H_ +#include <string> +#include <vector> + #include "build/build_config.h" #include "content/public/common/url_constants.h" @@ -422,6 +425,10 @@ extern const char kLearnMoreEnterpriseURL[]; extern const char kNotificationsHelpURL[]; +// Gets the hosts/domains that are shown in chrome://chrome-urls. +extern const char* const kChromeHostURLs[]; +extern const size_t kNumberOfChromeHostURLs; + // "Debug" pages which are dangerous and not for general consumption. extern const char* const kChromeDebugURLs[]; extern const int kNumberOfChromeDebugURLs; diff --git a/chrome/test/perf/memory_test.cc b/chrome/test/perf/memory_test.cc index 3812044..9a78571 100644 --- a/chrome/test/perf/memory_test.cc +++ b/chrome/test/perf/memory_test.cc @@ -10,10 +10,10 @@ #include "base/strings/string_util.h" #include "base/threading/platform_thread.h" #include "base/threading/thread_restrictions.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/common/chrome_constants.h" #include "chrome/common/chrome_paths.h" #include "chrome/common/chrome_switches.h" +#include "chrome/common/net/url_fixer_upper.h" #include "chrome/test/automation/automation_proxy.h" #include "chrome/test/automation/browser_proxy.h" #include "chrome/test/automation/tab_proxy.h" diff --git a/chrome/test/perf/rendering/throughput_tests.cc b/chrome/test/perf/rendering/throughput_tests.cc index e54c224..4aab2e7 100644 --- a/chrome/test/perf/rendering/throughput_tests.cc +++ b/chrome/test/perf/rendering/throughput_tests.cc @@ -13,13 +13,13 @@ #include "base/strings/stringprintf.h" #include "base/test/trace_event_analyzer.h" #include "base/values.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_window.h" #include "chrome/browser/ui/tabs/tab_strip_model.h" #include "chrome/browser/ui/window_snapshot/window_snapshot.h" #include "chrome/common/chrome_paths.h" #include "chrome/common/chrome_switches.h" +#include "chrome/common/net/url_fixer_upper.h" #include "chrome/test/base/test_switches.h" #include "chrome/test/base/tracing.h" #include "chrome/test/base/ui_test_utils.h" diff --git a/chrome/test/reliability/page_load_test.cc b/chrome/test/reliability/page_load_test.cc index 0e25017..9321537 100644 --- a/chrome/test/reliability/page_load_test.cc +++ b/chrome/test/reliability/page_load_test.cc @@ -54,7 +54,6 @@ #include "base/test/test_file_util.h" #include "base/threading/platform_thread.h" #include "base/time/time.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/prefs/pref_service_mock_builder.h" #include "chrome/common/automation_messages.h" #include "chrome/common/chrome_constants.h" @@ -62,6 +61,7 @@ #include "chrome/common/chrome_switches.h" #include "chrome/common/chrome_version_info.h" #include "chrome/common/logging_chrome.h" +#include "chrome/common/net/url_fixer_upper.h" #include "chrome/common/pref_names.h" #include "chrome/common/render_messages.h" #include "chrome/common/url_constants.h" diff --git a/chrome/test/ui/ui_test.cc b/chrome/test/ui/ui_test.cc index 6d55efa..3dd2263 100644 --- a/chrome/test/ui/ui_test.cc +++ b/chrome/test/ui/ui_test.cc @@ -32,13 +32,13 @@ #include "base/threading/platform_thread.h" #include "base/time/time.h" #include "chrome/app/chrome_command_ids.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/profiles/profile_impl.h" #include "chrome/common/automation_messages.h" #include "chrome/common/chrome_constants.h" #include "chrome/common/chrome_paths.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/logging_chrome.h" +#include "chrome/common/net/url_fixer_upper.h" #include "chrome/common/pref_names.h" #include "chrome/common/url_constants.h" #include "chrome/test/automation/automation_proxy.h" diff --git a/chrome/utility/importer/bookmarks_file_importer.cc b/chrome/utility/importer/bookmarks_file_importer.cc index 335bc9c..ff888a3 100644 --- a/chrome/utility/importer/bookmarks_file_importer.cc +++ b/chrome/utility/importer/bookmarks_file_importer.cc @@ -5,12 +5,14 @@ #include "chrome/utility/importer/bookmarks_file_importer.h" #include "base/bind.h" -#include "chrome/common/importer/firefox_importer_utils.h" #include "chrome/common/importer/imported_bookmark_entry.h" #include "chrome/common/importer/imported_favicon_usage.h" #include "chrome/common/importer/importer_bridge.h" #include "chrome/common/importer/importer_data_types.h" +#include "chrome/common/net/url_fixer_upper.h" +#include "chrome/common/url_constants.h" #include "chrome/utility/importer/bookmark_html_reader.h" +#include "content/public/common/url_constants.h" #include "grit/generated_resources.h" namespace { @@ -21,6 +23,53 @@ bool IsImporterCancelled(BookmarksFileImporter* importer) { } // namespace +namespace internal { + +// Returns true if |url| has a valid scheme that we allow to import. We +// filter out the URL with a unsupported scheme. +bool CanImportURL(const GURL& url) { + // The URL is not valid. + if (!url.is_valid()) + return false; + + // Filter out the URLs with unsupported schemes. + const char* const kInvalidSchemes[] = {"wyciwyg", "place"}; + for (size_t i = 0; i < arraysize(kInvalidSchemes); ++i) { + if (url.SchemeIs(kInvalidSchemes[i])) + return false; + } + + // Check if |url| is about:blank. + if (url == GURL(content::kAboutBlankURL)) + return true; + + // If |url| starts with chrome:// or about:, check if it's one of the URLs + // that we support. + if (url.SchemeIs(chrome::kChromeUIScheme) || + url.SchemeIs(chrome::kAboutScheme)) { + GURL fixed_url(URLFixerUpper::FixupURL(url.spec(), std::string())); + for (size_t i = 0; i < chrome::kNumberOfChromeHostURLs; ++i) { + if (fixed_url.DomainIs(chrome::kChromeHostURLs[i])) + return true; + } + + for (int i = 0; i < chrome::kNumberOfChromeDebugURLs; ++i) { + if (fixed_url == GURL(chrome::kChromeDebugURLs[i])) + return true; + } + + // If url has either chrome:// or about: schemes but wasn't found in the + // above lists, it means we don't support it, so we don't allow the user + // to import it. + return false; + } + + // Otherwise, we assume the url has a valid (importable) scheme. + return true; +} + +} // namespace internal + BookmarksFileImporter::BookmarksFileImporter() {} BookmarksFileImporter::~BookmarksFileImporter() {} @@ -41,7 +90,7 @@ void BookmarksFileImporter::StartImport( bookmark_html_reader::ImportBookmarksFile( base::Bind(IsImporterCancelled, base::Unretained(this)), - base::Bind(CanImportURL), + base::Bind(internal::CanImportURL), source_profile.source_path, &bookmarks, &favicons); diff --git a/chrome/utility/importer/bookmarks_file_importer_unittest.cc b/chrome/utility/importer/bookmarks_file_importer_unittest.cc new file mode 100644 index 0000000..f070a12 --- /dev/null +++ b/chrome/utility/importer/bookmarks_file_importer_unittest.cc @@ -0,0 +1,41 @@ +// 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/utility/importer/bookmarks_file_importer.h" + +#include "testing/gtest/include/gtest/gtest.h" +#include "url/gurl.h" + +namespace internal { + +bool CanImportURL(const GURL& url); + +} // namespace internal + +TEST(BookmarksFileImporterTest, CanImportURL) { + struct TestCase { + const std::string url; + const bool can_be_imported; + } test_cases[] = { + { "http://www.example.com", true }, + { "https://www.example.com", true }, + { "ftp://www.example.com", true }, + { "aim:GoIm?screenname=myscreenname&message=hello", true }, + { "chrome://version", true }, + { "chrome://chrome-urls", true }, + { "chrome://kill", true }, + { "about:version", true }, + { "about:blank", true }, + { "about:credits", true }, + { "wyciwyg://example.com", false }, + { "place://google.com", false }, + { "about:config", false }, + { "about:moon", false }, + }; + + for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_cases); ++i) { + EXPECT_EQ(test_cases[i].can_be_imported, + internal::CanImportURL(GURL(test_cases[i].url))); + } +} diff --git a/chrome/utility/importer/firefox_importer.cc b/chrome/utility/importer/firefox_importer.cc index c939ea9..2869032 100644 --- a/chrome/utility/importer/firefox_importer.cc +++ b/chrome/utility/importer/firefox_importer.cc @@ -59,6 +59,23 @@ void LoadDefaultBookmarks(const base::FilePath& app_path, urls->insert(bookmarks[i].url); } +// Returns true if |url| has a valid scheme that we allow to import. We +// filter out the URL with a unsupported scheme. +bool CanImportURL(const GURL& url) { + // The URL is not valid. + if (!url.is_valid()) + return false; + + // Filter out the URLs with unsupported schemes. + const char* const kInvalidSchemes[] = {"wyciwyg", "place", "about", "chrome"}; + for (size_t i = 0; i < arraysize(kInvalidSchemes); ++i) { + if (url.SchemeIs(kInvalidSchemes[i])) + return false; + } + + return true; +} + } // namespace struct FirefoxImporter::BookmarkItem { diff --git a/chrome_frame/test/reliability/page_load_test.cc b/chrome_frame/test/reliability/page_load_test.cc index ffc4197..389a3ab 100644 --- a/chrome_frame/test/reliability/page_load_test.cc +++ b/chrome_frame/test/reliability/page_load_test.cc @@ -38,7 +38,6 @@ #include "base/strings/utf_string_conversions.h" #include "base/test/test_file_util.h" #include "base/time/time.h" -#include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/prefs/pref_service_mock_builder.h" #include "chrome/common/automation_messages.h" #include "chrome/common/chrome_constants.h" @@ -46,6 +45,7 @@ #include "chrome/common/chrome_paths_internal.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/logging_chrome.h" +#include "chrome/common/net/url_fixer_upper.h" #include "chrome/common/pref_names.h" #include "chrome/test/automation/automation_proxy.h" #include "chrome/test/automation/browser_proxy.h" |