OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_view_impl.h" | 5 #include "content/renderer/render_view_impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <cmath> | 8 #include <cmath> |
9 | 9 |
10 #include "base/auto_reset.h" | 10 #include "base/auto_reset.h" |
(...skipping 15 matching lines...) Expand all Loading... |
26 #include "base/strings/string_piece.h" | 26 #include "base/strings/string_piece.h" |
27 #include "base/strings/string_split.h" | 27 #include "base/strings/string_split.h" |
28 #include "base/strings/string_util.h" | 28 #include "base/strings/string_util.h" |
29 #include "base/strings/sys_string_conversions.h" | 29 #include "base/strings/sys_string_conversions.h" |
30 #include "base/strings/utf_string_conversions.h" | 30 #include "base/strings/utf_string_conversions.h" |
31 #include "base/time/time.h" | 31 #include "base/time/time.h" |
32 #include "content/child/appcache_dispatcher.h" | 32 #include "content/child/appcache_dispatcher.h" |
33 #include "content/child/child_thread.h" | 33 #include "content/child/child_thread.h" |
34 #include "content/child/fileapi/file_system_dispatcher.h" | 34 #include "content/child/fileapi/file_system_dispatcher.h" |
35 #include "content/child/fileapi/webfilesystem_callback_adapters.h" | 35 #include "content/child/fileapi/webfilesystem_callback_adapters.h" |
| 36 #include "content/child/npapi/webplugin_delegate_impl.h" |
36 #include "content/child/quota_dispatcher.h" | 37 #include "content/child/quota_dispatcher.h" |
37 #include "content/child/request_extra_data.h" | 38 #include "content/child/request_extra_data.h" |
38 #include "content/child/webmessageportchannel_impl.h" | 39 #include "content/child/webmessageportchannel_impl.h" |
39 #include "content/common/clipboard_messages.h" | 40 #include "content/common/clipboard_messages.h" |
40 #include "content/common/database_messages.h" | 41 #include "content/common/database_messages.h" |
41 #include "content/common/drag_messages.h" | 42 #include "content/common/drag_messages.h" |
42 #include "content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.h" | 43 #include "content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.h" |
43 #include "content/common/input_messages.h" | 44 #include "content/common/input_messages.h" |
44 #include "content/common/java_bridge_messages.h" | 45 #include "content/common/java_bridge_messages.h" |
45 #include "content/common/pepper_messages.h" | 46 #include "content/common/pepper_messages.h" |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
119 #include "content/renderer/renderer_webcolorchooser_impl.h" | 120 #include "content/renderer/renderer_webcolorchooser_impl.h" |
120 #include "content/renderer/savable_resources.h" | 121 #include "content/renderer/savable_resources.h" |
121 #include "content/renderer/speech_recognition_dispatcher.h" | 122 #include "content/renderer/speech_recognition_dispatcher.h" |
122 #include "content/renderer/stats_collection_controller.h" | 123 #include "content/renderer/stats_collection_controller.h" |
123 #include "content/renderer/stats_collection_observer.h" | 124 #include "content/renderer/stats_collection_observer.h" |
124 #include "content/renderer/text_input_client_observer.h" | 125 #include "content/renderer/text_input_client_observer.h" |
125 #include "content/renderer/v8_value_converter_impl.h" | 126 #include "content/renderer/v8_value_converter_impl.h" |
126 #include "content/renderer/web_ui_extension.h" | 127 #include "content/renderer/web_ui_extension.h" |
127 #include "content/renderer/web_ui_extension_data.h" | 128 #include "content/renderer/web_ui_extension_data.h" |
128 #include "content/renderer/webplugin_delegate_proxy.h" | 129 #include "content/renderer/webplugin_delegate_proxy.h" |
| 130 #include "content/renderer/webplugin_impl.h" |
129 #include "content/renderer/websharedworker_proxy.h" | 131 #include "content/renderer/websharedworker_proxy.h" |
130 #include "media/audio/audio_output_device.h" | 132 #include "media/audio/audio_output_device.h" |
131 #include "media/base/audio_renderer_mixer_input.h" | 133 #include "media/base/audio_renderer_mixer_input.h" |
132 #include "media/base/filter_collection.h" | 134 #include "media/base/filter_collection.h" |
133 #include "media/base/media_switches.h" | 135 #include "media/base/media_switches.h" |
134 #include "media/filters/audio_renderer_impl.h" | 136 #include "media/filters/audio_renderer_impl.h" |
135 #include "media/filters/gpu_video_decoder.h" | 137 #include "media/filters/gpu_video_decoder.h" |
136 #include "net/base/data_url.h" | 138 #include "net/base/data_url.h" |
137 #include "net/base/escape.h" | 139 #include "net/base/escape.h" |
138 #include "net/base/net_errors.h" | 140 #include "net/base/net_errors.h" |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
200 #include "ui/gfx/native_widget_types.h" | 202 #include "ui/gfx/native_widget_types.h" |
201 #include "ui/gfx/point.h" | 203 #include "ui/gfx/point.h" |
202 #include "ui/gfx/rect.h" | 204 #include "ui/gfx/rect.h" |
203 #include "ui/gfx/rect_conversions.h" | 205 #include "ui/gfx/rect_conversions.h" |
204 #include "ui/gfx/size_conversions.h" | 206 #include "ui/gfx/size_conversions.h" |
205 #include "ui/shell_dialogs/selected_file_info.h" | 207 #include "ui/shell_dialogs/selected_file_info.h" |
206 #include "v8/include/v8.h" | 208 #include "v8/include/v8.h" |
207 #include "webkit/common/dom_storage/dom_storage_types.h" | 209 #include "webkit/common/dom_storage/dom_storage_types.h" |
208 #include "webkit/glue/webkit_glue.h" | 210 #include "webkit/glue/webkit_glue.h" |
209 #include "webkit/glue/weburlresponse_extradata_impl.h" | 211 #include "webkit/glue/weburlresponse_extradata_impl.h" |
210 #include "webkit/plugins/npapi/plugin_list.h" | |
211 #include "webkit/plugins/npapi/plugin_utils.h" | 212 #include "webkit/plugins/npapi/plugin_utils.h" |
212 #include "webkit/plugins/npapi/webplugin_delegate.h" | |
213 #include "webkit/plugins/npapi/webplugin_delegate_impl.h" | |
214 #include "webkit/plugins/npapi/webplugin_impl.h" | |
215 #include "webkit/renderer/appcache/web_application_cache_host_impl.h" | 213 #include "webkit/renderer/appcache/web_application_cache_host_impl.h" |
216 #include "webkit/renderer/webpreferences_renderer.h" | 214 #include "webkit/renderer/webpreferences_renderer.h" |
217 | 215 |
218 #if defined(OS_ANDROID) | 216 #if defined(OS_ANDROID) |
219 #include <cpu-features.h> | 217 #include <cpu-features.h> |
220 | 218 |
221 #include "content/common/android/device_telephony_info.h" | 219 #include "content/common/android/device_telephony_info.h" |
222 #include "content/common/gpu/client/context_provider_command_buffer.h" | 220 #include "content/common/gpu/client/context_provider_command_buffer.h" |
223 #include "content/renderer/android/address_detector.h" | 221 #include "content/renderer/android/address_detector.h" |
224 #include "content/renderer/android/content_detector.h" | 222 #include "content/renderer/android/content_detector.h" |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
291 using WebKit::WebMouseEvent; | 289 using WebKit::WebMouseEvent; |
292 using WebKit::WebNavigationPolicy; | 290 using WebKit::WebNavigationPolicy; |
293 using WebKit::WebNavigationType; | 291 using WebKit::WebNavigationType; |
294 using WebKit::WebNode; | 292 using WebKit::WebNode; |
295 using WebKit::WebPageSerializer; | 293 using WebKit::WebPageSerializer; |
296 using WebKit::WebPageSerializerClient; | 294 using WebKit::WebPageSerializerClient; |
297 using WebKit::WebPeerConnection00Handler; | 295 using WebKit::WebPeerConnection00Handler; |
298 using WebKit::WebPeerConnection00HandlerClient; | 296 using WebKit::WebPeerConnection00HandlerClient; |
299 using WebKit::WebPeerConnectionHandler; | 297 using WebKit::WebPeerConnectionHandler; |
300 using WebKit::WebPeerConnectionHandlerClient; | 298 using WebKit::WebPeerConnectionHandlerClient; |
301 using WebKit::WebPlugin; | |
302 using WebKit::WebPluginAction; | 299 using WebKit::WebPluginAction; |
303 using WebKit::WebPluginContainer; | 300 using WebKit::WebPluginContainer; |
304 using WebKit::WebPluginDocument; | 301 using WebKit::WebPluginDocument; |
305 using WebKit::WebPluginParams; | 302 using WebKit::WebPluginParams; |
306 using WebKit::WebPoint; | 303 using WebKit::WebPoint; |
307 using WebKit::WebPopupMenuInfo; | 304 using WebKit::WebPopupMenuInfo; |
308 using WebKit::WebRange; | 305 using WebKit::WebRange; |
309 using WebKit::WebRect; | 306 using WebKit::WebRect; |
310 using WebKit::WebReferrerPolicy; | 307 using WebKit::WebReferrerPolicy; |
311 using WebKit::WebScriptSource; | 308 using WebKit::WebScriptSource; |
(...skipping 2503 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2815 void RenderViewImpl::didHandleGestureEvent( | 2812 void RenderViewImpl::didHandleGestureEvent( |
2816 const WebGestureEvent& event, | 2813 const WebGestureEvent& event, |
2817 bool event_cancelled) { | 2814 bool event_cancelled) { |
2818 RenderWidget::didHandleGestureEvent(event, event_cancelled); | 2815 RenderWidget::didHandleGestureEvent(event, event_cancelled); |
2819 FOR_EACH_OBSERVER(RenderViewObserver, observers_, | 2816 FOR_EACH_OBSERVER(RenderViewObserver, observers_, |
2820 DidHandleGestureEvent(event)); | 2817 DidHandleGestureEvent(event)); |
2821 } | 2818 } |
2822 | 2819 |
2823 // WebKit::WebFrameClient ----------------------------------------------------- | 2820 // WebKit::WebFrameClient ----------------------------------------------------- |
2824 | 2821 |
2825 WebPlugin* RenderViewImpl::createPlugin(WebFrame* frame, | 2822 WebKit::WebPlugin* RenderViewImpl::createPlugin(WebFrame* frame, |
2826 const WebPluginParams& params) { | 2823 const WebPluginParams& params) { |
2827 WebPlugin* plugin = NULL; | 2824 WebKit::WebPlugin* plugin = NULL; |
2828 if (GetContentClient()->renderer()->OverrideCreatePlugin( | 2825 if (GetContentClient()->renderer()->OverrideCreatePlugin( |
2829 this, frame, params, &plugin)) { | 2826 this, frame, params, &plugin)) { |
2830 return plugin; | 2827 return plugin; |
2831 } | 2828 } |
2832 | 2829 |
2833 #if defined(ENABLE_PLUGINS) | 2830 #if defined(ENABLE_PLUGINS) |
2834 if (UTF16ToASCII(params.mimeType) == kBrowserPluginMimeType) { | 2831 if (UTF16ToASCII(params.mimeType) == kBrowserPluginMimeType) { |
2835 return GetBrowserPluginManager()->CreateBrowserPlugin(this, frame, params); | 2832 return GetBrowserPluginManager()->CreateBrowserPlugin(this, frame, params); |
2836 } | 2833 } |
2837 | 2834 |
(...skipping 1859 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4697 const WebKit::WebPluginParams& params) { | 4694 const WebKit::WebPluginParams& params) { |
4698 WebKit::WebPlugin* pepper_webplugin = | 4695 WebKit::WebPlugin* pepper_webplugin = |
4699 pepper_helper_->CreatePepperWebPlugin(info, params); | 4696 pepper_helper_->CreatePepperWebPlugin(info, params); |
4700 | 4697 |
4701 if (pepper_webplugin) | 4698 if (pepper_webplugin) |
4702 return pepper_webplugin; | 4699 return pepper_webplugin; |
4703 | 4700 |
4704 if (!webkit::npapi::NPAPIPluginsSupported()) | 4701 if (!webkit::npapi::NPAPIPluginsSupported()) |
4705 return NULL; | 4702 return NULL; |
4706 | 4703 |
4707 return new webkit::npapi::WebPluginImpl( | 4704 return new WebPluginImpl(frame, params, info.path, AsWeakPtr()); |
4708 frame, params, info.path, AsWeakPtr()); | |
4709 } | 4705 } |
4710 | 4706 |
4711 void RenderViewImpl::EvaluateScript(const string16& frame_xpath, | 4707 void RenderViewImpl::EvaluateScript(const string16& frame_xpath, |
4712 const string16& jscript, | 4708 const string16& jscript, |
4713 int id, | 4709 int id, |
4714 bool notify_result) { | 4710 bool notify_result) { |
4715 v8::HandleScope handle_scope; | 4711 v8::HandleScope handle_scope; |
4716 v8::Handle<v8::Value> result; | 4712 v8::Handle<v8::Value> result; |
4717 WebFrame* web_frame = GetChildFrame(frame_xpath); | 4713 WebFrame* web_frame = GetChildFrame(frame_xpath); |
4718 if (web_frame) | 4714 if (web_frame) |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4777 | 4773 |
4778 void RenderViewImpl::LoadURLExternally( | 4774 void RenderViewImpl::LoadURLExternally( |
4779 WebKit::WebFrame* frame, | 4775 WebKit::WebFrame* frame, |
4780 const WebKit::WebURLRequest& request, | 4776 const WebKit::WebURLRequest& request, |
4781 WebKit::WebNavigationPolicy policy) { | 4777 WebKit::WebNavigationPolicy policy) { |
4782 loadURLExternally(frame, request, policy); | 4778 loadURLExternally(frame, request, policy); |
4783 } | 4779 } |
4784 | 4780 |
4785 // webkit_glue::WebPluginPageDelegate ------------------------------------------ | 4781 // webkit_glue::WebPluginPageDelegate ------------------------------------------ |
4786 | 4782 |
4787 webkit::npapi::WebPluginDelegate* RenderViewImpl::CreatePluginDelegate( | 4783 WebPluginDelegate* RenderViewImpl::CreatePluginDelegate( |
4788 const base::FilePath& file_path, | 4784 const base::FilePath& file_path, |
4789 const std::string& mime_type) { | 4785 const std::string& mime_type) { |
4790 if (!PluginChannelHost::IsListening()) { | 4786 if (!PluginChannelHost::IsListening()) { |
4791 LOG(ERROR) << "PluginChannelHost isn't listening"; | 4787 LOG(ERROR) << "PluginChannelHost isn't listening"; |
4792 return NULL; | 4788 return NULL; |
4793 } | 4789 } |
4794 | 4790 |
4795 bool in_process_plugin = RenderProcess::current()->UseInProcessPlugins(); | 4791 bool in_process_plugin = RenderProcess::current()->UseInProcessPlugins(); |
4796 if (in_process_plugin) { | 4792 if (in_process_plugin) { |
4797 #if defined(OS_WIN) && !defined(USE_AURA) | 4793 #if defined(OS_WIN) && !defined(USE_AURA) |
4798 return webkit::npapi::WebPluginDelegateImpl::Create(file_path, mime_type); | 4794 return WebPluginDelegateImpl::Create(file_path, mime_type); |
4799 #else | 4795 #else |
4800 // In-proc plugins aren't supported on non-Windows. | 4796 // In-proc plugins aren't supported on non-Windows. |
4801 NOTIMPLEMENTED(); | 4797 NOTIMPLEMENTED(); |
4802 return NULL; | 4798 return NULL; |
4803 #endif | 4799 #endif |
4804 } | 4800 } |
4805 | 4801 |
4806 return new WebPluginDelegateProxy(mime_type, AsWeakPtr()); | 4802 return new WebPluginDelegateProxy(mime_type, AsWeakPtr()); |
4807 } | 4803 } |
4808 | 4804 |
4809 WebKit::WebPlugin* RenderViewImpl::CreatePluginReplacement( | 4805 WebKit::WebPlugin* RenderViewImpl::CreatePluginReplacement( |
4810 const base::FilePath& file_path) { | 4806 const base::FilePath& file_path) { |
4811 return GetContentClient()->renderer()->CreatePluginReplacement( | 4807 return GetContentClient()->renderer()->CreatePluginReplacement( |
4812 this, file_path); | 4808 this, file_path); |
4813 } | 4809 } |
4814 | 4810 |
4815 void RenderViewImpl::CreatedPluginWindow(gfx::PluginWindowHandle window) { | 4811 void RenderViewImpl::CreatedPluginWindow(gfx::PluginWindowHandle window) { |
4816 #if defined(USE_X11) | 4812 #if defined(USE_X11) |
4817 Send(new ViewHostMsg_CreatePluginContainer(routing_id(), window)); | 4813 Send(new ViewHostMsg_CreatePluginContainer(routing_id(), window)); |
4818 #endif | 4814 #endif |
4819 } | 4815 } |
4820 | 4816 |
4821 void RenderViewImpl::WillDestroyPluginWindow(gfx::PluginWindowHandle window) { | 4817 void RenderViewImpl::WillDestroyPluginWindow(gfx::PluginWindowHandle window) { |
4822 #if defined(USE_X11) | 4818 #if defined(USE_X11) |
4823 Send(new ViewHostMsg_DestroyPluginContainer(routing_id(), window)); | 4819 Send(new ViewHostMsg_DestroyPluginContainer(routing_id(), window)); |
4824 #endif | 4820 #endif |
4825 CleanupWindowInPluginMoves(window); | 4821 CleanupWindowInPluginMoves(window); |
4826 } | 4822 } |
4827 | 4823 |
4828 void RenderViewImpl::DidMovePlugin( | 4824 void RenderViewImpl::DidMovePlugin(const WebPluginGeometry& move) { |
4829 const webkit::npapi::WebPluginGeometry& move) { | |
4830 SchedulePluginMove(move); | 4825 SchedulePluginMove(move); |
4831 } | 4826 } |
4832 | 4827 |
4833 void RenderViewImpl::DidStartLoadingForPlugin() { | 4828 void RenderViewImpl::DidStartLoadingForPlugin() { |
4834 // TODO(darin): Make is_loading_ be a counter! | 4829 // TODO(darin): Make is_loading_ be a counter! |
4835 didStartLoading(); | 4830 didStartLoading(); |
4836 } | 4831 } |
4837 | 4832 |
4838 void RenderViewImpl::DidStopLoadingForPlugin() { | 4833 void RenderViewImpl::DidStopLoadingForPlugin() { |
4839 // TODO(darin): Make is_loading_ be a counter! | 4834 // TODO(darin): Make is_loading_ be a counter! |
(...skipping 1977 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6817 WebURL url = icon_urls[i].iconURL(); | 6812 WebURL url = icon_urls[i].iconURL(); |
6818 if (!url.isEmpty()) | 6813 if (!url.isEmpty()) |
6819 urls.push_back(FaviconURL(url, | 6814 urls.push_back(FaviconURL(url, |
6820 ToFaviconType(icon_urls[i].iconType()))); | 6815 ToFaviconType(icon_urls[i].iconType()))); |
6821 } | 6816 } |
6822 SendUpdateFaviconURL(urls); | 6817 SendUpdateFaviconURL(urls); |
6823 } | 6818 } |
6824 | 6819 |
6825 | 6820 |
6826 } // namespace content | 6821 } // namespace content |
OLD | NEW |