[M120 Migration][VD] elapsed time for url request 76/306276/4
authorjingjieli <jingjie.li@samsung.com>
Mon, 19 Feb 2024 09:28:28 +0000 (17:28 +0800)
committerBot Blink <blinkbot@samsung.com>
Tue, 20 Feb 2024 11:40:03 +0000 (11:40 +0000)
This adds end point logs for each url requests.
Also enables HWC log for url request.

Reference:
https://review.tizen.org/gerrit/#/c/297942/
https://review.tizen.org/gerrit/#/c/301473/

Change-Id: I3f3812551ca190c7d5e6b3abb222e60a21d724a0
Signed-off-by: jingjieli <jingjie.li@samsung.com>
net/url_request/url_request.cc
net/url_request/url_request.h
tizen_src/chromium_impl/base/logging_network.h [new file with mode: 0644]

index b5e18cf..0c81ca0 100644 (file)
@@ -6,6 +6,10 @@
 
 #include <utility>
 
+#if defined(USE_TTRACE)
+#include <TTraceWrapper.h>
+#endif
+
 #include "base/compiler_specific.h"
 #include "base/functional/bind.h"
 #include "base/functional/callback.h"
 #include "url/gurl.h"
 #include "url/origin.h"
 
+#if BUILDFLAG(IS_TIZEN_TV)
+#include "base/strings/string_util.h"
+#include "tizen_src/chromium_impl/base/logging_network.h"
+#endif
+
 namespace net {
 
 namespace {
@@ -471,6 +480,14 @@ void URLRequest::SetURLChain(const std::vector<GURL>& url_chain) {
                     url_chain.begin() + url_chain.size() - 1);
 }
 
+std::string URLRequest::truncated_url() const {
+  std::string truncated;
+  const size_t limit = 200;
+  base::TruncateUTF8ToByteSize(url().possibly_invalid_spec(), limit,
+                               &truncated);
+  return truncated;
+}
+
 void URLRequest::set_site_for_cookies(const SiteForCookies& site_for_cookies) {
   DCHECK(!is_pending_);
   site_for_cookies_ = site_for_cookies;
@@ -639,6 +656,19 @@ void URLRequest::StartJob(std::unique_ptr<URLRequestJob> job) {
     DCHECK(!allow_credentials_);
   }
 
+#if BUILDFLAG(IS_TIZEN_TV)
+  auto request_url = truncated_url();
+  request_delay_[request_url] = std::make_unique<base::ElapsedTimer>();
+  LOG(INFO) << __FUNCTION__ << " truncated url: " << request_url;
+  NET_LOGD("url: %s", url().possibly_invalid_spec().c_str());
+#if defined(USE_TTRACE)
+  traceMark(TTRACE_TAG_WEB, "URLRequest::StartJob, url: %s",
+            url().possibly_invalid_spec().c_str());
+#endif
+#else
+  LOG(INFO) << __FUNCTION__ << " url:" << url().possibly_invalid_spec();
+#endif
+
   net_log_.BeginEvent(NetLogEventType::URL_REQUEST_START_JOB, [&] {
     return NetLogURLRequestStartParams(
         url(), method_, load_flags_, isolation_info_, site_for_cookies_,
@@ -1142,6 +1172,17 @@ void URLRequest::NotifyRequestCompleted() {
   if (has_notified_completion_)
     return;
 
+#if BUILDFLAG(IS_TIZEN_TV)
+  auto request_url = truncated_url();
+  if (request_delay_[request_url]) {
+    base::TimeDelta elapsed_delta = request_delay_[request_url]->Elapsed();
+    LOG(INFO) << __FUNCTION__ << " elapsed: " << elapsed_delta.InMilliseconds()
+              << "ms, content-length: " << received_response_content_length();
+    request_delay_.erase(request_url);
+  }
+  LOG(INFO) << __FUNCTION__ << " truncated url: " << request_url;
+#endif
+
   is_pending_ = false;
   is_redirecting_ = false;
   has_notified_completion_ = true;
index acd9a59..80d74b9 100644 (file)
 #include "url/gurl.h"
 #include "url/origin.h"
 
+#if BUILDFLAG(IS_TIZEN_TV)
+#include "base/timer/elapsed_timer.h"
+#endif
+
 namespace net {
 
 class CookieOptions;
@@ -243,6 +247,7 @@ class NET_EXPORT URLRequest : public base::SupportsUserData {
   // redirects, this vector will contain one element.
   const std::vector<GURL>& url_chain() const { return url_chain_; }
   const GURL& url() const { return url_chain_.back(); }
+  std::string truncated_url() const;
 
   // Explicitly set the URL chain for this request.  This can be used to
   // indicate a chain of redirects that happen at a layer above the network
@@ -946,6 +951,10 @@ class NET_EXPORT URLRequest : public base::SupportsUserData {
   // cookie store, socket pool, etc.)
   raw_ptr<const URLRequestContext> context_;
 
+#if BUILDFLAG(IS_TIZEN_TV)
+  std::map<std::string, std::unique_ptr<base::ElapsedTimer>> request_delay_;
+#endif
+
   // Tracks the time spent in various load states throughout this request.
   NetLogWithSource net_log_;
 
diff --git a/tizen_src/chromium_impl/base/logging_network.h b/tizen_src/chromium_impl/base/logging_network.h
new file mode 100644 (file)
index 0000000..d33a4ef
--- /dev/null
@@ -0,0 +1,15 @@
+#ifndef TIZEN_SRC_EWK_EFL_INTEGRATION_BASE_LOGGING_NETWORK_H
+#define TIZEN_SRC_EWK_EFL_INTEGRATION_BASE_LOGGING_NETWORK_H
+
+#ifndef LOG_TAG
+#define LOG_TAG "CHROMIUM_NETWORK"
+#endif
+#include <dlog/dlog.h>
+
+#define NET_LOGD(fmt, args...) LOGD(fmt, ##args)
+#define NET_LOGI(fmt, args...) LOGI(fmt, ##args)
+#define NET_LOGW(fmt, args...) LOGW(fmt, ##args)
+#define NET_LOGE(fmt, args...) LOGE(fmt, ##args)
+#define NET_LOGE_IF(cond, fmt, args...) LOGE_IF(cond, fmt, ##args)
+
+#endif  // TIZEN_SRC_EWK_EFL_INTEGRATION_BASE_LOGGING_NETWORK_H