Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(92)

Side by Side Diff: extensions/renderer/extension_frame_helper.cc

Issue 1225413002: [Extensions] Fix improper extension tab ownership bug (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 #include "extensions/renderer/extension_frame_helper.h" 5 #include "extensions/renderer/extension_frame_helper.h"
6 6
7 #include "content/public/renderer/render_frame.h" 7 #include "content/public/renderer/render_frame.h"
8 #include "extensions/common/api/messaging/message.h" 8 #include "extensions/common/api/messaging/message.h"
9 #include "extensions/common/constants.h" 9 #include "extensions/common/constants.h"
10 #include "extensions/common/extension_messages.h" 10 #include "extensions/common/extension_messages.h"
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 bool handled = true; 131 bool handled = true;
132 IPC_BEGIN_MESSAGE_MAP(ExtensionFrameHelper, message) 132 IPC_BEGIN_MESSAGE_MAP(ExtensionFrameHelper, message)
133 IPC_MESSAGE_HANDLER(ExtensionMsg_DispatchOnConnect, 133 IPC_MESSAGE_HANDLER(ExtensionMsg_DispatchOnConnect,
134 OnExtensionDispatchOnConnect) 134 OnExtensionDispatchOnConnect)
135 IPC_MESSAGE_HANDLER(ExtensionMsg_DeliverMessage, OnExtensionDeliverMessage) 135 IPC_MESSAGE_HANDLER(ExtensionMsg_DeliverMessage, OnExtensionDeliverMessage)
136 IPC_MESSAGE_HANDLER(ExtensionMsg_DispatchOnDisconnect, 136 IPC_MESSAGE_HANDLER(ExtensionMsg_DispatchOnDisconnect,
137 OnExtensionDispatchOnDisconnect) 137 OnExtensionDispatchOnDisconnect)
138 IPC_MESSAGE_HANDLER(ExtensionMsg_SetTabId, OnExtensionSetTabId) 138 IPC_MESSAGE_HANDLER(ExtensionMsg_SetTabId, OnExtensionSetTabId)
139 IPC_MESSAGE_HANDLER(ExtensionMsg_UpdateBrowserWindowId, 139 IPC_MESSAGE_HANDLER(ExtensionMsg_UpdateBrowserWindowId,
140 OnUpdateBrowserWindowId) 140 OnUpdateBrowserWindowId)
141 IPC_MESSAGE_HANDLER(ExtensionMsg_SetMainFrameExtensionOwner,
142 OnSetMainFrameExtensionOwner)
143 IPC_MESSAGE_HANDLER(ExtensionMsg_NotifyRenderViewType, 141 IPC_MESSAGE_HANDLER(ExtensionMsg_NotifyRenderViewType,
144 OnNotifyRendererViewType) 142 OnNotifyRendererViewType)
145 IPC_MESSAGE_HANDLER(ExtensionMsg_Response, OnExtensionResponse) 143 IPC_MESSAGE_HANDLER(ExtensionMsg_Response, OnExtensionResponse)
146 IPC_MESSAGE_HANDLER(ExtensionMsg_MessageInvoke, OnExtensionMessageInvoke) 144 IPC_MESSAGE_HANDLER(ExtensionMsg_MessageInvoke, OnExtensionMessageInvoke)
147 IPC_MESSAGE_UNHANDLED(handled = false) 145 IPC_MESSAGE_UNHANDLED(handled = false)
148 IPC_END_MESSAGE_MAP() 146 IPC_END_MESSAGE_MAP()
149 return handled; 147 return handled;
150 } 148 }
151 149
152 void ExtensionFrameHelper::OnExtensionDispatchOnConnect( 150 void ExtensionFrameHelper::OnExtensionDispatchOnConnect(
(...skipping 30 matching lines...) Expand all
183 void ExtensionFrameHelper::OnExtensionSetTabId(int tab_id) { 181 void ExtensionFrameHelper::OnExtensionSetTabId(int tab_id) {
184 CHECK_EQ(tab_id_, -1); 182 CHECK_EQ(tab_id_, -1);
185 CHECK_GE(tab_id, 0); 183 CHECK_GE(tab_id, 0);
186 tab_id_ = tab_id; 184 tab_id_ = tab_id;
187 } 185 }
188 186
189 void ExtensionFrameHelper::OnUpdateBrowserWindowId(int browser_window_id) { 187 void ExtensionFrameHelper::OnUpdateBrowserWindowId(int browser_window_id) {
190 browser_window_id_ = browser_window_id; 188 browser_window_id_ = browser_window_id;
191 } 189 }
192 190
193 void ExtensionFrameHelper::OnSetMainFrameExtensionOwner(
194 const std::string& extension_id) {
195 tab_extension_owner_id_ = extension_id;
196 }
197
198 void ExtensionFrameHelper::OnNotifyRendererViewType(ViewType type) { 191 void ExtensionFrameHelper::OnNotifyRendererViewType(ViewType type) {
199 // TODO(devlin): It'd be really nice to be able to 192 // TODO(devlin): It'd be really nice to be able to
200 // DCHECK_EQ(VIEW_TYPE_INVALID, view_type_) here. 193 // DCHECK_EQ(VIEW_TYPE_INVALID, view_type_) here.
201 view_type_ = type; 194 view_type_ = type;
202 } 195 }
203 196
204 void ExtensionFrameHelper::OnExtensionResponse(int request_id, 197 void ExtensionFrameHelper::OnExtensionResponse(int request_id,
205 bool success, 198 bool success,
206 const base::ListValue& response, 199 const base::ListValue& response,
207 const std::string& error) { 200 const std::string& error) {
208 extension_dispatcher_->OnExtensionResponse(request_id, 201 extension_dispatcher_->OnExtensionResponse(request_id,
209 success, 202 success,
210 response, 203 response,
211 error); 204 error);
212 } 205 }
213 206
214 void ExtensionFrameHelper::OnExtensionMessageInvoke( 207 void ExtensionFrameHelper::OnExtensionMessageInvoke(
215 const std::string& extension_id, 208 const std::string& extension_id,
216 const std::string& module_name, 209 const std::string& module_name,
217 const std::string& function_name, 210 const std::string& function_name,
218 const base::ListValue& args, 211 const base::ListValue& args,
219 bool user_gesture) { 212 bool user_gesture) {
220 extension_dispatcher_->InvokeModuleSystemMethod(render_frame(), extension_id, 213 extension_dispatcher_->InvokeModuleSystemMethod(render_frame(), extension_id,
221 module_name, function_name, 214 module_name, function_name,
222 args, user_gesture); 215 args, user_gesture);
223 } 216 }
224 217
225 } // namespace extensions 218 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/renderer/extension_frame_helper.h ('k') | extensions/renderer/extension_injection_host.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698