Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(645)

Side by Side Diff: content/renderer/render_thread_impl.cc

Issue 2075343003: Use a cc::Display for layout tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@mailbox-test
Patch Set: layouttests-display2: rebase Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « content/renderer/layout_test_dependencies.h ('k') | content/test/layouttest_support.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_thread_impl.h" 5 #include "content/renderer/render_thread_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 #include <map> 9 #include <map>
10 #include <utility> 10 #include <utility>
(...skipping 1802 matching lines...) Expand 10 before | Expand all | Expand 10 after
1813 #endif 1813 #endif
1814 1814
1815 uint32_t output_surface_id = g_next_output_surface_id++; 1815 uint32_t output_surface_id = g_next_output_surface_id++;
1816 1816
1817 if (command_line.HasSwitch(switches::kEnableVulkan)) { 1817 if (command_line.HasSwitch(switches::kEnableVulkan)) {
1818 scoped_refptr<cc::VulkanContextProvider> vulkan_context_provider = 1818 scoped_refptr<cc::VulkanContextProvider> vulkan_context_provider =
1819 cc::VulkanInProcessContextProvider::Create(); 1819 cc::VulkanInProcessContextProvider::Create();
1820 if (vulkan_context_provider) { 1820 if (vulkan_context_provider) {
1821 DCHECK(!layout_test_mode()); 1821 DCHECK(!layout_test_mode());
1822 return base::WrapUnique(new CompositorOutputSurface( 1822 return base::WrapUnique(new CompositorOutputSurface(
1823 routing_id, output_surface_id, vulkan_context_provider, 1823 routing_id, output_surface_id, std::move(vulkan_context_provider),
1824 frame_swap_message_queue)); 1824 std::move(frame_swap_message_queue)));
1825 } 1825 }
1826 } 1826 }
1827 1827
1828 // Create a gpu process channel and verify we want to use GPU compositing 1828 // Create a gpu process channel and verify we want to use GPU compositing
1829 // before creating any context providers. 1829 // before creating any context providers.
1830 scoped_refptr<gpu::GpuChannelHost> gpu_channel_host; 1830 scoped_refptr<gpu::GpuChannelHost> gpu_channel_host;
1831 if (!use_software) { 1831 if (!use_software) {
1832 gpu_channel_host = EstablishGpuChannelSync( 1832 gpu_channel_host = EstablishGpuChannelSync(
1833 CAUSE_FOR_GPU_LAUNCH_RENDERER_VERIFY_GPU_COMPOSITING); 1833 CAUSE_FOR_GPU_LAUNCH_RENDERER_VERIFY_GPU_COMPOSITING);
1834 if (!gpu_channel_host) { 1834 if (!gpu_channel_host) {
1835 // Cause the compositor to wait and try again. 1835 // Cause the compositor to wait and try again.
1836 return nullptr; 1836 return nullptr;
1837 } 1837 }
1838 // We may get a valid channel, but with a software renderer. In that case, 1838 // We may get a valid channel, but with a software renderer. In that case,
1839 // disable GPU compositing. 1839 // disable GPU compositing.
1840 if (gpu_channel_host->gpu_info().software_rendering) 1840 if (gpu_channel_host->gpu_info().software_rendering)
1841 use_software = true; 1841 use_software = true;
1842 } 1842 }
1843 1843
1844 if (use_software) { 1844 if (use_software) {
1845 DCHECK(!layout_test_mode()); 1845 DCHECK(!layout_test_mode());
1846 return base::WrapUnique( 1846 return base::WrapUnique(new CompositorOutputSurface(
1847 new CompositorOutputSurface(routing_id, output_surface_id, nullptr, 1847 routing_id, output_surface_id, nullptr, nullptr,
1848 nullptr, frame_swap_message_queue)); 1848 std::move(frame_swap_message_queue)));
1849 } 1849 }
1850 1850
1851 scoped_refptr<ContextProviderCommandBuffer> worker_context_provider = 1851 scoped_refptr<ContextProviderCommandBuffer> worker_context_provider =
1852 SharedCompositorWorkerContextProvider(); 1852 SharedCompositorWorkerContextProvider();
1853 if (!worker_context_provider) { 1853 if (!worker_context_provider) {
1854 // Cause the compositor to wait and try again. 1854 // Cause the compositor to wait and try again.
1855 return nullptr; 1855 return nullptr;
1856 } 1856 }
1857 1857
1858 // The renderer compositor context doesn't do a lot of stuff, so we don't 1858 // The renderer compositor context doesn't do a lot of stuff, so we don't
(...skipping 16 matching lines...) Expand all
1875 constexpr bool support_locking = false; 1875 constexpr bool support_locking = false;
1876 1876
1877 // The compositor context shares resources with the worker context unless 1877 // The compositor context shares resources with the worker context unless
1878 // the worker is async. 1878 // the worker is async.
1879 ContextProviderCommandBuffer* share_context = worker_context_provider.get(); 1879 ContextProviderCommandBuffer* share_context = worker_context_provider.get();
1880 if (IsAsyncWorkerContextEnabled()) 1880 if (IsAsyncWorkerContextEnabled())
1881 share_context = nullptr; 1881 share_context = nullptr;
1882 1882
1883 scoped_refptr<ContextProviderCommandBuffer> context_provider( 1883 scoped_refptr<ContextProviderCommandBuffer> context_provider(
1884 new ContextProviderCommandBuffer( 1884 new ContextProviderCommandBuffer(
1885 std::move(gpu_channel_host), gpu::GPU_STREAM_DEFAULT, 1885 gpu_channel_host, gpu::GPU_STREAM_DEFAULT,
1886 gpu::GpuStreamPriority::NORMAL, gpu::kNullSurfaceHandle, url, 1886 gpu::GpuStreamPriority::NORMAL, gpu::kNullSurfaceHandle, url,
1887 gl::PreferIntegratedGpu, automatic_flushes, support_locking, limits, 1887 gl::PreferIntegratedGpu, automatic_flushes, support_locking, limits,
1888 attributes, share_context, 1888 attributes, share_context,
1889 command_buffer_metrics::RENDER_COMPOSITOR_CONTEXT)); 1889 command_buffer_metrics::RENDER_COMPOSITOR_CONTEXT));
1890 1890
1891 // Composite-to-mailbox is currently used for layout tests in order to cause
1892 // them to draw inside in the renderer to do the readback there. This should
1893 // no longer be the case when crbug.com/311404 is fixed.
1894 if (layout_test_deps_) { 1891 if (layout_test_deps_) {
1895 return layout_test_deps_->CreateOutputSurface( 1892 return layout_test_deps_->CreateOutputSurface(
1896 output_surface_id, std::move(context_provider), 1893 std::move(gpu_channel_host), std::move(context_provider),
1897 std::move(worker_context_provider)); 1894 std::move(worker_context_provider), this);
1898 } 1895 }
1899 1896
1900 #if defined(OS_ANDROID) 1897 #if defined(OS_ANDROID)
1901 if (sync_compositor_message_filter_) { 1898 if (sync_compositor_message_filter_) {
1902 return base::WrapUnique(new SynchronousCompositorOutputSurface( 1899 return base::WrapUnique(new SynchronousCompositorOutputSurface(
1903 context_provider, worker_context_provider, routing_id, 1900 std::move(context_provider), std::move(worker_context_provider),
1904 output_surface_id, sync_compositor_message_filter_.get(), 1901 routing_id, output_surface_id, sync_compositor_message_filter_.get(),
1905 frame_swap_message_queue)); 1902 std::move(frame_swap_message_queue)));
1906 } 1903 }
1907 #endif 1904 #endif
1908 1905
1909 return base::WrapUnique(new CompositorOutputSurface( 1906 return base::WrapUnique(new CompositorOutputSurface(
1910 routing_id, output_surface_id, std::move(context_provider), 1907 routing_id, output_surface_id, std::move(context_provider),
1911 std::move(worker_context_provider), frame_swap_message_queue)); 1908 std::move(worker_context_provider), std::move(frame_swap_message_queue)));
1912 } 1909 }
1913 1910
1914 blink::WebMediaStreamCenter* RenderThreadImpl::CreateMediaStreamCenter( 1911 blink::WebMediaStreamCenter* RenderThreadImpl::CreateMediaStreamCenter(
1915 blink::WebMediaStreamCenterClient* client) { 1912 blink::WebMediaStreamCenterClient* client) {
1916 #if defined(ENABLE_WEBRTC) 1913 #if defined(ENABLE_WEBRTC)
1917 if (!media_stream_center_) { 1914 if (!media_stream_center_) {
1918 media_stream_center_ = GetContentClient()->renderer() 1915 media_stream_center_ = GetContentClient()->renderer()
1919 ->OverrideCreateWebMediaStreamCenter(client); 1916 ->OverrideCreateWebMediaStreamCenter(client);
1920 if (!media_stream_center_) { 1917 if (!media_stream_center_) {
1921 std::unique_ptr<MediaStreamCenter> media_stream_center( 1918 std::unique_ptr<MediaStreamCenter> media_stream_center(
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after
2209 v8_memory_pressure_level == v8::MemoryPressureLevel::kCritical) 2206 v8_memory_pressure_level == v8::MemoryPressureLevel::kCritical)
2210 v8_memory_pressure_level = v8::MemoryPressureLevel::kModerate; 2207 v8_memory_pressure_level = v8::MemoryPressureLevel::kModerate;
2211 2208
2212 blink::mainThreadIsolate()->MemoryPressureNotification( 2209 blink::mainThreadIsolate()->MemoryPressureNotification(
2213 v8_memory_pressure_level); 2210 v8_memory_pressure_level);
2214 blink::MemoryPressureNotificationToWorkerThreadIsolates( 2211 blink::MemoryPressureNotificationToWorkerThreadIsolates(
2215 v8_memory_pressure_level); 2212 v8_memory_pressure_level);
2216 } 2213 }
2217 2214
2218 } // namespace content 2215 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/layout_test_dependencies.h ('k') | content/test/layouttest_support.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698