OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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_EXTENSION_FRAME_HELPER_H_ | 5 #ifndef EXTENSIONS_RENDERER_EXTENSION_FRAME_HELPER_H_ |
6 #define EXTENSIONS_RENDERER_EXTENSION_FRAME_HELPER_H_ | 6 #define EXTENSIONS_RENDERER_EXTENSION_FRAME_HELPER_H_ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/macros.h" | 10 #include "base/macros.h" |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
74 // Schedule a callback, to be run at the next RunScriptsAtDocumentStart | 74 // Schedule a callback, to be run at the next RunScriptsAtDocumentStart |
75 // notification. Only call this when you are certain that there will be such a | 75 // notification. Only call this when you are certain that there will be such a |
76 // notification, e.g. from RenderFrameObserver::DidCreateDocumentElement. | 76 // notification, e.g. from RenderFrameObserver::DidCreateDocumentElement. |
77 // Otherwise the callback is never invoked, or invoked for a document that you | 77 // Otherwise the callback is never invoked, or invoked for a document that you |
78 // were not expecting. | 78 // were not expecting. |
79 void ScheduleAtDocumentStart(const base::Closure& callback); | 79 void ScheduleAtDocumentStart(const base::Closure& callback); |
80 | 80 |
81 // Schedule a callback, to be run at the next RunScriptsAtDocumentEnd call. | 81 // Schedule a callback, to be run at the next RunScriptsAtDocumentEnd call. |
82 void ScheduleAtDocumentEnd(const base::Closure& callback); | 82 void ScheduleAtDocumentEnd(const base::Closure& callback); |
83 | 83 |
| 84 // Sends a message to the browser requesting a port id. |callback| will be |
| 85 // invoked with the global port id when the browser responds. |
| 86 void RequestPortId(const ExtensionMsg_ExternalConnectionInfo& info, |
| 87 const std::string& channel_name, |
| 88 bool include_tls_channel_id, |
| 89 const base::Callback<void(int)>& callback); |
| 90 |
84 private: | 91 private: |
85 // RenderFrameObserver implementation. | 92 // RenderFrameObserver implementation. |
86 void DidCreateDocumentElement() override; | 93 void DidCreateDocumentElement() override; |
87 void DidCreateNewDocument() override; | 94 void DidCreateNewDocument() override; |
88 void DidMatchCSS( | 95 void DidMatchCSS( |
89 const blink::WebVector<blink::WebString>& newly_matching_selectors, | 96 const blink::WebVector<blink::WebString>& newly_matching_selectors, |
90 const blink::WebVector<blink::WebString>& stopped_matching_selectors) | 97 const blink::WebVector<blink::WebString>& stopped_matching_selectors) |
91 override; | 98 override; |
92 void DidCreateScriptContext(v8::Local<v8::Context>, | 99 void DidCreateScriptContext(v8::Local<v8::Context>, |
93 int extension_group, | 100 int extension_group, |
(...skipping 20 matching lines...) Expand all Loading... |
114 void OnNotifyRendererViewType(ViewType view_type); | 121 void OnNotifyRendererViewType(ViewType view_type); |
115 void OnExtensionResponse(int request_id, | 122 void OnExtensionResponse(int request_id, |
116 bool success, | 123 bool success, |
117 const base::ListValue& response, | 124 const base::ListValue& response, |
118 const std::string& error); | 125 const std::string& error); |
119 void OnExtensionMessageInvoke(const std::string& extension_id, | 126 void OnExtensionMessageInvoke(const std::string& extension_id, |
120 const std::string& module_name, | 127 const std::string& module_name, |
121 const std::string& function_name, | 128 const std::string& function_name, |
122 const base::ListValue& args, | 129 const base::ListValue& args, |
123 bool user_gesture); | 130 bool user_gesture); |
| 131 void OnAssignPortId(int port_id, int request_id); |
124 | 132 |
125 // Type of view associated with the RenderFrame. | 133 // Type of view associated with the RenderFrame. |
126 ViewType view_type_; | 134 ViewType view_type_; |
127 | 135 |
128 // The id of the tab the render frame is attached to. | 136 // The id of the tab the render frame is attached to. |
129 int tab_id_; | 137 int tab_id_; |
130 | 138 |
131 // The id of the browser window the render frame is attached to. | 139 // The id of the browser window the render frame is attached to. |
132 int browser_window_id_; | 140 int browser_window_id_; |
133 | 141 |
134 Dispatcher* extension_dispatcher_; | 142 Dispatcher* extension_dispatcher_; |
135 | 143 |
136 // Whether or not the current document element has been created. | 144 // Whether or not the current document element has been created. |
137 bool did_create_current_document_element_; | 145 bool did_create_current_document_element_; |
138 | 146 |
139 // Callbacks to be run at the next RunScriptsAtDocumentStart notification. | 147 // Callbacks to be run at the next RunScriptsAtDocumentStart notification. |
140 std::vector<base::Closure> document_element_created_callbacks_; | 148 std::vector<base::Closure> document_element_created_callbacks_; |
141 | 149 |
142 // Callbacks to be run at the next RunScriptsAtDocumentEnd notification. | 150 // Callbacks to be run at the next RunScriptsAtDocumentEnd notification. |
143 std::vector<base::Closure> document_load_finished_callbacks_; | 151 std::vector<base::Closure> document_load_finished_callbacks_; |
144 | 152 |
| 153 // Counter for port requests. |
| 154 int next_port_request_id_; |
| 155 |
| 156 // Map of port requests to callbacks. |
| 157 std::map<int, base::Callback<void(int)>> pending_port_requests_; |
| 158 |
145 base::WeakPtrFactory<ExtensionFrameHelper> weak_ptr_factory_; | 159 base::WeakPtrFactory<ExtensionFrameHelper> weak_ptr_factory_; |
146 | 160 |
147 DISALLOW_COPY_AND_ASSIGN(ExtensionFrameHelper); | 161 DISALLOW_COPY_AND_ASSIGN(ExtensionFrameHelper); |
148 }; | 162 }; |
149 | 163 |
150 } // namespace extensions | 164 } // namespace extensions |
151 | 165 |
152 #endif // EXTENSIONS_RENDERER_EXTENSION_FRAME_HELPER_H_ | 166 #endif // EXTENSIONS_RENDERER_EXTENSION_FRAME_HELPER_H_ |
OLD | NEW |