Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: f075e7c9a1eddbb83bb123b1926f531817488c87
https://github.com/WebKit/WebKit/commit/f075e7c9a1eddbb83bb123b1926f531817488c87
Author: Sihui Liu <[email protected]>
Date: 2023-11-15 (Wed, 15 Nov 2023)
Changed paths:
M Source/WebCore/Headers.cmake
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/editing/MarkupAccumulator.cpp
M Source/WebCore/editing/MarkupAccumulator.h
A Source/WebCore/editing/MarkupExclusionRule.h
M Source/WebCore/editing/markup.cpp
M Source/WebCore/editing/markup.h
M Source/WebCore/loader/archive/cf/LegacyWebArchive.cpp
M Source/WebCore/loader/archive/cf/LegacyWebArchive.h
M Source/WebCore/xml/XMLSerializer.cpp
M Source/WebKit/Modules/OSX_Private.modulemap
M Source/WebKit/Modules/iOS_Private.modulemap
M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
M Source/WebKit/SourcesCocoa.txt
M Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm
M Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h
A Source/WebKit/UIProcess/API/Cocoa/_WKArchiveConfiguration.h
A Source/WebKit/UIProcess/API/Cocoa/_WKArchiveConfiguration.mm
A Source/WebKit/UIProcess/API/Cocoa/_WKArchiveExclusionRule.h
A Source/WebKit/UIProcess/API/Cocoa/_WKArchiveExclusionRule.mm
M Source/WebKit/UIProcess/Automation/ios/WebAutomationSessionIOS.mm
M Source/WebKit/UIProcess/Cocoa/ModelElementControllerCocoa.mm
M Source/WebKit/UIProcess/Cocoa/SystemPreviewControllerCocoa.mm
M Source/WebKit/UIProcess/SystemPreviewController.h
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/WebPageProxy.h
M Source/WebKit/WebKit.xcodeproj/project.pbxproj
M Source/WebKit/WebProcess/WebPage/WebFrame.cpp
M Source/WebKit/WebProcess/WebPage/WebFrame.h
M Source/WebKit/WebProcess/WebPage/WebPage.cpp
M Source/WebKit/WebProcess/WebPage/WebPage.h
M Source/WebKit/WebProcess/WebPage/WebPage.messages.in
M Tools/TestWebKitAPI/Tests/WebKitCocoa/CreateWebArchive.mm
Log Message:
-----------
Add SPI to allow excluding elements when saving web page resources
https://bugs.webkit.org/show_bug.cgi?id=264771
rdar://118342918
Reviewed by Ryosuke Niwa.
Sometimes client needs to exclude elements from saved page. For example, script
could run automatically when saved page
is loaded, so client may need to exclude scripts from saved page so it does not
change web content unexpectedly.
Test: WebArchive.SaveResourcesExclusionRules
* Source/WebCore/Headers.cmake:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/editing/MarkupAccumulator.cpp:
(WebCore::MarkupAccumulator::MarkupAccumulator):
(WebCore::MarkupAccumulator::serializeNodes):
(WebCore::MarkupAccumulator::serializeNodesWithNamespaces):
(WebCore::isElementExcludedByRule):
(WebCore::MarkupAccumulator::shouldExcludeElement):
* Source/WebCore/editing/MarkupAccumulator.h:
(WebCore::MarkupAccumulator::MarkupAccumulator):
* Source/WebCore/editing/MarkupExclusionRule.h: Added.
* Source/WebCore/editing/markup.cpp:
(WebCore::serializeFragment):
* Source/WebCore/editing/markup.h:
(WebCore::serializeFragment):
* Source/WebCore/loader/archive/cf/LegacyWebArchive.cpp:
(WebCore::LegacyWebArchive::create):
* Source/WebCore/loader/archive/cf/LegacyWebArchive.h:
* Source/WebCore/xml/XMLSerializer.cpp:
(WebCore::XMLSerializer::serializeToString):
* Source/WebKit/Modules/OSX_Private.modulemap:
* Source/WebKit/Modules/iOS_Private.modulemap:
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
* Source/WebKit/SourcesCocoa.txt:
* Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _saveResources:suggestedFileName:completionHandler:]):
(-[WKWebView _archiveWithConfiguration:completionHandler:]):
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKArchiveConfiguration.h: Added.
* Source/WebKit/UIProcess/API/Cocoa/_WKArchiveConfiguration.mm: Added.
(-[_WKArchiveConfiguration dealloc]):
* Source/WebKit/UIProcess/API/Cocoa/_WKArchiveExclusionRule.h: Added.
* Source/WebKit/UIProcess/API/Cocoa/_WKArchiveExclusionRule.mm: Added.
(-[_WKArchiveExclusionRule
initWithElementLocalName:attributeLocalNames:attributeValues:]):
(-[_WKArchiveExclusionRule elementLocalName]):
(-[_WKArchiveExclusionRule attributeLocalNames]):
(-[_WKArchiveExclusionRule attributeValues]):
* Source/WebKit/UIProcess/Automation/ios/WebAutomationSessionIOS.mm:
* Source/WebKit/UIProcess/Cocoa/ModelElementControllerCocoa.mm:
* Source/WebKit/UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:
* Source/WebKit/UIProcess/SystemPreviewController.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::saveResources):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::webArchiveData):
* Source/WebKit/WebProcess/WebPage/WebFrame.h:
(WebKit::WebFrame::webArchiveData):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::getWebArchiveOfFrameWithFileName):
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebPage/WebPage.messages.in:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/CreateWebArchive.mm:
Canonical link: https://commits.webkit.org/270787@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes