WebKit Bugzilla
Attachment 356776 Details for
Bug 192483
: [Attachment Support] Cloned attachment elements lose their unique identifiers
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-192483-20181206191354.patch (text/plain), 4.68 KB, created by
Wenson Hsieh
on 2018-12-06 19:13:55 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Wenson Hsieh
Created:
2018-12-06 19:13:55 PST
Size:
4.68 KB
patch
obsolete
>Subversion Revision: 238944 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 92d946d6ef02f6cc2e0ff8596dae119a560e03dc..59e19e00c63ce46fe96e1f4e6562f6669e08aea0 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,22 @@ >+2018-12-06 Wenson Hsieh <wenson_hsieh@apple.com> >+ >+ [Attachment Support] Cloned attachment elements lose their unique identifiers >+ https://bugs.webkit.org/show_bug.cgi?id=192483 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ This patch adds logic to ensure that the unique identifier of a cloned attachment element is the same as the >+ unique identifier of the original attachment element. If the cloned attachment is inserted into the same >+ document as the original attachment, then we will exercise the same codepath for copied-and-pasted attachments, >+ and assign a new unique identifier to the attachment element, while creating a new `_WKAttachment` in the client >+ that's backed by the same `NSFileWrapper`. >+ >+ Test: WKAttachmentTests.AttachmentIdentifierOfClonedAttachment >+ >+ * html/HTMLAttachmentElement.cpp: >+ (WebCore::HTMLAttachmentElement::copyNonAttributePropertiesFromElement): >+ * html/HTMLAttachmentElement.h: >+ > 2018-12-06 Adrian Perez de Castro <aperez@igalia.com> > > Content Extensions: Misc fixes to debugging / perf testing code >diff --git a/Source/WebCore/html/HTMLAttachmentElement.cpp b/Source/WebCore/html/HTMLAttachmentElement.cpp >index 8ced01221a5e5f8aaafb313bc7b39d2fbcd7d900..cb6acb718b3864813054e8694615deb9fd18bac1 100644 >--- a/Source/WebCore/html/HTMLAttachmentElement.cpp >+++ b/Source/WebCore/html/HTMLAttachmentElement.cpp >@@ -86,6 +86,12 @@ const String& HTMLAttachmentElement::getAttachmentIdentifier(HTMLImageElement& i > return identifier; > } > >+void HTMLAttachmentElement::copyNonAttributePropertiesFromElement(const Element& source) >+{ >+ m_uniqueIdentifier = downcast<HTMLAttachmentElement>(source).uniqueIdentifier(); >+ HTMLElement::copyNonAttributePropertiesFromElement(source); >+} >+ > URL HTMLAttachmentElement::archiveResourceURL(const String& identifier) > { > auto resourceURL = URL({ }, "applewebdata://attachment/"_s); >diff --git a/Source/WebCore/html/HTMLAttachmentElement.h b/Source/WebCore/html/HTMLAttachmentElement.h >index 020dc400a751d88f483c453597e41eceef8160b0..12e20a350691c6eca1268bbbd9081fb5bb06a510 100644 >--- a/Source/WebCore/html/HTMLAttachmentElement.h >+++ b/Source/WebCore/html/HTMLAttachmentElement.h >@@ -52,6 +52,8 @@ public: > const String& uniqueIdentifier() const { return m_uniqueIdentifier; } > void setUniqueIdentifier(const String& uniqueIdentifier) { m_uniqueIdentifier = uniqueIdentifier; } > >+ void copyNonAttributePropertiesFromElement(const Element&) final; >+ > WEBCORE_EXPORT void updateAttributes(std::optional<uint64_t>&& newFileSize, const String& newContentType, const String& newFilename); > WEBCORE_EXPORT void updateEnclosingImageWithData(const String& contentType, Ref<SharedBuffer>&& data); > >diff --git a/Tools/ChangeLog b/Tools/ChangeLog >index b46e50129cd9d735bf5ea993f93ae9626f7e73cb..f2b8e8c4640c871732713c8e3380109b8fd94724 100644 >--- a/Tools/ChangeLog >+++ b/Tools/ChangeLog >@@ -1,3 +1,15 @@ >+2018-12-06 Wenson Hsieh <wenson_hsieh@apple.com> >+ >+ [Attachment Support] Cloned attachment elements lose their unique identifiers >+ https://bugs.webkit.org/show_bug.cgi?id=192483 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Introduce a new API test. >+ >+ * TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm: >+ (TestWebKitAPI::TEST): >+ > 2018-12-06 Jonathan Bedard <jbedard@apple.com> > > REGRESSION: run-webkit-tests may fail when using booted simulators >diff --git a/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm b/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm >index 048b9078c56d1db04396e3bc5054cd08883eec3a..94472adf90e162a4e665d21a672b0d650748dc4d 100644 >--- a/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm >+++ b/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm >@@ -1488,6 +1488,13 @@ TEST(WKAttachmentTests, CopyAndPasteBetweenWebViews) > EXPECT_WK_STREQ("application/zip", pastedArchiveInfo.contentType); > } > >+TEST(WKAttachmentTests, AttachmentIdentifierOfClonedAttachment) >+{ >+ auto webView = webViewForTestingAttachments(); >+ auto attachment = retainPtr([webView synchronouslyInsertAttachmentWithFilename:@"attachment.pdf" contentType:@"application/pdf" data:testPDFData()]); >+ EXPECT_WK_STREQ([attachment uniqueIdentifier], [webView stringByEvaluatingJavaScript:@"document.body.cloneNode(true).querySelector('attachment').uniqueIdentifier"]); >+} >+ > #pragma mark - Platform-specific tests > > #if PLATFORM(MAC)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 192483
: 356776