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 #include "content/renderer/render_frame_impl.h" | 5 #include "content/renderer/render_frame_impl.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <string> | 8 #include <string> |
9 #include <utility> | 9 #include <utility> |
10 #include <vector> | 10 #include <vector> |
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
226 #include "content/renderer/pepper/plugin_module.h" | 226 #include "content/renderer/pepper/plugin_module.h" |
227 #endif | 227 #endif |
228 | 228 |
229 #if BUILDFLAG(ENABLE_WEBRTC) | 229 #if BUILDFLAG(ENABLE_WEBRTC) |
230 #include "content/renderer/media/rtc_peer_connection_handler.h" | 230 #include "content/renderer/media/rtc_peer_connection_handler.h" |
231 #endif | 231 #endif |
232 | 232 |
233 #if defined(OS_ANDROID) | 233 #if defined(OS_ANDROID) |
234 #include <cpu-features.h> | 234 #include <cpu-features.h> |
235 | 235 |
236 #include "content/renderer/android/app_web_message_port_client.h" | |
237 #include "content/renderer/java/gin_java_bridge_dispatcher.h" | 236 #include "content/renderer/java/gin_java_bridge_dispatcher.h" |
238 #include "content/renderer/media/android/media_player_renderer_client_factory.h" | 237 #include "content/renderer/media/android/media_player_renderer_client_factory.h" |
239 #include "content/renderer/media/android/renderer_media_player_manager.h" | 238 #include "content/renderer/media/android/renderer_media_player_manager.h" |
240 #include "content/renderer/media/android/renderer_surface_view_manager.h" | 239 #include "content/renderer/media/android/renderer_surface_view_manager.h" |
241 #include "content/renderer/media/android/stream_texture_factory.h" | 240 #include "content/renderer/media/android/stream_texture_factory.h" |
242 #include "content/renderer/media/android/stream_texture_wrapper_impl.h" | 241 #include "content/renderer/media/android/stream_texture_wrapper_impl.h" |
243 #include "media/base/android/media_codec_util.h" | 242 #include "media/base/android/media_codec_util.h" |
244 #include "third_party/WebKit/public/platform/WebFloatPoint.h" | 243 #include "third_party/WebKit/public/platform/WebFloatPoint.h" |
245 #endif | 244 #endif |
246 | 245 |
(...skipping 997 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1244 // when |this| is deleted. | 1243 // when |this| is deleted. |
1245 devtools_agent_ = new DevToolsAgent(this); | 1244 devtools_agent_ = new DevToolsAgent(this); |
1246 } | 1245 } |
1247 | 1246 |
1248 RegisterMojoInterfaces(); | 1247 RegisterMojoInterfaces(); |
1249 | 1248 |
1250 // We delay calling this until we have the WebFrame so that any observer or | 1249 // We delay calling this until we have the WebFrame so that any observer or |
1251 // embedder can call GetWebFrame on any RenderFrame. | 1250 // embedder can call GetWebFrame on any RenderFrame. |
1252 GetContentClient()->renderer()->RenderFrameCreated(this); | 1251 GetContentClient()->renderer()->RenderFrameCreated(this); |
1253 | 1252 |
1254 #if defined(OS_ANDROID) | |
1255 new AppWebMessagePortClient(this); | |
1256 #endif | |
1257 | |
1258 RenderThreadImpl* render_thread = RenderThreadImpl::current(); | 1253 RenderThreadImpl* render_thread = RenderThreadImpl::current(); |
1259 // render_thread may be NULL in tests. | 1254 // render_thread may be NULL in tests. |
1260 InputHandlerManager* input_handler_manager = | 1255 InputHandlerManager* input_handler_manager = |
1261 render_thread ? render_thread->input_handler_manager() : nullptr; | 1256 render_thread ? render_thread->input_handler_manager() : nullptr; |
1262 if (input_handler_manager) { | 1257 if (input_handler_manager) { |
1263 DCHECK(render_view_->HasAddedInputHandler()); | 1258 DCHECK(render_view_->HasAddedInputHandler()); |
1264 input_handler_manager->RegisterRoutingID(GetRoutingID()); | 1259 input_handler_manager->RegisterRoutingID(GetRoutingID()); |
1265 } | 1260 } |
1266 | 1261 |
1267 const base::CommandLine& command_line = | 1262 const base::CommandLine& command_line = |
(...skipping 943 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2211 WebFrame* source_frame = NULL; | 2206 WebFrame* source_frame = NULL; |
2212 if (params.source_routing_id != MSG_ROUTING_NONE) { | 2207 if (params.source_routing_id != MSG_ROUTING_NONE) { |
2213 RenderFrameProxy* source_proxy = | 2208 RenderFrameProxy* source_proxy = |
2214 RenderFrameProxy::FromRoutingID(params.source_routing_id); | 2209 RenderFrameProxy::FromRoutingID(params.source_routing_id); |
2215 if (source_proxy) | 2210 if (source_proxy) |
2216 source_frame = source_proxy->web_frame(); | 2211 source_frame = source_proxy->web_frame(); |
2217 } | 2212 } |
2218 | 2213 |
2219 // If the message contained MessagePorts, create the corresponding endpoints. | 2214 // If the message contained MessagePorts, create the corresponding endpoints. |
2220 blink::WebMessagePortChannelArray channels = | 2215 blink::WebMessagePortChannelArray channels = |
2221 WebMessagePortChannelImpl::CreatePorts( | 2216 WebMessagePortChannelImpl::CreateFromMessagePorts(params.message_ports); |
2222 params.message_ports, params.new_routing_ids, | |
2223 base::ThreadTaskRunnerHandle::Get().get()); | |
2224 | 2217 |
2225 WebSerializedScriptValue serialized_script_value; | 2218 WebSerializedScriptValue serialized_script_value; |
2226 if (params.is_data_raw_string) { | 2219 if (params.is_data_raw_string) { |
2227 v8::HandleScope handle_scope(blink::mainThreadIsolate()); | 2220 v8::HandleScope handle_scope(blink::mainThreadIsolate()); |
2228 v8::Local<v8::Context> context = frame_->mainWorldScriptContext(); | 2221 v8::Local<v8::Context> context = frame_->mainWorldScriptContext(); |
2229 v8::Context::Scope context_scope(context); | 2222 v8::Context::Scope context_scope(context); |
2230 V8ValueConverterImpl converter; | 2223 V8ValueConverterImpl converter; |
2231 converter.SetDateAllowed(true); | 2224 converter.SetDateAllowed(true); |
2232 converter.SetRegExpAllowed(true); | 2225 converter.SetRegExpAllowed(true); |
2233 std::unique_ptr<base::Value> value(new base::StringValue(params.data)); | 2226 std::unique_ptr<base::Value> value(new base::StringValue(params.data)); |
2234 v8::Local<v8::Value> result_value = converter.ToV8Value(value.get(), | 2227 v8::Local<v8::Value> result_value = converter.ToV8Value(value.get(), |
2235 context); | 2228 context); |
2236 serialized_script_value = WebSerializedScriptValue::serialize(result_value); | 2229 serialized_script_value = WebSerializedScriptValue::serialize(result_value); |
2237 } else { | 2230 } else { |
2238 serialized_script_value = | 2231 serialized_script_value = |
2239 WebSerializedScriptValue::fromString(WebString::fromUTF16(params.data)); | 2232 WebSerializedScriptValue::fromString(WebString::fromUTF16(params.data)); |
2240 } | 2233 } |
2241 | 2234 |
2242 // We must pass in the target_origin to do the security check on this side, | 2235 // We must pass in the target_origin to do the security check on this side, |
2243 // since it may have changed since the original postMessage call was made. | 2236 // since it may have changed since the original postMessage call was made. |
2244 WebSecurityOrigin target_origin; | 2237 WebSecurityOrigin target_origin; |
2245 if (!params.target_origin.empty()) { | 2238 if (!params.target_origin.empty()) { |
2246 target_origin = WebSecurityOrigin::createFromString( | 2239 target_origin = WebSecurityOrigin::createFromString( |
2247 WebString::fromUTF16(params.target_origin)); | 2240 WebString::fromUTF16(params.target_origin)); |
2248 } | 2241 } |
2249 | 2242 |
2250 WebDOMMessageEvent msg_event(serialized_script_value, | 2243 WebDOMMessageEvent msg_event(serialized_script_value, |
2251 WebString::fromUTF16(params.source_origin), | 2244 WebString::fromUTF16(params.source_origin), |
2252 source_frame, frame_->document(), channels); | 2245 source_frame, |
| 2246 frame_->document(), |
| 2247 std::move(channels)); |
2253 frame_->dispatchMessageEventWithOriginCheck(target_origin, msg_event); | 2248 frame_->dispatchMessageEventWithOriginCheck(target_origin, msg_event); |
2254 } | 2249 } |
2255 | 2250 |
2256 void RenderFrameImpl::OnReload(bool bypass_cache) { | 2251 void RenderFrameImpl::OnReload(bool bypass_cache) { |
2257 frame_->reload(bypass_cache ? WebFrameLoadType::ReloadBypassingCache | 2252 frame_->reload(bypass_cache ? WebFrameLoadType::ReloadBypassingCache |
2258 : WebFrameLoadType::ReloadMainResource); | 2253 : WebFrameLoadType::ReloadMainResource); |
2259 } | 2254 } |
2260 | 2255 |
2261 void RenderFrameImpl::OnReloadLoFiImages() { | 2256 void RenderFrameImpl::OnReloadLoFiImages() { |
2262 previews_state_ = PREVIEWS_NO_TRANSFORM; | 2257 previews_state_ = PREVIEWS_NO_TRANSFORM; |
(...skipping 4575 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6838 // event target. Potentially a Pepper plugin will receive the event. | 6833 // event target. Potentially a Pepper plugin will receive the event. |
6839 // In order to tell whether a plugin gets the last mouse event and which it | 6834 // In order to tell whether a plugin gets the last mouse event and which it |
6840 // is, we set |pepper_last_mouse_event_target_| to null here. If a plugin gets | 6835 // is, we set |pepper_last_mouse_event_target_| to null here. If a plugin gets |
6841 // the event, it will notify us via DidReceiveMouseEvent() and set itself as | 6836 // the event, it will notify us via DidReceiveMouseEvent() and set itself as |
6842 // |pepper_last_mouse_event_target_|. | 6837 // |pepper_last_mouse_event_target_|. |
6843 pepper_last_mouse_event_target_ = nullptr; | 6838 pepper_last_mouse_event_target_ = nullptr; |
6844 #endif | 6839 #endif |
6845 } | 6840 } |
6846 | 6841 |
6847 } // namespace content | 6842 } // namespace content |
OLD | NEW |