Add plumbing for scroll parent.
[chromium-blink-merge.git] / sync / js / js_backend.h
blobe39600a8bcb9750f82fb51e96039379e233938d0
1 // Copyright 2012 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.
5 #ifndef SYNC_JS_JS_BACKEND_H_
6 #define SYNC_JS_JS_BACKEND_H_
8 // See README.js for design comments.
10 #include <string>
12 #include "sync/base/sync_export.h"
14 namespace syncer {
16 class JsArgList;
17 class JsEventHandler;
18 class JsReplyHandler;
19 template <typename T> class WeakHandle;
21 // Interface representing the backend of chrome://sync-internals. A
22 // JsBackend can handle messages and can emit events to a
23 // JsEventHandler.
24 class SYNC_EXPORT_PRIVATE JsBackend {
25 public:
26 // Starts emitting events to the given handler, if initialized.
27 virtual void SetJsEventHandler(
28 const WeakHandle<JsEventHandler>& event_handler) = 0;
30 // Processes the given message and replies via the given handler, if
31 // initialized.
32 virtual void ProcessJsMessage(
33 const std::string& name, const JsArgList& args,
34 const WeakHandle<JsReplyHandler>& reply_handler) = 0;
36 protected:
37 virtual ~JsBackend() {}
40 } // namespace syncer
42 #endif // SYNC_JS_JS_BACKEND_H_