• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef CHROME_BROWSER_UI_WEBUI_SYNC_INTERNALS_UI_H_
6 #define CHROME_BROWSER_UI_WEBUI_SYNC_INTERNALS_UI_H_
7 #pragma once
8 
9 #include <string>
10 
11 #include "base/basictypes.h"
12 #include "chrome/browser/sync/js_event_handler.h"
13 #include "content/browser/webui/web_ui.h"
14 
15 namespace browser_sync {
16 class JsFrontend;
17 }  // namespace browser_sync
18 
19 // The implementation for the chrome://sync-internals page.
20 class SyncInternalsUI : public WebUI, public browser_sync::JsEventHandler {
21  public:
22   explicit SyncInternalsUI(TabContents* contents);
23   virtual ~SyncInternalsUI();
24 
25   // WebUI implementation.
26   //
27   // The following messages are processed:
28   //
29   // getAboutInfo():
30   //   Immediately fires a onGetAboutInfoFinished() event with a
31   //   dictionary of sync-related stats and info.
32   //
33   // All other messages are routed to the sync service if it exists,
34   // and dropped otherwise.
35   //
36   // TODO(akalin): Add a simple isSyncEnabled() message and make
37   // getAboutInfo() be handled by the sync service.
38   virtual void ProcessWebUIMessage(
39       const ExtensionHostMsg_DomMessage_Params& params);
40 
41   // browser_sync::JsEventHandler implementation.
42   virtual void HandleJsEvent(const std::string& name,
43                              const browser_sync::JsArgList& args);
44 
45  private:
46   // Returns the sync service's JsFrontend object, or NULL if the sync
47   // service does not exist.
48   browser_sync::JsFrontend* GetJsFrontend();
49 
50   DISALLOW_COPY_AND_ASSIGN(SyncInternalsUI);
51 };
52 
53 #endif  // CHROME_BROWSER_UI_WEBUI_SYNC_INTERNALS_UI_H_
54