diff options
author | tim@chromium.org <tim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-05 01:18:27 +0000 |
---|---|---|
committer | tim@chromium.org <tim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-05 01:18:27 +0000 |
commit | 132c8565a63ad57d680b6b8d9beaa28786a46ea8 (patch) | |
tree | 428425605547842abd6a7ab851bd27132f11efde /chrome/browser/dom_ui/new_tab_page_sync_handler.h | |
parent | f902600776feea6570c876f2349bb4a8746ea95b (diff) | |
download | chromium_src-132c8565a63ad57d680b6b8d9beaa28786a46ea8.zip chromium_src-132c8565a63ad57d680b6b8d9beaa28786a46ea8.tar.gz chromium_src-132c8565a63ad57d680b6b8d9beaa28786a46ea8.tar.bz2 |
Add files to browser/sync and tweak includes.
Create browser/sync/glue and /engine.
Create sync watchlist and add a few folks.
No GYP change here so no build changes should occur.
chrome.gyp CL is coming shortly, as well as live_sync tests.
Review URL: http://codereview.chromium.org/160598
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22454 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/dom_ui/new_tab_page_sync_handler.h')
-rw-r--r-- | chrome/browser/dom_ui/new_tab_page_sync_handler.h | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/chrome/browser/dom_ui/new_tab_page_sync_handler.h b/chrome/browser/dom_ui/new_tab_page_sync_handler.h new file mode 100644 index 0000000..2f50a2a --- /dev/null +++ b/chrome/browser/dom_ui/new_tab_page_sync_handler.h @@ -0,0 +1,61 @@ +// 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 + +#ifndef CHROME_BROWSER_DOM_UI_NEW_TAB_PAGE_SYNC_HANDLER_H_ +#define CHROME_BROWSER_DOM_UI_NEW_TAB_PAGE_SYNC_HANDLER_H_ + +#include <string> + +#include "chrome/browser/dom_ui/dom_ui.h" +#include "chrome/browser/sync/profile_sync_service.h" +#include "chrome/browser/sync/sync_status_ui_helper.h" + +class Value; + +// Sends sync-state changes to the New Tab Page for UI updating and forwards +// link clicks on the page to the sync service. +class NewTabPageSyncHandler : public DOMMessageHandler, + public ProfileSyncServiceObserver { + public: + NewTabPageSyncHandler(); + virtual ~NewTabPageSyncHandler(); + + // DOMMessageHandler implementation. + virtual DOMMessageHandler* Attach(DOMUI* dom_ui); + virtual void RegisterMessages(); + + // Callback for "GetSyncMessage". + void HandleGetSyncMessage(const Value* value); + // Callback for "SyncLinkClicked". + void HandleSyncLinkClicked(const Value* value); + // Callback for "ResizeP13N" + void HandleResizeP13N(const Value* value); + + // ProfileSyncServiceObserver + virtual void OnStateChanged(); + + private: + // Helper to invoke |renderSyncMessage| JS function on the new tab page. + void SendSyncMessageToPage(SyncStatusUIHelper::MessageType type, + std::string msg, const std::string& linktext); + + // Helper to query the sync service and figure out what to send to + // the page, and send it via SendSyncMessageToPage. + // NOTE: precondition: sync must be enabled. + void BuildAndSendSyncStatus(); + + // Cached pointer to ProfileSyncService. + ProfileSyncService* sync_service_; + + // Used to make sure we don't register ourselves twice if the user refreshes + // the new tab page. + bool waiting_for_initial_page_load_; + + DISALLOW_COPY_AND_ASSIGN(NewTabPageSyncHandler); +}; + +#endif // CHROME_BROWSER_DOM_UI_NEW_TAB_PAGE_SYNC_HANDLER_H_ +#endif // CHROME_PERSONALIZATION |