summaryrefslogtreecommitdiffstats
path: root/extensions/renderer/display_source_custom_bindings.h
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/renderer/display_source_custom_bindings.h')
-rw-r--r--extensions/renderer/display_source_custom_bindings.h18
1 files changed, 16 insertions, 2 deletions
diff --git a/extensions/renderer/display_source_custom_bindings.h b/extensions/renderer/display_source_custom_bindings.h
index 199f199..2a65445 100644
--- a/extensions/renderer/display_source_custom_bindings.h
+++ b/extensions/renderer/display_source_custom_bindings.h
@@ -29,8 +29,12 @@ class DisplaySourceCustomBindings : public ObjectBackedNativeHandler {
const v8::FunctionCallbackInfo<v8::Value>& args);
void TerminateSession(
const v8::FunctionCallbackInfo<v8::Value>& args);
-
- void DispatchSessionStarted(int sink_id) const;
+ // Call completion callbacks.
+ enum CallbackType { kStarted, kTerminated };
+ void CallCompletionCallback(int sink_id,
+ CallbackType type,
+ const std::string& error_message = "");
+ // Dispatch events
void DispatchSessionTerminated(int sink_id) const;
void DispatchSessionError(int sink_id,
DisplaySourceErrorType type,
@@ -46,6 +50,16 @@ class DisplaySourceCustomBindings : public ObjectBackedNativeHandler {
DisplaySourceSession* GetDisplaySession(int sink_id) const;
std::map<int, scoped_ptr<DisplaySourceSession>> session_map_;
+ // Data of a call completion callback.
+ struct CallbackInfo {
+ CallbackType type;
+ int sink_id;
+ int call_id; // Each call has a unique Id.
+ };
+
+ CallbackInfo GetCallbackInfo(CallbackType type, int sink_id) const;
+
+ std::vector<CallbackInfo> callbacks_;
base::WeakPtrFactory<DisplaySourceCustomBindings> weak_factory_;
DISALLOW_COPY_AND_ASSIGN(DisplaySourceCustomBindings);