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.
12 #include "sync/base/sync_export.h"
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
24 class SYNC_EXPORT_PRIVATE JsBackend
{
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
32 virtual void ProcessJsMessage(
33 const std::string
& name
, const JsArgList
& args
,
34 const WeakHandle
<JsReplyHandler
>& reply_handler
) = 0;
37 virtual ~JsBackend() {}
42 #endif // SYNC_JS_JS_BACKEND_H_