Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(52)

Side by Side Diff: chrome/browser/ui/browser.cc

Issue 6905044: Refactor preference syncing. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Self review Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698