| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/ui/browser.h" | 5 #include "chrome/browser/ui/browser.h" |
| 6 | 6 |
| 7 #if defined(OS_WIN) | 7 #if defined(OS_WIN) |
| 8 #include <shellapi.h> | 8 #include <shellapi.h> |
| 9 #include <windows.h> | 9 #include <windows.h> |
| 10 #endif // OS_WIN | 10 #endif // OS_WIN |
| (...skipping 2033 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2044 const PrefService::Preference* home_page_is_new_tab_page_pref = | 2044 const PrefService::Preference* home_page_is_new_tab_page_pref = |
| 2045 prefs->FindPreference(prefs::kHomePageIsNewTabPage); | 2045 prefs->FindPreference(prefs::kHomePageIsNewTabPage); |
| 2046 if (home_page_is_new_tab_page_pref && | 2046 if (home_page_is_new_tab_page_pref && |
| 2047 !home_page_is_new_tab_page_pref->IsManaged() && | 2047 !home_page_is_new_tab_page_pref->IsManaged() && |
| 2048 !prefs->HasPrefPath(prefs::kHomePageIsNewTabPage)) | 2048 !prefs->HasPrefPath(prefs::kHomePageIsNewTabPage)) |
| 2049 prefs->SetBoolean(prefs::kHomePageIsNewTabPage, false); | 2049 prefs->SetBoolean(prefs::kHomePageIsNewTabPage, false); |
| 2050 } | 2050 } |
| 2051 | 2051 |
| 2052 // static | 2052 // static |
| 2053 void Browser::RegisterPrefs(PrefService* prefs) { | 2053 void Browser::RegisterPrefs(PrefService* prefs) { |
| 2054 prefs->RegisterIntegerPref(prefs::kOptionsWindowLastTabIndex, 0); | 2054 prefs->RegisterIntegerPref(prefs::kOptionsWindowLastTabIndex, |
| 2055 prefs->RegisterIntegerPref(prefs::kExtensionSidebarWidth, -1); | 2055 0, |
| 2056 prefs->RegisterIntegerPref(prefs::kMultipleProfilePrefMigration, 0); | 2056 false /* don't sync pref */); |
| 2057 prefs->RegisterBooleanPref(prefs::kAllowFileSelectionDialogs, true); | 2057 prefs->RegisterIntegerPref(prefs::kExtensionSidebarWidth, |
| 2058 -1, |
| 2059 false /* don't sync pref */); |
| 2060 prefs->RegisterIntegerPref(prefs::kMultipleProfilePrefMigration, |
| 2061 0, |
| 2062 false /* don't sync pref */); |
| 2063 prefs->RegisterBooleanPref(prefs::kAllowFileSelectionDialogs, |
| 2064 true, |
| 2065 false /* don't sync pref */); |
| 2058 // Educated guess: Chrome has a bundled Flash version supporting | 2066 // Educated guess: Chrome has a bundled Flash version supporting |
| 2059 // clearing LSO data, Chromium hasn't. | 2067 // clearing LSO data, Chromium hasn't. |
| 2060 #if defined(GOOGLE_CHROME_BUILD) | 2068 #if defined(GOOGLE_CHROME_BUILD) |
| 2061 prefs->RegisterBooleanPref(prefs::kClearPluginLSODataEnabled, true); | 2069 prefs->RegisterBooleanPref(prefs::kClearPluginLSODataEnabled, |
| 2070 true, |
| 2071 false /* don't sync pref */); |
| 2062 #else | 2072 #else |
| 2063 prefs->RegisterBooleanPref(prefs::kClearPluginLSODataEnabled, false); | 2073 prefs->RegisterBooleanPref(prefs::kClearPluginLSODataEnabled, |
| 2074 false, |
| 2075 false /* don't sync pref */); |
| 2064 #endif | 2076 #endif |
| 2065 } | 2077 } |
| 2066 | 2078 |
| 2067 // static | 2079 // static |
| 2068 void Browser::RegisterUserPrefs(PrefService* prefs) { | 2080 void Browser::RegisterUserPrefs(PrefService* prefs) { |
| 2069 prefs->RegisterStringPref(prefs::kHomePage, | 2081 prefs->RegisterStringPref(prefs::kHomePage, |
| 2070 chrome::kChromeUINewTabURL); | 2082 chrome::kChromeUINewTabURL, |
| 2071 prefs->RegisterBooleanPref(prefs::kHomePageIsNewTabPage, true); | 2083 true /* sync pref */); |
| 2072 prefs->RegisterBooleanPref(prefs::kShowHomeButton, false); | 2084 prefs->RegisterBooleanPref(prefs::kHomePageIsNewTabPage, |
| 2085 true, |
| 2086 true /* sync pref */); |
| 2087 prefs->RegisterBooleanPref(prefs::kShowHomeButton, |
| 2088 false, |
| 2089 true /* sync pref */); |
| 2073 #if defined(OS_MACOSX) | 2090 #if defined(OS_MACOSX) |
| 2074 // This really belongs in platform code, but there's no good place to | 2091 // This really belongs in platform code, but there's no good place to |
| 2075 // initialize it between the time when the AppController is created | 2092 // initialize it between the time when the AppController is created |
| 2076 // (where there's no profile) and the time the controller gets another | 2093 // (where there's no profile) and the time the controller gets another |
| 2077 // crack at the start of the main event loop. By that time, BrowserInit | 2094 // crack at the start of the main event loop. By that time, BrowserInit |
| 2078 // has already created the browser window, and it's too late: we need the | 2095 // has already created the browser window, and it's too late: we need the |
| 2079 // pref to be already initialized. Doing it here also saves us from having | 2096 // pref to be already initialized. Doing it here also saves us from having |
| 2080 // to hard-code pref registration in the several unit tests that use | 2097 // to hard-code pref registration in the several unit tests that use |
| 2081 // this preference. | 2098 // this preference. |
| 2082 prefs->RegisterBooleanPref(prefs::kConfirmToQuitEnabled, false); | 2099 prefs->RegisterBooleanPref(prefs::kConfirmToQuitEnabled, |
| 2083 prefs->RegisterBooleanPref(prefs::kShowUpdatePromotionInfoBar, true); | 2100 false, |
| 2101 true /* sync pref */); |
| 2102 prefs->RegisterBooleanPref(prefs::kShowUpdatePromotionInfoBar, |
| 2103 true, |
| 2104 false /* don't sync pref */); |
| 2084 #endif | 2105 #endif |
| 2085 prefs->RegisterBooleanPref(prefs::kDeleteBrowsingHistory, true); | 2106 prefs->RegisterBooleanPref(prefs::kDeleteBrowsingHistory, |
| 2086 prefs->RegisterBooleanPref(prefs::kDeleteDownloadHistory, true); | 2107 true, |
| 2087 prefs->RegisterBooleanPref(prefs::kDeleteCache, true); | 2108 true /* sync pref */); |
| 2088 prefs->RegisterBooleanPref(prefs::kDeleteCookies, true); | 2109 prefs->RegisterBooleanPref(prefs::kDeleteDownloadHistory, |
| 2089 prefs->RegisterBooleanPref(prefs::kDeletePasswords, false); | 2110 true, |
| 2090 prefs->RegisterBooleanPref(prefs::kDeleteFormData, false); | 2111 true /* sync pref */); |
| 2091 prefs->RegisterIntegerPref(prefs::kDeleteTimePeriod, 0); | 2112 prefs->RegisterBooleanPref(prefs::kDeleteCache, true, true /* sync pref */); |
| 2092 prefs->RegisterBooleanPref(prefs::kCheckDefaultBrowser, true); | 2113 prefs->RegisterBooleanPref(prefs::kDeleteCookies, |
| 2093 prefs->RegisterBooleanPref(prefs::kShowOmniboxSearchHint, true); | 2114 true, |
| 2094 prefs->RegisterBooleanPref(prefs::kWebAppCreateOnDesktop, true); | 2115 true /* sync pref */); |
| 2095 prefs->RegisterBooleanPref(prefs::kWebAppCreateInAppsMenu, true); | 2116 prefs->RegisterBooleanPref(prefs::kDeletePasswords, |
| 2096 prefs->RegisterBooleanPref(prefs::kWebAppCreateInQuickLaunchBar, true); | 2117 false, |
| 2097 prefs->RegisterBooleanPref(prefs::kUseVerticalTabs, false); | 2118 true /* sync pref */); |
| 2098 prefs->RegisterBooleanPref(prefs::kEnableTranslate, true); | 2119 prefs->RegisterBooleanPref(prefs::kDeleteFormData, |
| 2099 prefs->RegisterBooleanPref(prefs::kEnableBookmarkBar, true); | 2120 false, |
| 2100 prefs->RegisterBooleanPref(prefs::kRemotingHasSetupCompleted, false); | 2121 true /* sync pref */); |
| 2101 prefs->RegisterStringPref(prefs::kCloudPrintEmail, std::string()); | 2122 prefs->RegisterIntegerPref(prefs::kDeleteTimePeriod, |
| 2102 prefs->RegisterBooleanPref(prefs::kCloudPrintProxyEnabled, true); | 2123 0, |
| 2103 prefs->RegisterBooleanPref(prefs::kDevToolsDisabled, false); | 2124 true /* sync pref */); |
| 2104 prefs->RegisterBooleanPref(prefs::kIncognitoEnabled, true); | 2125 prefs->RegisterBooleanPref(prefs::kCheckDefaultBrowser, |
| 2105 prefs->RegisterIntegerPref(prefs::kDevToolsSplitLocation, -1); | 2126 true, |
| 2106 prefs->RegisterDictionaryPref(prefs::kBrowserWindowPlacement); | 2127 false /* don't sync pref */); |
| 2107 prefs->RegisterDictionaryPref(prefs::kPreferencesWindowPlacement); | 2128 prefs->RegisterBooleanPref(prefs::kShowOmniboxSearchHint, |
| 2129 true, |
| 2130 false /* don't sync pref */); |
| 2131 prefs->RegisterBooleanPref(prefs::kWebAppCreateOnDesktop, |
| 2132 true, |
| 2133 false /* don't sync pref */); |
| 2134 prefs->RegisterBooleanPref(prefs::kWebAppCreateInAppsMenu, |
| 2135 true, |
| 2136 false /* don't sync pref */); |
| 2137 prefs->RegisterBooleanPref(prefs::kWebAppCreateInQuickLaunchBar, |
| 2138 true, |
| 2139 false /* don't sync pref */); |
| 2140 prefs->RegisterBooleanPref(prefs::kUseVerticalTabs, |
| 2141 false, |
| 2142 false /* don't sync pref */); |
| 2143 prefs->RegisterBooleanPref(prefs::kEnableTranslate, |
| 2144 true, |
| 2145 true /* sync pref */); |
| 2146 prefs->RegisterBooleanPref(prefs::kEnableBookmarkBar, |
| 2147 true, |
| 2148 false /* don't sync pref */); |
| 2149 prefs->RegisterBooleanPref(prefs::kRemotingHasSetupCompleted, |
| 2150 false, |
| 2151 false /* don't sync pref */); |
| 2152 prefs->RegisterStringPref(prefs::kCloudPrintEmail, |
| 2153 std::string(), |
| 2154 false /* don't sync pref */); |
| 2155 prefs->RegisterBooleanPref(prefs::kCloudPrintProxyEnabled, |
| 2156 true, |
| 2157 false /* don't sync pref */); |
| 2158 prefs->RegisterBooleanPref(prefs::kDevToolsDisabled, |
| 2159 false, |
| 2160 false /* don't sync pref */); |
| 2161 prefs->RegisterBooleanPref(prefs::kIncognitoEnabled, |
| 2162 true, |
| 2163 false /* don't sync pref */); |
| 2164 prefs->RegisterIntegerPref(prefs::kDevToolsSplitLocation, |
| 2165 -1, |
| 2166 false /* don't sync pref */); |
| 2167 prefs->RegisterDictionaryPref(prefs::kBrowserWindowPlacement, |
| 2168 false /* don't sync pref */); |
| 2169 prefs->RegisterDictionaryPref(prefs::kPreferencesWindowPlacement, |
| 2170 false /* don't sync pref */); |
| 2108 // We need to register the type of these preferences in order to query | 2171 // We need to register the type of these preferences in order to query |
| 2109 // them even though they're typically only controlled via policy or command | 2172 // them even though they're only typically controlled via policy. |
| 2110 // line switches. | 2173 prefs->RegisterBooleanPref(prefs::kDisable3DAPIs, |
| 2111 prefs->RegisterBooleanPref(prefs::kDisable3DAPIs, false); | 2174 false, |
| 2112 prefs->RegisterBooleanPref(prefs::kPluginsAllowOutdated, false); | 2175 false /* don't sync pref */); |
| 2113 prefs->RegisterBooleanPref(prefs::kEnableHyperlinkAuditing, true); | 2176 prefs->RegisterBooleanPref(prefs::kPluginsAllowOutdated, |
| 2114 prefs->RegisterBooleanPref(prefs::kEnableReferrers, true); | 2177 false, |
| 2178 false /* don't sync pref */); |
| 2179 prefs->RegisterBooleanPref(prefs::kEnableHyperlinkAuditing, |
| 2180 true, |
| 2181 false /* don't sync pref */); |
| 2182 prefs->RegisterBooleanPref(prefs::kEnableReferrers, |
| 2183 true, |
| 2184 false /* don't sync pref */); |
| 2115 } | 2185 } |
| 2116 | 2186 |
| 2117 // static | 2187 // static |
| 2118 bool Browser::RunUnloadEventsHelper(TabContents* contents) { | 2188 bool Browser::RunUnloadEventsHelper(TabContents* contents) { |
| 2119 // If the TabContents is not connected yet, then there's no unload | 2189 // If the TabContents is not connected yet, then there's no unload |
| 2120 // handler we can fire even if the TabContents has an unload listener. | 2190 // handler we can fire even if the TabContents has an unload listener. |
| 2121 // One case where we hit this is in a tab that has an infinite loop | 2191 // One case where we hit this is in a tab that has an infinite loop |
| 2122 // before load. | 2192 // before load. |
| 2123 if (contents->NeedToFireBeforeUnload()) { | 2193 if (contents->NeedToFireBeforeUnload()) { |
| 2124 // If the page has unload listeners, then we tell the renderer to fire | 2194 // If the page has unload listeners, then we tell the renderer to fire |
| (...skipping 2197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4322 | 4392 |
| 4323 // Only register once for each app name. | 4393 // Only register once for each app name. |
| 4324 if (g_app_names->find(app_name) != g_app_names->end()) | 4394 if (g_app_names->find(app_name) != g_app_names->end()) |
| 4325 return; | 4395 return; |
| 4326 g_app_names->insert(app_name); | 4396 g_app_names->insert(app_name); |
| 4327 | 4397 |
| 4328 // We need to register the window position pref. | 4398 // We need to register the window position pref. |
| 4329 std::string window_pref(prefs::kBrowserWindowPlacement); | 4399 std::string window_pref(prefs::kBrowserWindowPlacement); |
| 4330 window_pref.append("_"); | 4400 window_pref.append("_"); |
| 4331 window_pref.append(app_name); | 4401 window_pref.append(app_name); |
| 4332 profile->GetPrefs()->RegisterDictionaryPref(window_pref.c_str()); | 4402 profile->GetPrefs()->RegisterDictionaryPref(window_pref.c_str(), |
| 4403 false /* don't sync pref */); |
| 4333 } | 4404 } |
| 4334 | 4405 |
| 4335 void Browser::TabRestoreServiceChanged(TabRestoreService* service) { | 4406 void Browser::TabRestoreServiceChanged(TabRestoreService* service) { |
| 4336 command_updater_.UpdateCommandEnabled(IDC_RESTORE_TAB, | 4407 command_updater_.UpdateCommandEnabled(IDC_RESTORE_TAB, |
| 4337 !service->entries().empty()); | 4408 !service->entries().empty()); |
| 4338 } | 4409 } |
| 4339 | 4410 |
| 4340 void Browser::TabRestoreServiceDestroyed(TabRestoreService* service) { | 4411 void Browser::TabRestoreServiceDestroyed(TabRestoreService* service) { |
| 4341 if (!tab_restore_service_) | 4412 if (!tab_restore_service_) |
| 4342 return; | 4413 return; |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4477 TabContents* current_tab = GetSelectedTabContents(); | 4548 TabContents* current_tab = GetSelectedTabContents(); |
| 4478 if (current_tab) { | 4549 if (current_tab) { |
| 4479 content_restrictions = current_tab->content_restrictions(); | 4550 content_restrictions = current_tab->content_restrictions(); |
| 4480 NavigationEntry* active_entry = current_tab->controller().GetActiveEntry(); | 4551 NavigationEntry* active_entry = current_tab->controller().GetActiveEntry(); |
| 4481 // See comment in UpdateCommandsForTabState about why we call url(). | 4552 // See comment in UpdateCommandsForTabState about why we call url(). |
| 4482 if (!SavePackage::IsSavableURL(active_entry ? active_entry->url() : GURL())) | 4553 if (!SavePackage::IsSavableURL(active_entry ? active_entry->url() : GURL())) |
| 4483 content_restrictions |= CONTENT_RESTRICTION_SAVE; | 4554 content_restrictions |= CONTENT_RESTRICTION_SAVE; |
| 4484 } | 4555 } |
| 4485 return content_restrictions; | 4556 return content_restrictions; |
| 4486 } | 4557 } |
| OLD | NEW |