[webkit-changes] [WebKit/WebKit] 563c79: Resolve non-replaced URLs in style sheets when sav...

Sihui noreply at github.com
Wed May 22 19:06:23 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 563c795b80f1c0de51382050f74087012e70b4db
      https://github.com/WebKit/WebKit/commit/563c795b80f1c0de51382050f74087012e70b4db
  Author: Sihui Liu <sihui_liu at apple.com>
  Date:   2024-05-22 (Wed, 22 May 2024)

  Changed paths:
    M Source/WebCore/css/CSSFontFaceSrcValue.cpp
    M Source/WebCore/css/CSSFontFaceSrcValue.h
    M Source/WebCore/css/CSSImageValue.cpp
    M Source/WebCore/css/CSSImageValue.h
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/CreateWebArchive.mm

  Log Message:
  -----------
  Resolve non-replaced URLs in style sheets when saving web page resources
https://bugs.webkit.org/show_bug.cgi?id=270960
rdar://120498768

Reviewed by Ryosuke Niwa.

Some CSS rules allow developers to specify multiple resources so that browser could pick the most suitable one to use
(e.g. @font-face). In our current implementation, when saving web page resources, we only save the resource that is
loaded. That means, URLs of other candidate resources will not be replaced with local file path in saved web page. It is
common that style sheets use relative path for subresource URL, and the result is the relative paths in saved style
sheets now point to non-existent files (as the candidate resources are not saved). To fix that problem, we now resolve
the non-replaced URLs in saved style sheets. With this change, when browser loads the saved web page and decides to load
candidate resource, it could send the request to correct server.

API test: WebArchive.SaveResourcesStyle

* Source/WebCore/css/CSSFontFaceSrcValue.cpp:
(WebCore::CSSFontFaceSrcResourceValue::customSetReplacementURLForSubresources):
(WebCore::CSSFontFaceSrcResourceValue::customClearReplacementURLForSubresources):
(WebCore::CSSFontFaceSrcResourceValue::customCSSText const):
* Source/WebCore/css/CSSFontFaceSrcValue.h:
* Source/WebCore/css/CSSImageValue.cpp:
(WebCore::CSSImageValue::customSetReplacementURLForSubresources):
(WebCore::CSSImageValue::customClearReplacementURLForSubresources):
(WebCore::CSSImageValue::customCSSText const):
* Source/WebCore/css/CSSImageValue.h:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/CreateWebArchive.mm:
(TestWebKitAPI::(WebArchive, SaveResourcesStyleWithUnloadedResources)):

Canonical link: https://commits.webkit.org/279168@main



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list