OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/browser/guest_view/guest_view_message_filter.h" | 5 #include "extensions/browser/guest_view/guest_view_message_filter.h" |
6 | 6 |
7 #include "content/public/browser/browser_thread.h" | 7 #include "content/public/browser/browser_thread.h" |
8 #include "content/public/browser/render_frame_host.h" | 8 #include "content/public/browser/render_frame_host.h" |
| 9 #include "content/public/browser/render_process_host.h" |
9 #include "content/public/browser/render_view_host.h" | 10 #include "content/public/browser/render_view_host.h" |
10 #include "extensions/browser/guest_view/guest_view_base.h" | 11 #include "extensions/browser/guest_view/guest_view_base.h" |
11 #include "extensions/browser/guest_view/guest_view_manager.h" | 12 #include "extensions/browser/guest_view/guest_view_manager.h" |
12 #include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_cons
tants.h" | 13 #include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_cons
tants.h" |
13 #include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_gues
t.h" | 14 #include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_gues
t.h" |
| 15 #include "extensions/browser/guest_view/web_view/web_view_content_script_manager
.h" |
| 16 #include "extensions/browser/guest_view/web_view/web_view_guest.h" |
| 17 #include "extensions/browser/guest_view/web_view/web_view_renderer_state.h" |
14 #include "extensions/common/guest_view/guest_view_messages.h" | 18 #include "extensions/common/guest_view/guest_view_messages.h" |
15 #include "ipc/ipc_message_macros.h" | 19 #include "ipc/ipc_message_macros.h" |
16 | 20 |
17 using content::BrowserContext; | 21 using content::BrowserContext; |
18 using content::BrowserThread; | 22 using content::BrowserThread; |
19 using content::RenderFrameHost; | 23 using content::RenderFrameHost; |
20 using content::WebContents; | 24 using content::WebContents; |
21 | 25 |
22 namespace extensions { | 26 namespace extensions { |
23 | 27 |
(...skipping 30 matching lines...) Expand all Loading... |
54 BrowserThread::DeleteOnIOThread::Destruct(this); | 58 BrowserThread::DeleteOnIOThread::Destruct(this); |
55 } | 59 } |
56 | 60 |
57 bool GuestViewMessageFilter::OnMessageReceived(const IPC::Message& message) { | 61 bool GuestViewMessageFilter::OnMessageReceived(const IPC::Message& message) { |
58 bool handled = true; | 62 bool handled = true; |
59 IPC_BEGIN_MESSAGE_MAP(GuestViewMessageFilter, message) | 63 IPC_BEGIN_MESSAGE_MAP(GuestViewMessageFilter, message) |
60 IPC_MESSAGE_HANDLER(GuestViewHostMsg_AttachGuest, OnAttachGuest) | 64 IPC_MESSAGE_HANDLER(GuestViewHostMsg_AttachGuest, OnAttachGuest) |
61 IPC_MESSAGE_HANDLER(GuestViewHostMsg_CreateMimeHandlerViewGuest, | 65 IPC_MESSAGE_HANDLER(GuestViewHostMsg_CreateMimeHandlerViewGuest, |
62 OnCreateMimeHandlerViewGuest) | 66 OnCreateMimeHandlerViewGuest) |
63 IPC_MESSAGE_HANDLER(GuestViewHostMsg_ResizeGuest, OnResizeGuest) | 67 IPC_MESSAGE_HANDLER(GuestViewHostMsg_ResizeGuest, OnResizeGuest) |
| 68 IPC_MESSAGE_HANDLER(GuestViewHostMsg_CanExecuteContentScriptSync, |
| 69 OnCanExecuteContentScript) |
64 IPC_MESSAGE_UNHANDLED(handled = false) | 70 IPC_MESSAGE_UNHANDLED(handled = false) |
65 IPC_END_MESSAGE_MAP() | 71 IPC_END_MESSAGE_MAP() |
66 return handled; | 72 return handled; |
67 } | 73 } |
68 | 74 |
69 void GuestViewMessageFilter::OnAttachGuest( | 75 void GuestViewMessageFilter::OnAttachGuest( |
70 int element_instance_id, | 76 int element_instance_id, |
71 int guest_instance_id, | 77 int guest_instance_id, |
72 const base::DictionaryValue& params) { | 78 const base::DictionaryValue& params) { |
73 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 79 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
126 auto mhvg = MimeHandlerViewGuest::FromWebContents(guest_web_contents); | 132 auto mhvg = MimeHandlerViewGuest::FromWebContents(guest_web_contents); |
127 if (!mhvg) | 133 if (!mhvg) |
128 return; | 134 return; |
129 | 135 |
130 SetSizeParams set_size_params; | 136 SetSizeParams set_size_params; |
131 set_size_params.enable_auto_size.reset(new bool(false)); | 137 set_size_params.enable_auto_size.reset(new bool(false)); |
132 set_size_params.normal_size.reset(new gfx::Size(new_size)); | 138 set_size_params.normal_size.reset(new gfx::Size(new_size)); |
133 mhvg->SetSize(set_size_params); | 139 mhvg->SetSize(set_size_params); |
134 } | 140 } |
135 | 141 |
| 142 void GuestViewMessageFilter::OnCanExecuteContentScript(int render_view_id, |
| 143 int script_id, |
| 144 bool* allowed) { |
| 145 WebViewRendererState::WebViewInfo info; |
| 146 WebViewRendererState::GetInstance()->GetInfo(render_process_id_, |
| 147 render_view_id, &info); |
| 148 |
| 149 *allowed = |
| 150 info.content_script_ids.find(script_id) != info.content_script_ids.end(); |
| 151 } |
| 152 |
136 void GuestViewMessageFilter::MimeHandlerViewGuestCreatedCallback( | 153 void GuestViewMessageFilter::MimeHandlerViewGuestCreatedCallback( |
137 int element_instance_id, | 154 int element_instance_id, |
138 int embedder_render_process_id, | 155 int embedder_render_process_id, |
139 int embedder_render_frame_id, | 156 int embedder_render_frame_id, |
140 const gfx::Size& element_size, | 157 const gfx::Size& element_size, |
141 WebContents* web_contents) { | 158 WebContents* web_contents) { |
142 auto manager = GuestViewManager::FromBrowserContext(browser_context_); | 159 auto manager = GuestViewManager::FromBrowserContext(browser_context_); |
143 if (!manager) | 160 if (!manager) |
144 return; | 161 return; |
145 | 162 |
(...skipping 13 matching lines...) Expand all Loading... |
159 manager->AttachGuest(embedder_render_process_id, | 176 manager->AttachGuest(embedder_render_process_id, |
160 element_instance_id, | 177 element_instance_id, |
161 guest_instance_id, | 178 guest_instance_id, |
162 attach_params); | 179 attach_params); |
163 | 180 |
164 rfh->Send( | 181 rfh->Send( |
165 new GuestViewMsg_CreateMimeHandlerViewGuestACK(element_instance_id)); | 182 new GuestViewMsg_CreateMimeHandlerViewGuestACK(element_instance_id)); |
166 } | 183 } |
167 | 184 |
168 } // namespace extensions | 185 } // namespace extensions |
OLD | NEW |