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 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 #include "content/renderer/browser_plugin/old/browser_plugin_constants.h" | 63 #include "content/renderer/browser_plugin/old/browser_plugin_constants.h" |
64 #include "content/renderer/browser_plugin/old/guest_to_embedder_channel.h" | 64 #include "content/renderer/browser_plugin/old/guest_to_embedder_channel.h" |
65 #include "content/renderer/device_orientation_dispatcher.h" | 65 #include "content/renderer/device_orientation_dispatcher.h" |
66 #include "content/renderer/devtools_agent.h" | 66 #include "content/renderer/devtools_agent.h" |
67 #include "content/renderer/dom_automation_controller.h" | 67 #include "content/renderer/dom_automation_controller.h" |
68 #include "content/renderer/dom_storage/webstoragenamespace_impl.h" | 68 #include "content/renderer/dom_storage/webstoragenamespace_impl.h" |
69 #include "content/renderer/external_popup_menu.h" | 69 #include "content/renderer/external_popup_menu.h" |
70 #include "content/renderer/geolocation_dispatcher.h" | 70 #include "content/renderer/geolocation_dispatcher.h" |
71 #include "content/renderer/gpu/compositor_thread.h" | 71 #include "content/renderer/gpu/compositor_thread.h" |
72 #include "content/renderer/gpu/compositor_output_surface.h" | 72 #include "content/renderer/gpu/compositor_output_surface.h" |
| 73 #include "content/renderer/gpu/compositor_output_surface_software_gl_adapter.h" |
73 #include "content/renderer/idle_user_detector.h" | 74 #include "content/renderer/idle_user_detector.h" |
74 #include "content/renderer/input_tag_speech_dispatcher.h" | 75 #include "content/renderer/input_tag_speech_dispatcher.h" |
75 #include "content/renderer/java/java_bridge_dispatcher.h" | 76 #include "content/renderer/java/java_bridge_dispatcher.h" |
76 #include "content/renderer/load_progress_tracker.h" | 77 #include "content/renderer/load_progress_tracker.h" |
77 #include "content/renderer/media/media_stream_dependency_factory.h" | 78 #include "content/renderer/media/media_stream_dependency_factory.h" |
78 #include "content/renderer/media/media_stream_dispatcher.h" | 79 #include "content/renderer/media/media_stream_dispatcher.h" |
79 #include "content/renderer/media/media_stream_impl.h" | 80 #include "content/renderer/media/media_stream_impl.h" |
80 #include "content/renderer/media/render_audiosourceprovider.h" | 81 #include "content/renderer/media/render_audiosourceprovider.h" |
81 #include "content/renderer/media/render_media_log.h" | 82 #include "content/renderer/media/render_media_log.h" |
82 #include "content/renderer/media/renderer_gpu_video_decoder_factories.h" | 83 #include "content/renderer/media/renderer_gpu_video_decoder_factories.h" |
(...skipping 1714 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1797 } | 1798 } |
1798 | 1799 |
1799 WebStorageNamespace* RenderViewImpl::createSessionStorageNamespace( | 1800 WebStorageNamespace* RenderViewImpl::createSessionStorageNamespace( |
1800 unsigned quota) { | 1801 unsigned quota) { |
1801 CHECK(session_storage_namespace_id_ != | 1802 CHECK(session_storage_namespace_id_ != |
1802 dom_storage::kInvalidSessionStorageNamespaceId); | 1803 dom_storage::kInvalidSessionStorageNamespaceId); |
1803 return new WebStorageNamespaceImpl(session_storage_namespace_id_); | 1804 return new WebStorageNamespaceImpl(session_storage_namespace_id_); |
1804 } | 1805 } |
1805 | 1806 |
1806 WebKit::WebCompositorOutputSurface* RenderViewImpl::createOutputSurface() { | 1807 WebKit::WebCompositorOutputSurface* RenderViewImpl::createOutputSurface() { |
1807 // TODO(aelias): if force-software-mode is on, create an output surface | |
1808 // without a 3D context. | |
1809 | |
1810 // Explicitly disable antialiasing for the compositor. As of the time of | 1808 // Explicitly disable antialiasing for the compositor. As of the time of |
1811 // this writing, the only platform that supported antialiasing for the | 1809 // this writing, the only platform that supported antialiasing for the |
1812 // compositor was Mac OS X, because the on-screen OpenGL context creation | 1810 // compositor was Mac OS X, because the on-screen OpenGL context creation |
1813 // code paths on Windows and Linux didn't yet have multisampling support. | 1811 // code paths on Windows and Linux didn't yet have multisampling support. |
1814 // Mac OS X essentially always behaves as though it's rendering offscreen. | 1812 // Mac OS X essentially always behaves as though it's rendering offscreen. |
1815 // Multisampling has a heavy cost especially on devices with relatively low | 1813 // Multisampling has a heavy cost especially on devices with relatively low |
1816 // fill rate like most notebooks, and the Mac implementation would need to | 1814 // fill rate like most notebooks, and the Mac implementation would need to |
1817 // be optimized to resolve directly into the IOSurface shared between the | 1815 // be optimized to resolve directly into the IOSurface shared between the |
1818 // GPU and browser processes. For these reasons and to avoid platform | 1816 // GPU and browser processes. For these reasons and to avoid platform |
1819 // disparities we explicitly disable antialiasing. | 1817 // disparities we explicitly disable antialiasing. |
1820 WebKit::WebGraphicsContext3D::Attributes attributes; | 1818 WebKit::WebGraphicsContext3D::Attributes attributes; |
1821 attributes.antialias = false; | 1819 attributes.antialias = false; |
1822 attributes.shareResources = true; | 1820 attributes.shareResources = true; |
1823 WebGraphicsContext3D* context = CreateGraphicsContext3D(attributes); | 1821 WebGraphicsContext3D* context = CreateGraphicsContext3D(attributes); |
1824 if (!context) | 1822 if (!context) |
1825 return NULL; | 1823 return NULL; |
1826 | 1824 |
1827 return new CompositorOutputSurface(routing_id(), context); | 1825 const CommandLine& command_line = *CommandLine::ForCurrentProcess(); |
| 1826 if (command_line.HasSwitch(switches::kEnableSoftwareCompositingGLAdapter)) { |
| 1827 // In the absence of a software-based delegating renderer, use this |
| 1828 // stopgap adapter class to present the software renderer output using a |
| 1829 // 3d context. |
| 1830 return new CompositorOutputSurface(routing_id(), NULL, |
| 1831 new CompositorOutputSurfaceSoftwareGLAdapter(context)); |
| 1832 } else |
| 1833 return new CompositorOutputSurface(routing_id(), context, NULL); |
1828 } | 1834 } |
1829 | 1835 |
1830 void RenderViewImpl::didAddMessageToConsole( | 1836 void RenderViewImpl::didAddMessageToConsole( |
1831 const WebConsoleMessage& message, const WebString& source_name, | 1837 const WebConsoleMessage& message, const WebString& source_name, |
1832 unsigned source_line) { | 1838 unsigned source_line) { |
1833 logging::LogSeverity log_severity = logging::LOG_VERBOSE; | 1839 logging::LogSeverity log_severity = logging::LOG_VERBOSE; |
1834 switch (message.level) { | 1840 switch (message.level) { |
1835 case WebConsoleMessage::LevelTip: | 1841 case WebConsoleMessage::LevelTip: |
1836 log_severity = logging::LOG_VERBOSE; | 1842 log_severity = logging::LOG_VERBOSE; |
1837 break; | 1843 break; |
(...skipping 4054 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5892 bool RenderViewImpl::WebWidgetHandlesCompositorScheduling() const { | 5898 bool RenderViewImpl::WebWidgetHandlesCompositorScheduling() const { |
5893 return !!RenderThreadImpl::current()->compositor_thread(); | 5899 return !!RenderThreadImpl::current()->compositor_thread(); |
5894 } | 5900 } |
5895 | 5901 |
5896 void RenderViewImpl::OnJavaBridgeInit() { | 5902 void RenderViewImpl::OnJavaBridgeInit() { |
5897 DCHECK(!java_bridge_dispatcher_); | 5903 DCHECK(!java_bridge_dispatcher_); |
5898 #if defined(ENABLE_JAVA_BRIDGE) | 5904 #if defined(ENABLE_JAVA_BRIDGE) |
5899 java_bridge_dispatcher_ = new JavaBridgeDispatcher(this); | 5905 java_bridge_dispatcher_ = new JavaBridgeDispatcher(this); |
5900 #endif | 5906 #endif |
5901 } | 5907 } |
OLD | NEW |