summaryrefslogtreecommitdiffstats
path: root/chrome/browser/sync/personalization.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/sync/personalization.h')
-rw-r--r--chrome/browser/sync/personalization.h109
1 files changed, 109 insertions, 0 deletions
diff --git a/chrome/browser/sync/personalization.h b/chrome/browser/sync/personalization.h
new file mode 100644
index 0000000..57decf5
--- /dev/null
+++ b/chrome/browser/sync/personalization.h
@@ -0,0 +1,109 @@
+// Copyright (c) 2006-2008 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.
+
+#ifdef CHROME_PERSONALIZATION
+
+// TODO(timsteele): Remove this file by finding proper homes for everything in
+// trunk.
+#ifndef CHROME_BROWSER_SYNC_PERSONALIZATION_H_
+#define CHROME_BROWSER_SYNC_PERSONALIZATION_H_
+
+#include <string>
+#include "base/basictypes.h"
+#include "chrome/browser/dom_ui/chrome_url_data_manager.h"
+
+class Browser;
+class DOMUI;
+class DOMMessageHandler;
+class Profile;
+class RenderView;
+class RenderViewHost;
+class WebFrame;
+class WebView;
+
+class ProfileSyncService;
+class ProfileSyncServiceObserver;
+
+namespace views { class View; }
+
+// TODO(ncarter): Move these switches into chrome_switches. They are here
+// now because we want to keep them secret during early development.
+namespace switches {
+extern const wchar_t kSyncServiceURL[];
+extern const wchar_t kSyncServicePort[];
+extern const wchar_t kSyncUserForTest[];
+extern const wchar_t kSyncPasswordForTest[];
+}
+
+// Names of various preferences.
+// TODO(munjal): Move these preferences to common/pref_names.h.
+namespace prefs {
+extern const wchar_t kSyncPath[];
+extern const wchar_t kSyncLastSyncedTime[];
+extern const wchar_t kSyncUserName[];
+extern const wchar_t kSyncHasSetupCompleted[];
+}
+
+// Contains a profile sync service, which is initialized at profile creation.
+// A pointer to this class is passed as a handle.
+class ProfilePersonalization {
+ public:
+ ProfilePersonalization() {}
+ virtual ~ProfilePersonalization() {}
+
+ virtual ProfileSyncService* sync_service() = 0;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(ProfilePersonalization);
+};
+
+// Contains methods to perform Personalization-related tasks on behalf of the
+// caller.
+namespace Personalization {
+
+// Checks if P13N is globally disabled or not, and that |profile| has a valid
+// ProfilePersonalization member (it can be NULL for TestingProfiles).
+bool IsP13NDisabled(Profile* profile);
+
+// Returns whether |url| should be loaded in a DOMUI.
+bool NeedsDOMUI(const GURL& url);
+
+// Construct a new ProfilePersonalization and return it so the caller can take
+// ownership.
+ProfilePersonalization* CreateProfilePersonalization(Profile* p);
+
+// The caller of Create...() above should call this when the returned
+// ProfilePersonalization object should be deleted.
+void CleanupProfilePersonalization(ProfilePersonalization* p);
+
+// Handler for "cloudy:stats"
+std::string MakeCloudyStats();
+
+// Construct a new DOMMessageHandler for the new tab page |dom_ui|.
+DOMMessageHandler* CreateNewTabPageHandler(DOMUI* dom_ui);
+
+// Get HTML for the Personalization iframe in the New Tab Page.
+std::string GetNewTabSource();
+
+// Returns the text for personalization info menu item and sets its enabled
+// state.
+std::wstring GetMenuItemInfoText(Browser* browser);
+
+// Performs appropriate action when the sync menu item is clicked.
+void HandleMenuItemClick(Profile* p);
+} // namespace Personalization
+
+// The internal scheme used to retrieve HTML resources for personalization
+// related code (e.g cloudy:stats, GAIA login page).
+// We need to ensure the GAIA login HTML is loaded into an HTMLDialogContents.
+// Outside of p13n (for the time being) only "gears://" gives this (see
+// HtmlDialogContents::IsHtmlDialogUrl) for the application shortcut dialog.
+// TODO(timsteele): We should have a robust way to handle this to allow more
+// reuse of our HTML dialog code, perhaps by using a dedicated "dialog-resource"
+// scheme (chrome-resource is coupled to DOM_UI). Figure out if that is the best
+// course of action / pitch this idea to chromium-dev.
+static const char kPersonalizationScheme[] = "cloudy";
+
+#endif // CHROME_BROWSER_SYNC_PERSONALIZATION_H_
+#endif // CHROME_PERSONALIZATION