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

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: Fix the previous fix 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 2033 matching lines...) Expand 10 before | Expand all | Expand 10 after
2044 const PrefService::Preference* home_page_is_new_tab_page_pref = 2044 const PrefService::Preference* home_page_is_new_tab_page_pref =
2045 prefs->FindPreference(prefs::kHomePageIsNewTabPage); 2045 prefs->FindPreference(prefs::kHomePageIsNewTabPage);
2046 if (home_page_is_new_tab_page_pref && 2046 if (home_page_is_new_tab_page_pref &&
2047 !home_page_is_new_tab_page_pref->IsManaged() && 2047 !home_page_is_new_tab_page_pref->IsManaged() &&
2048 !prefs->HasPrefPath(prefs::kHomePageIsNewTabPage)) 2048 !prefs->HasPrefPath(prefs::kHomePageIsNewTabPage))
2049 prefs->SetBoolean(prefs::kHomePageIsNewTabPage, false); 2049 prefs->SetBoolean(prefs::kHomePageIsNewTabPage, false);
2050 } 2050 }
2051 2051
2052 // static 2052 // static
2053 void Browser::RegisterPrefs(PrefService* prefs) { 2053 void Browser::RegisterPrefs(PrefService* prefs) {
2054 prefs->RegisterIntegerPref(prefs::kOptionsWindowLastTabIndex, 0); 2054 prefs->RegisterIntegerPref(prefs::kOptionsWindowLastTabIndex,
2055 prefs->RegisterIntegerPref(prefs::kExtensionSidebarWidth, -1); 2055 0,
2056 prefs->RegisterIntegerPref(prefs::kMultipleProfilePrefMigration, 0); 2056 false /* don't sync pref */);
2057 prefs->RegisterBooleanPref(prefs::kAllowFileSelectionDialogs, true); 2057 prefs->RegisterIntegerPref(prefs::kExtensionSidebarWidth,
2058 -1,
2059 false /* don't sync pref */);
2060 prefs->RegisterIntegerPref(prefs::kMultipleProfilePrefMigration,
2061 0,
2062 false /* don't sync pref */);
2063 prefs->RegisterBooleanPref(prefs::kAllowFileSelectionDialogs,
2064 true,
2065 false /* don't sync pref */);
2058 // Educated guess: Chrome has a bundled Flash version supporting 2066 // Educated guess: Chrome has a bundled Flash version supporting
2059 // clearing LSO data, Chromium hasn't. 2067 // clearing LSO data, Chromium hasn't.
2060 #if defined(GOOGLE_CHROME_BUILD) 2068 #if defined(GOOGLE_CHROME_BUILD)
2061 prefs->RegisterBooleanPref(prefs::kClearPluginLSODataEnabled, true); 2069 prefs->RegisterBooleanPref(prefs::kClearPluginLSODataEnabled,
2070 true,
2071 false /* don't sync pref */);
2062 #else 2072 #else
2063 prefs->RegisterBooleanPref(prefs::kClearPluginLSODataEnabled, false); 2073 prefs->RegisterBooleanPref(prefs::kClearPluginLSODataEnabled,
2074 false,
2075 false /* don't sync pref */);
2064 #endif 2076 #endif
2065 } 2077 }
2066 2078
2067 // static 2079 // static
2068 void Browser::RegisterUserPrefs(PrefService* prefs) { 2080 void Browser::RegisterUserPrefs(PrefService* prefs) {
2069 prefs->RegisterStringPref(prefs::kHomePage, 2081 prefs->RegisterStringPref(prefs::kHomePage,
2070 chrome::kChromeUINewTabURL); 2082 chrome::kChromeUINewTabURL,
2071 prefs->RegisterBooleanPref(prefs::kHomePageIsNewTabPage, true); 2083 true /* sync pref */);
2072 prefs->RegisterBooleanPref(prefs::kShowHomeButton, false); 2084 prefs->RegisterBooleanPref(prefs::kHomePageIsNewTabPage,
2085 true,
2086 true /* sync pref */);
2087 prefs->RegisterBooleanPref(prefs::kShowHomeButton,
2088 false,
2089 true /* sync pref */);
2073 #if defined(OS_MACOSX) 2090 #if defined(OS_MACOSX)
2074 // This really belongs in platform code, but there's no good place to 2091 // This really belongs in platform code, but there's no good place to
2075 // initialize it between the time when the AppController is created 2092 // initialize it between the time when the AppController is created
2076 // (where there's no profile) and the time the controller gets another 2093 // (where there's no profile) and the time the controller gets another
2077 // crack at the start of the main event loop. By that time, BrowserInit 2094 // crack at the start of the main event loop. By that time, BrowserInit
2078 // has already created the browser window, and it's too late: we need the 2095 // has already created the browser window, and it's too late: we need the
2079 // pref to be already initialized. Doing it here also saves us from having 2096 // pref to be already initialized. Doing it here also saves us from having
2080 // to hard-code pref registration in the several unit tests that use 2097 // to hard-code pref registration in the several unit tests that use
2081 // this preference. 2098 // this preference.
2082 prefs->RegisterBooleanPref(prefs::kConfirmToQuitEnabled, false); 2099 prefs->RegisterBooleanPref(prefs::kConfirmToQuitEnabled,
2083 prefs->RegisterBooleanPref(prefs::kShowUpdatePromotionInfoBar, true); 2100 false,
2101 true /* sync pref */);
2102 prefs->RegisterBooleanPref(prefs::kShowUpdatePromotionInfoBar,
2103 true,
2104 false /* don't sync pref */);
2084 #endif 2105 #endif
2085 prefs->RegisterBooleanPref(prefs::kDeleteBrowsingHistory, true); 2106 prefs->RegisterBooleanPref(prefs::kDeleteBrowsingHistory,
2086 prefs->RegisterBooleanPref(prefs::kDeleteDownloadHistory, true); 2107 true,
2087 prefs->RegisterBooleanPref(prefs::kDeleteCache, true); 2108 true /* sync pref */);
2088 prefs->RegisterBooleanPref(prefs::kDeleteCookies, true); 2109 prefs->RegisterBooleanPref(prefs::kDeleteDownloadHistory,
2089 prefs->RegisterBooleanPref(prefs::kDeletePasswords, false); 2110 true,
2090 prefs->RegisterBooleanPref(prefs::kDeleteFormData, false); 2111 true /* sync pref */);
2091 prefs->RegisterIntegerPref(prefs::kDeleteTimePeriod, 0); 2112 prefs->RegisterBooleanPref(prefs::kDeleteCache, true, true /* sync pref */);
2092 prefs->RegisterBooleanPref(prefs::kCheckDefaultBrowser, true); 2113 prefs->RegisterBooleanPref(prefs::kDeleteCookies,
2093 prefs->RegisterBooleanPref(prefs::kShowOmniboxSearchHint, true); 2114 true,
2094 prefs->RegisterBooleanPref(prefs::kWebAppCreateOnDesktop, true); 2115 true /* sync pref */);
2095 prefs->RegisterBooleanPref(prefs::kWebAppCreateInAppsMenu, true); 2116 prefs->RegisterBooleanPref(prefs::kDeletePasswords,
2096 prefs->RegisterBooleanPref(prefs::kWebAppCreateInQuickLaunchBar, true); 2117 false,
2097 prefs->RegisterBooleanPref(prefs::kUseVerticalTabs, false); 2118 true /* sync pref */);
2098 prefs->RegisterBooleanPref(prefs::kEnableTranslate, true); 2119 prefs->RegisterBooleanPref(prefs::kDeleteFormData,
2099 prefs->RegisterBooleanPref(prefs::kEnableBookmarkBar, true); 2120 false,
2100 prefs->RegisterBooleanPref(prefs::kRemotingHasSetupCompleted, false); 2121 true /* sync pref */);
2101 prefs->RegisterStringPref(prefs::kCloudPrintEmail, std::string()); 2122 prefs->RegisterIntegerPref(prefs::kDeleteTimePeriod,
2102 prefs->RegisterBooleanPref(prefs::kCloudPrintProxyEnabled, true); 2123 0,
2103 prefs->RegisterBooleanPref(prefs::kDevToolsDisabled, false); 2124 true /* sync pref */);
2104 prefs->RegisterBooleanPref(prefs::kIncognitoEnabled, true); 2125 prefs->RegisterBooleanPref(prefs::kCheckDefaultBrowser,
2105 prefs->RegisterIntegerPref(prefs::kDevToolsSplitLocation, -1); 2126 true,
2106 prefs->RegisterDictionaryPref(prefs::kBrowserWindowPlacement); 2127 false /* don't sync pref */);
2107 prefs->RegisterDictionaryPref(prefs::kPreferencesWindowPlacement); 2128 prefs->RegisterBooleanPref(prefs::kShowOmniboxSearchHint,
2129 true,
2130 false /* don't sync pref */);
2131 prefs->RegisterBooleanPref(prefs::kWebAppCreateOnDesktop,
2132 true,
2133 false /* don't sync pref */);
2134 prefs->RegisterBooleanPref(prefs::kWebAppCreateInAppsMenu,
2135 true,
2136 false /* don't sync pref */);
2137 prefs->RegisterBooleanPref(prefs::kWebAppCreateInQuickLaunchBar,
2138 true,
2139 false /* don't sync pref */);
2140 prefs->RegisterBooleanPref(prefs::kUseVerticalTabs,
2141 false,
2142 false /* don't sync pref */);
2143 prefs->RegisterBooleanPref(prefs::kEnableTranslate,
2144 true,
2145 true /* sync pref */);
2146 prefs->RegisterBooleanPref(prefs::kEnableBookmarkBar,
2147 true,
2148 false /* don't sync pref */);
2149 prefs->RegisterBooleanPref(prefs::kRemotingHasSetupCompleted,
2150 false,
2151 false /* don't sync pref */);
2152 prefs->RegisterStringPref(prefs::kCloudPrintEmail,
2153 std::string(),
2154 false /* don't sync pref */);
2155 prefs->RegisterBooleanPref(prefs::kCloudPrintProxyEnabled,
2156 true,
2157 false /* don't sync pref */);
2158 prefs->RegisterBooleanPref(prefs::kDevToolsDisabled,
2159 false,
2160 false /* don't sync pref */);
2161 prefs->RegisterBooleanPref(prefs::kIncognitoEnabled,
2162 true,
2163 false /* don't sync pref */);
2164 prefs->RegisterIntegerPref(prefs::kDevToolsSplitLocation,
2165 -1,
2166 false /* don't sync pref */);
2167 prefs->RegisterDictionaryPref(prefs::kBrowserWindowPlacement,
2168 false /* don't sync pref */);
2169 prefs->RegisterDictionaryPref(prefs::kPreferencesWindowPlacement,
2170 false /* don't sync pref */);
2108 // We need to register the type of these preferences in order to query 2171 // We need to register the type of these preferences in order to query
2109 // them even though they're typically only controlled via policy or command 2172 // them even though they're only typically controlled via policy.
2110 // line switches. 2173 prefs->RegisterBooleanPref(prefs::kDisable3DAPIs,
2111 prefs->RegisterBooleanPref(prefs::kDisable3DAPIs, false); 2174 false,
2112 prefs->RegisterBooleanPref(prefs::kPluginsAllowOutdated, false); 2175 false /* don't sync pref */);
2113 prefs->RegisterBooleanPref(prefs::kEnableHyperlinkAuditing, true); 2176 prefs->RegisterBooleanPref(prefs::kPluginsAllowOutdated,
2114 prefs->RegisterBooleanPref(prefs::kEnableReferrers, true); 2177 false,
2178 false /* don't sync pref */);
2179 prefs->RegisterBooleanPref(prefs::kEnableHyperlinkAuditing,
2180 true,
2181 false /* don't sync pref */);
2182 prefs->RegisterBooleanPref(prefs::kEnableReferrers,
2183 true,
2184 false /* don't sync pref */);
2115 } 2185 }
2116 2186
2117 // static 2187 // static
2118 bool Browser::RunUnloadEventsHelper(TabContents* contents) { 2188 bool Browser::RunUnloadEventsHelper(TabContents* contents) {
2119 // If the TabContents is not connected yet, then there's no unload 2189 // If the TabContents is not connected yet, then there's no unload
2120 // handler we can fire even if the TabContents has an unload listener. 2190 // handler we can fire even if the TabContents has an unload listener.
2121 // One case where we hit this is in a tab that has an infinite loop 2191 // One case where we hit this is in a tab that has an infinite loop
2122 // before load. 2192 // before load.
2123 if (contents->NeedToFireBeforeUnload()) { 2193 if (contents->NeedToFireBeforeUnload()) {
2124 // If the page has unload listeners, then we tell the renderer to fire 2194 // 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
4322 4392
4323 // Only register once for each app name. 4393 // Only register once for each app name.
4324 if (g_app_names->find(app_name) != g_app_names->end()) 4394 if (g_app_names->find(app_name) != g_app_names->end())
4325 return; 4395 return;
4326 g_app_names->insert(app_name); 4396 g_app_names->insert(app_name);
4327 4397
4328 // We need to register the window position pref. 4398 // We need to register the window position pref.
4329 std::string window_pref(prefs::kBrowserWindowPlacement); 4399 std::string window_pref(prefs::kBrowserWindowPlacement);
4330 window_pref.append("_"); 4400 window_pref.append("_");
4331 window_pref.append(app_name); 4401 window_pref.append(app_name);
4332 profile->GetPrefs()->RegisterDictionaryPref(window_pref.c_str()); 4402 profile->GetPrefs()->RegisterDictionaryPref(window_pref.c_str(),
4403 false /* don't sync pref */);
4333 } 4404 }
4334 4405
4335 void Browser::TabRestoreServiceChanged(TabRestoreService* service) { 4406 void Browser::TabRestoreServiceChanged(TabRestoreService* service) {
4336 command_updater_.UpdateCommandEnabled(IDC_RESTORE_TAB, 4407 command_updater_.UpdateCommandEnabled(IDC_RESTORE_TAB,
4337 !service->entries().empty()); 4408 !service->entries().empty());
4338 } 4409 }
4339 4410
4340 void Browser::TabRestoreServiceDestroyed(TabRestoreService* service) { 4411 void Browser::TabRestoreServiceDestroyed(TabRestoreService* service) {
4341 if (!tab_restore_service_) 4412 if (!tab_restore_service_)
4342 return; 4413 return;
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
4477 TabContents* current_tab = GetSelectedTabContents(); 4548 TabContents* current_tab = GetSelectedTabContents();
4478 if (current_tab) { 4549 if (current_tab) {
4479 content_restrictions = current_tab->content_restrictions(); 4550 content_restrictions = current_tab->content_restrictions();
4480 NavigationEntry* active_entry = current_tab->controller().GetActiveEntry(); 4551 NavigationEntry* active_entry = current_tab->controller().GetActiveEntry();
4481 // See comment in UpdateCommandsForTabState about why we call url(). 4552 // See comment in UpdateCommandsForTabState about why we call url().
4482 if (!SavePackage::IsSavableURL(active_entry ? active_entry->url() : GURL())) 4553 if (!SavePackage::IsSavableURL(active_entry ? active_entry->url() : GURL()))
4483 content_restrictions |= CONTENT_RESTRICTION_SAVE; 4554 content_restrictions |= CONTENT_RESTRICTION_SAVE;
4484 } 4555 }
4485 return content_restrictions; 4556 return content_restrictions;
4486 } 4557 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698