| 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 2054 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2065 const PrefService::Preference* home_page_is_new_tab_page_pref = | 2065 const PrefService::Preference* home_page_is_new_tab_page_pref = |
| 2066 prefs->FindPreference(prefs::kHomePageIsNewTabPage); | 2066 prefs->FindPreference(prefs::kHomePageIsNewTabPage); |
| 2067 if (home_page_is_new_tab_page_pref && | 2067 if (home_page_is_new_tab_page_pref && |
| 2068 !home_page_is_new_tab_page_pref->IsManaged() && | 2068 !home_page_is_new_tab_page_pref->IsManaged() && |
| 2069 !prefs->HasPrefPath(prefs::kHomePageIsNewTabPage)) | 2069 !prefs->HasPrefPath(prefs::kHomePageIsNewTabPage)) |
| 2070 prefs->SetBoolean(prefs::kHomePageIsNewTabPage, false); | 2070 prefs->SetBoolean(prefs::kHomePageIsNewTabPage, false); |
| 2071 } | 2071 } |
| 2072 | 2072 |
| 2073 // static | 2073 // static |
| 2074 void Browser::RegisterPrefs(PrefService* prefs) { | 2074 void Browser::RegisterPrefs(PrefService* prefs) { |
| 2075 prefs->RegisterIntegerPref(prefs::kOptionsWindowLastTabIndex, 0); | 2075 prefs->RegisterIntegerPref(prefs::kOptionsWindowLastTabIndex, |
| 2076 prefs->RegisterIntegerPref(prefs::kExtensionSidebarWidth, -1); | 2076 0, |
| 2077 prefs->RegisterIntegerPref(prefs::kMultipleProfilePrefMigration, 0); | 2077 false /* don't sync pref */); |
| 2078 prefs->RegisterBooleanPref(prefs::kAllowFileSelectionDialogs, true); | 2078 prefs->RegisterIntegerPref(prefs::kExtensionSidebarWidth, |
| 2079 -1, |
| 2080 false /* don't sync pref */); |
| 2081 prefs->RegisterIntegerPref(prefs::kMultipleProfilePrefMigration, |
| 2082 0, |
| 2083 false /* don't sync pref */); |
| 2084 prefs->RegisterBooleanPref(prefs::kAllowFileSelectionDialogs, |
| 2085 true, |
| 2086 false /* don't sync pref */); |
| 2079 // Educated guess: Chrome has a bundled Flash version supporting | 2087 // Educated guess: Chrome has a bundled Flash version supporting |
| 2080 // clearing LSO data, Chromium hasn't. | 2088 // clearing LSO data, Chromium hasn't. |
| 2081 #if defined(GOOGLE_CHROME_BUILD) | 2089 #if defined(GOOGLE_CHROME_BUILD) |
| 2082 prefs->RegisterBooleanPref(prefs::kClearPluginLSODataEnabled, true); | 2090 prefs->RegisterBooleanPref(prefs::kClearPluginLSODataEnabled, |
| 2091 true, |
| 2092 false /* don't sync pref */); |
| 2083 #else | 2093 #else |
| 2084 prefs->RegisterBooleanPref(prefs::kClearPluginLSODataEnabled, false); | 2094 prefs->RegisterBooleanPref(prefs::kClearPluginLSODataEnabled, |
| 2095 false, |
| 2096 false /* don't sync pref */); |
| 2085 #endif | 2097 #endif |
| 2086 } | 2098 } |
| 2087 | 2099 |
| 2088 // static | 2100 // static |
| 2089 void Browser::RegisterUserPrefs(PrefService* prefs) { | 2101 void Browser::RegisterUserPrefs(PrefService* prefs) { |
| 2090 prefs->RegisterStringPref(prefs::kHomePage, | 2102 prefs->RegisterStringPref(prefs::kHomePage, |
| 2091 chrome::kChromeUINewTabURL); | 2103 chrome::kChromeUINewTabURL, |
| 2092 prefs->RegisterBooleanPref(prefs::kHomePageIsNewTabPage, true); | 2104 true /* sync pref */); |
| 2093 prefs->RegisterBooleanPref(prefs::kShowHomeButton, false); | 2105 prefs->RegisterBooleanPref(prefs::kHomePageIsNewTabPage, |
| 2106 true, |
| 2107 true /* sync pref */); |
| 2108 prefs->RegisterBooleanPref(prefs::kShowHomeButton, |
| 2109 false, |
| 2110 true /* sync pref */); |
| 2094 #if defined(OS_MACOSX) | 2111 #if defined(OS_MACOSX) |
| 2095 // This really belongs in platform code, but there's no good place to | 2112 // This really belongs in platform code, but there's no good place to |
| 2096 // initialize it between the time when the AppController is created | 2113 // initialize it between the time when the AppController is created |
| 2097 // (where there's no profile) and the time the controller gets another | 2114 // (where there's no profile) and the time the controller gets another |
| 2098 // crack at the start of the main event loop. By that time, BrowserInit | 2115 // crack at the start of the main event loop. By that time, BrowserInit |
| 2099 // has already created the browser window, and it's too late: we need the | 2116 // has already created the browser window, and it's too late: we need the |
| 2100 // pref to be already initialized. Doing it here also saves us from having | 2117 // pref to be already initialized. Doing it here also saves us from having |
| 2101 // to hard-code pref registration in the several unit tests that use | 2118 // to hard-code pref registration in the several unit tests that use |
| 2102 // this preference. | 2119 // this preference. |
| 2103 prefs->RegisterBooleanPref(prefs::kConfirmToQuitEnabled, false); | 2120 prefs->RegisterBooleanPref(prefs::kConfirmToQuitEnabled, |
| 2104 prefs->RegisterBooleanPref(prefs::kShowUpdatePromotionInfoBar, true); | 2121 false, |
| 2122 true /* sync pref */); |
| 2123 prefs->RegisterBooleanPref(prefs::kShowUpdatePromotionInfoBar, |
| 2124 true, |
| 2125 false /* don't sync pref */); |
| 2105 #endif | 2126 #endif |
| 2106 prefs->RegisterBooleanPref(prefs::kDeleteBrowsingHistory, true); | 2127 prefs->RegisterBooleanPref(prefs::kDeleteBrowsingHistory, |
| 2107 prefs->RegisterBooleanPref(prefs::kDeleteDownloadHistory, true); | 2128 true, |
| 2108 prefs->RegisterBooleanPref(prefs::kDeleteCache, true); | 2129 true /* sync pref */); |
| 2109 prefs->RegisterBooleanPref(prefs::kDeleteCookies, true); | 2130 prefs->RegisterBooleanPref(prefs::kDeleteDownloadHistory, |
| 2110 prefs->RegisterBooleanPref(prefs::kDeletePasswords, false); | 2131 true, |
| 2111 prefs->RegisterBooleanPref(prefs::kDeleteFormData, false); | 2132 true /* sync pref */); |
| 2112 prefs->RegisterIntegerPref(prefs::kDeleteTimePeriod, 0); | 2133 prefs->RegisterBooleanPref(prefs::kDeleteCache, true, true /* sync pref */); |
| 2113 prefs->RegisterBooleanPref(prefs::kCheckDefaultBrowser, true); | 2134 prefs->RegisterBooleanPref(prefs::kDeleteCookies, |
| 2114 prefs->RegisterBooleanPref(prefs::kShowOmniboxSearchHint, true); | 2135 true, |
| 2115 prefs->RegisterBooleanPref(prefs::kWebAppCreateOnDesktop, true); | 2136 true /* sync pref */); |
| 2116 prefs->RegisterBooleanPref(prefs::kWebAppCreateInAppsMenu, true); | 2137 prefs->RegisterBooleanPref(prefs::kDeletePasswords, |
| 2117 prefs->RegisterBooleanPref(prefs::kWebAppCreateInQuickLaunchBar, true); | 2138 false, |
| 2118 prefs->RegisterBooleanPref(prefs::kUseVerticalTabs, false); | 2139 true /* sync pref */); |
| 2119 prefs->RegisterBooleanPref(prefs::kEnableTranslate, true); | 2140 prefs->RegisterBooleanPref(prefs::kDeleteFormData, |
| 2120 prefs->RegisterBooleanPref(prefs::kEnableBookmarkBar, true); | 2141 false, |
| 2121 prefs->RegisterBooleanPref(prefs::kRemotingHasSetupCompleted, false); | 2142 true /* sync pref */); |
| 2122 prefs->RegisterBooleanPref(prefs::kChromotingEnabled, false); | 2143 prefs->RegisterIntegerPref(prefs::kDeleteTimePeriod, |
| 2123 prefs->RegisterBooleanPref(prefs::kChromotingHostEnabled, false); | 2144 0, |
| 2124 prefs->RegisterBooleanPref(prefs::kChromotingHostFirewallTraversal, false); | 2145 true /* sync pref */); |
| 2125 prefs->RegisterStringPref(prefs::kCloudPrintEmail, std::string()); | 2146 prefs->RegisterBooleanPref(prefs::kCheckDefaultBrowser, |
| 2126 prefs->RegisterBooleanPref(prefs::kCloudPrintProxyEnabled, true); | 2147 true, |
| 2127 prefs->RegisterBooleanPref(prefs::kDevToolsDisabled, false); | 2148 false /* don't sync pref */); |
| 2128 prefs->RegisterBooleanPref(prefs::kIncognitoEnabled, true); | 2149 prefs->RegisterBooleanPref(prefs::kShowOmniboxSearchHint, |
| 2129 prefs->RegisterIntegerPref(prefs::kDevToolsSplitLocation, -1); | 2150 true, |
| 2130 prefs->RegisterDictionaryPref(prefs::kBrowserWindowPlacement); | 2151 false /* don't sync pref */); |
| 2131 prefs->RegisterDictionaryPref(prefs::kPreferencesWindowPlacement); | 2152 prefs->RegisterBooleanPref(prefs::kWebAppCreateOnDesktop, |
| 2153 true, |
| 2154 false /* don't sync pref */); |
| 2155 prefs->RegisterBooleanPref(prefs::kWebAppCreateInAppsMenu, |
| 2156 true, |
| 2157 false /* don't sync pref */); |
| 2158 prefs->RegisterBooleanPref(prefs::kWebAppCreateInQuickLaunchBar, |
| 2159 true, |
| 2160 false /* don't sync pref */); |
| 2161 prefs->RegisterBooleanPref(prefs::kUseVerticalTabs, |
| 2162 false, |
| 2163 false /* don't sync pref */); |
| 2164 prefs->RegisterBooleanPref(prefs::kEnableTranslate, |
| 2165 true, |
| 2166 true /* sync pref */); |
| 2167 prefs->RegisterBooleanPref(prefs::kEnableBookmarkBar, |
| 2168 true, |
| 2169 false /* don't sync pref */); |
| 2170 prefs->RegisterBooleanPref(prefs::kRemotingHasSetupCompleted, |
| 2171 false, |
| 2172 false /* don't sync pref */); |
| 2173 prefs->RegisterBooleanPref(prefs::kChromotingEnabled, |
| 2174 false, |
| 2175 false /* don't sync pref */); |
| 2176 prefs->RegisterBooleanPref(prefs::kChromotingHostEnabled, |
| 2177 false, |
| 2178 false /* don't sync pref */); |
| 2179 prefs->RegisterBooleanPref(prefs::kChromotingHostFirewallTraversal, |
| 2180 false, |
| 2181 false /* don't sync pref */); |
| 2182 prefs->RegisterStringPref(prefs::kCloudPrintEmail, |
| 2183 std::string(), |
| 2184 false /* don't sync pref */); |
| 2185 prefs->RegisterBooleanPref(prefs::kCloudPrintProxyEnabled, |
| 2186 true, |
| 2187 false /* don't sync pref */); |
| 2188 prefs->RegisterBooleanPref(prefs::kDevToolsDisabled, |
| 2189 false, |
| 2190 false /* don't sync pref */); |
| 2191 prefs->RegisterBooleanPref(prefs::kIncognitoEnabled, |
| 2192 true, |
| 2193 false /* don't sync pref */); |
| 2194 prefs->RegisterIntegerPref(prefs::kDevToolsSplitLocation, |
| 2195 -1, |
| 2196 false /* don't sync pref */); |
| 2197 prefs->RegisterDictionaryPref(prefs::kBrowserWindowPlacement, |
| 2198 false /* don't sync pref */); |
| 2199 prefs->RegisterDictionaryPref(prefs::kPreferencesWindowPlacement, |
| 2200 false /* don't sync pref */); |
| 2132 // We need to register the type of these preferences in order to query | 2201 // We need to register the type of these preferences in order to query |
| 2133 // them even though they're typically only controlled via policy or command | 2202 // them even though they're only typically controlled via policy. |
| 2134 // line switches. | 2203 prefs->RegisterBooleanPref(prefs::kDisable3DAPIs, |
| 2135 prefs->RegisterBooleanPref(prefs::kDisable3DAPIs, false); | 2204 false, |
| 2136 prefs->RegisterBooleanPref(prefs::kPluginsAllowOutdated, false); | 2205 false /* don't sync pref */); |
| 2137 prefs->RegisterBooleanPref(prefs::kPluginsAlwaysAuthorize, false); | 2206 prefs->RegisterBooleanPref(prefs::kPluginsAllowOutdated, |
| 2138 prefs->RegisterBooleanPref(prefs::kEnableHyperlinkAuditing, true); | 2207 false, |
| 2139 prefs->RegisterBooleanPref(prefs::kEnableReferrers, true); | 2208 false /* don't sync pref */); |
| 2140 prefs->RegisterBooleanPref(prefs::kWebKitAllowRunningInsecureContent, false); | 2209 prefs->RegisterBooleanPref(prefs::kPluginsAlwaysAuthorize, |
| 2210 false, |
| 2211 false /* don't sync pref */); |
| 2212 prefs->RegisterBooleanPref(prefs::kEnableHyperlinkAuditing, |
| 2213 true, |
| 2214 false /* don't sync pref */); |
| 2215 prefs->RegisterBooleanPref(prefs::kEnableReferrers, |
| 2216 true, |
| 2217 false /* don't sync pref */); |
| 2218 prefs->RegisterBooleanPref(prefs::kWebKitAllowRunningInsecureContent, |
| 2219 false, |
| 2220 false /* don't sync pref */); |
| 2141 prefs->RegisterBooleanPref(prefs::kWebKitAllowDisplayingInsecureContent, | 2221 prefs->RegisterBooleanPref(prefs::kWebKitAllowDisplayingInsecureContent, |
| 2142 true); | 2222 true, |
| 2223 false /* don't sync pref */); |
| 2143 } | 2224 } |
| 2144 | 2225 |
| 2145 // static | 2226 // static |
| 2146 bool Browser::RunUnloadEventsHelper(TabContents* contents) { | 2227 bool Browser::RunUnloadEventsHelper(TabContents* contents) { |
| 2147 // If the TabContents is not connected yet, then there's no unload | 2228 // If the TabContents is not connected yet, then there's no unload |
| 2148 // handler we can fire even if the TabContents has an unload listener. | 2229 // handler we can fire even if the TabContents has an unload listener. |
| 2149 // One case where we hit this is in a tab that has an infinite loop | 2230 // One case where we hit this is in a tab that has an infinite loop |
| 2150 // before load. | 2231 // before load. |
| 2151 if (contents->NeedToFireBeforeUnload()) { | 2232 if (contents->NeedToFireBeforeUnload()) { |
| 2152 // If the page has unload listeners, then we tell the renderer to fire | 2233 // 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... |
| 4350 Source<TabContents>(contents->tab_contents())); | 4431 Source<TabContents>(contents->tab_contents())); |
| 4351 } | 4432 } |
| 4352 | 4433 |
| 4353 // static | 4434 // static |
| 4354 void Browser::RegisterAppPrefs(const std::string& app_name, Profile* profile) { | 4435 void Browser::RegisterAppPrefs(const std::string& app_name, Profile* profile) { |
| 4355 // We need to register the window position pref. | 4436 // We need to register the window position pref. |
| 4356 std::string window_pref(prefs::kBrowserWindowPlacement); | 4437 std::string window_pref(prefs::kBrowserWindowPlacement); |
| 4357 window_pref.append("_"); | 4438 window_pref.append("_"); |
| 4358 window_pref.append(app_name); | 4439 window_pref.append(app_name); |
| 4359 PrefService* prefs = profile->GetPrefs(); | 4440 PrefService* prefs = profile->GetPrefs(); |
| 4360 if (!prefs->FindPreference(window_pref.c_str())) | 4441 if (!prefs->FindPreference(window_pref.c_str())) { |
| 4361 prefs->RegisterDictionaryPref(window_pref.c_str()); | 4442 prefs->RegisterDictionaryPref(window_pref.c_str(), |
| 4443 false /* don't sync pref */); |
| 4444 } |
| 4362 } | 4445 } |
| 4363 | 4446 |
| 4364 void Browser::TabRestoreServiceChanged(TabRestoreService* service) { | 4447 void Browser::TabRestoreServiceChanged(TabRestoreService* service) { |
| 4365 command_updater_.UpdateCommandEnabled(IDC_RESTORE_TAB, | 4448 command_updater_.UpdateCommandEnabled(IDC_RESTORE_TAB, |
| 4366 !service->entries().empty()); | 4449 !service->entries().empty()); |
| 4367 } | 4450 } |
| 4368 | 4451 |
| 4369 void Browser::TabRestoreServiceDestroyed(TabRestoreService* service) { | 4452 void Browser::TabRestoreServiceDestroyed(TabRestoreService* service) { |
| 4370 if (!tab_restore_service_) | 4453 if (!tab_restore_service_) |
| 4371 return; | 4454 return; |
| (...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4505 TabContents* current_tab = GetSelectedTabContents(); | 4588 TabContents* current_tab = GetSelectedTabContents(); |
| 4506 if (current_tab) { | 4589 if (current_tab) { |
| 4507 content_restrictions = current_tab->content_restrictions(); | 4590 content_restrictions = current_tab->content_restrictions(); |
| 4508 NavigationEntry* active_entry = current_tab->controller().GetActiveEntry(); | 4591 NavigationEntry* active_entry = current_tab->controller().GetActiveEntry(); |
| 4509 // See comment in UpdateCommandsForTabState about why we call url(). | 4592 // See comment in UpdateCommandsForTabState about why we call url(). |
| 4510 if (!SavePackage::IsSavableURL(active_entry ? active_entry->url() : GURL())) | 4593 if (!SavePackage::IsSavableURL(active_entry ? active_entry->url() : GURL())) |
| 4511 content_restrictions |= CONTENT_RESTRICTION_SAVE; | 4594 content_restrictions |= CONTENT_RESTRICTION_SAVE; |
| 4512 } | 4595 } |
| 4513 return content_restrictions; | 4596 return content_restrictions; |
| 4514 } | 4597 } |
| OLD | NEW |