| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef EXTENSIONS_RENDERER_EVENT_BINDINGS_H_ | 5 #ifndef EXTENSIONS_RENDERER_EVENT_BINDINGS_H_ |
| 6 #define EXTENSIONS_RENDERER_EVENT_BINDINGS_H_ | 6 #define EXTENSIONS_RENDERER_EVENT_BINDINGS_H_ |
| 7 | 7 |
| 8 #include <memory> | 8 #include <memory> |
| 9 #include <set> | 9 #include <set> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 28 matching lines...) Expand all Loading... |
| 39 const EventFilteringInfo* filtering_info, | 39 const EventFilteringInfo* filtering_info, |
| 40 ScriptContext* context); | 40 ScriptContext* context); |
| 41 | 41 |
| 42 private: | 42 private: |
| 43 // JavaScript handler which forwards to AttachEvent(). | 43 // JavaScript handler which forwards to AttachEvent(). |
| 44 // args[0] forwards to |event_name|. | 44 // args[0] forwards to |event_name|. |
| 45 void AttachEventHandler(const v8::FunctionCallbackInfo<v8::Value>& args); | 45 void AttachEventHandler(const v8::FunctionCallbackInfo<v8::Value>& args); |
| 46 | 46 |
| 47 // Attach an event name to an object. | 47 // Attach an event name to an object. |
| 48 // |event_name| The name of the event to attach. | 48 // |event_name| The name of the event to attach. |
| 49 void AttachEvent(const std::string& event_name); | 49 void AttachEvent(const std::string& event_name, bool supports_lazy_listeners); |
| 50 | 50 |
| 51 // JavaScript handler which forwards to DetachEvent(). | 51 // JavaScript handler which forwards to DetachEvent(). |
| 52 // args[0] forwards to |event_name|. | 52 // args[0] forwards to |event_name|. |
| 53 // args[1] forwards to |is_manual|. | 53 // args[1] forwards to |is_manual|. |
| 54 void DetachEventHandler(const v8::FunctionCallbackInfo<v8::Value>& args); | 54 void DetachEventHandler(const v8::FunctionCallbackInfo<v8::Value>& args); |
| 55 | 55 |
| 56 // Detaches an event name from an object. | 56 // Detaches an event name from an object. |
| 57 // |event_name| The name of the event to stop listening to. | 57 // |event_name| The name of the event to stop listening to. |
| 58 // |is_manual| True if this detach was done by the user via removeListener() | 58 // |is_manual| True if this detach was done by the user via removeListener() |
| 59 // as opposed to automatically during shutdown, in which case we should inform | 59 // as opposed to automatically during shutdown, in which case we should inform |
| 60 // the browser we are no longer interested in that event. | 60 // the browser we are no longer interested in that event. |
| 61 void DetachEvent(const std::string& event_name, bool is_manual); | 61 void DetachEvent(const std::string& event_name, bool remove_lazy_listener); |
| 62 | 62 |
| 63 // MatcherID AttachFilteredEvent(string event_name, object filter) | 63 // MatcherID AttachFilteredEvent(string event_name, object filter) |
| 64 // |event_name| Name of the event to attach. | 64 // |event_name| Name of the event to attach. |
| 65 // |filter| Which instances of the named event are we interested in. | 65 // |filter| Which instances of the named event are we interested in. |
| 66 // returns the id assigned to the listener, which will be returned from calls | 66 // returns the id assigned to the listener, which will be returned from calls |
| 67 // to MatchAgainstEventFilter where this listener matches. | 67 // to MatchAgainstEventFilter where this listener matches. |
| 68 void AttachFilteredEvent(const v8::FunctionCallbackInfo<v8::Value>& args); | 68 void AttachFilteredEvent(const v8::FunctionCallbackInfo<v8::Value>& args); |
| 69 | 69 |
| 70 // JavaScript handler which forwards to DetachFilteredEvent. | 70 // JavaScript handler which forwards to DetachFilteredEvent. |
| 71 // void DetachFilteredEvent(int id, bool manual) | 71 // void DetachFilteredEvent(int id, bool manual) |
| 72 // args[0] forwards to |matcher_id| | 72 // args[0] forwards to |matcher_id| |
| 73 // args[1] forwards to |is_manual| | 73 // args[1] forwards to |is_manual| |
| 74 void DetachFilteredEventHandler( | 74 void DetachFilteredEventHandler( |
| 75 const v8::FunctionCallbackInfo<v8::Value>& args); | 75 const v8::FunctionCallbackInfo<v8::Value>& args); |
| 76 | 76 |
| 77 // Detaches a filtered event. Unlike a normal event, a filtered event is | 77 // Detaches a filtered event. Unlike a normal event, a filtered event is |
| 78 // identified by a unique ID per filter, not its name. | 78 // identified by a unique ID per filter, not its name. |
| 79 // |matcher_id| The ID of the filtered event. | 79 // |matcher_id| The ID of the filtered event. |
| 80 // |is_manual| false if this is part of the extension unload process where all | 80 // |is_manual| false if this is part of the extension unload process where all |
| 81 // listeners are automatically detached. | 81 // listeners are automatically detached. |
| 82 void DetachFilteredEvent(int matcher_id, bool is_manual); | 82 void DetachFilteredEvent(int matcher_id, bool remove_lazy_listener); |
| 83 | 83 |
| 84 void AttachUnmanagedEvent(const v8::FunctionCallbackInfo<v8::Value>& args); | 84 void AttachUnmanagedEvent(const v8::FunctionCallbackInfo<v8::Value>& args); |
| 85 void DetachUnmanagedEvent(const v8::FunctionCallbackInfo<v8::Value>& args); | 85 void DetachUnmanagedEvent(const v8::FunctionCallbackInfo<v8::Value>& args); |
| 86 | 86 |
| 87 // Called when our context, and therefore us, is invalidated. Run any cleanup. | 87 // Called when our context, and therefore us, is invalidated. Run any cleanup. |
| 88 void OnInvalidated(); | 88 void OnInvalidated(); |
| 89 | 89 |
| 90 // The associated message sender. Guaranteed to outlive this object. | 90 // The associated message sender. Guaranteed to outlive this object. |
| 91 IPCMessageSender* const ipc_message_sender_; | 91 IPCMessageSender* const ipc_message_sender_; |
| 92 | 92 |
| 93 // The set of attached events and filtered events. Maintain these so that we | 93 // The set of attached events and filtered events. Maintain these so that we |
| 94 // can detch them on unload. | 94 // can detch them on unload. |
| 95 std::set<std::string> attached_event_names_; | 95 std::set<std::string> attached_event_names_; |
| 96 std::set<int> attached_matcher_ids_; | 96 std::set<int> attached_matcher_ids_; |
| 97 | 97 |
| 98 DISALLOW_COPY_AND_ASSIGN(EventBindings); | 98 DISALLOW_COPY_AND_ASSIGN(EventBindings); |
| 99 }; | 99 }; |
| 100 | 100 |
| 101 } // namespace extensions | 101 } // namespace extensions |
| 102 | 102 |
| 103 #endif // EXTENSIONS_RENDERER_EVENT_BINDINGS_H_ | 103 #endif // EXTENSIONS_RENDERER_EVENT_BINDINGS_H_ |
| OLD | NEW |