diff --git a/libcef/browser/page_load_metrics/oh_page_load_metrics_observer.cc b/libcef/browser/page_load_metrics/oh_page_load_metrics_observer.cc index 2801344b410282dfcd04776b7c8dd4dbd70f0c22..0142edb5176d0d09b4a552ffd080f97b08bcf232 100644 --- a/libcef/browser/page_load_metrics/oh_page_load_metrics_observer.cc +++ b/libcef/browser/page_load_metrics/oh_page_load_metrics_observer.cc @@ -25,6 +25,8 @@ #include "url/gurl.h" #include "ohos_nweb/src/sysevent/event_reporter.h" +int64_t OhPageLoadMetricsObserver::navigation_start_timestamp_ = -1; + OhPageLoadMetricsObserver::OhPageLoadMetricsObserver() { network_quality_tracker_ = g_browser_process->network_quality_tracker(); DCHECK(network_quality_tracker_); @@ -275,8 +277,6 @@ void OhPageLoadMetricsObserver::OnLoadedResource( did_dispatch_on_main_resourse_ = true; base::TimeTicks navigation_start = GetDelegate().GetNavigationStart(); - web_performance_timing_.navigation_start = - navigation_start.is_null() ? -1 : navigation_start.since_origin().InMilliseconds(); const net::LoadTimingInfo& timing = *extra_request_complelte_info.load_timing_info; @@ -326,6 +326,7 @@ void OhPageLoadMetricsObserver::ReportBufferedMetrics( reported_buffered_metrics_ = true; + web_performance_timing_.navigation_start = navigation_start_timestamp_; web_performance_timing_.redirect_count = main_frame_request_redirect_count_; const page_load_metrics::ContentfulPaintTimingInfo& largest_contentful_paint = GetDelegate().GetLargestContentfulPaintHandler() @@ -338,3 +339,13 @@ void OhPageLoadMetricsObserver::ReportBufferedMetrics( return; } } + +int64_t OhPageLoadMetricsObserver::GetCurrentTimestampMS() { + auto currentTime = std::chrono::system_clock::now().time_since_epoch(); + return std::chrono::duration_cast(currentTime) + .count(); +} + +void OhPageLoadMetricsObserver::OnNavigationStart() { + navigation_start_timestamp_ = GetCurrentTimestampMS(); +} diff --git a/libcef/browser/page_load_metrics/oh_page_load_metrics_observer.h b/libcef/browser/page_load_metrics/oh_page_load_metrics_observer.h index 3b2efedfdd77cefae1c65412306772f00f3e97d9..8180581a5c844f6ea6e7ff712d2c1f70b72348ef 100644 --- a/libcef/browser/page_load_metrics/oh_page_load_metrics_observer.h +++ b/libcef/browser/page_load_metrics/oh_page_load_metrics_observer.h @@ -62,6 +62,7 @@ class OhPageLoadMetricsObserver void OnFirstPaintInPage( const page_load_metrics::mojom::PageLoadTiming& timing) override; + static void OnNavigationStart(); protected: OhPageLoadMetricsObserver( network::NetworkQualityTracker* network_quality_tracker) @@ -77,6 +78,7 @@ class OhPageLoadMetricsObserver void ReportBufferedMetrics( const page_load_metrics::mojom::PageLoadTiming& timing); void ReportPerformanceTiming(); + int64_t GetCurrentTimestampMS(); private: int64_t navigation_id_ = -1; @@ -87,6 +89,7 @@ class OhPageLoadMetricsObserver bool reported_buffered_metrics_ = false; uint32_t main_frame_request_redirect_count_ = 0; OhWebPerformanceTiming web_performance_timing_; + static int64_t navigation_start_timestamp_; }; #endif // CEF_LIBCEF_BROWSER_PAGE_LOAD_METRICS_OH_PAGE_LOAD_METRICS_OBSERVER_H_