Description: Disable the Promo subsystem
 Chromium contains a quite elaborate promo subsystem, partially used to
 advertise it's own features to the user ("Sign in now!"), but also for
 advertisment of third party apps on the "new tab" page.
 Examples include advertisment for games in the chrome web store, and carrier
 deals in ChromeOS. This patch encapsulates all that in
 #ifdef PROMO_SYSTEM, which is disabled by default.
 .
 chromium-browser (29.0.1547.57-nopromo-1) unstable; urgency=medium
 .
   * Disable the promo subsystem by encapsulating every reference to it
     in #ifdef PROMO_SYSTEM
Author: Urs Ganse <urs@nerd2nerd.org>

---
The information above should follow the Patch Tagging Guidelines, please
checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
are templates for supplementary fields that you might want to add:

Bug: http://crbug.com/89499
Bug-Debian: http://bugs.debian.org/634101
Forwarded: no
Last-Update: 2013-10-06

--- chromium-browser-29.0.1547.57-nopromo.orig/src/apps/field_trial_names.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/apps/field_trial_names.cc
@@ -4,6 +4,7 @@
 
 #include "apps/field_trial_names.h"
 
+#ifdef PROMO_SYSTEM
 namespace apps {
 
 // The field trial group name that enables showing the promo.
@@ -17,3 +18,4 @@ const char kResetShowLauncherPromoPrefGr
 const char kLauncherPromoTrialName[] = "ShowAppLauncherPromo";
 
 }  // namespace apps
+#endif /* PROMO_SYSTEM */
--- chromium-browser-29.0.1547.57-nopromo.orig/src/apps/prefs.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/apps/prefs.cc
@@ -27,10 +27,12 @@ void RegisterPrefs(PrefRegistrySimple* r
   registry->RegisterBooleanPref(prefs::kAppLauncherHasBeenEnabled, false);
 #endif
 
+#ifdef PROMO_SYSTEM
   // Identifies whether we should show the app launcher promo or not.
   // Now that a field trial also controls the showing, so the promo won't show
   // unless the pref is set AND the field trial is set to a proper group.
   registry->RegisterBooleanPref(prefs::kShowAppLauncherPromo, true);
+#endif /* PROMO_SYSTEM */
 }
 
 void RegisterUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
--- chromium-browser-29.0.1547.57-nopromo.orig/src/apps/field_trial_names.h
+++ chromium-browser-29.0.1547.57-nopromo/src/apps/field_trial_names.h
@@ -5,6 +5,7 @@
 #ifndef APPS_FIELD_TRIAL_NAMES_H_
 #define APPS_FIELD_TRIAL_NAMES_H_
 
+#ifdef PROMO_SYSTEM
 namespace apps {
 
 // Alphabetical list of field trial names specific to Apps component.
@@ -14,5 +15,6 @@ extern const char kResetShowLauncherProm
 extern const char kLauncherPromoTrialName[];
 
 }  // namespace apps
+#endif /* PROMO_SYSTEM */
 
 #endif  // APPS_FIELD_TRIAL_NAMES_H_
--- chromium-browser-29.0.1547.57-nopromo.orig/src/apps/pref_names.h
+++ chromium-browser-29.0.1547.57-nopromo/src/apps/pref_names.h
@@ -15,7 +15,9 @@ extern const char kAppLaunchForMetroRest
 extern const char kAppLauncherHasBeenEnabled[];
 extern const char kAppLauncherIsEnabled[];
 extern const char kShortcutsHaveBeenCreated[];
+#ifdef PROMO_SYSTEM
 extern const char kShowAppLauncherPromo[];
+#endif /* PROMO_SYSTEM */
 
 }  // namespace prefs
 }  // namespace apps
--- chromium-browser-29.0.1547.57-nopromo.orig/src/apps/pref_names.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/apps/pref_names.cc
@@ -31,8 +31,10 @@ const char kAppLauncherIsEnabled[] =
 // On a transition from false to true, shortcuts are created for all apps.
 const char kShortcutsHaveBeenCreated[] = "apps.shortcuts_have_been_created";
 
+#ifdef PROMO_SYSTEM
 // A boolean identifying if we should show the app launcher promo or not.
 const char kShowAppLauncherPromo[] = "app_launcher.show_promo";
+#endif /* PROMO_SYSTEM */
 
 }  // namespace prefs
 
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/chrome_content_browser_client.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/chrome_content_browser_client.cc
@@ -78,7 +78,9 @@
 #include "chrome/browser/tab_contents/tab_util.h"
 #include "chrome/browser/toolkit_extra_parts.h"
 #include "chrome/browser/ui/chrome_select_file_policy.h"
+#ifdef PROMO_SYSTEM
 #include "chrome/browser/ui/sync/sync_promo_ui.h"
+#endif /* PROMO_SYSTEM */
 #include "chrome/browser/ui/tab_contents/chrome_web_contents_view_delegate.h"
 #include "chrome/browser/ui/webui/chrome_web_ui_controller_factory.h"
 #include "chrome/browser/user_style_sheet_watcher.h"
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/browser_process_impl.h
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/browser_process_impl.h
@@ -26,7 +26,9 @@ class ChromeResourceDispatcherHostDelega
 class CommandLine;
 class RemoteDebuggingServer;
 class PrefRegistrySimple;
+#ifdef PROMO_SYSTEM
 class PromoResourceService;
+#endif /* PROMO_SYSTEM */
 
 #if defined(ENABLE_PLUGIN_INSTALLATION)
 class PluginsResourceService;
@@ -261,7 +263,9 @@ class BrowserProcessImpl : public Browse
   scoped_ptr<ChromeResourceDispatcherHostDelegate>
       resource_dispatcher_host_delegate_;
 
+#ifdef PROMO_SYSTEM
   scoped_refptr<PromoResourceService> promo_resource_service_;
