| 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 2025 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2036 const PrefService::Preference* home_page_is_new_tab_page_pref = | 2036 const PrefService::Preference* home_page_is_new_tab_page_pref = |
| 2037 prefs->FindPreference(prefs::kHomePageIsNewTabPage); | 2037 prefs->FindPreference(prefs::kHomePageIsNewTabPage); |
| 2038 if (home_page_is_new_tab_page_pref && | 2038 if (home_page_is_new_tab_page_pref && |
| 2039 !home_page_is_new_tab_page_pref->IsManaged() && | 2039 !home_page_is_new_tab_page_pref->IsManaged() && |
| 2040 !prefs->HasPrefPath(prefs::kHomePageIsNewTabPage)) | 2040 !prefs->HasPrefPath(prefs::kHomePageIsNewTabPage)) |
| 2041 prefs->SetBoolean(prefs::kHomePageIsNewTabPage, false); | 2041 prefs->SetBoolean(prefs::kHomePageIsNewTabPage, false); |
| 2042 } | 2042 } |
| 2043 | 2043 |
| 2044 // static | 2044 // static |
| 2045 void Browser::RegisterPrefs(PrefService* prefs) { | 2045 void Browser::RegisterPrefs(PrefService* prefs) { |
| 2046 prefs->RegisterIntegerPref(prefs::kOptionsWindowLastTabIndex, 0); | 2046 prefs->RegisterIntegerPref(prefs::kOptionsWindowLastTabIndex, |
| 2047 prefs->RegisterIntegerPref(prefs::kExtensionSidebarWidth, -1); | 2047 0, |
| 2048 prefs->RegisterIntegerPref(prefs::kMultipleProfilePrefMigration, 0); | 2048 false /* don't sync pref */); |
| 2049 prefs->RegisterBooleanPref(prefs::kAllowFileSelectionDialogs, true); | 2049 prefs->RegisterIntegerPref(prefs::kExtensionSidebarWidth, |
| 2050 -1, |
| 2051 false /* don't sync pref */); |
| 2052 prefs->RegisterIntegerPref(prefs::kMultipleProfilePrefMigration, |
| 2053 0, |
| 2054 false /* don't sync pref */); |
| 2055 prefs->RegisterBooleanPref(prefs::kAllowFileSelectionDialogs, |
| 2056 true, |
| 2057 false /* don't sync pref */); |
| 2050 // Educated guess: Chrome has a bundled Flash version supporting | 2058 // Educated guess: Chrome has a bundled Flash version supporting |
| 2051 // clearing LSO data, Chromium hasn't. | 2059 // clearing LSO data, Chromium hasn't. |
| 2052 #if defined(GOOGLE_CHROME_BUILD) | 2060 #if defined(GOOGLE_CHROME_BUILD) |
| 2053 prefs->RegisterBooleanPref(prefs::kClearPluginLSODataEnabled, true); | 2061 prefs->RegisterBooleanPref(prefs::kClearPluginLSODataEnabled, |
| 2062 true, |
| 2063 false /* don't sync pref */); |
| 2054 #else | 2064 #else |
| 2055 prefs->RegisterBooleanPref(prefs::kClearPluginLSODataEnabled, false); | 2065 prefs->RegisterBooleanPref(prefs::kClearPluginLSODataEnabled, |
| 2066 false, |
| 2067 false /* don't sync pref */); |
| 2056 #endif | 2068 #endif |
| 2057 } | 2069 } |
| 2058 | 2070 |
| 2059 // static | 2071 // static |
| 2060 void Browser::RegisterUserPrefs(PrefService* prefs) { | 2072 void Browser::RegisterUserPrefs(PrefService* prefs) { |
| 2061 prefs->RegisterStringPref(prefs::kHomePage, | 2073 prefs->RegisterStringPref(prefs::kHomePage, |
| 2062 chrome::kChromeUINewTabURL); | 2074 chrome::kChromeUINewTabURL, |
| 2063 prefs->RegisterBooleanPref(prefs::kHomePageIsNewTabPage, true); | 2075 true /* sync pref */); |
| 2064 prefs->RegisterBooleanPref(prefs::kShowHomeButton, false); | 2076 prefs->RegisterBooleanPref(prefs::kHomePageIsNewTabPage, |
| 2077 true, |
| 2078 true /* sync pref */); |
| 2079 prefs->RegisterBooleanPref(prefs::kShowHomeButton, |
| 2080 false, |
| 2081 true /* sync pref */); |
| 2065 #if defined(OS_MACOSX) | 2082 #if defined(OS_MACOSX) |
| 2066 // This really belongs in platform code, but there's no good place to | 2083 // This really belongs in platform code, but there's no good place to |
| 2067 // initialize it between the time when the AppController is created | 2084 // initialize it between the time when the AppController is created |
| 2068 // (where there's no profile) and the time the controller gets another | 2085 // (where there's no profile) and the time the controller gets another |
| 2069 // crack at the start of the main event loop. By that time, BrowserInit | 2086 // crack at the start of the main event loop. By that time, BrowserInit |
| 2070 // has already created the browser window, and it's too late: we need the | 2087 // has already created the browser window, and it's too late: we need the |
| 2071 // pref to be already initialized. Doing it here also saves us from having | 2088 // pref to be already initialized. Doing it here also saves us from having |
| 2072 // to hard-code pref registration in the several unit tests that use | 2089 // to hard-code pref registration in the several unit tests that use |
| 2073 // this preference. | 2090 // this preference. |
| 2074 prefs->RegisterBooleanPref(prefs::kConfirmToQuitEnabled, false); | 2091 prefs->RegisterBooleanPref(prefs::kConfirmToQuitEnabled, |
| 2075 prefs->RegisterBooleanPref(prefs::kShowUpdatePromotionInfoBar, true); | 2092 false, |
| 2093 true /* sync pref */); |
| 2094 prefs->RegisterBooleanPref(prefs::kShowUpdatePromotionInfoBar, |
| 2095 true, |
| 2096 false /* don't sync pref */); |
| 2076 #endif | 2097 #endif |
| 2077 prefs->RegisterBooleanPref(prefs::kDeleteBrowsingHistory, true); | 2098 prefs->RegisterBooleanPref(prefs::kDeleteBrowsingHistory, |
| 2078 prefs->RegisterBooleanPref(prefs::kDeleteDownloadHistory, true); | 2099 true, |
| 2079 prefs->RegisterBooleanPref(prefs::kDeleteCache, true); | 2100 true /* sync pref */); |
| 2080 prefs->RegisterBooleanPref(prefs::kDeleteCookies, true); | 2101 prefs->RegisterBooleanPref(prefs::kDeleteDownloadHistory, |
| 2081 prefs->RegisterBooleanPref(prefs::kDeletePasswords, false); | 2102 true, |
| 2082 prefs->RegisterBooleanPref(prefs::kDeleteFormData, false); | 2103 true /* sync pref */); |
| 2083 prefs->RegisterIntegerPref(prefs::kDeleteTimePeriod, 0); | 2104 prefs->RegisterBooleanPref(prefs::kDeleteCache, true, true /* sync pref */); |
| 2084 prefs->RegisterBooleanPref(prefs::kCheckDefaultBrowser, true); | 2105 prefs->RegisterBooleanPref(prefs::kDeleteCookies, |
| 2085 prefs->RegisterBooleanPref(prefs::kShowOmniboxSearchHint, true); | 2106 true, |
| 2086 prefs->RegisterBooleanPref(prefs::kWebAppCreateOnDesktop, true); | 2107 true /* sync pref */); |
| 2087 prefs->RegisterBooleanPref(prefs::kWebAppCreateInAppsMenu, true); | 2108 prefs->RegisterBooleanPref(prefs::kDeletePasswords, |
| 2088 prefs->RegisterBooleanPref(prefs::kWebAppCreateInQuickLaunchBar, true); | 2109 false, |
| 2089 prefs->RegisterBooleanPref(prefs::kUseVerticalTabs, false); | 2110 true /* sync pref */); |
| 2090 prefs->RegisterBooleanPref(prefs::kEnableTranslate, true); | 2111 prefs->RegisterBooleanPref(prefs::kDeleteFormData, |
| 2091 prefs->RegisterBooleanPref(prefs::kEnableBookmarkBar, true); | 2112 false, |
| 2092 prefs->RegisterBooleanPref(prefs::kRemotingHasSetupCompleted, false); | 2113 true /* sync pref */); |
| 2093 prefs->RegisterBooleanPref(prefs::kChromotingEnabled, false); | 2114 prefs->RegisterIntegerPref(prefs::kDeleteTimePeriod, |
| 2094 prefs->RegisterBooleanPref(prefs::kChromotingHostEnabled, false); | 2115 0, |
| 2095 prefs->RegisterBooleanPref(prefs::kChromotingHostFirewallTraversal, false); | 2116 true /* sync pref */); |
| 2096 prefs->RegisterStringPref(prefs::kCloudPrintEmail, std::string()); | 2117 prefs->RegisterBooleanPref(prefs::kCheckDefaultBrowser, |
| 2097 prefs->RegisterBooleanPref(prefs::kCloudPrintProxyEnabled, true); | 2118 true, |
| 2098 prefs->RegisterBooleanPref(prefs::kDevToolsDisabled, false); | 2119 false /* don't sync pref */); |
| 2099 prefs->RegisterBooleanPref(prefs::kIncognitoEnabled, true); | 2120 prefs->RegisterBooleanPref(prefs::kShowOmniboxSearchHint, |
| 2100 prefs->RegisterIntegerPref(prefs::kDevToolsSplitLocation, -1); | 2121 true, |
| 2101 prefs->RegisterDictionaryPref(prefs::kBrowserWindowPlacement); | 2122 false /* don't sync pref */); |
| 2102 prefs->RegisterDictionaryPref(prefs::kPreferencesWindowPlacement); | 2123 prefs->RegisterBooleanPref(prefs::kWebAppCreateOnDesktop, |
| 2124 true, |
| 2125 false /* don't sync pref */); |
| 2126 prefs->RegisterBooleanPref(prefs::kWebAppCreateInAppsMenu, |
| 2127 true, |
| 2128 false /* don't sync pref */); |
| 2129 prefs->RegisterBooleanPref(prefs::kWebAppCreateInQuickLaunchBar, |
| 2130 true, |
| 2131 false /* don't sync pref */); |
| 2132 prefs->RegisterBooleanPref(prefs::kUseVerticalTabs, |
| 2133 false, |
| 2134 false /* don't sync pref */); |
| 2135 prefs->RegisterBooleanPref(prefs::kEnableTranslate, |
| 2136 true, |
| 2137 true /* sync pref */); |
| 2138 prefs->RegisterBooleanPref(prefs::kEnableBookmarkBar, |
| 2139 true, |
| 2140 false /* don't sync pref */); |
| 2141 prefs->RegisterBooleanPref(prefs::kRemotingHasSetupCompleted, |
| 2142 false, |
| 2143 false /* don't sync pref */); |
| 2144 prefs->RegisterBooleanPref(prefs::kChromotingEnabled, |
| 2145 false, |
| 2146 false /* don't sync pref */); |
| 2147 prefs->RegisterBooleanPref(prefs::kChromotingHostEnabled, |
| 2148 false, |
| 2149 false /* don't sync pref */); |
| 2150 prefs->RegisterBooleanPref(prefs::kChromotingHostFirewallTraversal, |
| 2151 false, |
| 2152 false /* don't sync pref */); |
| 2153 prefs->RegisterStringPref(prefs::kCloudPrintEmail, |
| 2154 std::string(), |
| 2155 false /* don't sync pref */); |
| 2156 prefs->RegisterBooleanPref(prefs::kCloudPrintProxyEnabled, |
| 2157 true, |
| 2158 false /* don't sync pref */); |
| 2159 prefs->RegisterBooleanPref(prefs::kDevToolsDisabled, |
| 2160 false, |
| 2161 false /* don't sync pref */); |
| 2162 prefs->RegisterBooleanPref(prefs::kIncognitoEnabled, |
| 2163 true, |
| 2164 false /* don't sync pref */); |
| 2165 prefs->RegisterIntegerPref(prefs::kDevToolsSplitLocation, |
| 2166 -1, |
| 2167 false /* don't sync pref */); |
| 2168 prefs->RegisterDictionaryPref(prefs::kBrowserWindowPlacement, |
| 2169 false /* don't sync pref */); |
| 2170 prefs->RegisterDictionaryPref(prefs::kPreferencesWindowPlacement, |
| 2171 false /* don't sync pref */); |
| 2103 // We need to register the type of these preferences in order to query | 2172 // We need to register the type of these preferences in order to query |
| 2104 // them even though they're typically only controlled via policy or command | 2173 // them even though they're only typically controlled via policy. |
| 2105 // line switches. | 2174 prefs->RegisterBooleanPref(prefs::kDisable3DAPIs, |
| 2106 prefs->RegisterBooleanPref(prefs::kDisable3DAPIs, false); | 2175 false, |
| 2107 prefs->RegisterBooleanPref(prefs::kPluginsAllowOutdated, false); | 2176 false /* don't sync pref */); |
| 2108 prefs->RegisterBooleanPref(prefs::kPluginsAlwaysAuthorize, false); | 2177 prefs->RegisterBooleanPref(prefs::kPluginsAllowOutdated, |
| 2109 prefs->RegisterBooleanPref(prefs::kEnableHyperlinkAuditing, true); | 2178 false, |
| 2110 prefs->RegisterBooleanPref(prefs::kEnableReferrers, true); | 2179 false /* don't sync pref */); |
| 2180 prefs->RegisterBooleanPref(prefs::kPluginsAlwaysAuthorize, |
| 2181 false, |
| 2182 false /* don't sync pref */); |
| 2183 prefs->RegisterBooleanPref(prefs::kEnableHyperlinkAuditing, |
| 2184 true, |
| 2185 false /* don't sync pref */); |
| 2186 prefs->RegisterBooleanPref(prefs::kEnableReferrers, |
| 2187 true, |
| 2188 false /* don't sync pref */); |
| 2111 } | 2189 } |
| 2112 | 2190 |
| 2113 // static | 2191 // static |
| 2114 bool Browser::RunUnloadEventsHelper(TabContents* contents) { | 2192 bool Browser::RunUnloadEventsHelper(TabContents* contents) { |
| 2115 // If the TabContents is not connected yet, then there's no unload | 2193 // If the TabContents is not connected yet, then there's no unload |
| 2116 // handler we can fire even if the TabContents has an unload listener. | 2194 // handler we can fire even if the TabContents has an unload listener. |
| 2117 // One case where we hit this is in a tab that has an infinite loop | 2195 // One case where we hit this is in a tab that has an infinite loop |
| 2118 // before load. | 2196 // before load. |
| 2119 if (contents->NeedToFireBeforeUnload()) { | 2197 if (contents->NeedToFireBeforeUnload()) { |
| 2120 // If the page has unload listeners, then we tell the renderer to fire | 2198 // If the page has unload listeners, then we tell the renderer to fire |
| (...skipping 2210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4331 | 4409 |
| 4332 // Only register once for each app name. | 4410 // Only register once for each app name. |
| 4333 if (g_app_names->find(app_name) != g_app_names->end()) | 4411 if (g_app_names->find(app_name) != g_app_names->end()) |
| 4334 return; | 4412 return; |
| 4335 g_app_names->insert(app_name); | 4413 g_app_names->insert(app_name); |
| 4336 | 4414 |
| 4337 // We need to register the window position pref. | 4415 // We need to register the window position pref. |
| 4338 std::string window_pref(prefs::kBrowserWindowPlacement); | 4416 std::string window_pref(prefs::kBrowserWindowPlacement); |
| 4339 window_pref.append("_"); | 4417 window_pref.append("_"); |
| 4340 window_pref.append(app_name); | 4418 window_pref.append(app_name); |
| 4341 profile->GetPrefs()->RegisterDictionaryPref(window_pref.c_str()); | 4419 profile->GetPrefs()->RegisterDictionaryPref(window_pref.c_str(), |
| 4420 false /* don't sync pref */); |
| 4342 } | 4421 } |
| 4343 | 4422 |
| 4344 void Browser::TabRestoreServiceChanged(TabRestoreService* service) { | 4423 void Browser::TabRestoreServiceChanged(TabRestoreService* service) { |
| 4345 command_updater_.UpdateCommandEnabled(IDC_RESTORE_TAB, | 4424 command_updater_.UpdateCommandEnabled(IDC_RESTORE_TAB, |
| 4346 !service->entries().empty()); | 4425 !service->entries().empty()); |
| 4347 } | 4426 } |
| 4348 | 4427 |
| 4349 void Browser::TabRestoreServiceDestroyed(TabRestoreService* service) { | 4428 void Browser::TabRestoreServiceDestroyed(TabRestoreService* service) { |
| 4350 if (!tab_restore_service_) | 4429 if (!tab_restore_service_) |
| 4351 return; | 4430 return; |
| (...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4485 TabContents* current_tab = GetSelectedTabContents(); | 4564 TabContents* current_tab = GetSelectedTabContents(); |
| 4486 if (current_tab) { | 4565 if (current_tab) { |
| 4487 content_restrictions = current_tab->content_restrictions(); | 4566 content_restrictions = current_tab->content_restrictions(); |
| 4488 NavigationEntry* active_entry = current_tab->controller().GetActiveEntry(); | 4567 NavigationEntry* active_entry = current_tab->controller().GetActiveEntry(); |
| 4489 // See comment in UpdateCommandsForTabState about why we call url(). | 4568 // See comment in UpdateCommandsForTabState about why we call url(). |
| 4490 if (!SavePackage::IsSavableURL(active_entry ? active_entry->url() : GURL())) | 4569 if (!SavePackage::IsSavableURL(active_entry ? active_entry->url() : GURL())) |
| 4491 content_restrictions |= CONTENT_RESTRICTION_SAVE; | 4570 content_restrictions |= CONTENT_RESTRICTION_SAVE; |
| 4492 } | 4571 } |
| 4493 return content_restrictions; | 4572 return content_restrictions; |
| 4494 } | 4573 } |
| OLD | NEW |