summaryrefslogtreecommitdiff
path: root/chromium/chrome/renderer/previews
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/chrome/renderer/previews')
-rw-r--r--chromium/chrome/renderer/previews/resource_loading_hints_agent.cc43
-rw-r--r--chromium/chrome/renderer/previews/resource_loading_hints_agent.h13
2 files changed, 51 insertions, 5 deletions
diff --git a/chromium/chrome/renderer/previews/resource_loading_hints_agent.cc b/chromium/chrome/renderer/previews/resource_loading_hints_agent.cc
index 5e0737dc806..154008b2061 100644
--- a/chromium/chrome/renderer/previews/resource_loading_hints_agent.cc
+++ b/chromium/chrome/renderer/previews/resource_loading_hints_agent.cc
@@ -7,6 +7,7 @@
#include <vector>
#include "base/metrics/histogram_macros.h"
+#include "base/metrics/histogram_macros_local.h"
#include "content/public/renderer/render_frame.h"
#include "third_party/blink/public/platform/web_loading_hints_provider.h"
#include "third_party/blink/public/platform/web_string.h"
@@ -38,8 +39,6 @@ ResourceLoadingHintsAgent::ResourceLoadingHintsAgent(
content::RenderFrameObserverTracker<ResourceLoadingHintsAgent>(
render_frame) {
DCHECK(render_frame);
- DCHECK(IsMainFrame());
-
associated_interfaces->AddInterface(base::BindRepeating(
&ResourceLoadingHintsAgent::SetReceiver, base::Unretained(this)));
}
@@ -51,17 +50,23 @@ GURL ResourceLoadingHintsAgent::GetDocumentURL() const {
void ResourceLoadingHintsAgent::DidStartNavigation(
const GURL& url,
base::Optional<blink::WebNavigationType> navigation_type) {
+ if (!IsMainFrame())
+ return;
subresource_redirect_hints_agent_.DidStartNavigation();
}
void ResourceLoadingHintsAgent::ReadyToCommitNavigation(
blink::WebDocumentLoader* document_loader) {
+ if (!IsMainFrame())
+ return;
+
subresource_redirect_hints_agent_.ReadyToCommitNavigation(
render_frame()->GetRoutingID());
}
void ResourceLoadingHintsAgent::DidCreateNewDocument() {
- DCHECK(IsMainFrame());
+ if (!IsMainFrame())
+ return;
if (!GetDocumentURL().SchemeIsHTTPOrHTTPS())
return;
@@ -101,7 +106,8 @@ bool ResourceLoadingHintsAgent::IsMainFrame() const {
void ResourceLoadingHintsAgent::SetResourceLoadingHints(
blink::mojom::PreviewsResourceLoadingHintsPtr resource_loading_hints) {
- DCHECK(IsMainFrame());
+ if (!IsMainFrame())
+ return;
UMA_HISTOGRAM_COUNTS_100(
"ResourceLoadingHints.CountBlockedSubresourcePatterns",
@@ -117,8 +123,37 @@ void ResourceLoadingHintsAgent::SetResourceLoadingHints(
void ResourceLoadingHintsAgent::SetCompressPublicImagesHints(
blink::mojom::CompressPublicImagesHintsPtr images_hints) {
+ if (!IsMainFrame())
+ return;
subresource_redirect_hints_agent_.SetCompressPublicImagesHints(
std::move(images_hints));
}
+void ResourceLoadingHintsAgent::NotifyHttpsImageCompressionFetchFailed(
+ base::TimeDelta retry_after) {
+ if (!subresource_redirect_service_remote_) {
+ render_frame()->GetRemoteAssociatedInterfaces()->GetInterface(
+ &subresource_redirect_service_remote_);
+ }
+ subresource_redirect_service_remote_->NotifyCompressedImageFetchFailed(
+ retry_after);
+}
+
+void ResourceLoadingHintsAgent::SetLiteVideoHint(
+ blink::mojom::LiteVideoHintPtr lite_video_hint) {
+ auto* lite_video_hint_agent =
+ lite_video::LiteVideoHintAgent::Get(render_frame());
+ if (lite_video_hint_agent)
+ lite_video_hint_agent->SetLiteVideoHint(std::move(lite_video_hint));
+}
+
+void ResourceLoadingHintsAgent::StopThrottlingMediaRequests() {
+ auto* lite_video_hint_agent =
+ lite_video::LiteVideoHintAgent::Get(render_frame());
+ if (lite_video_hint_agent) {
+ LOCAL_HISTOGRAM_BOOLEAN("LiteVideo.HintsAgent.StopThrottling", true);
+ lite_video_hint_agent->StopThrottling();
+ }
+}
+
} // namespace previews
diff --git a/chromium/chrome/renderer/previews/resource_loading_hints_agent.h b/chromium/chrome/renderer/previews/resource_loading_hints_agent.h
index 85fdc2b4d88..370b2789d54 100644
--- a/chromium/chrome/renderer/previews/resource_loading_hints_agent.h
+++ b/chromium/chrome/renderer/previews/resource_loading_hints_agent.h
@@ -8,9 +8,10 @@
#include <memory>
#include "base/bind.h"
-#include "base/logging.h"
#include "base/macros.h"
#include "base/optional.h"
+#include "chrome/common/subresource_redirect_service.mojom.h"
+#include "chrome/renderer/lite_video/lite_video_hint_agent.h"
#include "chrome/renderer/subresource_redirect/subresource_redirect_hints_agent.h"
#include "content/public/renderer/render_frame_observer.h"
#include "content/public/renderer/render_frame_observer_tracker.h"
@@ -44,6 +45,9 @@ class ResourceLoadingHintsAgent
return subresource_redirect_hints_agent_;
}
+ // Notifies the browser process that https image compression fetch had failed.
+ void NotifyHttpsImageCompressionFetchFailed(base::TimeDelta retry_after);
+
private:
// content::RenderFrameObserver:
void DidStartNavigation(
@@ -61,6 +65,9 @@ class ResourceLoadingHintsAgent
resource_loading_hints) override;
void SetCompressPublicImagesHints(
blink::mojom::CompressPublicImagesHintsPtr images_hints) override;
+ void SetLiteVideoHint(
+ blink::mojom::LiteVideoHintPtr lite_video_hint) override;
+ void StopThrottlingMediaRequests() override;
void SetReceiver(
mojo::PendingAssociatedReceiver<
@@ -74,6 +81,10 @@ class ResourceLoadingHintsAgent
mojo::AssociatedReceiver<blink::mojom::PreviewsResourceLoadingHintsReceiver>
receiver_{this};
+ mojo::AssociatedRemote<
+ subresource_redirect::mojom::SubresourceRedirectService>
+ subresource_redirect_service_remote_;
+
subresource_redirect::SubresourceRedirectHintsAgent
subresource_redirect_hints_agent_;