| 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 |