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

Side by Side Diff: extensions/browser/guest_view/guest_view_message_filter.cc

Issue 959413003: Implement <webview>.addContentScript/removeContentScript API [1] (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 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 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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698