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

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: Rebase + comments 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 2054 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698