Commit 3733b80a authored by Sophie Chang's avatar Sophie Chang Committed by Commit Bot

Have ResourceLoadingHintsWCO call Previews Opt Guide directly

This simplifies the interface for the Previews Decider and UI service

Change-Id: Id50c986ba9e5fe00f6d8547101b1a7d162fc9584
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1925434Reviewed-by: default avatarTarun Bansal <tbansal@chromium.org>
Commit-Queue: Sophie Chang <sophiechang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#716869}
parent fbac930a
......@@ -7,7 +7,6 @@
#include <map>
#include <memory>
#include <string>
#include <vector>
#include "base/test/gtest_util.h"
#include "base/test/metrics/histogram_tester.h"
......@@ -89,12 +88,6 @@ class PreviewEnabledPreviewsDecider : public PreviewsDecider {
"hintcachedhost.com");
}
bool GetResourceLoadingHints(
const GURL& url,
std::vector<std::string>* out_resource_patterns_to_block) const override {
return false;
}
private:
bool IsEnabled(PreviewsType type) const {
switch (type) {
......
......@@ -4,6 +4,8 @@
#include "chrome/browser/previews/resource_loading_hints/resource_loading_hints_web_contents_observer.h"
#include <utility>
#include "base/bind.h"
#include "base/bind_helpers.h"
#include "base/metrics/histogram_macros.h"
......@@ -132,10 +134,16 @@ const std::vector<std::string> ResourceLoadingHintsWebContentsObserver::
PreviewsService* previews_service =
PreviewsServiceFactory::GetForProfile(profile_);
previews::PreviewsUIService* previews_ui_service =
previews_service->previews_ui_service();
return previews_ui_service->GetResourceLoadingHintsResourcePatternsToBlock(
document_gurl);
previews::PreviewsOptimizationGuide* previews_optimization_guide =
previews_service->previews_ui_service()
->previews_decider_impl()
->previews_opt_guide();
std::vector<std::string> resource_patterns_to_block;
if (previews_optimization_guide) {
previews_optimization_guide->GetResourceLoadingHints(
document_gurl, &resource_patterns_to_block);
}
return resource_patterns_to_block;
}
mojo::AssociatedRemote<blink::mojom::PreviewsResourceLoadingHintsReceiver>
......
......@@ -5,17 +5,12 @@
#ifndef COMPONENTS_PREVIEWS_CONTENT_PREVIEWS_DECIDER_H_
#define COMPONENTS_PREVIEWS_CONTENT_PREVIEWS_DECIDER_H_
#include <string>
#include <vector>
#include "components/previews/core/previews_experiments.h"
namespace content {
class NavigationHandle;
} // namespace content
class GURL;
namespace previews {
class PreviewsUserData;
......@@ -47,12 +42,6 @@ class PreviewsDecider {
virtual bool AreCommitTimePreviewsAvailable(
content::NavigationHandle* navigation_handle) = 0;
// Whether |url| has loaded resource loading hints and, if it does, populates
// |out_resource_patterns_to_block| with the resource patterns to block.
virtual bool GetResourceLoadingHints(
const GURL& url,
std::vector<std::string>* out_resource_patterns_to_block) const = 0;
protected:
PreviewsDecider() {}
virtual ~PreviewsDecider() {}
......
......@@ -367,18 +367,6 @@ bool PreviewsDeciderImpl::AreCommitTimePreviewsAvailable(
return previews_opt_guide_->AreCommitTimePreviewsAvailable(navigation_handle);
}
bool PreviewsDeciderImpl::GetResourceLoadingHints(
const GURL& url,
std::vector<std::string>* out_resource_patterns_to_block) const {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
if (!previews_opt_guide_)
return false;
return previews_opt_guide_->GetResourceLoadingHints(
url, out_resource_patterns_to_block);
}
bool PreviewsDeciderImpl::ShouldCommitPreview(
PreviewsUserData* previews_data,
content::NavigationHandle* navigation_handle,
......
......@@ -126,10 +126,6 @@ class PreviewsDeciderImpl : public PreviewsDecider,
bool AreCommitTimePreviewsAvailable(
content::NavigationHandle* navigation_handle) override;
bool GetResourceLoadingHints(
const GURL& url,
std::vector<std::string>* out_resource_patterns_to_block) const override;
// Generates a page ID that is guaranteed to be unique from any other page ID
// generated in this browser session. Also, guaranteed to be non-zero.
uint64_t GeneratePageId();
......
......@@ -4,6 +4,8 @@
#include "components/previews/content/previews_ui_service.h"
#include <utility>
#include "base/bind.h"
#include "base/single_thread_task_runner.h"
#include "url/gurl.h"
......@@ -90,19 +92,6 @@ void PreviewsUIService::OnIgnoreBlacklistDecisionStatusChanged(bool ignored) {
logger_->OnIgnoreBlacklistDecisionStatusChanged(ignored);
}
std::vector<std::string>
PreviewsUIService::GetResourceLoadingHintsResourcePatternsToBlock(
const GURL& document_gurl) const {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
std::vector<std::string> resource_patterns_to_block;
if (previews_decider_impl_) {
previews_decider_impl_->GetResourceLoadingHints(
document_gurl, &resource_patterns_to_block);
}
return resource_patterns_to_block;
}
PreviewsLogger* PreviewsUIService::previews_logger() const {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
return logger_.get();
......
......@@ -5,6 +5,7 @@
#ifndef COMPONENTS_PREVIEWS_CONTENT_PREVIEWS_UI_SERVICE_H_
#define COMPONENTS_PREVIEWS_CONTENT_PREVIEWS_UI_SERVICE_H_
#include <memory>
#include <string>
#include <vector>
......
......@@ -4,7 +4,7 @@
#include "components/previews/content/previews_ui_service.h"
#include <memory>
#include <utility>
#include "base/bind.h"
#include "base/memory/ref_counted.h"
......@@ -164,15 +164,6 @@ class TestPreviewsDeciderImpl : public PreviewsDeciderImpl {
void SetIgnorePreviewsBlacklistDecision(bool ignored) override {
blacklist_ignored_ = ignored;
}
bool GetResourceLoadingHints(
const GURL& url,
std::vector<std::string>* out_resource_patterns_to_block) const override {
if (url.host() == "blockresources.com") {
out_resource_patterns_to_block->push_back("BlockMe");
return true;
}
return false;
}
// Exposed the status of blacklist decisions ignored for testing
// PreviewsUIService.
......@@ -366,18 +357,4 @@ TEST_F(PreviewsUIServiceTest, TestOnIgnoreBlacklistDecisionStatusChanged) {
EXPECT_FALSE(logger_ptr_->blacklist_ignored());
}
TEST_F(PreviewsUIServiceTest,
TestGetResourceLoadingHintsResourcePatternsToBlock) {
EXPECT_TRUE(ui_service()
->GetResourceLoadingHintsResourcePatternsToBlock(
GURL("https://www.somedomain.org/"))
.empty());
std::vector<std::string> patterns_to_block =
ui_service()->GetResourceLoadingHintsResourcePatternsToBlock(
GURL("https://blockresources.com/"));
EXPECT_EQ(1ul, patterns_to_block.size());
EXPECT_EQ("BlockMe", patterns_to_block[0]);
}
} // namespace previews
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