Index: content/renderer/render_thread_impl.cc |
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc |
index bd4ef1a6c6400f651419daaff4a67dff50dc3957..4b7fe4c78e4b52236550e5900b289a8c0ca16c10 100644 |
--- a/content/renderer/render_thread_impl.cc |
+++ b/content/renderer/render_thread_impl.cc |
@@ -51,6 +51,8 @@ |
#include "cc/trees/layer_tree_host_common.h" |
#include "cc/trees/layer_tree_settings.h" |
#include "components/discardable_memory/client/client_discardable_shared_memory_manager.h" |
+#include "components/metrics/public/interfaces/single_value_histograms.mojom.h" |
+#include "components/metrics/single_value_histograms_factory_impl.h" |
#include "content/child/appcache/appcache_dispatcher.h" |
#include "content/child/appcache/appcache_frontend_impl.h" |
#include "content/child/blob_storage/blob_message_filter.h" |
@@ -608,6 +610,16 @@ void RenderThreadImpl::Init( |
// Register this object as the main thread. |
ChildProcess::current()->set_main_thread(this); |
+ // In single process mode we may already have a factory set. |
+ if (!base::SingleValueHistogramsFactory::Get()) { |
+ metrics::mojom::SingleValueHistogramsProviderPtr metric_provider; |
+ GetConnector()->BindInterface(mojom::kBrowserServiceName, |
+ mojo::MakeRequest(&metric_provider)); |
+ base::SingleValueHistogramsFactory::SetFactory( |
+ new metrics::SingleValueHistogramsFactoryImpl( |
+ base::ThreadTaskRunnerHandle::Get(), std::move(metric_provider))); |
+ } |
+ |
gpu_ = ui::Gpu::Create( |
GetConnector(), |
IsRunningInMash() ? ui::mojom::kServiceName : mojom::kBrowserServiceName, |