| 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 | 
|---|