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. 4 5 #ifndef SYNC_JS_JS_BACKEND_H_ 6 #define SYNC_JS_JS_BACKEND_H_ 7 8 // See README.js for design comments. 9 10 #include <string> 11 12 #include "sync/base/sync_export.h" 13 14 namespace syncer { 15 16 class JsEventHandler; 17 template <typename T> class WeakHandle; 18 19 // Interface representing the backend of chrome://sync-internals. A 20 // JsBackend can handle messages and can emit events to a 21 // JsEventHandler. 22 class SYNC_EXPORT_PRIVATE JsBackend { 23 public: 24 // Starts emitting events to the given handler, if initialized. 25 virtual void SetJsEventHandler( 26 const WeakHandle<JsEventHandler>& event_handler) = 0; 27 28 protected: ~JsBackend()29 virtual ~JsBackend() {} 30 }; 31 32 } // namespace syncer 33 34 #endif // SYNC_JS_JS_BACKEND_H_ 35