Commit 6ee78f2b authored by Julie Jeongeun Kim's avatar Julie Jeongeun Kim Committed by Commit Bot

Convert ThreatReporter from safe_browsing.mojom to new Mojo types

This CL converts ThreatReporterPtr and
ThreatReporterRequest to new Mojo types
using Remote, PendingRemote, PendingReceiver,
Receiver, and ReceiverSet.

Bug: 955171
Change-Id: I2bc837a87621763a7ee6604265296e63c0eef339
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1816200Reviewed-by: default avatarOksana Zhuravlova <oksamyt@chromium.org>
Reviewed-by: default avatarDaniel Rubery <drubery@chromium.org>
Commit-Queue: Julie Kim <jkim@igalia.com>
Cr-Commit-Position: refs/heads/master@{#699236}
parent d6997669
......@@ -585,7 +585,8 @@ TEST_F(ThreatDetailsTest, ThreatDOMDetails) {
parent_node->url = GURL(kDOMParentURL);
parent_node->children.push_back(GURL(kDOMChildURL));
params.push_back(std::move(parent_node));
report->OnReceivedThreatDOMDetails(nullptr, main_rfh(), std::move(params));
report->OnReceivedThreatDOMDetails(mojo::Remote<mojom::ThreatReporter>(),
main_rfh(), std::move(params));
std::string serialized = WaitForThreatDetailsDone(
report.get(), false /* did_proceed*/, 0 /* num_visit */);
......@@ -803,10 +804,11 @@ TEST_F(ThreatDetailsTest, ThreatDOMDetails_MultipleFrames) {
}
// Send both sets of nodes from different render frames.
report->OnReceivedThreatDOMDetails(nullptr, main_rfh(),
report->OnReceivedThreatDOMDetails(mojo::Remote<mojom::ThreatReporter>(),
main_rfh(),
std::move(outer_params_copy));
report->OnReceivedThreatDOMDetails(nullptr, child_rfh,
std::move(inner_params_copy));
report->OnReceivedThreatDOMDetails(mojo::Remote<mojom::ThreatReporter>(),
child_rfh, std::move(inner_params_copy));
std::string serialized = WaitForThreatDetailsDone(
report.get(), false /* did_proceed*/, 0 /* num_visit */);
......@@ -851,10 +853,10 @@ TEST_F(ThreatDetailsTest, ThreatDOMDetails_MultipleFrames) {
report->StartCollection();
// Send both sets of nodes from different render frames.
report->OnReceivedThreatDOMDetails(nullptr, child_rfh,
std::move(inner_params));
report->OnReceivedThreatDOMDetails(nullptr, main_rfh(),
std::move(outer_params));
report->OnReceivedThreatDOMDetails(mojo::Remote<mojom::ThreatReporter>(),
child_rfh, std::move(inner_params));
report->OnReceivedThreatDOMDetails(mojo::Remote<mojom::ThreatReporter>(),
main_rfh(), std::move(outer_params));
std::string serialized = WaitForThreatDetailsDone(
report.get(), false /* did_proceed*/, 0 /* num_visit */);
......@@ -978,10 +980,10 @@ TEST_F(ThreatDetailsTest, ThreatDOMDetails_AmbiguousDOM) {
base::HistogramTester histograms;
// Send both sets of nodes from different render frames.
report->OnReceivedThreatDOMDetails(nullptr, main_rfh(),
std::move(outer_params));
report->OnReceivedThreatDOMDetails(nullptr, child_rfh,
std::move(inner_params));
report->OnReceivedThreatDOMDetails(mojo::Remote<mojom::ThreatReporter>(),
main_rfh(), std::move(outer_params));
report->OnReceivedThreatDOMDetails(mojo::Remote<mojom::ThreatReporter>(),
child_rfh, std::move(inner_params));
std::string serialized = WaitForThreatDetailsDone(
report.get(), false /* did_proceed*/, 0 /* num_visit */);
ClientSafeBrowsingReportRequest actual;
......@@ -1245,10 +1247,12 @@ TEST_F(ThreatDetailsTest, ThreatDOMDetails_TrimToAdTags) {
trimmed_report->StartCollection();
// Send both sets of nodes from different render frames.
trimmed_report->OnReceivedThreatDOMDetails(nullptr, child_rfh,
std::move(inner_params));
trimmed_report->OnReceivedThreatDOMDetails(nullptr, main_rfh(),
std::move(outer_params));
trimmed_report->OnReceivedThreatDOMDetails(
mojo::Remote<mojom::ThreatReporter>(), child_rfh,
std::move(inner_params));
trimmed_report->OnReceivedThreatDOMDetails(
mojo::Remote<mojom::ThreatReporter>(), main_rfh(),
std::move(outer_params));
std::string serialized = WaitForThreatDetailsDone(
trimmed_report.get(), false /* did_proceed*/, 0 /* num_visit */);
......@@ -1319,10 +1323,12 @@ TEST_F(ThreatDetailsTest, ThreatDOMDetails_EmptyReportNotSent) {
trimmed_report->StartCollection();
// Send both sets of nodes from different render frames.
trimmed_report->OnReceivedThreatDOMDetails(nullptr, child_rfh,
std::move(inner_params));
trimmed_report->OnReceivedThreatDOMDetails(nullptr, main_rfh(),
std::move(outer_params));
trimmed_report->OnReceivedThreatDOMDetails(
mojo::Remote<mojom::ThreatReporter>(), child_rfh,
std::move(inner_params));
trimmed_report->OnReceivedThreatDOMDetails(
mojo::Remote<mojom::ThreatReporter>(), main_rfh(),
std::move(outer_params));
std::string serialized = WaitForThreatDetailsDone(
trimmed_report.get(), false /* did_proceed*/, 0 /* num_visit */);
......@@ -1575,7 +1581,8 @@ TEST_F(ThreatDetailsTest, HTTPCache) {
// The cache collection starts after the IPC from the DOM is fired.
std::vector<mojom::ThreatDOMDetailsNodePtr> params;
report->OnReceivedThreatDOMDetails(nullptr, main_rfh(), std::move(params));
report->OnReceivedThreatDOMDetails(mojo::Remote<mojom::ThreatReporter>(),
main_rfh(), std::move(params));
// Let the cache callbacks complete.
base::RunLoop().RunUntilIdle();
......@@ -1654,7 +1661,8 @@ TEST_F(ThreatDetailsTest, HttpsResourceSanitization) {
// The cache collection starts after the IPC from the DOM is fired.
std::vector<mojom::ThreatDOMDetailsNodePtr> params;
report->OnReceivedThreatDOMDetails(nullptr, main_rfh(), std::move(params));
report->OnReceivedThreatDOMDetails(mojo::Remote<mojom::ThreatReporter>(),
main_rfh(), std::move(params));
// Let the cache callbacks complete.
base::RunLoop().RunUntilIdle();
......@@ -1736,7 +1744,8 @@ TEST_F(ThreatDetailsTest, HTTPCacheNoEntries) {
// The cache collection starts after the IPC from the DOM is fired.
std::vector<mojom::ThreatDOMDetailsNodePtr> params;
report->OnReceivedThreatDOMDetails(nullptr, main_rfh(), std::move(params));
report->OnReceivedThreatDOMDetails(mojo::Remote<mojom::ThreatReporter>(),
main_rfh(), std::move(params));
// Let the cache callbacks complete.
base::RunLoop().RunUntilIdle();
......@@ -1794,7 +1803,8 @@ TEST_F(ThreatDetailsTest, HistoryServiceUrls) {
// The redirects collection starts after the IPC from the DOM is fired.
std::vector<mojom::ThreatDOMDetailsNodePtr> params;
report->OnReceivedThreatDOMDetails(nullptr, main_rfh(), std::move(params));
report->OnReceivedThreatDOMDetails(mojo::Remote<mojom::ThreatReporter>(),
main_rfh(), std::move(params));
// Let the redirects callbacks complete.
base::RunLoop().RunUntilIdle();
......
......@@ -653,8 +653,9 @@ void ThreatDetails::StartCollection() {
void ThreatDetails::RequestThreatDOMDetails(content::RenderFrameHost* frame) {
DisableBackForwardCache(frame, "safe_browsing::ThreatDetails");
safe_browsing::mojom::ThreatReporterPtr threat_reporter;
frame->GetRemoteInterfaces()->GetInterface(&threat_reporter);
mojo::Remote<safe_browsing::mojom::ThreatReporter> threat_reporter;
frame->GetRemoteInterfaces()->GetInterface(
threat_reporter.BindNewPipeAndPassReceiver());
safe_browsing::mojom::ThreatReporter* raw_threat_report =
threat_reporter.get();
pending_render_frame_hosts_.push_back(frame);
......@@ -665,7 +666,7 @@ void ThreatDetails::RequestThreatDOMDetails(content::RenderFrameHost* frame) {
// When the renderer is done, this is called.
void ThreatDetails::OnReceivedThreatDOMDetails(
mojom::ThreatReporterPtr threat_reporter,
mojo::Remote<mojom::ThreatReporter> threat_reporter,
content::RenderFrameHost* sender,
std::vector<mojom::ThreatDOMDetailsNodePtr> params) {
// If the RenderFrameHost was closed between sending the IPC and this callback
......
......@@ -25,6 +25,7 @@
#include "components/security_interstitials/content/unsafe_resource.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/web_contents_observer.h"
#include "mojo/public/cpp/bindings/remote.h"
namespace history {
class HistoryService;
......@@ -166,7 +167,7 @@ class ThreatDetails : public content::WebContentsObserver {
void RequestThreatDOMDetails(content::RenderFrameHost* frame);
void OnReceivedThreatDOMDetails(
mojom::ThreatReporterPtr threat_reporter,
mojo::Remote<mojom::ThreatReporter> threat_reporter,
content::RenderFrameHost* sender,
std::vector<mojom::ThreatDOMDetailsNodePtr> params);
......
......@@ -284,9 +284,9 @@ ThreatDOMDetails* ThreatDOMDetails::Create(
return new ThreatDOMDetails(render_frame, registry);
}
void ThreatDOMDetails::OnThreatReporterRequest(
mojom::ThreatReporterRequest request) {
threat_reporter_bindings_.AddBinding(this, std::move(request));
void ThreatDOMDetails::OnThreatReporterReceiver(
mojo::PendingReceiver<mojom::ThreatReporter> receiver) {
threat_reporter_receivers_.Add(this, std::move(receiver));
}
ThreatDOMDetails::ThreatDOMDetails(content::RenderFrame* render_frame,
......@@ -296,7 +296,7 @@ ThreatDOMDetails::ThreatDOMDetails(content::RenderFrame* render_frame,
// Base::Unretained() is safe here because both the registry and the
// ThreatDOMDetails are scoped to the same render frame.
registry->AddInterface(base::BindRepeating(
&ThreatDOMDetails::OnThreatReporterRequest, base::Unretained(this)));
&ThreatDOMDetails::OnThreatReporterReceiver, base::Unretained(this)));
}
ThreatDOMDetails::~ThreatDOMDetails() {}
......
......@@ -15,7 +15,8 @@
#include "base/feature_list.h"
#include "components/safe_browsing/common/safe_browsing.mojom.h"
#include "content/public/renderer/render_frame_observer.h"
#include "mojo/public/cpp/bindings/binding_set.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/receiver_set.h"
#include "services/service_manager/public/cpp/binder_registry.h"
namespace safe_browsing {
......@@ -76,9 +77,10 @@ class ThreatDOMDetails : public content::RenderFrameObserver,
// safe_browsing::mojom::ThreatReporter:
void GetThreatDOMDetails(GetThreatDOMDetailsCallback callback) override;
void OnThreatReporterRequest(mojom::ThreatReporterRequest request);
void OnThreatReporterReceiver(
mojo::PendingReceiver<mojom::ThreatReporter> receiver);
mojo::BindingSet<mojom::ThreatReporter> threat_reporter_bindings_;
mojo::ReceiverSet<mojom::ThreatReporter> threat_reporter_receivers_;
// A list of tag names and associates attributes, used to determine which
// elements need to be collected.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment