diff options
Diffstat (limited to 'www/chromium/files/patch-content_renderer_render__thread__impl.cc')
-rw-r--r-- | www/chromium/files/patch-content_renderer_render__thread__impl.cc | 71 |
1 files changed, 58 insertions, 13 deletions
diff --git a/www/chromium/files/patch-content_renderer_render__thread__impl.cc b/www/chromium/files/patch-content_renderer_render__thread__impl.cc index 20973d0141b5..44a76844df29 100644 --- a/www/chromium/files/patch-content_renderer_render__thread__impl.cc +++ b/www/chromium/files/patch-content_renderer_render__thread__impl.cc @@ -1,6 +1,6 @@ ---- content/renderer/render_thread_impl.cc.orig 2017-06-05 19:03:07 UTC -+++ content/renderer/render_thread_impl.cc -@@ -210,11 +210,13 @@ +--- content/renderer/render_thread_impl.cc.orig 2017-09-05 21:05:19.000000000 +0200 ++++ content/renderer/render_thread_impl.cc 2017-09-09 00:52:35.826914000 +0200 +@@ -220,12 +220,22 @@ #include "content/common/external_ipc_dumper.h" #endif @@ -12,9 +12,36 @@ #endif +#endif ++#if defined(OS_BSD) ++#include <stddef.h> ++#include <stdint.h> ++#include <sys/param.h> ++#include <sys/sysctl.h> ++#include <sys/user.h> ++#endif ++ using base::ThreadRestrictions; using blink::WebDocument; -@@ -1383,7 +1385,7 @@ media::GpuVideoAcceleratorFactories* RenderThreadImpl: + using blink::WebFrame; +@@ -926,7 +936,7 @@ + GetConnector()->BindInterface(mojom::kBrowserServiceName, + mojo::MakeRequest(&storage_partition_service_)); + +-#if defined(OS_LINUX) ++#if defined(OS_LINUX) || defined(OS_BSD) + ChildProcess::current()->SetIOThreadPriority(base::ThreadPriority::DISPLAY); + ChildThreadImpl::current()->SetThreadPriority( + categorized_worker_pool_->background_worker_thread_id(), +@@ -1149,7 +1159,7 @@ + compositor_task_runner_->PostTask( + FROM_HERE, + base::Bind(base::IgnoreResult(&ThreadRestrictions::SetIOAllowed), false)); +-#if defined(OS_LINUX) ++#if defined(OS_LINUX) || defined(OS_BSD) + ChildThreadImpl::current()->SetThreadPriority(compositor_thread_->ThreadId(), + base::ThreadPriority::DISPLAY); + #endif +@@ -1446,7 +1456,7 @@ const bool enable_video_accelerator = !cmd_line->HasSwitch(switches::kDisableAcceleratedVideoDecode); const bool enable_gpu_memory_buffer_video_frames = @@ -23,12 +50,30 @@ !cmd_line->HasSwitch(switches::kDisableGpuMemoryBufferVideoFrames) && !cmd_line->HasSwitch(switches::kDisableGpuCompositing) && !gpu_channel_host->gpu_info().software_rendering; -@@ -1726,6 +1728,8 @@ bool RenderThreadImpl::GetRendererMemoryMetrics( - #else - size_t malloc_usage = minfo.hblkhd + minfo.arena; - #endif -+#elif defined(OS_BSD) -+ size_t malloc_usage = 0; - #else - size_t malloc_usage = GetMallocUsage(); - #endif +@@ -1771,7 +1781,26 @@ + blink_stats.blink_gc_total_allocated_bytes / 1024; + std::unique_ptr<base::ProcessMetrics> metric( + base::ProcessMetrics::CreateCurrentProcessMetrics()); ++#if defined(OS_BSD) ++ struct kinfo_proc *info; ++ size_t length, malloc_usage = 0; ++ int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), ++ sizeof(struct kinfo_proc), 0 }; ++ ++ if (sysctl(mib, arraysize(mib), NULL, &length, NULL, 0) < 0) ++ return -1; ++ ++ info = (struct kinfo_proc *)malloc(length); ++ ++ mib[5] = (length / sizeof(struct kinfo_proc)); ++ ++ if (!sysctl(mib, arraysize(mib), info, &length, NULL, 0)) ++ malloc_usage = (((unsigned long long)(info->ki_tsize + info->ki_dsize + info->ki_ssize)*getpagesize())); ++ ++ free(info); ++#else + size_t malloc_usage = metric->GetMallocUsage(); ++#endif + memory_metrics->malloc_mb = malloc_usage / 1024 / 1024; + + discardable_memory::ClientDiscardableSharedMemoryManager::Statistics |