[webkit-changes] [WebKit/WebKit] 1ab2a0: Save available image resources to disk

Sihui noreply at github.com
Tue Oct 10 22:11:14 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 1ab2a0ce7fe40e728e2aaabac9e54e55b726308a
      https://github.com/WebKit/WebKit/commit/1ab2a0ce7fe40e728e2aaabac9e54e55b726308a
  Author: Sihui Liu <sihui_liu at apple.com>
  Date:   2023-10-10 (Tue, 10 Oct 2023)

  Changed paths:
    M Source/WebCore/dom/Element.cpp
    M Source/WebCore/dom/Element.h
    M Source/WebCore/dom/Node.cpp
    M Source/WebCore/dom/Node.h
    M Source/WebCore/editing/MarkupAccumulator.cpp
    M Source/WebCore/html/HTMLImageElement.cpp
    M Source/WebCore/html/HTMLImageElement.h
    M Source/WebCore/html/HTMLSourceElement.cpp
    M Source/WebCore/html/HTMLSourceElement.h
    M Source/WebCore/html/parser/HTMLSrcsetParser.cpp
    M Source/WebCore/html/parser/HTMLSrcsetParser.h
    M Source/WebCore/loader/archive/cf/LegacyWebArchive.cpp
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/CreateWebArchive.mm

  Log Message:
  -----------
  Save available image resources to disk
https://bugs.webkit.org/show_bug.cgi?id=262795
rdar://problem/116585056

Reviewed by Ryosuke Niwa.

An img element can have multiple candidate resources by having srcset attribute or source element (when its parent is
picture element). To make sure img element in saved file can be correclty loaded, we should save all fetched candidate
resources to disk. This patch implements that by extracting urls from srcset attribute and replace them with file paths.

API Test: WebArchive.SaveResourcesResponsiveImages

* Source/WebCore/dom/Element.cpp:
(WebCore::Element::replaceURLsInAttributeValue const):
* Source/WebCore/dom/Element.h:
* Source/WebCore/dom/Node.cpp:
(WebCore::Node::getCandidateSubresourceURLs const):
* Source/WebCore/dom/Node.h:
(WebCore::Node::addCandidateSubresourceURLs const):
* Source/WebCore/editing/MarkupAccumulator.cpp:
(WebCore::MarkupAccumulator::replaceAttributeIfNecessary):
* Source/WebCore/html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::replaceURLsInAttributeValue const):
(WebCore::HTMLImageElement::addCandidateSubresourceURLs const):
* Source/WebCore/html/HTMLImageElement.h:
* Source/WebCore/html/HTMLSourceElement.cpp:
(WebCore::HTMLSourceElement::replaceURLsInAttributeValue const):
(WebCore::HTMLSourceElement::addCandidateSubresourceURLs const):
* Source/WebCore/html/HTMLSourceElement.h:
* Source/WebCore/html/parser/HTMLSrcsetParser.cpp:
(WebCore::getURLsFromSrcsetAttribute):
(WebCore::replaceURLsInSrcsetAttribute):
* Source/WebCore/html/parser/HTMLSrcsetParser.h:
* Source/WebCore/loader/archive/cf/LegacyWebArchive.cpp:
(WebCore::LegacyWebArchive::create):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/CreateWebArchive.mm:

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




More information about the webkit-changes mailing list