Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 1ab2a0ce7fe40e728e2aaabac9e54e55b726308a
https://github.com/WebKit/WebKit/commit/1ab2a0ce7fe40e728e2aaabac9e54e55b726308a
Author: Sihui Liu <[email protected]>
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
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes