[OnionSoup] Add NotifyUpdateUserGestureCarryoverInfo() to ResourceLoadInfoNotifier interface

Currently, NotifyUpdateUserGestureCarryoverInfo() declared in
resource_load_stats.h is used to update information to determine whether
a user gesture should carryover to future navigations, when a request
is initiated.

This patch adds NotifyUpdateUserGestureCarryoverInfo() into
mojo interface ResourceLoadInfoNotifier for Android only to replace it.
Thus, we could call it inside Blink, which is part of OnionSoup
for loaders.

After this patch, all functions defined in resource_load_stats.h/cc
are removed and resource_load_stats.h/cc are deleted.

Bug: 1110032
Change-Id: I8a8eb6f71b827792332806c97dd4038e4be81ba8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2427154
Commit-Queue: Minggang Wang <[email protected]>
Reviewed-by: Makoto Shimazu <[email protected]>
Reviewed-by: Kinuko Yasuda <[email protected]>
Reviewed-by: Hiroki Nakagawa <[email protected]>
Cr-Commit-Position: refs/heads/master@{#816583}
diff --git a/content/renderer/BUILD.gn b/content/renderer/BUILD.gn
index ad84ab5..2a78ee8 100644
--- a/content/renderer/BUILD.gn
+++ b/content/renderer/BUILD.gn
@@ -91,8 +91,6 @@
     "loader/request_extra_data.h",
     "loader/resource_dispatcher.cc",
     "loader/resource_dispatcher.h",
-    "loader/resource_load_stats.cc",
-    "loader/resource_load_stats.h",
     "loader/sync_load_context.cc",
     "loader/sync_load_context.h",
     "loader/sync_load_response.cc",
diff --git a/content/renderer/loader/navigation_body_loader.cc b/content/renderer/loader/navigation_body_loader.cc
index f3a32b32..5a80a90 100644
--- a/content/renderer/loader/navigation_body_loader.cc
+++ b/content/renderer/loader/navigation_body_loader.cc
@@ -6,7 +6,6 @@
 
 #include "base/bind.h"
 #include "base/macros.h"
-#include "content/renderer/loader/resource_load_stats.h"
 #include "content/renderer/loader/web_url_loader_impl.h"
 #include "content/renderer/render_frame_impl.h"
 #include "services/network/public/cpp/url_loader_completion_status.h"
diff --git a/content/renderer/loader/resource_dispatcher.cc b/content/renderer/loader/resource_dispatcher.cc
index 52a1c4c1..fb9e54f 100644
--- a/content/renderer/loader/resource_dispatcher.cc
+++ b/content/renderer/loader/resource_dispatcher.cc
@@ -26,7 +26,6 @@
 #include "content/public/renderer/request_peer.h"
 #include "content/public/renderer/resource_dispatcher_delegate.h"
 #include "content/renderer/loader/request_extra_data.h"
-#include "content/renderer/loader/resource_load_stats.h"
 #include "content/renderer/loader/sync_load_context.h"
 #include "content/renderer/loader/sync_load_response.h"
 #include "content/renderer/loader/url_loader_client_impl.h"
@@ -518,7 +517,7 @@
   DCHECK(!(request->is_main_frame &&
            blink::IsRequestDestinationFrame(request->destination)));
   if (request->has_user_gesture) {
-    NotifyUpdateUserGestureCarryoverInfo(request->render_frame_id);
+    resource_load_info_notifier_wrapper->NotifyUpdateUserGestureCarryoverInfo();
   }
 #endif
 
diff --git a/content/renderer/loader/resource_load_stats.cc b/content/renderer/loader/resource_load_stats.cc
deleted file mode 100644
index 1525bf1..0000000
--- a/content/renderer/loader/resource_load_stats.cc
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "content/renderer/loader/resource_load_stats.h"
-
-#include "base/bind.h"
-#include "content/renderer/render_frame_impl.h"
-#include "content/renderer/render_thread_impl.h"
-
-namespace content {
-
-namespace {
-
-#if defined(OS_ANDROID)
-void UpdateUserGestureCarryoverInfo(int render_frame_id) {
-  RenderFrameImpl* frame = RenderFrameImpl::FromRoutingID(render_frame_id);
-  if (frame)
-    frame->GetFrameHost()->UpdateUserGestureCarryoverInfo();
-}
-#endif
-
-}  // namespace
-
-#if defined(OS_ANDROID)
-void NotifyUpdateUserGestureCarryoverInfo(int render_frame_id) {
-  auto task_runner = RenderThreadImpl::DeprecatedGetMainTaskRunner();
-  if (!task_runner)
-    return;
-  if (task_runner->BelongsToCurrentThread()) {
-    UpdateUserGestureCarryoverInfo(render_frame_id);
-    return;
-  }
-  task_runner->PostTask(
-      FROM_HERE,
-      base::BindOnce(UpdateUserGestureCarryoverInfo, render_frame_id));
-}
-#endif
-
-}  // namespace content
diff --git a/content/renderer/loader/resource_load_stats.h b/content/renderer/loader/resource_load_stats.h
deleted file mode 100644
index 836b2dd..0000000
--- a/content/renderer/loader/resource_load_stats.h
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CONTENT_RENDERER_LOADER_RESOURCE_LOAD_STATS_H_
-#define CONTENT_RENDERER_LOADER_RESOURCE_LOAD_STATS_H_
-
-#include "build/build_config.h"
-
-namespace content {
-
-#if defined(OS_ANDROID)
-void NotifyUpdateUserGestureCarryoverInfo(int render_frame_id);
-#endif
-
-}  // namespace content
-
-#endif  // CONTENT_RENDERER_LOADER_RESOURCE_LOAD_STATS_H_
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index f7feec1..36d2eb59 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -3034,6 +3034,12 @@
 // blink::mojom::ResourceLoadInfoNotifier implementation
 // --------------------------
 
+#if defined(OS_ANDROID)
+void RenderFrameImpl::NotifyUpdateUserGestureCarryoverInfo() {
+  GetFrameHost()->UpdateUserGestureCarryoverInfo();
+}
+#endif
+
 void RenderFrameImpl::NotifyResourceRedirectReceived(
     const net::RedirectInfo& redirect_info,
     network::mojom::URLResponseHeadPtr redirect_response) {}
diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h
index dffe459..4cb6ae4d7 100644
--- a/content/renderer/render_frame_impl.h
+++ b/content/renderer/render_frame_impl.h
@@ -460,6 +460,9 @@
                         const int32_t flags) override;
 
   // blink::mojom::ResourceLoadInfoNotifier implementation:
+#if defined(OS_ANDROID)
+  void NotifyUpdateUserGestureCarryoverInfo() override;
+#endif
   void NotifyResourceRedirectReceived(
       const net::RedirectInfo& redirect_info,
       network::mojom::URLResponseHeadPtr redirect_response) override;