Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 1ab2a0ce7fe40e728e2aaabac9e54e55b726308a
      
https://github.com/WebKit/WebKit/commit/1ab2a0ce7fe40e728e2aaabac9e54e55b726308a
  Author: Sihui Liu <sihui_...@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


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to