+#endif /* PROMO_SYSTEM */
 
 #if (defined(OS_WIN) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
   base::RepeatingTimer<BrowserProcessImpl> autoupdate_timer_;
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/chrome_browser_field_trials_desktop.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/chrome_browser_field_trials_desktop.cc
@@ -35,10 +35,12 @@ namespace chrome {
 namespace {
 
 void SetupAppLauncherFieldTrial(PrefService* local_state) {
+#ifdef PROMO_SYSTEM
   if (base::FieldTrialList::FindFullName(apps::kLauncherPromoTrialName) ==
       apps::kResetShowLauncherPromoPrefGroupName) {
     local_state->SetBoolean(apps::prefs::kShowAppLauncherPromo, true);
   }
+#endif /* PROMO_SYSTEM */
 }
 
 void AutoLaunchChromeFieldTrial() {
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/browser_process_impl.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/browser_process_impl.cc
@@ -64,7 +64,9 @@
 #include "chrome/browser/thumbnails/render_widget_snapshot_taker.h"
 #include "chrome/browser/ui/bookmarks/bookmark_prompt_controller.h"
 #include "chrome/browser/ui/browser_finder.h"
+#ifdef PROMO_SYSTEM
 #include "chrome/browser/web_resource/promo_resource_service.h"
+#endif /* PROMO_SYSTEM */
 #include "chrome/common/chrome_constants.h"
 #include "chrome/common/chrome_notification_types.h"
 #include "chrome/common/chrome_paths.h"
@@ -892,11 +894,13 @@ void BrowserProcessImpl::PreMainMessageL
 #endif  // defined(ENABLE_PLUGINS)
 
   const CommandLine& command_line = *CommandLine::ForCurrentProcess();
+#ifdef PROMO_SYSTEM
   if (!command_line.HasSwitch(switches::kDisableWebResources)) {
     DCHECK(!promo_resource_service_.get());
     promo_resource_service_ = new PromoResourceService;
     promo_resource_service_->StartAfterDelay();
   }
+#endif /* PROMO_SYSTEM */
 
 #if !defined(OS_ANDROID)
   if (browser_defaults::bookmarks_enabled &&
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/sync/sync_ui_util.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/sync/sync_ui_util.cc
@@ -174,6 +174,7 @@ MessageType GetStatusInfo(ProfileSyncSer
       }
 
       // Check for a passphrase error.
+#ifdef PROMO_SYSTEM
       if (service->IsPassphraseRequired()) {
         if (service->IsPassphraseRequiredForDecryption()) {
           // TODO(lipalani) : Ask tim if this is still needed.
@@ -190,6 +191,7 @@ MessageType GetStatusInfo(ProfileSyncSer
           return SYNC_PROMO;
         }
       }
+#endif /* PROMO_SYSTEM */
 
       // Check to see if sync has been disabled via the dasboard and needs to be
       // set up once again.
@@ -271,6 +273,7 @@ MessageType GetStatusInfoForNewTabPage(P
 
   if (service->HasSyncSetupCompleted() &&
       service->IsPassphraseRequired()) {
+#ifdef PROMO_SYSTEM
     if (service->passphrase_required_reason() == syncer::REASON_ENCRYPTION) {
       // First machine migrating to passwords.  Show as a promotion.
       if (status_label && link_label) {
@@ -292,6 +295,7 @@ MessageType GetStatusInfoForNewTabPage(P
       }
       return SYNC_ERROR;
     }
+#endif /* PROMO_SYSTEM */
   }
 
   // Fallback to default.
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/sync/sync_ui_util.h
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/sync/sync_ui_util.h
@@ -18,8 +18,10 @@ enum MessageType {
   PRE_SYNCED,  // User has not set up sync.
   SYNCED,      // We are synced and authenticated to a gmail account.
   SYNC_ERROR,  // A sync error (such as invalid credentials) has occurred.
+#ifdef PROMO_SYSTEM
   SYNC_PROMO,  // A situation has occurred which should be brought to the user's
                // attention, but not as an error.
+#endif /* PROMO_SYSTEM */
 };
 
 enum StatusLabelStyle {
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/web_resource/notification_promo_mobile_ntp.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/web_resource/notification_promo_mobile_ntp.cc
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#ifdef PROMO_SYSTEM
 #include "chrome/browser/web_resource/notification_promo_mobile_ntp.h"
 
 #include "base/values.h"
@@ -67,3 +68,5 @@ bool NotificationPromoMobileNtp::InitFro
 
   return valid_;
 }
+
+#endif /* PROMO_SYSTEM */
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/web_resource/notification_promo.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/web_resource/notification_promo.cc
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#ifdef PROMO_SYSTEM
 #include "chrome/browser/web_resource/notification_promo.h"
 
 #include <cmath>
@@ -472,3 +473,4 @@ double NotificationPromo::StartTimeForGr
 double NotificationPromo::EndTime() const {
   return end_;
 }
+#endif /* PROMO_SYSTEM */
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/web_resource/promo_resource_service.h
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/web_resource/promo_resource_service.h
@@ -4,6 +4,7 @@
 
 #ifndef CHROME_BROWSER_WEB_RESOURCE_PROMO_RESOURCE_SERVICE_H_
 #define CHROME_BROWSER_WEB_RESOURCE_PROMO_RESOURCE_SERVICE_H_
+#ifdef PROMO_SYSTEM
 
 #include <string>
 
@@ -66,4 +67,5 @@ class PromoResourceService : public WebR
   DISALLOW_COPY_AND_ASSIGN(PromoResourceService);
 };
 
+#endif /* PROMO_SYSTEM */
 #endif  // CHROME_BROWSER_WEB_RESOURCE_PROMO_RESOURCE_SERVICE_H_
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/web_resource/promo_resource_service_mobile_ntp_unittest.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/web_resource/promo_resource_service_mobile_ntp_unittest.cc
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#ifdef PROMO_SYSTEM
 #include <vector>
 
 #include "base/json/json_reader.h"
@@ -180,3 +181,4 @@ TEST_F(PromoResourceServiceMobileNtpTest
 
   promo_test.TestInitFromPrefs();
 }
+#endif /* PROMO_SYSTEM */
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/web_resource/notification_promo_mobile_ntp.h
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/web_resource/notification_promo_mobile_ntp.h
@@ -4,6 +4,7 @@
 
 #ifndef CHROME_BROWSER_WEB_RESOURCE_NOTIFICATION_PROMO_MOBILE_NTP_H_
 #define CHROME_BROWSER_WEB_RESOURCE_NOTIFICATION_PROMO_MOBILE_NTP_H_
+#ifdef PROMO_SYSTEM
 
 #include <string>
 
@@ -86,4 +87,5 @@ class NotificationPromoMobileNtp {
   DISALLOW_COPY_AND_ASSIGN(NotificationPromoMobileNtp);
 };
 
+#endif /* PROMO_SYSTEM */
 #endif  // CHROME_BROWSER_WEB_RESOURCE_NOTIFICATION_PROMO_MOBILE_NTP_H_
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/web_resource/promo_resource_service.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/web_resource/promo_resource_service.cc
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#ifdef PROMO_SYSTEM
+
 #include "chrome/browser/web_resource/promo_resource_service.h"
 
 #include "base/bind.h"
@@ -175,3 +177,5 @@ void PromoResourceService::Unpack(const
       ScheduleNotification(notification_promo);
   }
 }
+
+#endif /* PROMO_SYSTEM */
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/web_resource/promo_resource_service_unittest.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/web_resource/promo_resource_service_unittest.cc
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#ifdef PROMO_SYSTEM
+
 #include <utility>
 #include <vector>
 
@@ -579,3 +581,5 @@ TEST_F(PromoResourceServiceTest, AppLaun
   local_state_.Get()->SetBoolean(apps::prefs::kAppLauncherIsEnabled, true);
   EXPECT_FALSE(promo_test.promo().CanShow());
 }
+
+#endif /* PROMO_SYSTEM */
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/web_resource/notification_promo.h
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/web_resource/notification_promo.h
@@ -4,6 +4,7 @@
 
 #ifndef CHROME_BROWSER_WEB_RESOURCE_NOTIFICATION_PROMO_H_
 #define CHROME_BROWSER_WEB_RESOURCE_NOTIFICATION_PROMO_H_
+#ifdef PROMO_SYSTEM
 
 #include <string>
 
@@ -127,4 +128,5 @@ class NotificationPromo {
   DISALLOW_COPY_AND_ASSIGN(NotificationPromo);
 };
 
+#endif /* PROMO_SYSTEM */
 #endif  // CHROME_BROWSER_WEB_RESOURCE_NOTIFICATION_PROMO_H_
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/signin/signin_browsertest.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/signin/signin_browsertest.cc
@@ -10,7 +10,9 @@
 #include "chrome/browser/signin/signin_manager_factory.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/singleton_tabs.h"
+#ifdef PROMO_SYSTEM
 #include "chrome/browser/ui/sync/sync_promo_ui.h"
+#endif /* PROMO_SYSTEM */
 #include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/browser/ui/webui/signin/login_ui_service.h"
 #include "chrome/browser/ui/webui/signin/login_ui_service_factory.h"
@@ -104,6 +106,7 @@ IN_PROC_BROWSER_TEST_F(SigninBrowserTest
       browser()->profile());
   EXPECT_FALSE(signin->HasSigninProcess());
 
+#ifdef PROMO_SYSTEM
   ui_test_utils::NavigateToURL(browser(), SyncPromoUI::GetSyncPromoURL(
       SyncPromoUI::SOURCE_NTP_LINK, true));
   EXPECT_EQ(kOneClickSigninEnabled, signin->HasSigninProcess());
@@ -135,6 +138,7 @@ IN_PROC_BROWSER_TEST_F(SigninBrowserTest
   EXPECT_EQ(active_tab, browser()->tab_strip_model()->GetActiveWebContents());
   EXPECT_EQ(kOneClickSigninEnabled,
             signin->IsSigninProcess(active_tab_process_id));
+#endif /* PROMO_SYSTEM */
 
   // Navigating away should change the process.
   ui_test_utils::NavigateToURL(browser(), GURL(kNonSigninURL));
@@ -147,6 +151,7 @@ IN_PROC_BROWSER_TEST_F(SigninBrowserTest
       browser()->profile());
   EXPECT_FALSE(signin->HasSigninProcess());
 
+#ifdef PROMO_SYSTEM
   GURL url = SyncPromoUI::GetSyncPromoURL(SyncPromoUI::SOURCE_NTP_LINK, true);
   ui_test_utils::NavigateToURL(browser(), url);
   EXPECT_EQ(kOneClickSigninEnabled, signin->HasSigninProcess());
@@ -156,6 +161,7 @@ IN_PROC_BROWSER_TEST_F(SigninBrowserTest
       browser(), GURL(kNonSigninURL), NEW_BACKGROUND_TAB,
       ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
   EXPECT_EQ(kOneClickSigninEnabled, signin->HasSigninProcess());
+#endif /* PROMO_SYSTEM */
 
   // Navigating away should clear the sign-in process.
   GURL redirect_url("https://accounts.google.com/server-redirect?"
@@ -194,6 +200,7 @@ class BackOnNTPCommitObserver : public c
 // and initiates a back navigation between the point of Commit and
 // DidStopLoading of the NTP.
 IN_PROC_BROWSER_TEST_F(SigninBrowserTest, SigninSkipForNowAndGoBack) {
+#ifdef PROMO_SYSTEM
   GURL ntp_url(chrome::kChromeUINewTabURL);
   GURL start_url =
       SyncPromoUI::GetSyncPromoURL(SyncPromoUI::SOURCE_START_PAGE, true);
@@ -236,5 +243,6 @@ IN_PROC_BROWSER_TEST_F(SigninBrowserTest
       content::NotificationService::AllSources());
   observer.Wait();
   EXPECT_EQ(start_url, web_contents->GetLastCommittedURL());
+#endif /* PROMO_SYSTEM */
 }
 #endif  // CHROME_BROWSER_SIGNIN_SIGNIN_BROWSERTEST_H_
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/prefs/browser_prefs.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/prefs/browser_prefs.cc
@@ -77,7 +77,9 @@
 #include "chrome/browser/ui/search_engines/keyword_editor_controller.h"
 #include "chrome/browser/ui/startup/autolaunch_prompt.h"
 #include "chrome/browser/ui/startup/default_browser_prompt.h"
+#ifdef PROMO_SYSTEM
 #include "chrome/browser/ui/sync/sync_promo_ui.h"
+#endif /* PROMO_SYSTEM */
 #include "chrome/browser/ui/tabs/pinned_tab_codec.h"
 #include "chrome/browser/ui/webui/extensions/extension_settings_handler.h"
 #include "chrome/browser/ui/webui/flags_ui.h"
@@ -87,7 +89,9 @@
 #include "chrome/browser/ui/webui/print_preview/sticky_settings.h"
 #include "chrome/browser/ui/window_snapshot/window_snapshot.h"
 #include "chrome/browser/upgrade_detector.h"
+#ifdef PROMO_SYSTEM
 #include "chrome/browser/web_resource/promo_resource_service.h"
+#endif /* PROMO_SYSTEM */
 #include "chrome/common/metrics/entropy_provider.h"
 #include "chrome/common/pref_names.h"
 #include "components/autofill/core/browser/autofill_manager.h"
@@ -140,7 +144,9 @@
 #include "chrome/browser/chromeos/proxy_config_service_impl.h"
 #include "chrome/browser/chromeos/settings/device_oauth2_token_service.h"
 #include "chrome/browser/chromeos/settings/device_settings_cache.h"
+#ifdef PROMO_SYSTEM
 #include "chrome/browser/chromeos/status/data_promo_notification.h"
+#endif /* PROMO_SYSTEM */
 #include "chrome/browser/chromeos/system/automatic_reboot_manager.h"
 #include "chrome/browser/extensions/api/enterprise_platform_keys_private/enterprise_platform_keys_private_api.h"
 #else
@@ -156,7 +162,9 @@
 #endif
 
 #if defined(OS_ANDROID)
+#ifdef PROMO_SYSTEM
 #include "chrome/browser/ui/webui/ntp/android/promo_handler.h"
+#endif /* PROMO_SYSTEM */
 #endif
 
 #if defined(ENABLE_PLUGIN_INSTALLATION)
@@ -207,7 +215,9 @@ void RegisterLocalState(PrefRegistrySimp
   PrefProxyConfigTrackerImpl::RegisterPrefs(registry);
   ProfileInfoCache::RegisterPrefs(registry);
   ProfileManager::RegisterPrefs(registry);
+#ifdef PROMO_SYSTEM
   PromoResourceService::RegisterPrefs(registry);
+#endif /* PROMO_SYSTEM */
   RegisterPrefsForRecoveryComponent(registry);
   SigninManagerFactory::RegisterPrefs(registry);
   SSLConfigServiceManager::RegisterPrefs(registry);
@@ -254,7 +264,9 @@ void RegisterLocalState(PrefRegistrySimp
 #if defined(OS_CHROMEOS)
   chromeos::AudioDevicesPrefHandlerImpl::RegisterPrefs(registry);
   chromeos::AudioPrefHandlerImpl::RegisterPrefs(registry);
+#ifdef PROMO_SYSTEM
   chromeos::DataPromoNotification::RegisterPrefs(registry);
+#endif /* PROMO_SYSTEM */
   chromeos::DeviceOAuth2TokenService::RegisterPrefs(registry);
   chromeos::device_settings_cache::RegisterPrefs(registry);
   chromeos::default_pinned_apps_field_trial::RegisterPrefs(registry);
@@ -314,7 +326,9 @@ void RegisterUserPrefs(user_prefs::PrefR
   PrefsTabHelper::RegisterUserPrefs(registry);
   Profile::RegisterUserPrefs(registry);
   ProfileImpl::RegisterUserPrefs(registry);
+#ifdef PROMO_SYSTEM
   PromoResourceService::RegisterUserPrefs(registry);
+#endif /* PROMO_SYSTEM */
   ProtocolHandlerRegistry::RegisterUserPrefs(registry);
   RegisterBrowserUserPrefs(registry);
   SessionStartupPref::RegisterUserPrefs(registry);
@@ -341,7 +355,9 @@ void RegisterUserPrefs(user_prefs::PrefR
 #endif
 
 #if defined(OS_ANDROID)
+#ifdef PROMO_SYSTEM
   PromoHandler::RegisterUserPrefs(registry);
+#endif /* PROMO_SYSTEM */
 #endif
 
 #if defined(USE_ASH)
@@ -362,7 +378,9 @@ void RegisterUserPrefs(user_prefs::PrefR
   print_dialog_cloud::RegisterUserPrefs(registry);
   printing::StickySettings::RegisterUserPrefs(registry);
   RegisterAutolaunchUserPrefs(registry);
+#ifdef PROMO_SYSTEM
   SyncPromoUI::RegisterUserPrefs(registry);
+#endif /* PROMO_SYSTEM */
 #endif
 
 #if !defined(OS_ANDROID) && !defined(OS_CHROMEOS)
@@ -397,7 +415,9 @@ void MigrateUserPrefs(Profile* profile)
   prefs->ClearPref(kBackupPref);
 
   PrefsTabHelper::MigrateUserPrefs(prefs);
+#ifdef PROMO_SYSTEM
   PromoResourceService::MigrateUserPrefs(prefs);
+#endif /* PROMO_SYSTEM */
   TranslatePrefs::MigrateUserPrefs(prefs);
 }
 
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/first_run/first_run.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/first_run/first_run.cc
@@ -39,7 +39,9 @@
 #include "chrome/browser/ui/browser_finder.h"
 #include "chrome/browser/ui/global_error/global_error_service.h"
 #include "chrome/browser/ui/global_error/global_error_service_factory.h"
+#ifdef PROMO_SYSTEM
 #include "chrome/browser/ui/sync/sync_promo_ui.h"
+#endif /* PROMO_SYSTEM */
 #include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/browser/ui/webui/ntp/new_tab_ui.h"
 #include "chrome/common/chrome_notification_types.h"
@@ -585,11 +587,13 @@ void FirstRunBubbleLauncher::Observe(
 
   // Suppress the first run bubble if a Gaia sign in page or the continue
   // URL for the sign in page is showing.
+#ifdef PROMO_SYSTEM
   if (contents &&
       (gaia::IsGaiaSignonRealm(contents->GetURL().GetOrigin()) ||
        SyncPromoUI::IsContinueUrlForWebBasedSigninFlow(contents->GetURL()))) {
     return;
   }
+#endif /* PROMO_SYSTEM */
 
   if (contents && contents->GetURL().SchemeIs(chrome::kChromeUIScheme)) {
     // Suppress the first run bubble if 'make chrome metro' flow is showing.
@@ -598,6 +602,7 @@ void FirstRunBubbleLauncher::Observe(
 
     // Suppress the first run bubble if the NTP sync promo bubble is showing
     // or if sign in is in progress.
+#ifdef PROMO_SYSTEM
     if (contents->GetURL().host() == chrome::kChromeUINewTabHost) {
       Profile* profile =
           Profile::FromBrowserContext(contents->GetBrowserContext());
@@ -613,6 +618,7 @@ void FirstRunBubbleLauncher::Observe(
       if (is_promo_bubble_visible || signin_in_progress)
         return;
     }
+#endif /* PROMO_SYSTEM */
   }
 
   // Suppress the first run bubble if a global error bubble is pending.
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/profiles/avatar_menu_model.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/profiles/avatar_menu_model.cc
@@ -316,6 +316,7 @@ void AvatarMenuModel::ClearMenu() {
 }
 
 
+#ifdef PROMO_SYSTEM
 content::WebContents* AvatarMenuModel::BeginSignOut() {
   ProfileManager* profile_manager = g_browser_process->profile_manager();
   Profile* current_profile = browser_->profile();
@@ -347,3 +348,4 @@ content::WebContents* AvatarMenuModel::B
 
   return contents;  // returned for testing purposes
 }
+#endif /* PROMO_SYSTEM */
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/profiles/profile.h
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/profiles/profile.h
@@ -23,7 +23,9 @@ class ExtensionSpecialStoragePolicy;
 class FaviconService;
 class HostContentSettingsMap;
 class PasswordStore;
+#ifdef PROMO_SYSTEM
 class PromoCounter;
+#endif /* PROMO_SYSTEM */
 class ProtocolHandlerRegistry;
 class TestingProfile;
 class WebDataService;
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/profiles/profile_manager.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/profiles/profile_manager.cc
@@ -34,7 +34,9 @@
 #include "chrome/browser/sync/profile_sync_service.h"
 #include "chrome/browser/sync/profile_sync_service_factory.h"
 #include "chrome/browser/ui/browser.h"
+#ifdef PROMO_SYSTEM
 #include "chrome/browser/ui/sync/sync_promo_ui.h"
+#endif /* PROMO_SYSTEM */
 #include "chrome/common/chrome_constants.h"
 #include "chrome/common/chrome_notification_types.h"
 #include "chrome/common/chrome_paths_internal.h"
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/browser_command_controller.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/browser_command_controller.cc
@@ -23,7 +23,9 @@
 #include "chrome/browser/ui/browser_commands.h"
 #include "chrome/browser/ui/browser_window.h"
 #include "chrome/browser/ui/chrome_pages.h"
+#ifdef PROMO_SYSTEM
 #include "chrome/browser/ui/sync/sync_promo_ui.h"
+#endif /* PROMO_SYSTEM */
 #include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/browser/ui/tabs/tab_strip_model_utils.h"
 #include "chrome/common/chrome_notification_types.h"
@@ -692,7 +694,9 @@ void BrowserCommandController::ExecuteCo
       ShowHelp(browser_, HELP_SOURCE_MENU);
       break;
     case IDC_SHOW_SIGNIN:
+#ifdef PROMO_SYSTEM
       ShowBrowserSignin(browser_, SyncPromoUI::SOURCE_MENU);
+#endif /* PROMO_SYSTEM */
       break;
     case IDC_TOGGLE_SPEECH_INPUT:
       ToggleSpeechInput(browser_);
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/browser_mac.h
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/browser_mac.h
@@ -6,7 +6,9 @@
 #define CHROME_BROWSER_UI_BROWSER_MAC_H_
 
 #include "chrome/browser/ui/chrome_pages.h"
+#ifdef PROMO_SYSTEM
 #include "chrome/browser/ui/sync/sync_promo_ui.h"
+#endif /* PROMO_SYSTEM */
 
 class Profile;
 
@@ -19,7 +21,9 @@ void OpenHistoryWindow(Profile* profile)
 void OpenDownloadsWindow(Profile* profile);
 void OpenHelpWindow(Profile* profile, HelpSource source);
 void OpenOptionsWindow(Profile* profile);
+#ifdef PROMO_SYSTEM
 void OpenSyncSetupWindow(Profile* profile, SyncPromoUI::Source source);
+#endif /* PROMO_SYSTEM */
 void OpenClearBrowsingDataDialogWindow(Profile* profile);
 void OpenImportSettingsDialogWindow(Profile* profile);
 void OpenBookmarkManagerWindow(Profile* profile);
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/chrome_pages.h
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/chrome_pages.h
@@ -7,7 +7,10 @@
 
 #include <string>
 
+#include "base/basictypes.h"
+#ifdef PROMO_SYSTEM
 #include "chrome/browser/ui/sync/sync_promo_ui.h"
+#endif /* PROMO_SYSTEM */
 #include "chrome/common/content_settings_types.h"
 
 class Browser;
@@ -58,7 +61,9 @@ void ShowAboutChrome(Browser* browser);
 void ShowSearchEngineSettings(Browser* browser);
 // If the user is already signed in, shows the "Signin" portion of Settings,
 // otherwise initiates signin.
+#ifdef PROMO_SYSTEM
 void ShowBrowserSignin(Browser* browser, SyncPromoUI::Source source);
+#endif /* PROMO_SYSTEM */
 
 // Open a tab to sign into GAIA.
 void ShowGaiaSignin(Browser* browser,
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/browser_mac.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/browser_mac.cc
@@ -51,6 +51,7 @@ void OpenOptionsWindow(Profile* profile)
   browser->window()->Show();
 }
 
+#ifdef PROMO_SYSTEM
 void OpenSyncSetupWindow(Profile* profile, SyncPromoUI::Source source) {
   Browser* browser =
       new Browser(Browser::CreateParams(profile,
@@ -58,6 +59,7 @@ void OpenSyncSetupWindow(Profile* profil
   ShowBrowserSignin(browser, source);
   browser->window()->Show();
 }
+#endif /* PROMO_SYSTEM */
 
 void OpenClearBrowsingDataDialogWindow(Profile* profile) {
   Browser* browser =
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/auto_login_infobar_delegate.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/auto_login_infobar_delegate.cc
@@ -16,7 +16,9 @@
 #include "chrome/browser/infobars/infobar_service.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/signin/ubertoken_fetcher.h"
+#ifdef PROMO_SYSTEM
 #include "chrome/browser/ui/sync/sync_promo_ui.h"
+#endif /* PROMO_SYSTEM */
 #include "chrome/common/chrome_notification_types.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/common/pref_names.h"
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/chrome_pages.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/chrome_pages.cc
@@ -204,6 +204,7 @@ void ShowSearchEngineSettings(Browser* b
   ShowSettingsSubPage(browser, kSearchEnginesSubPage);
 }
 
+#ifdef PROMO_SYSTEM
 void ShowBrowserSignin(Browser* browser, SyncPromoUI::Source source) {
   Profile* original_profile = browser->profile()->GetOriginalProfile();
   SigninManagerBase* manager =
@@ -228,6 +229,7 @@ void ShowBrowserSignin(Browser* browser,
     DCHECK_GT(browser->tab_strip_model()->count(), 0);
   }
 }
+#endif /* PROMO_SYSTEM */
 
 void ShowGaiaSignin(Browser* browser,
                     const std::string& service,
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc
@@ -29,7 +29,9 @@
 #include "chrome/browser/ui/host_desktop.h"
 #include "chrome/browser/ui/startup/startup_browser_creator.h"
 #include "chrome/browser/ui/startup/startup_browser_creator_impl.h"
+#ifdef PROMO_SYSTEM
 #include "chrome/browser/ui/sync/sync_promo_ui.h"
+#endif /* PROMO_SYSTEM */
 #include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/common/pref_names.h"
@@ -451,6 +453,7 @@ IN_PROC_BROWSER_TEST_F(StartupBrowserCre
             tab_strip->GetWebContentsAt(3)->GetURL());
 }
 
+#ifdef PROMO_SYSTEM
 IN_PROC_BROWSER_TEST_F(StartupBrowserCreatorTest, SyncPromoNoWelcomePage) {
   // Trick this test into thinking the promo has been shown for this profile; so
   // that it will show it again (otherwise it skips showing it since
@@ -588,6 +591,7 @@ IN_PROC_BROWSER_TEST_F(StartupBrowserCre
               tab_strip->GetWebContentsAt(1)->GetURL());
   }
 }
+#endif /* PROMO_SYSTEM */
 
 #if !defined(OS_CHROMEOS)
 IN_PROC_BROWSER_TEST_F(StartupBrowserCreatorTest, StartupURLsForTwoProfiles) {
@@ -1039,6 +1043,7 @@ void StartupBrowserCreatorFirstRunTest::
 #endif  // defined(ENABLE_CONFIGURATION_POLICY)
 }
 
+#ifdef PROMO_SYSTEM
 IN_PROC_BROWSER_TEST_F(StartupBrowserCreatorFirstRunTest, SyncPromoForbidden) {
   // Consistently enable the welcome page on all platforms.
   first_run::SetShouldShowWelcomePage();
@@ -1343,6 +1348,7 @@ IN_PROC_BROWSER_TEST_F(StartupBrowserCre
   EXPECT_EQ("title1.html",
             tab_strip->GetWebContentsAt(0)->GetURL().ExtractFileName());
 }
+#endif /* PROMO_SYSTEM */
 #endif  // defined(ENABLE_CONFIGURATION_POLICY)
 
 #endif  // !defined(OS_LINUX) || !defined(GOOGLE_CHROME_BUILD) ||
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/startup/startup_browser_creator_impl.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/startup/startup_browser_creator_impl.cc
@@ -65,11 +65,15 @@
 #include "chrome/browser/ui/startup/obsolete_os_infobar_delegate.h"
 #include "chrome/browser/ui/startup/session_crashed_prompt.h"
 #include "chrome/browser/ui/startup/startup_browser_creator.h"
+#ifdef PROMO_SYSTEM
 #include "chrome/browser/ui/sync/sync_promo_ui.h"
+#endif /* PROMO_SYSTEM */
 #include "chrome/browser/ui/tabs/pinned_tab_codec.h"
 #include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/browser/ui/webui/ntp/app_launcher_handler.h"
+#ifdef PROMO_SYSTEM
 #include "chrome/browser/ui/webui/sync_promo/sync_promo_trial.h"
+#endif /* PROMO_SYSTEM */
 #include "chrome/common/chrome_constants.h"
 #include "chrome/common/chrome_notification_types.h"
 #include "chrome/common/chrome_paths.h"
@@ -936,6 +940,7 @@ void StartupBrowserCreatorImpl::AddStart
       startup_urls->push_back(internals::GetWelcomePageURL());
   }
 
+#ifdef PROMO_SYSTEM
   if (SyncPromoUI::ShouldShowSyncPromoAtStartup(profile_, is_first_run_)) {
     SyncPromoUI::DidShowSyncPromoAtStartup(profile_);
 
@@ -962,6 +967,7 @@ void StartupBrowserCreatorImpl::AddStart
         startup_urls->insert(startup_urls->begin(), sync_promo_url);
     }
   }
+#endif /* PROMO_SYSTEM */
 }
 
 #if !defined(OS_WIN)
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/sync/sync_promo_ui.h
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/sync/sync_promo_ui.h
@@ -4,6 +4,7 @@
 
 #ifndef CHROME_BROWSER_UI_SYNC_SYNC_PROMO_UI_H_
 #define CHROME_BROWSER_UI_SYNC_SYNC_PROMO_UI_H_
+#ifdef PROMO_SYSTEM
 
 #include <string>
 
@@ -84,4 +85,5 @@ class SyncPromoUI {
   DISALLOW_COPY_AND_ASSIGN(SyncPromoUI);
 };
 
+#endif /* PROMO_SYSTEM */
 #endif  // CHROME_BROWSER_UI_SYNC_SYNC_PROMO_UI_H_
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/sync/sync_promo_ui.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/sync/sync_promo_ui.cc
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#ifdef PROMO_SYSTEM
+
 #include "chrome/browser/ui/sync/sync_promo_ui.h"
 
 #include "base/command_line.h"
@@ -273,3 +275,5 @@ bool SyncPromoUI::IsContinueUrlForWebBas
 void SyncPromoUI::ForceWebBasedSigninFlowForTesting(bool force) {
   g_force_web_based_signin_flow = force;
 }
+
+#endif /* PROMO_SYSTEM */
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/sync/one_click_signin_helper_unittest.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/sync/one_click_signin_helper_unittest.cc
@@ -242,7 +242,9 @@ OneClickSigninHelperTest::OneClickSignin
 }
 
 void OneClickSigninHelperTest::SetUp() {
+#ifdef PROMO_SYSTEM
   SyncPromoUI::ForceWebBasedSigninFlowForTesting(true);
+#endif /* PROMO_SYSTEM */
   profile_ = new TestingProfile();
   browser_context_.reset(profile_);
   content::RenderViewHostTestHarness::SetUp();
@@ -250,7 +252,9 @@ void OneClickSigninHelperTest::SetUp() {
 }
 
 void OneClickSigninHelperTest::TearDown() {
+#ifdef PROMO_SYSTEM
   SyncPromoUI::ForceWebBasedSigninFlowForTesting(false);
+#endif /* PROMO_SYSTEM */
   content::RenderViewHostTestHarness::TearDown();
 }
 
@@ -631,10 +635,12 @@ TEST_F(OneClickSigninHelperTest, ShowInf
       OneClickSigninHelper::FromWebContents(web_contents());
   EXPECT_EQ(NULL, helper);
 
+#ifdef PROMO_SYSTEM
   OneClickSigninHelper::ShowInfoBarUIThread(
       "session_index", "email", OneClickSigninHelper::AUTO_ACCEPT_ACCEPTED,
       SyncPromoUI::SOURCE_UNKNOWN, GURL(), process()->GetID(),
       rvh()->GetRoutingID());
+#endif /* PROMO_SYSTEM */
 }
 
 // If Chrome signin is triggered from a webstore install, and user chooses to
@@ -655,11 +661,13 @@ TEST_F(OneClickSigninHelperTest, SigninF
   helper->SetDoNotClearPendingEmailForTesting();
 
   GURL continueUrl("https://chrome.google.com/webstore?source=5");
+#ifdef PROMO_SYSTEM
   OneClickSigninHelper::ShowInfoBarUIThread(
       "session_index", "user@gmail.com",
       OneClickSigninHelper::AUTO_ACCEPT_EXPLICIT,
       SyncPromoUI::SOURCE_WEBSTORE_INSTALL,
       continueUrl, process()->GetID(), rvh()->GetRoutingID());
+#endif /* PROMO_SYSTEM */
 
   SubmitGAIAPassword(helper);
 
@@ -728,6 +736,7 @@ TEST_F(OneClickSigninHelperIOTest, CanOf
                 io_data.get()));
 }
 
+#ifdef PROMO_SYSTEM
 TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThreadReferrer) {
   scoped_ptr<TestProfileIOData> io_data(CreateTestProfileIOData(false));
   std::string continue_url(SyncPromoUI::GetSyncPromoURL(
@@ -766,6 +775,7 @@ TEST_F(OneClickSigninHelperIOTest, CanOf
             OneClickSigninHelper::CanOfferOnIOThreadImpl(
                 valid_gaia_url_, bad_url_3, &request_, io_data.get()));
 }
+#endif /* PROMO_SYSTEM */
 
 TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThreadDisabled) {
   EnableOneClick(false);
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/sync/one_click_signin_helper.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/sync/one_click_signin_helper.cc
@@ -93,8 +93,12 @@ struct StartSyncArgs {
       const std::string& email,
       const std::string& password,
       bool force_same_tab_navigation,
-      bool untrusted_confirmation_required,
-      SyncPromoUI::Source source);
+      bool untrusted_confirmation_required
+#ifdef PROMO_SYSTEM
+      ,SyncPromoUI::Source source);
+#else
+			);
+#endif /* PROMO_SYSTEM */
 
   Profile* profile;
   Browser* browser;
@@ -104,7 +108,9 @@ struct StartSyncArgs {
   std::string password;
   bool force_same_tab_navigation;
   OneClickSigninSyncStarter::ConfirmationRequired confirmation_required;
+#ifdef PROMO_SYSTEM
   SyncPromoUI::Source source;
+#endif /* PROMO_SYSTEM */
 };
 
 StartSyncArgs::StartSyncArgs(
@@ -115,23 +121,33 @@ StartSyncArgs::StartSyncArgs(
     const std::string& email,
     const std::string& password,
     bool force_same_tab_navigation,
-    bool untrusted_confirmation_required,
-    SyncPromoUI::Source source)
+    bool untrusted_confirmation_required
+#ifdef PROMO_SYSTEM
+    ,SyncPromoUI::Source source)
+#else
+		)
+#endif /* PROMO_SYSTEM */
     : profile(profile),
       browser(browser),
       auto_accept(auto_accept),
       session_index(session_index),
       email(email),
       password(password),
-      force_same_tab_navigation(force_same_tab_navigation),
-      source(source) {
+      force_same_tab_navigation(force_same_tab_navigation)
+#ifdef PROMO_SYSTEM
+      ,source(source) {
+#else 
+			{
+#endif /* PROMO_SYSTEM */
   if (untrusted_confirmation_required) {
     confirmation_required = OneClickSigninSyncStarter::CONFIRM_UNTRUSTED_SIGNIN;
+#ifdef PROMO_SYSTEM
   } else if (source == SyncPromoUI::SOURCE_SETTINGS ||
              source == SyncPromoUI::SOURCE_WEBSTORE_INSTALL) {
     // Do not display a status confirmation for webstore installs or re-auth.
     confirmation_required = OneClickSigninSyncStarter::NO_CONFIRMATION;
   } else {
+#endif /* PROMO_SYSTEM */
     confirmation_required = OneClickSigninSyncStarter::CONFIRM_AFTER_SIGNIN;
   }
 }
@@ -149,6 +165,7 @@ void AddEmailToOneClickRejectedList(Prof
   updater->AppendIfNotPresent(new base::StringValue(email));
 }
 
+#ifdef PROMO_SYSTEM
 void LogHistogramValue(SyncPromoUI::Source source, int action) {
   switch (source) {
     case SyncPromoUI::SOURCE_START_PAGE:
@@ -190,6 +207,7 @@ void LogHistogramValue(SyncPromoUI::Sour
   UMA_HISTOGRAM_ENUMERATION("Signin.AllAccessPointActions", action,
                             one_click_signin::HISTOGRAM_MAX);
 }
+#endif /* PROMO_SYSTEM */
 
 void LogOneClickHistogramValue(int action) {
   UMA_HISTOGRAM_ENUMERATION("Signin.OneClickActions", action,
@@ -198,6 +216,7 @@ void LogOneClickHistogramValue(int actio
                             one_click_signin::HISTOGRAM_MAX);
 }
 
+#ifdef PROMO_SYSTEM
 void RedirectToNtpOrAppsPage(content::WebContents* contents,
                              SyncPromoUI::Source source) {
   VLOG(1) << "RedirectToNtpOrAppsPage";
@@ -221,6 +240,7 @@ void RedirectToNtpOrAppsPageIfNecessary(
     RedirectToNtpOrAppsPage(contents, source);
   }
 }
+#endif /* PROMO_SYSTEM */
 
 // Start syncing with the given user information.
 void StartSync(const StartSyncArgs& args,
@@ -281,7 +301,9 @@ void StartExplicitSync(const StartSyncAr
                                 std::string(chrome::kSearchUsersSubPage));
   } else {
     StartSync(args, start_mode);
+#ifdef PROMO_SYSTEM
     RedirectToNtpOrAppsPageIfNecessary(contents, args.source);
+#endif /* PROMO_SYSTEM */
   }
 }
 
@@ -295,6 +317,7 @@ void ClearPendingEmailOnIOThread(content
 // of the known sign in access point (first run, NTP, Apps page, menu, settings)
 // or its an implicit sign in via another Google property.  In the former case,
 // "service" is also checked to make sure its "chromiumsync".
+#ifdef PROMO_SYSTEM
 SyncPromoUI::Source GetSigninSource(const GURL& url, GURL* continue_url) {
   std::string value;
   net::GetValueForKeyInQuery(url, "service", &value);
@@ -323,6 +346,7 @@ SyncPromoUI::Source GetSigninSource(cons
       SyncPromoUI::GetSourceForSyncPromoURL(local_continue_url) :
       SyncPromoUI::SOURCE_UNKNOWN;
 }
+#endif /* PROMO_SYSTEM */
 
 // Returns true if |url| is a valid URL that can occur during the sign in
 // process.  Valid URLs are of the form:
@@ -358,6 +382,7 @@ bool IsValidGaiaSigninRedirectOrResponse
 // or the one click sign in to chrome page.
 // NOTE: This should only be used for logging purposes since it relies on hard
 // coded URLs that could change.
+#ifdef PROMO_SYSTEM
 bool AreWeShowingSignin(GURL url, SyncPromoUI::Source source,
                         std::string email) {
   GURL::Replacements replacements;
@@ -372,6 +397,7 @@ bool AreWeShowingSignin(GURL url, SyncPr
        url.spec().find("ChromeLoginPrompt") != std::string::npos &&
        !email.empty());
 }
+#endif /* PROMO_SYSTEM */
 
 
 // ConfirmEmailDialogDelegate -------------------------------------------------
@@ -511,10 +537,12 @@ void CurrentHistoryCleaner::DidCommitPro
   if (history_index_to_remove_ < nc->GetLastCommittedEntryIndex()) {
     content::NavigationEntry* entry =
         nc->GetEntryAtIndex(history_index_to_remove_);
+#ifdef PROMO_SYSTEM
     if (SyncPromoUI::IsContinueUrlForWebBasedSigninFlow(entry->GetURL()) &&
         nc->RemoveEntryAtIndex(history_index_to_remove_)) {
       delete this;  // Success.
     }
+#endif /* PROMO_SYSTEM */
   }
 }
 
@@ -537,9 +565,13 @@ OneClickSigninHelper::OneClickSigninHelp
     : content::WebContentsObserver(web_contents),
       showing_signin_(false),
       auto_accept_(AUTO_ACCEPT_NONE),
+#ifdef PROMO_SYSTEM
       source_(SyncPromoUI::SOURCE_UNKNOWN),
+#endif /* PROMO_SYSTEM */
       switched_to_advanced_(false),
+#ifdef PROMO_SYSTEM
       original_source_(SyncPromoUI::SOURCE_UNKNOWN),
+#endif /* PROMO_SYSTEM */
       untrusted_navigations_since_signin_visit_(0),
       untrusted_confirmation_required_(false),
       do_not_clear_pending_email_(false) {
@@ -779,7 +811,9 @@ void OneClickSigninHelper::ShowInfoBarIf
 
   // Parse Google-Chrome-SignIn.
   AutoAccept auto_accept = AUTO_ACCEPT_NONE;
+#ifdef PROMO_SYSTEM
   SyncPromoUI::Source source = SyncPromoUI::SOURCE_UNKNOWN;
+#endif /* PROMO_SYSTEM */
   GURL continue_url;
   std::vector<std::string> tokens;
   base::SplitString(google_chrome_signin_value, ',', &tokens);
@@ -796,6 +830,7 @@ void OneClickSigninHelper::ShowInfoBarIf
 
   // If this is an explicit sign in (i.e., first run, NTP, Apps page, menu,
   // settings) then force the auto accept type to explicit.
+#ifdef PROMO_SYSTEM
   source = GetSigninSource(request->url(), &continue_url);
   if (source != SyncPromoUI::SOURCE_UNKNOWN)
     auto_accept = AUTO_ACCEPT_EXPLICIT;
@@ -804,6 +839,7 @@ void OneClickSigninHelper::ShowInfoBarIf
     VLOG(1) << "OneClickSigninHelper::ShowInfoBarIfPossible:"
             << " auto_accept=" << auto_accept;
   }
+#endif /* PROMO_SYSTEM */
 
   // If |session_index|, |email|, |auto_accept|, and |continue_url| all have
   // their default value, don't bother posting a task to the UI thread.
@@ -817,10 +853,12 @@ void OneClickSigninHelper::ShowInfoBarIf
     return;
   }
 
+#ifdef PROMO_SYSTEM
   content::BrowserThread::PostTask(
       content::BrowserThread::UI, FROM_HERE,
       base::Bind(&OneClickSigninHelper::ShowInfoBarUIThread, session_index,
                  email, auto_accept, source, continue_url, child_id, route_id));
+#endif /* PROMO_SYSTEM */
 }
 
 // static
@@ -833,7 +871,9 @@ void OneClickSigninHelper::ShowInfoBarUI
     const std::string& session_index,
     const std::string& email,
     AutoAccept auto_accept,
+#ifdef PROMO_SYSTEM
     SyncPromoUI::Source source,
+#endif /* PROMO_SYSTEM */
     const GURL& continue_url,
     int child_id,
     int route_id) {
@@ -854,10 +894,12 @@ void OneClickSigninHelper::ShowInfoBarUI
   if (auto_accept != AUTO_ACCEPT_NONE)
     helper->auto_accept_ = auto_accept;
 
+#ifdef PROMO_SYSTEM
   if (source != SyncPromoUI::SOURCE_UNKNOWN &&
       helper->source_ == SyncPromoUI::SOURCE_UNKNOWN) {
     helper->source_ = source;
   }
+#endif /* PROMO_SYSTEM */
 
   CanOfferFor can_offer_for =
       (auto_accept != AUTO_ACCEPT_EXPLICIT &&
@@ -905,10 +947,12 @@ void OneClickSigninHelper::ShowInfoBarUI
 void OneClickSigninHelper::RemoveSigninRedirectURLHistoryItem(
     content::WebContents* web_contents) {
   // Only actually remove the item if it's the blank.html continue url.
+#ifdef PROMO_SYSTEM
   if (SyncPromoUI::IsContinueUrlForWebBasedSigninFlow(
           web_contents->GetLastCommittedURL())) {
     new CurrentHistoryCleaner(web_contents);  // will self-destruct when done
   }
+#endif /* PROMO_SYSTEM */
 }
 
 void OneClickSigninHelper::ShowSigninErrorBubble(Browser* browser,
@@ -925,6 +969,7 @@ void OneClickSigninHelper::ShowSigninErr
       BrowserWindow::StartSyncCallback());
 }
 
+#ifdef PROMO_SYSTEM
 void OneClickSigninHelper::RedirectToSignin() {
   VLOG(1) << "OneClickSigninHelper::RedirectToSignin";
 
@@ -941,6 +986,7 @@ void OneClickSigninHelper::RedirectToSig
                                     content::PAGE_TRANSITION_AUTO_TOPLEVEL,
                                     std::string());
 }
+#endif /* PROMO_SYSTEM */
 
 void OneClickSigninHelper::CleanTransientState() {
   VLOG(1) << "OneClickSigninHelper::CleanTransientState";
@@ -948,9 +994,13 @@ void OneClickSigninHelper::CleanTransien
   email_.clear();
   password_.clear();
   auto_accept_ = AUTO_ACCEPT_NONE;
+#ifdef PROMO_SYSTEM
   source_ = SyncPromoUI::SOURCE_UNKNOWN;
+#endif /* PROMO_SYSTEM */
   switched_to_advanced_ = false;
+#ifdef PROMO_SYSTEM
   original_source_ = SyncPromoUI::SOURCE_UNKNOWN;
+#endif /* PROMO_SYSTEM */
   continue_url_ = GURL();
   untrusted_navigations_since_signin_visit_ = 0;
   untrusted_confirmation_required_ = false;
@@ -996,6 +1046,7 @@ void OneClickSigninHelper::SetDoNotClear
   do_not_clear_pending_email_ = true;
 }
 
+#ifdef PROMO_SYSTEM
 void OneClickSigninHelper::NavigateToPendingEntry(
     const GURL& url,
     content::NavigationController::ReloadType reload_type) {
@@ -1020,6 +1071,7 @@ void OneClickSigninHelper::NavigateToPen
       CleanTransientState();
   }
 }
+#endif /* PROMO_SYSTEM */
 
 void OneClickSigninHelper::DidNavigateMainFrame(
     const content::LoadCommittedDetails& details,
@@ -1067,13 +1119,16 @@ void OneClickSigninHelper::DidStopLoadin
     // before the navigation.
     Browser* browser = chrome::FindBrowserWithWebContents(contents);
 
+#ifdef PROMO_SYSTEM
     // Redirect to the landing page and display an error popup.
     RedirectToNtpOrAppsPage(web_contents(), source_);
+#endif /* PROMO_SYSTEM */
     ShowSigninErrorBubble(browser, error_message_);
     CleanTransientState();
     return;
   }
 
+#ifdef PROMO_SYSTEM
   if (AreWeShowingSignin(url, source_, email_)) {
     if (!showing_signin_) {
       if (source_ == SyncPromoUI::SOURCE_UNKNOWN)
@@ -1083,6 +1138,7 @@ void OneClickSigninHelper::DidStopLoadin
     }
     showing_signin_ = true;
   }
+#endif /* PROMO_SYSTEM */
 
   // When Gaia finally redirects to the continue URL, Gaia will add some
   // extra query parameters.  So ignore the parameters when checking to see
@@ -1102,6 +1158,7 @@ void OneClickSigninHelper::DidStopLoadin
   // sync.
   if (email_.empty()) {
     VLOG(1) << "OneClickSigninHelper::DidStopLoading: nothing to do";
+#ifdef PROMO_SYSTEM
     if (continue_url_match && auto_accept_ == AUTO_ACCEPT_EXPLICIT)
       RedirectToSignin();
     std::string unused_value;
@@ -1109,6 +1166,7 @@ void OneClickSigninHelper::DidStopLoadin
       SyncPromoUI::SetUserSkippedSyncPromo(profile);
       RedirectToNtpOrAppsPage(web_contents(), source_);
     }
+#endif /* PROMO_SYSTEM */
 
     if (!continue_url_match && !IsValidGaiaSigninRedirectOrResponseURL(url) &&
         ++untrusted_navigations_since_signin_visit_ > kMaxNavigationsSince) {
@@ -1140,6 +1198,7 @@ void OneClickSigninHelper::DidStopLoadin
   // on the right continue URL.  This is important because the continue URL
   // may itself lead to a redirect, which means this function will never see
   // the continue URL go by.
+#ifdef PROMO_SYSTEM
   if (auto_accept_ == AUTO_ACCEPT_EXPLICIT) {
     DCHECK(source_ != SyncPromoUI::SOURCE_UNKNOWN);
     if (!continue_url_match) {
@@ -1273,6 +1332,7 @@ void OneClickSigninHelper::DidStopLoadin
       NOTREACHED() << "Invalid auto_accept=" << auto_accept_;
       break;
   }
+#endif /* PROMO_SYSTEM */
 
   CleanTransientState();
 }
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/sync/one_click_signin_helper.h
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/sync/one_click_signin_helper.h
@@ -9,7 +9,9 @@
 
 #include "base/gtest_prod_util.h"
 #include "chrome/browser/sync/profile_sync_service_observer.h"
+#ifdef PROMO_SYSTEM
 #include "chrome/browser/ui/sync/sync_promo_ui.h"
+#endif /* PROMO_SYSTEM */
 #include "content/public/browser/navigation_controller.h"
 #include "content/public/browser/web_contents_observer.h"
 #include "content/public/browser/web_contents_user_data.h"
@@ -189,7 +191,9 @@ class OneClickSigninHelper
   static void ShowInfoBarUIThread(const std::string& session_index,
                                   const std::string& email,
                                   AutoAccept auto_accept,
+#ifdef PROMO_SYSTEM
                                   SyncPromoUI::Source source,
+#endif /* PROMO_SYSTEM */
                                   const GURL& continue_url,
                                   int child_id,
                                   int route_id);
@@ -211,9 +215,11 @@ class OneClickSigninHelper
 
   // content::WebContentsObserver overrides.
   virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
+#ifdef PROMO_SYSTEM
   virtual void NavigateToPendingEntry(
       const GURL& url,
       content::NavigationController::ReloadType reload_type) OVERRIDE;
+#endif /* PROMO_SYSTEM */
   virtual void DidNavigateMainFrame(
       const content::LoadCommittedDetails& details,
       const content::FrameNavigateParams& params) OVERRIDE;
@@ -234,10 +240,14 @@ class OneClickSigninHelper
   std::string email_;
   std::string password_;
   AutoAccept auto_accept_;
+#ifdef PROMO_SYSTEM
   SyncPromoUI::Source source_;
+#endif /* PROMO_SYSTEM */
   bool switched_to_advanced_;
   // When switching to advanced settings, we want to track the original source.
+#ifdef PROMO_SYSTEM
   SyncPromoUI::Source original_source_;
+#endif /* PROMO_SYSTEM */
   GURL continue_url_;
   // Redirect URL after sync setup is complete.
   GURL redirect_url_;
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/search/instant_ipc_sender.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/search/instant_ipc_sender.cc
@@ -47,8 +47,10 @@ class InstantIPCSenderImpl : public Inst
   }
 
   virtual void SetPromoInformation(bool is_app_launcher_enabled) OVERRIDE {
+#if PROMO_SYSTEM
     Send(new ChromeViewMsg_SearchBoxPromoInformation(
         routing_id(), is_app_launcher_enabled));
+#endif /* PROMO_SYSTEM */
   }
 
   virtual void SendAutocompleteResults(
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/search/instant_page.h
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/search/instant_page.h
@@ -132,7 +132,9 @@ class InstantPage : public content::WebC
 
   void InitializeFonts();
 
+#ifdef PROMO_SYSTEM
   void InitializePromos();
+#endif /* PROMO_SYSTEM */
 
  protected:
   InstantPage(Delegate* delegate, const std::string& instant_url,
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/search/instant_ipc_sender.h
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/search/instant_ipc_sender.h
@@ -63,7 +63,9 @@ class InstantIPCSender : public content:
                                   size_t omnibox_font_size) {}
 
   // Tells the page information it needs to display promos.
+#ifdef PROMO_SYSTEM
   virtual void SetPromoInformation(bool is_app_launcher_enabled) {}
+#endif /* PROMO_SYSTEM */
 
   // Tells the page about the available autocomplete results.
   virtual void SendAutocompleteResults(
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/search/instant_controller.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/search/instant_controller.cc
@@ -1249,7 +1249,9 @@ void InstantController::InstantPageRende
     ntp_->sender()->SetDisplayInstantResults(instant_enabled_);
     ntp_->sender()->SetOmniboxBounds(omnibox_bounds_);
     ntp_->InitializeFonts();
+#ifdef PROMO_SYSTEM
     ntp_->InitializePromos();
+#endif /* PROMO_SYSTEM */
   } else {
     NOTREACHED();
   }
@@ -1689,7 +1691,9 @@ void InstantController::UpdateInfoForIns
       instant_service->UpdateThemeInfo();
 
     instant_tab_->InitializeFonts();
+#ifdef PROMO_SYSTEM
     instant_tab_->InitializePromos();
+#endif /* PROMO_SYSTEM */
     UpdateMostVisitedItems();
     instant_tab_->sender()->FocusChanged(omnibox_focus_state_,
                                          omnibox_focus_change_reason_);
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/search/instant_page.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/search/instant_page.cc
@@ -58,9 +58,11 @@ void InstantPage::InitializeFonts() {
                                omnibox_font.GetFontSize());
 }
 
+#ifdef PROMO_SYSTEM
 void InstantPage::InitializePromos() {
   sender()->SetPromoInformation(apps::IsAppLauncherEnabled());
 }
+#endif /* PROMO_SYSTEM */
 
 InstantPage::InstantPage(Delegate* delegate, const std::string& instant_url,
                          bool is_incognito)
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/autofill/autofill_dialog_controller_impl.h
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/autofill/autofill_dialog_controller_impl.h
@@ -646,7 +646,9 @@ class AutofillDialogControllerImpl : pub
 
   // Whether the wallet promos should be shown in the notification area. Based
   // on whether the user has paid with Wallet or has signed into this dialog.
+#ifdef PROMO_SYSTEM
   bool should_show_wallet_promo_;
+#endif /* PROMO_SYSTEM */
   bool has_shown_wallet_usage_confirmation_;
 
   // Whether a user accepted legal documents while this dialog is running.
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/autofill/autofill_dialog_controller_impl.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/autofill/autofill_dialog_controller_impl.cc
@@ -1574,6 +1574,7 @@ std::vector<DialogNotification> Autofill
         l10n_util::GetStringFUTF16(
             IDS_AUTOFILL_DIALOG_COMPLETE_WITHOUT_WALLET,
             account_chooser_model_.wallet_error_message())));
+#ifdef PROMO_SYSTEM
   } else if (should_show_wallet_promo_) {
     if (IsPayingWithWallet() && HasCompleteWallet()) {
       notifications.push_back(DialogNotification(
@@ -1592,6 +1593,9 @@ std::vector<DialogNotification> Autofill
       has_shown_wallet_usage_confirmation_ = true;
     }
   }
+#else
+		}
+#endif /* PROMO_SYSTEM */
 
   if (RequestingCreditCardInfo() && !TransmissionWillBeSecure()) {
     notifications.push_back(DialogNotification(
@@ -1802,7 +1806,9 @@ void AutofillDialogControllerImpl::Obser
   content::LoadCommittedDetails* load_details =
       content::Details<content::LoadCommittedDetails>(details).ptr();
   if (wallet::IsSignInContinueUrl(load_details->entry->GetVirtualURL())) {
+#ifdef PROMO_SYSTEM
     should_show_wallet_promo_ = false;
+#endif /* PROMO_SYSTEM */
     HideSignIn();
     account_chooser_model_.SelectActiveWalletAccount();
     GetWalletItems();
@@ -2108,8 +2114,10 @@ AutofillDialogControllerImpl::AutofillDi
       cares_about_shipping_(true),
       input_showing_popup_(NULL),
       weak_ptr_factory_(this),
+#ifdef PROMO_SYSTEM
       should_show_wallet_promo_(!profile_->GetPrefs()->GetBoolean(
           ::prefs::kAutofillDialogHasPaidWithWallet)),
+#endif /* PROMO_SYSTEM */
       has_shown_wallet_usage_confirmation_(false),
       has_accepted_legal_documents_(false),
       is_submitting_(false),
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/app_list/chrome_signin_delegate.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/app_list/chrome_signin_delegate.cc
@@ -13,7 +13,9 @@
 #include "chrome/browser/ui/chrome_pages.h"
 #include "chrome/browser/ui/extensions/application_launch.h"
 #include "chrome/browser/ui/host_desktop.h"
+#ifdef PROMO_SYSTEM
 #include "chrome/browser/ui/sync/sync_promo_ui.h"
+#endif /* PROMO_SYSTEM */
 #include "chrome/common/extensions/extension_constants.h"
 #include "content/public/common/page_transition_types.h"
 #include "grit/chromium_strings.h"
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/views/extensions/extension_installed_bubble.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/views/extensions/extension_installed_bubble.cc
@@ -19,7 +19,9 @@
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_window.h"
 #include "chrome/browser/ui/singleton_tabs.h"
+#ifdef PROMO_SYSTEM
 #include "chrome/browser/ui/sync/sync_promo_ui.h"
+#endif /* PROMO_SYSTEM */
 #include "chrome/browser/ui/views/browser_action_view.h"
 #include "chrome/browser/ui/views/browser_actions_container.h"
 #include "chrome/browser/ui/views/frame/browser_view.h"
@@ -107,7 +109,9 @@ class InstalledBubbleContent : public vi
         bubble_(bubble),
         type_(type),
         flavors_(NONE),
+#ifdef PROMO_SYSTEM
         height_of_signin_promo_(0u),
+#endif /* PROMO_SYSTEM */
         how_to_use_(NULL),
         sign_in_link_(NULL),
         manage_(NULL),
@@ -134,9 +138,11 @@ class InstalledBubbleContent : public vi
     bool has_keybinding = GetKeybinding(&command);
     string16 key;  // Keyboard shortcut or keyword to display in the bubble.
 
+#ifdef PROMO_SYSTEM
     if (extensions::sync_helper::IsSyncableExtension(extension) &&
         SyncPromoUI::ShouldShowSyncPromo(browser->profile()))
       flavors_ |= SIGN_IN_PROMO;
+#endif /* PROMO_SYSTEM */
 
     // Determine the bubble flavor we want, based on the extension type.
     switch (type_) {
@@ -221,6 +227,7 @@ class InstalledBubbleContent : public vi
       AddChildView(manage_);
     }
 
+#ifdef PROMO_SYSTEM
     if (flavors_ & SIGN_IN_PROMO) {
       signin_promo_text_ =
           l10n_util::GetStringUTF16(IDS_EXTENSION_INSTALLED_SIGNIN_PROMO);
@@ -234,6 +241,7 @@ class InstalledBubbleContent : public vi
       sign_in_link_->set_listener(this);
       AddChildView(sign_in_link_);
     }
+#endif /* PROMO_SYSTEM */
 
     // Add the Close button (for all flavors).
     close_button_ = new views::ImageButton(this);
@@ -261,9 +269,11 @@ class InstalledBubbleContent : public vi
     if (source == manage_shortcut_) {
       configure_url = chrome::kChromeUIExtensionsURL;
       configure_url += chrome::kExtensionConfigureCommandsSubPage;
+#ifdef PROMO_SYSTEM
     } else if (source == sign_in_link_) {
       configure_url = SyncPromoUI::GetSyncPromoURL(
           SyncPromoUI::SOURCE_EXTENSION_INSTALL_BUBBLE, false).spec();
+#endif /* PROMO_SYSTEM */
     } else {
       NOTREACHED();
       return;
@@ -280,7 +290,9 @@ class InstalledBubbleContent : public vi
      HOW_TO_USE      = 1 << 0,
      HOW_TO_MANAGE   = 1 << 1,
      SHOW_KEYBINDING = 1 << 2,
+#ifdef PROMO_SYSTEM
      SIGN_IN_PROMO   = 1 << 3,
+#endif /* PROMO_SYSTEM */
    };
 
   bool GetKeybinding(extensions::Command* command) {
@@ -336,6 +348,7 @@ class InstalledBubbleContent : public vi
 
   // Layout the signin promo at coordinates |offset_x| and |offset_y|. Returns
   // the height (in pixels) of the promo UI.
+#ifdef PROMO_SYSTEM
   int LayoutSigninPromo(int offset_x, int offset_y) {
     sign_in_promo_lines_.clear();
     int height = 0;
@@ -387,6 +400,7 @@ class InstalledBubbleContent : public vi
 
     return height;
   }
+#endif /* PROMO_SYSTEM */
 
   virtual gfx::Size GetPreferredSize() OVERRIDE {
     int width = kHorizOuterMargin;
@@ -410,10 +424,12 @@ class InstalledBubbleContent : public vi
       height += kVertInnerMargin;
     }
 
+#ifdef PROMO_SYSTEM
     if (flavors_ & SIGN_IN_PROMO && height_of_signin_promo_ > 0u) {
       height += height_of_signin_promo_;
       height += kVertInnerMargin;
     }
+#endif /* PROMO_SYSTEM */
 
     if (flavors_ & SHOW_KEYBINDING) {
       height += manage_shortcut_->GetHeightForWidth(kRightColumnWidth);
@@ -454,11 +470,13 @@ class InstalledBubbleContent : public vi
       y += kVertInnerMargin;
     }
 
+#ifdef PROMO_SYSTEM
     if (flavors_ & SIGN_IN_PROMO) {
       height_of_signin_promo_ = LayoutSigninPromo(x, y);
       y += height_of_signin_promo_;
       y += kVertInnerMargin;
     }
+#endif /* PROMO_SYSTEM */
 
     if (flavors_ & SHOW_KEYBINDING) {
       gfx::Size sz = manage_shortcut_->GetPreferredSize();
@@ -481,11 +499,13 @@ class InstalledBubbleContent : public vi
   }
 
   virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE {
+#ifdef PROMO_SYSTEM
     for (ScopedVector<gfx::RenderText>::const_iterator it =
              sign_in_promo_lines_.begin();
          it != sign_in_promo_lines_.end(); ++it)
       (*it)->Draw(canvas);
 
+#endif /* PROMO_SYSTEM */
     views::View::OnPaint(canvas);
   }
 
@@ -500,6 +520,7 @@ class InstalledBubbleContent : public vi
 
   // The string that contains the link text at the beginning of the sign-in
   // promo text.
+#ifdef PROMO_SYSTEM
   string16 signin_promo_link_text_;
   // The remaining text of the sign-in promo text.
   string16 signin_promo_text_;
@@ -508,6 +529,7 @@ class InstalledBubbleContent : public vi
   // paragraph as layed out within the bubble, but has the text of the link
   // whited out so the link can be drawn in its place.
   ScopedVector<gfx::RenderText> sign_in_promo_lines_;
+#endif /* PROMO_SYSTEM */
 
   // The type of the bubble to show (Browser Action, Omnibox keyword, etc).
   ExtensionInstalledBubble::BubbleType type_;
@@ -516,7 +538,9 @@ class InstalledBubbleContent : public vi
   int flavors_;
 
   // The height, in pixels, of the sign-in promo.
+#ifdef PROMO_SYSTEM
   size_t height_of_signin_promo_;
+#endif /* PROMO_SYSTEM */
 
   views::ImageView* icon_;
   views::Label* heading_;
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/webui/sync_setup_handler.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/webui/sync_setup_handler.cc
@@ -29,7 +29,9 @@
 #include "chrome/browser/ui/browser_finder.h"
 #include "chrome/browser/ui/browser_navigator.h"
 #include "chrome/browser/ui/sync/signin_histogram.h"
+#ifdef PROMO_SYSTEM
 #include "chrome/browser/ui/sync/sync_promo_ui.h"
+#endif /* PROMO_SYSTEM */
 #include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/browser/ui/webui/signin/login_ui_service.h"
 #include "chrome/browser/ui/webui/signin/login_ui_service_factory.h"
@@ -328,11 +330,13 @@ void SyncSetupHandler::GetStaticLocalize
     // TODO(rogerta): browser/resource/sync_promo/sync_promo.html and related
     // file may not be needed any more.  If not, then the following promo
     // strings can also be removed.
+#ifdef PROMO_SYSTEM
     { "promoPageTitle", IDS_SYNC_PROMO_TAB_TITLE },
     { "promoSkipButton", IDS_SYNC_PROMO_SKIP_BUTTON },
     { "promoAdvanced", IDS_SYNC_PROMO_ADVANCED },
     { "promoLearnMore", IDS_LEARN_MORE },
     { "promoTitleShort", IDS_SYNC_PROMO_MESSAGE_TITLE_SHORT },
+#endif /* PROMO_SYSTEM */
     { "encryptionSectionTitle", IDS_SYNC_ENCRYPTION_SECTION_TITLE },
     { "basicEncryptionOption", IDS_SYNC_BASIC_ENCRYPTION_DATA },
     { "fullEncryptionOption", IDS_SYNC_FULL_ENCRYPTION_DATA },
@@ -492,7 +496,9 @@ void SyncSetupHandler::ConfigureSyncDone
 
   // Suppress the sync promo once the user signs into sync. This way the user
   // doesn't see the sync promo even if they sign out of sync later on.
+#ifdef PROMO_SYSTEM
   SyncPromoUI::SetUserSkippedSyncPromo(GetProfile());
+#endif /* PROMO_SYSTEM */
 
   ProfileSyncService* service = GetSyncService();
   DCHECK(service);
@@ -564,6 +570,7 @@ void SyncSetupHandler::DisplayGaiaLogin(
 
 void SyncSetupHandler::DisplayGaiaLoginInNewTabOrWindow() {
   DCHECK(!active_gaia_signin_tab_);
+#ifdef PROMO_SYSTEM
   GURL url(SyncPromoUI::GetSyncPromoURL(SyncPromoUI::SOURCE_SETTINGS, false));
   Browser* browser = chrome::FindBrowserWithWebContents(
       web_ui()->GetWebContents());
@@ -593,6 +600,7 @@ void SyncSetupHandler::DisplayGaiaLoginI
       content::OpenURLParams(url, content::Referrer(), SINGLETON_TAB,
                              content::PAGE_TRANSITION_AUTO_BOOKMARK, false));
   content::WebContentsObserver::Observe(active_gaia_signin_tab_);
+#endif /* PROMO_SYSTEM */
 }
 #endif
 
@@ -1049,6 +1057,7 @@ void SyncSetupHandler::DidStopLoading(
   // this means sign in was successful.  Ignore the source parameter in the
   // continue URL since this user may have changed the state of the
   // "Let me choose what to sync" checkbox.
+#ifdef PROMO_SYSTEM
   const GURL& url = active_gaia_signin_tab_->GetURL();
   const GURL continue_url =
       SyncPromoUI::GetNextPageURLForSyncPromoURL(
@@ -1064,6 +1073,7 @@ void SyncSetupHandler::DidStopLoading(
     active_gaia_signin_tab_ = NULL;
     CloseSyncSetup();
   }
+#endif /* PROMO_SYSTEM */
 }
 
 void SyncSetupHandler::WebContentsDestroyed(
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/webui/set_as_default_browser_ui.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/webui/set_as_default_browser_ui.cc
@@ -23,7 +23,9 @@
 #include "chrome/browser/ui/browser_window.h"
 #include "chrome/browser/ui/chrome_pages.h"
 #include "chrome/browser/ui/singleton_tabs.h"
+#ifdef PROMO_SYSTEM
 #include "chrome/browser/ui/sync/sync_promo_ui.h"
+#endif /* PROMO_SYSTEM */
 #include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/common/url_constants.h"
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
@@ -107,7 +107,9 @@
 #endif
 
 #if !defined(OS_CHROMEOS) && !defined(OS_ANDROID)
+#ifdef PROMO_SYSTEM
 #include "chrome/browser/ui/sync/sync_promo_ui.h"
+#endif /* PROMO_SYSTEM */
 #endif
 
 #if defined(OS_WIN)
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/webui/flags_ui.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/webui/flags_ui.cc
@@ -56,9 +56,11 @@ content::WebUIDataSource* CreateFlagsUIH
                              IDS_FLAGS_NO_EXPERIMENTS_AVAILABLE);
   source->AddLocalizedString("flagsWarningHeader", IDS_FLAGS_WARNING_HEADER);
   source->AddLocalizedString("flagsBlurb", IDS_FLAGS_WARNING_TEXT);
+#ifdef PROMO_SYSTEM
   source->AddLocalizedString("channelPromoBeta",
                              IDS_FLAGS_PROMOTE_BETA_CHANNEL);
   source->AddLocalizedString("channelPromoDev", IDS_FLAGS_PROMOTE_DEV_CHANNEL);
+#endif /* PROMO_SYSTEM */
   source->AddLocalizedString("flagsUnsupportedTableTitle",
                              IDS_FLAGS_UNSUPPORTED_TABLE_TITLE);
   source->AddLocalizedString("flagsNoUnsupportedExperiments",
@@ -155,13 +157,17 @@ void FlagsDOMHandler::HandleRequestFlags
                      about_flags::IsRestartNeededToCommitChanges());
 #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_CHROMEOS)
   chrome::VersionInfo::Channel channel = chrome::VersionInfo::GetChannel();
+#ifdef PROMO_SYSTEM
   results.SetBoolean("showBetaChannelPromotion",
                      channel == chrome::VersionInfo::CHANNEL_STABLE);
   results.SetBoolean("showDevChannelPromotion",
                      channel == chrome::VersionInfo::CHANNEL_BETA);
+#endif /* PROMO_SYSTEM */
 #else
+#ifdef PROMO_SYSTEM
   results.SetBoolean("showBetaChannelPromotion", false);
   results.SetBoolean("showDevChannelPromotion", false);
+#endif /* PROMO_SYSTEM */
 #endif
   web_ui()->CallJavascriptFunction("returnFlagsExperiments", results);
 }
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/webui/ntp/new_tab_page_sync_handler.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/webui/ntp/new_tab_page_sync_handler.cc
@@ -55,8 +55,10 @@ NewTabPageSyncHandler::MessageType
   switch (type) {
     case sync_ui_util::SYNC_ERROR:
       return SYNC_ERROR;
+#ifdef PROMO_SYSTEM
     case sync_ui_util::SYNC_PROMO:
       return SYNC_PROMO;
+#endif /* PROMO_SYSTEM */
     case sync_ui_util::PRE_SYNCED:
     case sync_ui_util::SYNCED:
     default:
@@ -137,7 +139,9 @@ void NewTabPageSyncHandler::HandleSyncLi
       chrome::FindBrowserWithWebContents(web_ui()->GetWebContents());
   if (!browser || browser->IsAttemptingToCloseBrowser())
     return;
+#ifdef PROMO_SYSTEM
   chrome::ShowBrowserSignin(browser, SyncPromoUI::SOURCE_NTP_LINK);
+#endif /* PROMO_SYSTEM */
 
   if (sync_service_->HasSyncSetupCompleted()) {
     string16 user = UTF8ToUTF16(SigninManagerFactory::GetForProfile(
@@ -180,8 +184,10 @@ void NewTabPageSyncHandler::SendSyncMess
   } else {
     if (type == SYNC_ERROR)
       title = l10n_util::GetStringUTF8(IDS_SYNC_NTP_SYNC_SECTION_ERROR_TITLE);
+#ifdef PROMO_SYSTEM
     else if (type == SYNC_PROMO)
       title = l10n_util::GetStringUTF8(IDS_SYNC_NTP_SYNC_SECTION_PROMO_TITLE);
+#endif /* PROMO_SYSTEM */
     else
       NOTREACHED();
 
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/webui/ntp/ntp_login_handler.h
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/webui/ntp/ntp_login_handler.h
@@ -38,11 +38,13 @@ class NTPLoginHandler : public content::
 
  private:
   // User actions while on the NTP when clicking on or viewing the sync promo.
+#ifdef PROMO_SYSTEM
   enum NTPSignInPromoBuckets {
     NTP_SIGN_IN_PROMO_VIEWED,
     NTP_SIGN_IN_PROMO_CLICKED,
     NTP_SIGN_IN_PROMO_BUCKET_BOUNDARY,
   };
+#endif /* PROMO_SYSTEM */
 
   // Called from JS when the NTP is loaded. |args| is the list of arguments
   // passed from JS and should be an empty list.
@@ -54,7 +56,9 @@ class NTPLoginHandler : public content::
   void HandleShowSyncLoginUI(const ListValue* args);
 
   // Records actions in SyncPromo.NTPPromo histogram.
+#ifdef PROMO_SYSTEM
   void RecordInHistogram(int type);
+#endif /* PROMO_SYSTEM */
 
   // Called from JS when the sync promo NTP bubble has been displayed. |args| is
   // the list of arguments passed from JS and should be an empty list.
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/webui/ntp/ntp_resource_cache.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/webui/ntp/ntp_resource_cache.cc
@@ -31,12 +31,16 @@
 #include "chrome/browser/themes/theme_service.h"
 #include "chrome/browser/themes/theme_service_factory.h"
 #include "chrome/browser/ui/bookmarks/bookmark_bar_constants.h"
+#ifdef PROMO_SYSTEM
 #include "chrome/browser/ui/sync/sync_promo_ui.h"
+#endif /* PROMO_SYSTEM */
 #include "chrome/browser/ui/webui/ntp/new_tab_page_handler.h"
 #include "chrome/browser/ui/webui/ntp/new_tab_ui.h"
 #include "chrome/browser/ui/webui/ntp/ntp_login_handler.h"
 #include "chrome/browser/ui/webui/sync_setup_handler.h"
+#ifdef PROMO_SYSTEM
 #include "chrome/browser/web_resource/notification_promo.h"
+#endif /* PROMO_SYSTEM */
 #include "chrome/common/chrome_notification_types.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/common/extensions/extension.h"
@@ -179,8 +183,10 @@ NTPResourceCache::NTPResourceCache(Profi
   registrar_.Add(this, chrome::NOTIFICATION_BROWSER_THEME_CHANGED,
                  content::Source<ThemeService>(
                      ThemeServiceFactory::GetForProfile(profile)));
+#ifdef PROMO_SYSTEM
   registrar_.Add(this, chrome::NOTIFICATION_PROMO_RESOURCE_STATE_CHANGED,
                  content::NotificationService::AllSources());
+#endif /* PROMO_SYSTEM */
 
   base::Closure callback = base::Bind(&NTPResourceCache::OnPreferenceChanged,
                                       base::Unretained(this));
@@ -191,14 +197,18 @@ NTPResourceCache::NTPResourceCache(Profi
                                      callback);
   profile_pref_change_registrar_.Add(prefs::kShowBookmarkBar, callback);
   profile_pref_change_registrar_.Add(prefs::kNtpShownPage, callback);
+#ifdef PROMO_SYSTEM
   profile_pref_change_registrar_.Add(prefs::kSyncPromoShowNTPBubble, callback);
+#endif /* PROMO_SYSTEM */
   profile_pref_change_registrar_.Add(prefs::kHideWebStoreIcon, callback);
 
   // Some tests don't have a local state.
   if (g_browser_process->local_state()) {
     local_state_pref_change_registrar_.Init(g_browser_process->local_state());
+#ifdef PROMO_SYSTEM
     local_state_pref_change_registrar_.Add(apps::prefs::kShowAppLauncherPromo,
                                            callback);
+#endif /* PROMO_SYSTEM */
     local_state_pref_change_registrar_.Add(
         apps::prefs::kAppLauncherHasBeenEnabled, callback);
   }
@@ -256,8 +266,12 @@ void NTPResourceCache::Observe(int type,
                                const content::NotificationSource& source,
                                const content::NotificationDetails& details) {
   // Invalidate the cache.
-  if (chrome::NOTIFICATION_BROWSER_THEME_CHANGED == type ||
-      chrome::NOTIFICATION_PROMO_RESOURCE_STATE_CHANGED == type) {
+  if (chrome::NOTIFICATION_BROWSER_THEME_CHANGED == type 
+#ifdef PROMO_SYSTEM
+			|| chrome::NOTIFICATION_PROMO_RESOURCE_STATE_CHANGED == type) {
+#else
+		) {
+#endif /* PROMO_SYSTEM */
     new_tab_incognito_html_ = NULL;
     new_tab_html_ = NULL;
     new_tab_incognito_css_ = NULL;
@@ -346,6 +360,7 @@ void NTPResourceCache::CreateNewTabHTML(
       ThemeServiceFactory::GetForProfile(profile_)->HasCustomImage(
           IDR_THEME_NTP_ATTRIBUTION));
   load_time_data.SetBoolean("showMostvisited", should_show_most_visited_page_);
+#ifdef PROMO_SYSTEM
   std::string app_launcher_promo_group_name =
       base::FieldTrialList::FindFullName(apps::kLauncherPromoTrialName);
   bool show_app_launcher_promo =
@@ -355,6 +370,7 @@ void NTPResourceCache::CreateNewTabHTML(
        app_launcher_promo_group_name ==
           apps::kResetShowLauncherPromoPrefGroupName);
   load_time_data.SetBoolean("showAppLauncherPromo", show_app_launcher_promo);
+#endif /* PROMO_SYSTEM */
   load_time_data.SetBoolean("showRecentlyClosed",
       should_show_recently_closed_menu_);
   load_time_data.SetString("title",
@@ -401,8 +417,10 @@ void NTPResourceCache::CreateNewTabHTML(
       l10n_util::GetStringUTF16(IDS_APP_CONTEXT_MENU_OPEN_WINDOW));
   load_time_data.SetString("applaunchtypefullscreen",
       l10n_util::GetStringUTF16(IDS_APP_CONTEXT_MENU_OPEN_FULLSCREEN));
+#ifdef PROMO_SYSTEM
   load_time_data.SetString("syncpromotext",
       l10n_util::GetStringUTF16(IDS_SYNC_START_SYNC_BUTTON_LABEL));
+#endif /* PROMO_SYSTEM */
   load_time_data.SetString("syncLinkText",
       l10n_util::GetStringUTF16(IDS_SYNC_ADVANCED_OPTIONS));
   load_time_data.SetString("otherSessions",
@@ -433,8 +451,10 @@ void NTPResourceCache::CreateNewTabHTML(
       l10n_util::GetStringUTF16(IDS_NEW_TAB_PAGE_SWITCHER_CHANGE_TITLE));
   load_time_data.SetString("page_switcher_same_title",
       l10n_util::GetStringUTF16(IDS_NEW_TAB_PAGE_SWITCHER_SAME_TITLE));
+#ifdef PROMO_SYSTEM
   load_time_data.SetString("appsPromoTitle",
       l10n_util::GetStringUTF16(IDS_NEW_TAB_PAGE_APPS_PROMO_TITLE));
+#endif /* PROMO_SYSTEM */
   // On Mac OS X 10.7+, horizontal scrolling can be treated as a back or
   // forward gesture. Pass through a flag that indicates whether or not that
   // feature is enabled.
@@ -472,6 +492,7 @@ void NTPResourceCache::CreateNewTabHTML(
 
   // Disable the promo if this is the first run, otherwise set the promo string
   // for display if there is a valid outstanding promo.
+#ifdef PROMO_SYSTEM
   if (first_run::IsChromeFirstRun()) {
     NotificationPromo::HandleClosed(NotificationPromo::NTP_NOTIFICATION_PROMO);
   } else {
@@ -491,6 +512,7 @@ void NTPResourceCache::CreateNewTabHTML(
       DVLOG(1) << "Bubble promo:" << bubble_promo.promo_text();
     }
   }
+#endif /* PROMO_SYSTEM */
 
   // Determine whether to show the menu for accessing tabs on other devices.
   bool show_other_sessions_menu = should_show_other_devices_menu_ &&
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/webui/ntp/new_tab_page_handler.h
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/webui/ntp/new_tab_page_handler.h
@@ -37,7 +37,8 @@ class NewTabPageHandler : public content
   virtual void RegisterMessages() OVERRIDE;
 
   // Callback for "notificationPromoClosed". No arguments.
-  void HandleNotificationPromoClosed(const ListValue* args);
+#ifdef PROMO_SYSTEM
+	void HandleNotificationPromoClosed(const ListValue* args);
 
   // Callback for "notificationPromoViewed". No arguments.
   void HandleNotificationPromoViewed(const ListValue* args);
@@ -53,6 +54,7 @@ class NewTabPageHandler : public content
 
   // Callback for "bubblePromoLinkClicked". No arguments.
   void HandleBubblePromoLinkClicked(const ListValue* args);
+#endif /* PROMO_SYSTEM */
 
   // Callback for "pageSelected".
   void HandlePageSelected(const ListValue* args);
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/webui/ntp/ntp_login_handler.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/webui/ntp/ntp_login_handler.cc
@@ -28,9 +28,13 @@
 #include "chrome/browser/ui/browser_finder.h"
 #include "chrome/browser/ui/browser_window.h"
 #include "chrome/browser/ui/chrome_pages.h"
+#ifdef PROMO_SYSTEM
 #include "chrome/browser/ui/sync/sync_promo_ui.h"
+#endif /* PROMO_SYSTEM */
 #include "chrome/browser/ui/webui/ntp/new_tab_ui.h"
+#ifdef PROMO_SYSTEM
 #include "chrome/browser/web_resource/promo_resource_service.h"
+#endif /* PROMO_SYSTEM */
 #include "chrome/common/chrome_notification_types.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/common/url_constants.h"
@@ -140,6 +144,7 @@ void NTPLoginHandler::HandleShowSyncLogi
   if (username.empty()) {
 #if !defined(OS_ANDROID)
     // The user isn't signed in, show the sync promo.
+#ifdef PROMO_SYSTEM
     if (SyncPromoUI::ShouldShowSyncPromo(profile)) {
       SyncPromoUI::Source source =
           (web_contents->GetURL().spec() == chrome::kChromeUIAppsURL) ?
@@ -147,6 +152,7 @@ void NTPLoginHandler::HandleShowSyncLogi
       chrome::ShowBrowserSignin(browser, source);
       RecordInHistogram(NTP_SIGN_IN_PROMO_CLICKED);
     }
+#endif /* PROMO_SYSTEM */
 #endif
   } else if (args->GetSize() == 4 &&
              chrome::IsCommandEnabled(browser, IDC_SHOW_AVATAR_MENU)) {
@@ -173,6 +179,7 @@ void NTPLoginHandler::HandleShowSyncLogi
   }
 }
 
+#ifdef PROMO_SYSTEM
 void NTPLoginHandler::RecordInHistogram(int type) {
   // Invalid type to record.
   if (type < NTP_SIGN_IN_PROMO_VIEWED ||
@@ -183,10 +190,13 @@ void NTPLoginHandler::RecordInHistogram(
                               NTP_SIGN_IN_PROMO_BUCKET_BOUNDARY);
   }
 }
+#endif /* PROMO_SYSTEM */
 
 void NTPLoginHandler::HandleLoginMessageSeen(const ListValue* args) {
+#ifdef PROMO_SYSTEM
   Profile::FromWebUI(web_ui())->GetPrefs()->SetBoolean(
       prefs::kSyncPromoShowNTPBubble, false);
+#endif /* PROMO_SYSTEM */
   NewTabUI* ntp_ui = NewTabUI::FromWebUIController(web_ui()->GetController());
   // When instant extended is enabled, there may not be a NewTabUI object.
   if (ntp_ui)
@@ -194,10 +204,12 @@ void NTPLoginHandler::HandleLoginMessage
 }
 
 void NTPLoginHandler::HandleShowAdvancedLoginUI(const ListValue* args) {
+#ifdef PROMO_SYSTEM
   Browser* browser =
       chrome::FindBrowserWithWebContents(web_ui()->GetWebContents());
   if (browser)
     chrome::ShowBrowserSignin(browser, SyncPromoUI::SOURCE_NTP_LINK);
+#endif /*PROMO_SYSTEM */
 }
 
 void NTPLoginHandler::UpdateLogin() {
@@ -230,6 +242,7 @@ void NTPLoginHandler::UpdateLogin() {
   } else {
 #if !defined(OS_ANDROID)
     // Android uses a custom sync promo
+#ifdef PROMO_SYSTEM
     if (SyncPromoUI::ShouldShowSyncPromo(profile)) {
       string16 signed_in_link = l10n_util::GetStringUTF16(
           IDS_SYNC_PROMO_NOT_SIGNED_IN_STATUS_LINK);
@@ -242,6 +255,7 @@ void NTPLoginHandler::UpdateLogin() {
       // Record that the user was shown the promo.
       RecordInHistogram(NTP_SIGN_IN_PROMO_VIEWED);
     }
+#endif /* PROMO_SYSTEM */
 #endif
   }
 
@@ -269,6 +283,7 @@ bool NTPLoginHandler::ShouldShow(Profile
 void NTPLoginHandler::GetLocalizedValues(Profile* profile,
                                          DictionaryValue* values) {
   PrefService* prefs = profile->GetPrefs();
+#ifdef PROMO_SYSTEM
   std::string error_message = prefs->GetString(prefs::kSyncPromoErrorMessage);
   bool hide_sync = !prefs->GetBoolean(prefs::kSyncPromoShowNTPBubble);
 
@@ -287,4 +302,5 @@ void NTPLoginHandler::GetLocalizedValues
   values->SetString("login_status_dismiss",
       hide_sync ? string16() :
       l10n_util::GetStringUTF16(IDS_SYNC_PROMO_NTP_BUBBLE_OK));
+#endif /* PROMO_SYSTEM */
 }
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/webui/ntp/app_launcher_handler.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/webui/ntp/app_launcher_handler.cc
@@ -174,10 +174,12 @@ void AppLauncherHandler::RegisterMessage
   // Some tests don't have a local state.
   if (g_browser_process->local_state()) {
     local_state_pref_change_registrar_.Init(g_browser_process->local_state());
+#ifdef PROMO_SYSTEM
     local_state_pref_change_registrar_.Add(
         apps::prefs::kShowAppLauncherPromo,
         base::Bind(&AppLauncherHandler::OnLocalStatePreferenceChanged,
                    base::Unretained(this)));
+#endif /* PROMO_SYSTEM */
   }
   web_ui()->RegisterMessageCallback("getApps",
       base::Bind(&AppLauncherHandler::HandleGetApps,
@@ -209,9 +211,11 @@ void AppLauncherHandler::RegisterMessage
   web_ui()->RegisterMessageCallback("recordAppLaunchByURL",
       base::Bind(&AppLauncherHandler::HandleRecordAppLaunchByUrl,
                  base::Unretained(this)));
+#ifdef PROMO_SYSTEM
   web_ui()->RegisterMessageCallback("stopShowingAppLauncherPromo",
       base::Bind(&AppLauncherHandler::StopShowingAppLauncherPromo,
                  base::Unretained(this)));
+#endif /* PROMO_SYSTEM */
 }
 
 void AppLauncherHandler::Observe(int type,
@@ -302,10 +306,12 @@ void AppLauncherHandler::Observe(int typ
     }
     // The promo may not load until a couple seconds after the first NTP view,
     // so we listen for the load notification and notify the NTP when ready.
+#ifdef PROMO_SYSTEM
     case chrome::NOTIFICATION_WEB_STORE_PROMO_LOADED:
       // TODO(estade): Try to get rid of this inefficient operation.
       HandleGetApps(NULL);
       break;
+#endif /* PROMO_SYSTEM */
     case chrome::NOTIFICATION_EXTENSION_INSTALL_ERROR: {
       CrxInstaller* crx_installer = content::Source<CrxInstaller>(source).ptr();
       if (!Profile::FromWebUI(web_ui())->IsSameProfile(
@@ -437,8 +443,10 @@ void AppLauncherHandler::HandleGetApps(c
     registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_LAUNCHER_REORDERED,
         content::Source<ExtensionSorting>(
             extension_service_->extension_prefs()->extension_sorting()));
+#ifdef PROMO_SYSTEM
     registrar_.Add(this, chrome::NOTIFICATION_WEB_STORE_PROMO_LOADED,
         content::Source<Profile>(profile));
+#endif /* PROMO_SYSTEM */
     registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_INSTALL_ERROR,
         content::Source<CrxInstaller>(NULL));
     registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_LOAD_ERROR,
@@ -694,11 +702,13 @@ void AppLauncherHandler::HandleRecordApp
   RecordAppLaunchByUrl(Profile::FromWebUI(web_ui()), url, bucket);
 }
 
+#ifdef PROMO_SYSTEM
 void AppLauncherHandler::StopShowingAppLauncherPromo(
     const base::ListValue* args) {
   g_browser_process->local_state()->SetBoolean(
       apps::prefs::kShowAppLauncherPromo, false);
 }
+#endif /* PROMO_SYSTEM */
 
 void AppLauncherHandler::OnFaviconForApp(
     scoped_ptr<AppInstallInfo> install_info,
@@ -741,10 +751,12 @@ void AppLauncherHandler::OnExtensionPref
 }
 
 void AppLauncherHandler::OnLocalStatePreferenceChanged() {
+#ifdef PROMO_SYSTEM
   web_ui()->CallJavascriptFunction(
       "ntp.appLauncherPromoPrefChangeCallback",
       base::FundamentalValue(g_browser_process->local_state()->GetBoolean(
           apps::prefs::kShowAppLauncherPromo)));
+#endif /* PROMO_SYSTEM */
 }
 
 // static
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/webui/ntp/new_tab_page_handler.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/webui/ntp/new_tab_page_handler.cc
@@ -13,7 +13,9 @@
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/sync/profile_sync_service.h"
 #include "chrome/browser/ui/webui/ntp/new_tab_ui.h"
+#ifdef PROMO_SYSTEM
 #include "chrome/browser/web_resource/notification_promo.h"
+#endif /* PROMO_SYSTEM */
 #include "chrome/common/pref_names.h"
 #include "components/user_prefs/pref_registry_syncable.h"
 #include "content/public/browser/notification_service.h"
@@ -26,12 +28,14 @@ namespace {
 
 const char kDefaultPageTypeHistogram[] = "NewTabPage.DefaultPageType";
 
+#ifdef PROMO_SYSTEM
 enum PromoAction {
   PROMO_VIEWED = 0,
   PROMO_CLOSED,
   PROMO_LINK_CLICKED,
   PROMO_ACTION_MAX,
 };
+#endif /* PROMO_SYSTEM */
 
 }  // namespace
 
@@ -51,6 +55,7 @@ void NewTabPageHandler::RegisterMessages
   UMA_HISTOGRAM_ENUMERATION(kDefaultPageTypeHistogram,
                             shown_page_type, kHistogramEnumerationMax);
 
+#ifdef PROMO_SYSTEM
   web_ui()->RegisterMessageCallback("notificationPromoClosed",
       base::Bind(&NewTabPageHandler::HandleNotificationPromoClosed,
                  base::Unretained(this)));
@@ -69,6 +74,7 @@ void NewTabPageHandler::RegisterMessages
   web_ui()->RegisterMessageCallback("bubblePromoLinkClicked",
       base::Bind(&NewTabPageHandler::HandleBubblePromoLinkClicked,
                  base::Unretained(this)));
+#endif /* PROMO_SYSTEM */
   web_ui()->RegisterMessageCallback("pageSelected",
       base::Bind(&NewTabPageHandler::HandlePageSelected,
                  base::Unretained(this)));
@@ -77,6 +83,7 @@ void NewTabPageHandler::RegisterMessages
                  base::Unretained(this)));
 }
 
+#ifdef PROMO_SYSTEM
 void NewTabPageHandler::HandleNotificationPromoClosed(const ListValue* args) {
   UMA_HISTOGRAM_ENUMERATION("NewTabPage.Promo.Notification",
                             PROMO_CLOSED, PROMO_ACTION_MAX);
@@ -119,6 +126,7 @@ void NewTabPageHandler::HandleBubbleProm
   UMA_HISTOGRAM_ENUMERATION("NewTabPage.Promo.Bubble",
                             PROMO_LINK_CLICKED, PROMO_ACTION_MAX);
 }
+#endif /*PROMO_SYSTEM */
 
 void NewTabPageHandler::HandlePageSelected(const ListValue* args) {
   page_switch_count_++;
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/webui/ntp/new_tab_ui.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/webui/ntp/new_tab_ui.cc
@@ -45,7 +45,9 @@
 #include "chrome/browser/ui/webui/ntp/android/bookmarks_handler.h"
 #include "chrome/browser/ui/webui/ntp/android/context_menu_handler.h"
 #include "chrome/browser/ui/webui/ntp/android/new_tab_page_ready_handler.h"
+#ifdef PROMO_SYSTEM
 #include "chrome/browser/ui/webui/ntp/android/promo_handler.h"
+#endif /* PROMO_SYSTEM */
 #endif
 
 #if defined(ENABLE_THEMES)
@@ -118,8 +120,10 @@ NewTabUI::NewTabUI(content::WebUI* web_u
   web_ui->AddMessageHandler(new BookmarksHandler());
   web_ui->AddMessageHandler(new ContextMenuHandler());
   web_ui->AddMessageHandler(new NewTabPageReadyHandler());
+#ifdef PROMO_SYSTEM
   if (!GetProfile()->IsOffTheRecord())
     web_ui->AddMessageHandler(new PromoHandler());
+#endif /* PROMO_SYSTEM */
 #else
   // Android uses native UI for sync setup.
   if (NTPLoginHandler::ShouldShow(GetProfile()))
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/webui/ntp/new_tab_page_sync_handler.h
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/webui/ntp/new_tab_page_sync_handler.h
@@ -45,7 +45,9 @@ class NewTabPageSyncHandler : public con
   enum MessageType {
     HIDE,
     SYNC_ERROR,
+#ifdef PROMO_SYSTEM
     SYNC_PROMO
+#endif /* PROMO_SYSTEM */
   };
   // Helper to invoke the |syncMessageChanged| JS function on the new tab page.
   virtual void SendSyncMessageToPage(MessageType type,
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/webui/ntp/android/ntp_resource_cache_android.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/webui/ntp/android/ntp_resource_cache_android.cc
@@ -95,8 +95,10 @@ void NTPResourceCache::CreateNewTabHTML(
         l10n_util::GetStringUTF16(IDS_BOOKMARK_REMOVE_FOLDER));
   localized_strings.SetString("receivedDocuments",
       l10n_util::GetStringUTF16(IDS_RECEIVED_DOCUMENTS));
+#ifdef PROMO_SYSTEM
   localized_strings.SetString("syncPromo",
       l10n_util::GetStringUTF16(IDS_SYNC_PROMO_DESKTOP_INSTRUCTIONS));
+#endif /* PROMO_SYSTEM */
   localized_strings.SetString("syncEnableSync",
       l10n_util::GetStringUTF16(IDS_SYNC_ENABLE_SYNC));
   localized_strings.SetString("bookmarkstitle",
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/webui/ntp/android/promo_handler.h
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/webui/ntp/android/promo_handler.h
@@ -5,6 +5,8 @@
 #ifndef CHROME_BROWSER_UI_WEBUI_NTP_ANDROID_PROMO_HANDLER_H_
 #define CHROME_BROWSER_UI_WEBUI_NTP_ANDROID_PROMO_HANDLER_H_
 
+#ifdef PROMO_SYSTEM
+
 #include "content/public/browser/notification_observer.h"
 #include "content/public/browser/notification_registrar.h"
 #include "content/public/browser/web_ui_message_handler.h"
@@ -81,4 +83,5 @@ class PromoHandler : public content::Web
   DISALLOW_COPY_AND_ASSIGN(PromoHandler);
 };
 
+#endif /* PROMO_SYSTEM */
 #endif  // CHROME_BROWSER_UI_WEBUI_NTP_ANDROID_PROMO_HANDLER_H_
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/webui/ntp/android/promo_handler.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/webui/ntp/android/promo_handler.cc
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#ifdef PROMO_SYSTEM
+
 #include "chrome/browser/ui/webui/ntp/android/promo_handler.h"
 
 #include "base/logging.h"
@@ -335,3 +337,4 @@ void PromoHandler::CheckDesktopSessions(
     }
   }
 }
+#endif /* PROMO_SYSTEM */
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/webui/signin/login_ui_service.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/webui/signin/login_ui_service.cc
@@ -11,7 +11,9 @@
 #include "chrome/browser/ui/chrome_pages.h"
 #include "chrome/browser/ui/host_desktop.h"
 #include "chrome/browser/ui/sync/inline_login_dialog.h"
+#ifdef PROMO_SYSTEM
 #include "chrome/browser/ui/sync/sync_promo_ui.h"
+#endif /* PROMO_SYSTEM */
 #include "chrome/browser/ui/webui/signin/login_ui_service_factory.h"
 #include "chrome/common/url_constants.h"
 
@@ -54,6 +56,8 @@ void LoginUIService::ShowLoginPopup() {
 #else
   Browser* browser = FindOrCreateTabbedBrowser(profile_,
                                                chrome::GetActiveDesktop());
+#ifdef PROMO_SYSTEM
   chrome::ShowBrowserSignin(browser, SyncPromoUI::SOURCE_APP_LAUNCHER);
+#endif /* PROMO_SYSTEM */
 #endif
 }
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
@@ -115,7 +115,9 @@ enum PrintSettingsBuckets {
 
 enum UiBucketGroups {
   DESTINATION_SEARCH,
+#ifdef PROMO_SYSTEM
   GCP_PROMO,
+#endif /* PROMO_SYSTEM */
   UI_BUCKET_GROUP_BOUNDARY
 };
 
@@ -128,12 +130,14 @@ enum PrintDestinationBuckets {
   PRINT_DESTINATION_BUCKET_BOUNDARY
 };
 
+#ifdef PROMO_SYSTEM
 enum GcpPromoBuckets {
   PROMO_SHOWN,
   PROMO_CLOSED,
   PROMO_CLICKED,
   GCP_PROMO_BUCKET_BOUNDARY
 };
+#endif /* PROMO_SYSTEM */
 
 void ReportUserActionHistogram(enum UserActionBuckets event) {
   UMA_HISTOGRAM_ENUMERATION("PrintPreview.UserAction", event,
@@ -150,10 +154,12 @@ void ReportPrintDestinationHistogram(enu
                             PRINT_DESTINATION_BUCKET_BOUNDARY);
 }
 
+#ifdef PROMO_SYSTEM
 void ReportGcpPromoHistogram(enum GcpPromoBuckets event) {
   UMA_HISTOGRAM_ENUMERATION("PrintPreview.GcpPromo", event,
                             GCP_PROMO_BUCKET_BOUNDARY);
 }
+#endif /* PROMO_SYSTEM */
 
 // Name of a dictionary field holding cloud print related data;
 const char kAppState[] = "appState";
@@ -831,6 +837,7 @@ void PrintPreviewHandler::HandleReportUi
       ReportPrintDestinationHistogram(event);
       break;
     }
+#ifdef PROMO_SYSTEM
     case GCP_PROMO: {
       enum GcpPromoBuckets event =
           static_cast<enum GcpPromoBuckets>(event_number);
@@ -839,6 +846,7 @@ void PrintPreviewHandler::HandleReportUi
       ReportGcpPromoHistogram(event);
       break;
     }
+#endif /* PROMO_SYSTEM */
     default:
       break;
   }
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/webui/print_preview/print_preview_ui.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/webui/print_preview/print_preview_ui.cc
@@ -272,8 +272,10 @@ content::WebUIDataSource* CreatePrintPre
   source->AddLocalizedString("destinationSearchTitle",
                              IDS_PRINT_PREVIEW_DESTINATION_SEARCH_TITLE);
   source->AddLocalizedString("userInfo", IDS_PRINT_PREVIEW_USER_INFO);
+#ifdef PROMO_SYSTEM
   source->AddLocalizedString("cloudPrintPromotion",
                              IDS_PRINT_PREVIEW_CLOUD_PRINT_PROMOTION);
+#endif /* PROMO_SYSTEM */
   source->AddLocalizedString("searchBoxPlaceholder",
                              IDS_PRINT_PREVIEW_SEARCH_BOX_PLACEHOLDER);
   source->AddLocalizedString("noDestinationsMessage",
@@ -303,6 +305,7 @@ content::WebUIDataSource* CreatePrintPre
   source->AddLocalizedString("fedexTos", IDS_PRINT_PREVIEW_FEDEX_TOS);
   source->AddLocalizedString("tosCheckboxLabel",
                              IDS_PRINT_PREVIEW_TOS_CHECKBOX_LABEL);
+#ifdef PROMO_SYSTEM
   source->AddLocalizedString("noDestsPromoTitle",
                              IDS_PRINT_PREVIEW_NO_DESTS_PROMO_TITLE);
   source->AddLocalizedString("noDestsPromoBody",
@@ -315,6 +318,7 @@ content::WebUIDataSource* CreatePrintPre
   source->AddLocalizedString(
       "noDestsPromoNotNowButtonLabel",
       IDS_PRINT_PREVIEW_NO_DESTS_PROMO_NOT_NOW_BUTTON_LABEL);
+#endif /* PROMO_SYSTEM */
 
   source->SetJsonPath("strings.js");
   source->AddResourcePath("print_preview.js", IDR_PRINT_PREVIEW_JS);
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/webui/sync_promo/sync_promo_trial.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/webui/sync_promo/sync_promo_trial.cc
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#ifdef PROMO_SYSTEM
+
 #include "chrome/browser/ui/webui/sync_promo/sync_promo_trial.h"
 
 #include "base/logging.h"
@@ -125,3 +127,5 @@ void RecordUserSignedIn(content::WebUI*
 }
 
 }  // namespace sync_promo_trial
+
+#endif /* PROMO_SYSTEM */
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/browser/ui/webui/sync_promo/sync_promo_trial.h
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/browser/ui/webui/sync_promo/sync_promo_trial.h
@@ -5,6 +5,8 @@
 #ifndef CHROME_BROWSER_UI_WEBUI_SYNC_PROMO_SYNC_PROMO_TRIAL_H_
 #define CHROME_BROWSER_UI_WEBUI_SYNC_PROMO_SYNC_PROMO_TRIAL_H_
 
+#ifdef PROMO_SYSTEM
+
 #include "base/basictypes.h"
 #include "chrome/browser/ui/sync/sync_promo_ui.h"
 
@@ -25,4 +27,5 @@ void RecordUserSignedIn(content::WebUI*
 
 }  // namespace sync_promo_trial
 
+#endif /* PROMO_SYSTEM */
 #endif  // CHROME_BROWSER_UI_WEBUI_SYNC_PROMO_SYNC_PROMO_TRIAL_H_
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/common/render_messages.h
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/common/render_messages.h
@@ -355,8 +355,10 @@ IPC_MESSAGE_ROUTED2(ChromeViewMsg_Search
                     string16 /* omnibox_font */,
                     size_t /* omnibox_font_size */)
 
+#ifdef PROMO_SYSTEM
 IPC_MESSAGE_ROUTED1(ChromeViewMsg_SearchBoxPromoInformation,
                     bool /* is_app_launcher_enabled */)
+#endif /* PROMO_SYSTEM */
 
 IPC_MESSAGE_ROUTED2(ChromeViewMsg_SearchBoxFocusChanged,
                     OmniboxFocusState /* new_focus_state */,
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/common/chrome_notification_types.h
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/common/chrome_notification_types.h
@@ -398,7 +398,9 @@ enum NotificationType {
   // The state of a web resource has been changed. A resource may have been
   // added, removed, or altered. Source is WebResourceService, and the
   // details are NoDetails.
+#ifdef PROMO_SYSTEM
   NOTIFICATION_PROMO_RESOURCE_STATE_CHANGED,
+#endif /* PROMO_SYSTEM */
 
   // A safe browsing database update completed.  Source is the
   // SafeBrowsingService and the details are a bool indicating whether the
@@ -1159,7 +1161,9 @@ enum NotificationType {
 #endif
 
   // Sent when a new web store promo has been loaded.
+#ifdef PROMO_SYSTEM
   NOTIFICATION_WEB_STORE_PROMO_LOADED,
+#endif /* PROMO_SYSTEM */
 
   // Protocol Handler Registry -----------------------------------------------
   // Sent when a ProtocolHandlerRegistry is changed. The source is the profile.
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/common/chrome_switches.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/common/chrome_switches.cc
@@ -1131,7 +1131,9 @@ const char kProfilingOutputFile[]
 const char kProfilingFlush[]                = "profiling-flush";
 
 // Specifies a custom URL for fetching NTP promo data.
+#ifdef PROMO_SYSTEM
 const char kPromoServerURL[]                = "promo-server-url";
+#endif /* PROMO_SYSTEM */
 
 // Should we prompt the user before allowing external extensions to install?
 // Default is yes.
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/common/pref_names.h
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/common/pref_names.h
@@ -287,7 +287,9 @@ extern const char kLabsAdvancedFilesyste
 extern const char kLabsMediaplayerEnabled[];
 extern const char kEnableScreenLock[];
 extern const char kShowPlanNotifications[];
+#ifdef PROMO_SYSTEM
 extern const char kShow3gPromoNotification[];
+#endif /* PROMO_SYSTEM */
 extern const char kChromeOSReleaseNotesVersion[];
 extern const char kUseSharedProxies[];
 extern const char kDisplayPowerState[];
@@ -596,11 +598,15 @@ extern const char kNtpTipsResourceServer
 
 extern const char kNtpCollapsedForeignSessions[];
 extern const char kNtpMostVisitedURLsBlacklist[];
+#ifdef PROMO_SYSTEM
 extern const char kNtpPromoResourceCacheUpdate[];
+#endif /* PROMO_SYSTEM */
 extern const char kNtpDateResourceServer[];
 extern const char kNtpShownBookmarksFolder[];
 extern const char kNtpShownPage[];
+#ifdef PROMO_SYSTEM
 extern const char kNtpPromoDesktopSessionFound[];
+#endif /* PROMO_SYSTEM */
 extern const char kNtpWebStoreEnabled[];
 extern const char kNtpAppPageNames[];
 
@@ -665,11 +671,13 @@ extern const char kInvalidatorClientId[]
 extern const char kInvalidatorInvalidationState[];
 extern const char kInvalidatorMaxInvalidationVersions[];
 
+#ifdef PROMO_SYSTEM
 extern const char kSyncPromoStartupCount[];
 extern const char kSyncPromoUserSkipped[];
 extern const char kSyncPromoShowOnFirstRunAllowed[];
 extern const char kSyncPromoShowNTPBubble[];
 extern const char kSyncPromoErrorMessage[];
+#endif /* PROMO_SYSTEM */
 
 extern const char kSyncFaviconsEnabled[];
 
@@ -761,7 +769,9 @@ extern const char kVideoCaptureAllowedUr
 #if defined(OS_CHROMEOS)
 extern const char kDeviceSettingsCache[];
 extern const char kHardwareKeyboardLayout[];
+#ifdef PROMO_SYSTEM
 extern const char kCarrierDealPromoShown[];
+#endif /* PROMO_SYSTEM */
 extern const char kShouldAutoEnroll[];
 extern const char kAutoEnrollmentPowerLimit[];
 extern const char kDeviceActivityTimes[];
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/common/chrome_switches.h
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/common/chrome_switches.h
@@ -303,7 +303,9 @@ extern const char kProfilingAtStart[];
 extern const char kProfilingFile[];
 extern const char kProfilingFlush[];
 extern const char kProfilingOutputFile[];
+#ifdef PROMO_SYSTEM
 extern const char kPromoServerURL[];
+#endif /* PROMO_SYSTEM */
 extern const char kPromptForExternalExtensions[];
 extern const char kProxyAutoDetect[];
 extern const char kProxyBypassList[];
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/common/pref_names.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/common/pref_names.cc
@@ -787,8 +787,10 @@ const char kShowPlanNotifications[] =
     "settings.internet.mobile.show_plan_notifications";
 
 // A boolean pref of whether to show 3G promo notification.
+#ifdef PROMO_SYSTEM
 const char kShow3gPromoNotification[] =
     "settings.internet.mobile.show_3g_promo_notification";
+#endif /* PROMO_SYSTEM */
 
 // A string pref that contains version where "What's new" promo was shown.
 const char kChromeOSReleaseNotesVersion[] = "settings.release_notes.version";
@@ -1688,7 +1690,9 @@ const char kNtpCollapsedForeignSessions[
 const char kNtpMostVisitedURLsBlacklist[] = "ntp.most_visited_blacklist";
 
 // Last time of update of promo_resource_cache.
+#ifdef PROMO_SYSTEM
 const char kNtpPromoResourceCacheUpdate[] = "ntp.promo_resource_cache_update";
+#endif /* PROMO_SYSTEM */
 
 // Serves tips for the NTP.
 const char kNtpTipsResourceServer[] = "ntp.tips_resource_server";
@@ -1703,12 +1707,15 @@ const char kNtpShownBookmarksFolder[] =
 const char kNtpShownPage[] = "ntp.shown_page";
 
 // True if a desktop sync session was found for this user.
+#ifdef PROMO_SYSTEM
 const char kNtpPromoDesktopSessionFound[] = "ntp.promo_desktop_session_found";
+#endif /* PROMO_SYSTEM */
 
 // Boolean indicating whether the web store is active for the current locale.
 const char kNtpWebStoreEnabled[] = "ntp.webstore_enabled";
 
 // The id of the last web store promo actually displayed on the NTP.
+#ifdef PROMO_SYSTEM
 const char kNtpWebStorePromoLastId[] = "ntp.webstore_last_promo_id";
 
 // The id of the current web store promo.
@@ -1734,6 +1741,7 @@ const char kNtpWebStorePromoExpire[] = "
 
 // Specifies what users should maximize the NTP web store promo.
 const char kNtpWebStorePromoUserGroup[] = "ntp.webstorepromo.usergroup";
+#endif /* PROMO_SYSTEM */
 
 // Customized app page names that appear on the New Tab Page.
 const char kNtpAppPageNames[] = "ntp.app_page_names";
@@ -1877,6 +1885,7 @@ const char kGoogleServicesUsernamePatter
 
 #if !defined(OS_ANDROID)
 // Tracks the number of times that we have shown the sync promo at startup.
+#ifdef PROMO_SYSTEM
 const char kSyncPromoStartupCount[] = "sync_promo.startup_count";
 
 // Boolean tracking whether the user chose to skip the sync promo.
@@ -1895,6 +1904,7 @@ const char kSyncPromoShowNTPBubble[] = "
 // An error to show in the sync promo bubble, if needed.  If the sign in was
 // successful, this property holds an empty string.
 const char kSyncPromoErrorMessage[] = "sync_promo.error_message";
+#endif /* PROMO_SYSTEM */
 #endif
 
 // Time when the user's GAIA info was last updated (represented as an int64).
@@ -2062,8 +2072,10 @@ const char kHardwareKeyboardLayout[] = "
 
 // An integer pref which shows number of times carrier deal promo
 // notification has been shown to user.
+#ifdef PROMO_SYSTEM
 const char kCarrierDealPromoShown[] =
     "settings.internet.mobile.carrier_deal_promo_shown";
+#endif /* PROMO_SYSTEM */
 
 // A boolean pref of the auto-enrollment decision. Its value is only valid if
 // it's not the default value; otherwise, no auto-enrollment decision has been
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/common/metrics/variations/variation_ids.h
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/common/metrics/variations/variation_ids.h
@@ -222,8 +222,10 @@ enum VariationID {
   OMNIBOX_STOP_TIMER_EXPERIMENT = 3310264,
 
   // ShowAppLauncherPromo field trial
+#ifdef PROMO_SYSTEM
   SHOW_APP_LAUNCHER_PROMO_UNTIL_DISMISSED = 3310366,
   SHOW_APP_LAUNCHER_PROMO_RESET_PREF = 3310367,
+#endif /* PROMO_SYSTEM */
 
   // NEXT ID: When adding new IDs, please add them above this section, starting
   // with the value of NEXT_ID, and updating NEXT_ID to (end of your reserved
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/renderer/searchbox/searchbox.h
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/renderer/searchbox/searchbox.h
@@ -169,7 +169,9 @@ class SearchBox : public content::Render
   void OnThemeAreaHeightChanged(int height);
   void OnFontInformationReceived(const string16& omnibox_font,
                                  size_t omnibox_font_size);
+#ifdef PROMO_SYSTEM
   void OnPromoInformationReceived(bool is_app_launcher_enabled);
+#endif /* PROMO_SYSTEM */
   void OnMostVisitedChanged(
       const std::vector<InstantMostVisitedItem>& items);
   void OnToggleVoiceSearch();
--- chromium-browser-29.0.1547.57-nopromo.orig/src/chrome/renderer/searchbox/searchbox.cc
+++ chromium-browser-29.0.1547.57-nopromo/src/chrome/renderer/searchbox/searchbox.cc
@@ -272,8 +272,10 @@ bool SearchBox::OnMessageReceived(const
                         OnThemeChanged)
     IPC_MESSAGE_HANDLER(ChromeViewMsg_SearchBoxFontInformation,
                         OnFontInformationReceived)
+#ifdef PROMO_SYSTEM
     IPC_MESSAGE_HANDLER(ChromeViewMsg_SearchBoxPromoInformation,
                         OnPromoInformationReceived)
+#endif /* PROMO_SYSTEM */
     IPC_MESSAGE_HANDLER(ChromeViewMsg_SearchBoxMostVisitedItemsChanged,
                         OnMostVisitedChanged)
     IPC_MESSAGE_HANDLER(ChromeViewMsg_SearchBoxToggleVoiceSearch,
@@ -490,9 +492,11 @@ void SearchBox::OnFontInformationReceive
   omnibox_font_size_ = omnibox_font_size;
 }
 
+#ifdef PROMO_SYSTEM
 void SearchBox::OnPromoInformationReceived(bool is_app_launcher_enabled) {
   app_launcher_enabled_ = is_app_launcher_enabled;
 }
+#endif /* PROMO_SYSTEM */
 
 double SearchBox::GetZoom() const {
   WebKit::WebView* web_view = render_view()->GetWebView();
