From 498167a995444704a828da7ff5d5353946049ae3 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Thu, 14 Jan 2021 11:17:50 +0100 Subject: Register PerformanceNode early enough Must be created before RenderFrame. Change-Id: I4ee121f6ad6a77fc48d12bc56b1fdb82ec97139b Reviewed-by: Kirill Burtsev --- src/core/web_contents_adapter.cpp | 9 --------- src/core/web_contents_view_qt.cpp | 12 ++++++++++++ src/core/web_contents_view_qt.h | 6 +----- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp index 118bbd490..6eff8e9ad 100644 --- a/src/core/web_contents_adapter.cpp +++ b/src/core/web_contents_adapter.cpp @@ -68,7 +68,6 @@ #include "base/task/sequence_manager/thread_controller_with_message_pump_impl.h" #include "base/values.h" #include "chrome/browser/tab_contents/form_interaction_tab_helper.h" -#include "components/performance_manager/embedder/performance_manager_registry.h" #include "content/browser/renderer_host/render_view_host_impl.h" #include "content/browser/renderer_host/text_input_manager.h" #include "content/browser/web_contents/web_contents_impl.h" @@ -529,11 +528,6 @@ void WebContentsAdapter::initialize(content::SiteInstance *site) #if BUILDFLAG(ENABLE_EXTENSIONS) extensions::ExtensionWebContentsObserverQt::CreateForWebContents(webContents()); #endif - FormInteractionTabHelper::CreateForWebContents(webContents()); - if (auto *performance_manager_registry = performance_manager::PerformanceManagerRegistry::GetInstance()) { - if (!webContents()->GetMainFrame()->IsRenderFrameCreated()) - performance_manager_registry->CreatePageNodeForWebContents(webContents()); - } // Create an instance of WebEngineVisitedLinksManager to catch the first // content::NOTIFICATION_RENDERER_PROCESS_CREATED event. This event will @@ -2013,9 +2007,6 @@ void WebContentsAdapter::discard() #if BUILDFLAG(ENABLE_EXTENSIONS) extensions::ExtensionWebContentsObserverQt::CreateForWebContents(webContents()); #endif - FormInteractionTabHelper::CreateForWebContents(webContents()); - if (auto *performance_manager_registry = performance_manager::PerformanceManagerRegistry::GetInstance()) - performance_manager_registry->CreatePageNodeForWebContents(webContents()); } void WebContentsAdapter::undiscard() diff --git a/src/core/web_contents_view_qt.cpp b/src/core/web_contents_view_qt.cpp index 5714079cf..1db641205 100644 --- a/src/core/web_contents_view_qt.cpp +++ b/src/core/web_contents_view_qt.cpp @@ -51,6 +51,8 @@ #include "web_engine_context.h" #include "web_contents_delegate_qt.h" +#include "chrome/browser/tab_contents/form_interaction_tab_helper.h" +#include "components/performance_manager/embedder/performance_manager_registry.h" #include "components/spellcheck/spellcheck_buildflags.h" #include "content/browser/renderer_host/render_view_host_impl.h" #include "content/browser/renderer_host/render_widget_host_impl.h" @@ -65,6 +67,16 @@ namespace QtWebEngineCore { +WebContentsViewQt::WebContentsViewQt(content::WebContents *webContents) + : m_webContents(webContents) + , m_client(nullptr) + , m_factoryClient(nullptr) +{ + FormInteractionTabHelper::CreateForWebContents(webContents); + if (auto *performance_manager_registry = performance_manager::PerformanceManagerRegistry::GetInstance()) + performance_manager_registry->CreatePageNodeForWebContents(webContents); +} + void WebContentsViewQt::setFactoryClient(WebContentsAdapterClient* client) { if (m_factoryClient) diff --git a/src/core/web_contents_view_qt.h b/src/core/web_contents_view_qt.h index 0e760b4e4..d2f82dfad 100644 --- a/src/core/web_contents_view_qt.h +++ b/src/core/web_contents_view_qt.h @@ -59,11 +59,7 @@ class WebContentsViewQt public: static inline WebContentsViewQt *from(WebContentsView *view) { return static_cast(view); } - WebContentsViewQt(content::WebContents* webContents) - : m_webContents(webContents) - , m_client(nullptr) - , m_factoryClient(nullptr) - { } + WebContentsViewQt(content::WebContents *webContents); void setFactoryClient(WebContentsAdapterClient* client); void setClient(WebContentsAdapterClient* client); -- cgit v1.2.3