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 "content/renderer/media/android/webmediaplayer_android.h" | 242 #include "content/renderer/media/android/webmediaplayer_android.h" |
244 #include "media/base/android/media_codec_util.h" | 243 #include "media/base/android/media_codec_util.h" |
245 #include "third_party/WebKit/public/platform/WebFloatPoint.h" | 244 #include "third_party/WebKit/public/platform/WebFloatPoint.h" |
246 #endif | 245 #endif |
(...skipping 1002 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1249 // when |this| is deleted. | 1248 // when |this| is deleted. |
1250 devtools_agent_ = new DevToolsAgent(this); | 1249 devtools_agent_ = new DevToolsAgent(this); |
1251 } | 1250 } |
1252 | 1251 |
1253 RegisterMojoInterfaces(); | 1252 RegisterMojoInterfaces(); |
1254 | 1253 |
1255 // We delay calling this until we have the WebFrame so that any observer or | 1254 // We delay calling this until we have the WebFrame so that any observer or |
1256 // embedder can call GetWebFrame on any RenderFrame. | 1255 // embedder can call GetWebFrame on any RenderFrame. |
1257 GetContentClient()->renderer()->RenderFrameCreated(this); | 1256 GetContentClient()->renderer()->RenderFrameCreated(this); |
1258 | 1257 |
1259 #if defined(OS_ANDROID) | |
1260 new AppWebMessagePortClient(this); | |
1261 #endif | |
1262 | |
1263 RenderThreadImpl* render_thread = RenderThreadImpl::current(); | 1258 RenderThreadImpl* render_thread = RenderThreadImpl::current(); |
1264 // render_thread may be NULL in tests. | 1259 // render_thread may be NULL in tests. |
1265 InputHandlerManager* input_handler_manager = | 1260 InputHandlerManager* input_handler_manager = |
1266 render_thread ? render_thread->input_handler_manager() : nullptr; | 1261 render_thread ? render_thread->input_handler_manager() : nullptr; |
1267 if (input_handler_manager) { | 1262 if (input_handler_manager) { |
1268 DCHECK(render_view_->HasAddedInputHandler()); | 1263 DCHECK(render_view_->HasAddedInputHandler()); |
1269 input_handler_manager->RegisterRoutingID(GetRoutingID()); | 1264 input_handler_manager->RegisterRoutingID(GetRoutingID()); |
1270 } | 1265 } |
1271 | 1266 |
1272 const base::CommandLine& command_line = | 1267 const base::CommandLine& command_line = |
(...skipping 933 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2206 WebFrame* source_frame = NULL; | 2201 WebFrame* source_frame = NULL; |
2207 if (params.source_routing_id != MSG_ROUTING_NONE) { | 2202 if (params.source_routing_id != MSG_ROUTING_NONE) { |
2208 RenderFrameProxy* source_proxy = | 2203 RenderFrameProxy* source_proxy = |
2209 RenderFrameProxy::FromRoutingID(params.source_routing_id); | 2204 RenderFrameProxy::FromRoutingID(params.source_routing_id); |
2210 if (source_proxy) | 2205 if (source_proxy) |
2211 source_frame = source_proxy->web_frame(); | 2206 source_frame = source_proxy->web_frame(); |
2212 } | 2207 } |
2213 | 2208 |
2214 // If the message contained MessagePorts, create the corresponding endpoints. | 2209 // If the message contained MessagePorts, create the corresponding endpoints. |
2215 blink::WebMessagePortChannelArray channels = | 2210 blink::WebMessagePortChannelArray channels = |
2216 WebMessagePortChannelImpl::CreatePorts( | 2211 WebMessagePortChannelImpl::CreateFromMessagePorts(params.message_ports); |
2217 params.message_ports, params.new_routing_ids, | |
2218 base::ThreadTaskRunnerHandle::Get().get()); | |
2219 | 2212 |
2220 WebSerializedScriptValue serialized_script_value; | 2213 WebSerializedScriptValue serialized_script_value; |
2221 if (params.is_data_raw_string) { | 2214 if (params.is_data_raw_string) { |
2222 v8::HandleScope handle_scope(blink::mainThreadIsolate()); | 2215 v8::HandleScope handle_scope(blink::mainThreadIsolate()); |
2223 v8::Local<v8::Context> context = frame_->mainWorldScriptContext(); | 2216 v8::Local<v8::Context> context = frame_->mainWorldScriptContext(); |
2224 v8::Context::Scope context_scope(context); | 2217 v8::Context::Scope context_scope(context); |
2225 V8ValueConverterImpl converter; | 2218 V8ValueConverterImpl converter; |
2226 converter.SetDateAllowed(true); | 2219 converter.SetDateAllowed(true); |
2227 converter.SetRegExpAllowed(true); | 2220 converter.SetRegExpAllowed(true); |
2228 std::unique_ptr<base::Value> value(new base::StringValue(params.data)); | 2221 std::unique_ptr<base::Value> value(new base::StringValue(params.data)); |
2229 v8::Local<v8::Value> result_value = converter.ToV8Value(value.get(), | 2222 v8::Local<v8::Value> result_value = converter.ToV8Value(value.get(), |
2230 context); | 2223 context); |
2231 serialized_script_value = WebSerializedScriptValue::serialize(result_value); | 2224 serialized_script_value = WebSerializedScriptValue::serialize(result_value); |
2232 } else { | 2225 } else { |
2233 serialized_script_value = | 2226 serialized_script_value = |
2234 WebSerializedScriptValue::fromString(WebString::fromUTF16(params.data)); | 2227 WebSerializedScriptValue::fromString(WebString::fromUTF16(params.data)); |
2235 } | 2228 } |
2236 | 2229 |
2237 // We must pass in the target_origin to do the security check on this side, | 2230 // We must pass in the target_origin to do the security check on this side, |
2238 // since it may have changed since the original postMessage call was made. | 2231 // since it may have changed since the original postMessage call was made. |
2239 WebSecurityOrigin target_origin; | 2232 WebSecurityOrigin target_origin; |
2240 if (!params.target_origin.empty()) { | 2233 if (!params.target_origin.empty()) { |
2241 target_origin = WebSecurityOrigin::createFromString( | 2234 target_origin = WebSecurityOrigin::createFromString( |
2242 WebString::fromUTF16(params.target_origin)); | 2235 WebString::fromUTF16(params.target_origin)); |
2243 } | 2236 } |
2244 | 2237 |
2245 WebDOMMessageEvent msg_event(serialized_script_value, | 2238 WebDOMMessageEvent msg_event(serialized_script_value, |
2246 WebString::fromUTF16(params.source_origin), | 2239 WebString::fromUTF16(params.source_origin), |
2247 source_frame, frame_->document(), channels); | 2240 source_frame, |
| 2241 frame_->document(), |
| 2242 std::move(channels)); |
2248 frame_->dispatchMessageEventWithOriginCheck(target_origin, msg_event); | 2243 frame_->dispatchMessageEventWithOriginCheck(target_origin, msg_event); |
2249 } | 2244 } |
2250 | 2245 |
2251 void RenderFrameImpl::OnReload(bool bypass_cache) { | 2246 void RenderFrameImpl::OnReload(bool bypass_cache) { |
2252 frame_->reload(bypass_cache ? WebFrameLoadType::ReloadBypassingCache | 2247 frame_->reload(bypass_cache ? WebFrameLoadType::ReloadBypassingCache |
2253 : WebFrameLoadType::ReloadMainResource); | 2248 : WebFrameLoadType::ReloadMainResource); |
2254 } | 2249 } |
2255 | 2250 |
2256 void RenderFrameImpl::OnReloadLoFiImages() { | 2251 void RenderFrameImpl::OnReloadLoFiImages() { |
2257 previews_state_ = PREVIEWS_NO_TRANSFORM; | 2252 previews_state_ = PREVIEWS_NO_TRANSFORM; |
(...skipping 4556 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6814 // event target. Potentially a Pepper plugin will receive the event. | 6809 // event target. Potentially a Pepper plugin will receive the event. |
6815 // In order to tell whether a plugin gets the last mouse event and which it | 6810 // In order to tell whether a plugin gets the last mouse event and which it |
6816 // is, we set |pepper_last_mouse_event_target_| to null here. If a plugin gets | 6811 // is, we set |pepper_last_mouse_event_target_| to null here. If a plugin gets |
6817 // the event, it will notify us via DidReceiveMouseEvent() and set itself as | 6812 // the event, it will notify us via DidReceiveMouseEvent() and set itself as |
6818 // |pepper_last_mouse_event_target_|. | 6813 // |pepper_last_mouse_event_target_|. |
6819 pepper_last_mouse_event_target_ = nullptr; | 6814 pepper_last_mouse_event_target_ = nullptr; |
6820 #endif | 6815 #endif |
6821 } | 6816 } |
6822 | 6817 |
6823 } // namespace content | 6818 } // namespace content |
OLD | NEW |