Chromium Code Reviews| Index: extensions/renderer/extension_frame_helper.cc |
| diff --git a/extensions/renderer/extension_frame_helper.cc b/extensions/renderer/extension_frame_helper.cc |
| index 8b462cb7349158525b812f08b3cc0af80d7098d0..302a120bb430430ba661895271a283adcc11cb0a 100644 |
| --- a/extensions/renderer/extension_frame_helper.cc |
| +++ b/extensions/renderer/extension_frame_helper.cc |
| @@ -32,7 +32,8 @@ base::LazyInstance<std::set<const ExtensionFrameHelper*>> g_frame_helpers = |
| bool RenderFrameMatches(const ExtensionFrameHelper* frame_helper, |
| ViewType match_view_type, |
| int match_window_id, |
| - const std::string& match_extension_id) { |
| + const std::string& match_extension_id, |
| + int match_tab_id) { |
|
Devlin
2016/07/11 17:23:45
ditto re parameter ordering.
catmullings
2016/07/12 18:13:48
Done.
|
| if (match_view_type != VIEW_TYPE_INVALID && |
| frame_helper->view_type() != match_view_type) |
| return false; |
| @@ -55,6 +56,11 @@ bool RenderFrameMatches(const ExtensionFrameHelper* frame_helper, |
| if (match_window_id != extension_misc::kUnknownWindowId && |
| frame_helper->browser_window_id() != match_window_id) |
| return false; |
| + |
| + if (match_tab_id != extension_misc::kUnknownTabId && |
| + frame_helper->tab_id() != match_tab_id) |
| + return false; |
| + |
| return true; |
| } |
| @@ -97,10 +103,12 @@ ExtensionFrameHelper::~ExtensionFrameHelper() { |
| std::vector<content::RenderFrame*> ExtensionFrameHelper::GetExtensionFrames( |
| const std::string& extension_id, |
| int browser_window_id, |
| - ViewType view_type) { |
| + ViewType view_type, |
| + int tab_id) { |
| std::vector<content::RenderFrame*> render_frames; |
| for (const ExtensionFrameHelper* helper : g_frame_helpers.Get()) { |
| - if (RenderFrameMatches(helper, view_type, browser_window_id, extension_id)) |
| + if (RenderFrameMatches(helper, view_type, browser_window_id, extension_id, |
| + tab_id)) |
| render_frames.push_back(helper->render_frame()); |
| } |
| return render_frames; |
| @@ -111,7 +119,8 @@ content::RenderFrame* ExtensionFrameHelper::GetBackgroundPageFrame( |
| const std::string& extension_id) { |
| for (const ExtensionFrameHelper* helper : g_frame_helpers.Get()) { |
| if (RenderFrameMatches(helper, VIEW_TYPE_EXTENSION_BACKGROUND_PAGE, |
| - extension_misc::kUnknownWindowId, extension_id)) { |
| + extension_misc::kUnknownWindowId, extension_id, |
| + extension_misc::kUnknownTabId)) { |
| blink::WebLocalFrame* web_frame = helper->render_frame()->GetWebFrame(); |
| // Check if this is the top frame. |
| if (web_frame->top() == web_frame) |