Commit d4aeeb29 authored by Yutaka Hirano's avatar Yutaka Hirano Committed by Commit Bot

Use context document's ResourceFetcher in FrameSerializer

This is a follow up change for
https://crrev.com/8ee3f7e6d3a79b15824b6e286eb71c0a96c4d879. See its CL
description for details.

Bug: 961614, 1006292
Change-Id: Idff6f6645cf01cc7ea8c873cbde9039e641f7ecc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1862014Reviewed-by: default avatarŁukasz Anforowicz <lukasza@chromium.org>
Reviewed-by: default avatarHiroshige Hayashizaki <hiroshige@chromium.org>
Commit-Queue: Yutaka Hirano <yhirano@chromium.org>
Cr-Commit-Position: refs/heads/master@{#706289}
parent 60d551d7
...@@ -30,6 +30,8 @@ ...@@ -30,6 +30,8 @@
#include "third_party/blink/renderer/core/frame/frame_serializer.h" #include "third_party/blink/renderer/core/frame/frame_serializer.h"
#include "base/feature_list.h"
#include "third_party/blink/public/common/features.h"
#include "third_party/blink/renderer/core/css/css_font_face_rule.h" #include "third_party/blink/renderer/core/css/css_font_face_rule.h"
#include "third_party/blink/renderer/core/css/css_font_face_src_value.h" #include "third_party/blink/renderer/core/css/css_font_face_src_value.h"
#include "third_party/blink/renderer/core/css/css_image_value.h" #include "third_party/blink/renderer/core/css/css_image_value.h"
...@@ -630,7 +632,19 @@ void FrameSerializer::RetrieveResourcesForCSSValue(const CSSValue& css_value, ...@@ -630,7 +632,19 @@ void FrameSerializer::RetrieveResourcesForCSSValue(const CSSValue& css_value,
if (font_face_src_value->IsLocal()) if (font_face_src_value->IsLocal())
return; return;
AddFontToResources(font_face_src_value->Fetch(&document, nullptr)); if (base::FeatureList::IsEnabled(
features::kHtmlImportsRequestInitiatorLock)) {
if (Document* context_document = document.ContextDocument()) {
// For @imports from HTML imported Documents, we use the
// context document for getting origin and ResourceFetcher to use the
// main Document's origin, while using the element document for
// CompleteURL() to use imported Documents' base URLs.
AddFontToResources(
font_face_src_value->Fetch(context_document, nullptr));
}
} else {
AddFontToResources(font_face_src_value->Fetch(&document, nullptr));
}
} else if (const auto* css_value_list = DynamicTo<CSSValueList>(css_value)) { } else if (const auto* css_value_list = DynamicTo<CSSValueList>(css_value)) {
for (unsigned i = 0; i < css_value_list->length(); i++) for (unsigned i = 0; i < css_value_list->length(); i++)
RetrieveResourcesForCSSValue(css_value_list->Item(i), document); RetrieveResourcesForCSSValue(css_value_list->Item(i), document);
......
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