| Index: chrome/browser/ui/webui/sync_promo_handler2.h
|
| diff --git a/chrome/browser/ui/webui/sync_promo_handler2.h b/chrome/browser/ui/webui/sync_promo_handler2.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..c2d3c8f5447ff9384cbf3fe5c77b3c292eddb7b3
|
| --- /dev/null
|
| +++ b/chrome/browser/ui/webui/sync_promo_handler2.h
|
| @@ -0,0 +1,97 @@
|
| +// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef CHROME_BROWSER_UI_WEBUI_SYNC_PROMO_HANDLER_H_
|
| +#define CHROME_BROWSER_UI_WEBUI_SYNC_PROMO_HANDLER_H_
|
| +#pragma once
|
| +
|
| +#include "chrome/browser/ui/webui/sync_setup_handler2.h"
|
| +
|
| +class PrefService;
|
| +
|
| +// The handler for JavaScript messages related to the "sync promo" page.
|
| +class SyncPromoHandler2 : public SyncSetupHandler2 {
|
| + public:
|
| + explicit SyncPromoHandler2(ProfileManager* profile_manager);
|
| + virtual ~SyncPromoHandler2();
|
| +
|
| + // Called to register our preferences before we use them (so there will be a
|
| + // default if not present yet).
|
| + static void RegisterUserPrefs(PrefService* prefs);
|
| +
|
| + // WebUIMessageHandler implementation.
|
| + virtual WebUIMessageHandler* Attach(WebUI* web_ui) OVERRIDE;
|
| + virtual void RegisterMessages() OVERRIDE;
|
| +
|
| + // SyncSetupFlowHandler implementation.
|
| + virtual void ShowGaiaSuccessAndClose() OVERRIDE;
|
| + virtual void ShowGaiaSuccessAndSettingUp() OVERRIDE;
|
| + virtual void ShowConfigure(const base::DictionaryValue& args) OVERRIDE;
|
| +
|
| + // content::NotificationObserver implementation.
|
| + virtual void Observe(int type,
|
| + const content::NotificationSource& source,
|
| + const content::NotificationDetails& details) OVERRIDE;
|
| +
|
| + protected:
|
| + virtual void StepWizardForShowSetupUI() OVERRIDE;
|
| +
|
| + virtual void ShowSetupUI() OVERRIDE;
|
| +
|
| + private:
|
| + // JavaScript callback handler to close the sync promo.
|
| + void HandleCloseSyncPromo(const base::ListValue* args);
|
| +
|
| + // JavaScript callback handler to initialize the sync promo.
|
| + void HandleInitializeSyncPromo(const base::ListValue* args);
|
| +
|
| + // JavaScript handler to record the duration for which the throbber was
|
| + // visible during an attempted sign-in flow.
|
| + void HandleRecordThrobberTime(const base::ListValue* args);
|
| +
|
| + // JavaScript handler to record the number of times a user attempted to sign
|
| + // in to chrome while they were on the sync promo page.
|
| + void HandleRecordSignInAttempts(const base::ListValue* args);
|
| +
|
| + // JavaScript callback handler to switch the advanced sync settings. |args| is
|
| + // the list of arguments passed from JS and should be an empty list.
|
| + void HandleShowAdvancedSettings(const base::ListValue* args);
|
| +
|
| + // JavaScript callback handler to record user actions on the sync promo.
|
| + void HandleUserFlowAction(const base::ListValue* args);
|
| +
|
| + // JavaScript callback handler for when a user clicks skip.
|
| + void HandleUserSkipped(const base::ListValue* args);
|
| +
|
| + // Return the number of times the user with the current profile has seen the
|
| + // sync promo.
|
| + int GetViewCount() const;
|
| +
|
| + // Increment the local view count by the specified non-negative integer
|
| + // amount. Returns the new total view count.
|
| + int IncrementViewCountBy(unsigned int amount);
|
| +
|
| + // Record a user's flow through the promo to our histogram in UMA.
|
| + void RecordUserFlowAction(int action);
|
| +
|
| + // Load any experiments that run on the promo page.
|
| + void LoadPromoExperiments();
|
| +
|
| + // Use this to register for certain notifications (currently when tabs or
|
| + // windows close).
|
| + content::NotificationRegistrar registrar_;
|
| +
|
| + // Weak reference that's initialized and checked in Attach() (after that
|
| + // guaranteed to be non-NULL).
|
| + PrefService* prefs_;
|
| +
|
| + // If the user closes the whole window we'll get a close notification from the
|
| + // tab as well, so this bool acts as a small mutex to only report the close
|
| + // method once.
|
| + bool window_already_closed_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(SyncPromoHandler2);
|
| +};
|
| +
|
| +#endif // CHROME_BROWSER_UI_WEBUI_SYNC_PROMO_HANDLER_H_
|
|
|