Title: [231276] trunk
Revision
231276
Author
[email protected]
Date
2018-05-02 15:55:44 -0700 (Wed, 02 May 2018)

Log Message

Can't copy and paste URLs that have no title into Mail (macOS)
https://bugs.webkit.org/show_bug.cgi?id=185205
<rdar://problem/36352406>

Patch by Aditya Keerthi <[email protected]> on 2018-05-02
Reviewed by Tim Horton.

Source/WebCore:

The pasteboardURL generated has an empty title for URLs without titles. Currently, the pasteboardURL.title is being saved to the pasteboard.

To fix the error, we check whether the title is empty and instead save the lastPathComponent to the pasteboard. This matches current behavior as the fallback title.

Augmented WebKitLegacy.ContextMenuCanCopyURL test

* platform/mac/PasteboardMac.mm:
(WebCore::writeURLForTypes):

Tools:

Added test to verify behavior when copying and pasting a URL without a title.

* TestWebKitAPI/Tests/mac/ContextMenuCanCopyURL.html:
* TestWebKitAPI/Tests/mac/ContextMenuCanCopyURL.mm:
(TestWebKitAPI::TEST):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (231275 => 231276)


--- trunk/Source/WebCore/ChangeLog	2018-05-02 22:55:06 UTC (rev 231275)
+++ trunk/Source/WebCore/ChangeLog	2018-05-02 22:55:44 UTC (rev 231276)
@@ -1,3 +1,20 @@
+2018-05-02  Aditya Keerthi  <[email protected]>
+
+        Can't copy and paste URLs that have no title into Mail (macOS)
+        https://bugs.webkit.org/show_bug.cgi?id=185205
+        <rdar://problem/36352406>
+
+        Reviewed by Tim Horton.
+
+        The pasteboardURL generated has an empty title for URLs without titles. Currently, the pasteboardURL.title is being saved to the pasteboard.
+
+        To fix the error, we check whether the title is empty and instead save the lastPathComponent to the pasteboard. This matches current behavior as the fallback title.
+
+        Augmented WebKitLegacy.ContextMenuCanCopyURL test
+
+        * platform/mac/PasteboardMac.mm:
+        (WebCore::writeURLForTypes):
+
 2018-05-01  Ryosuke Niwa  <[email protected]>
 
         REGRESSION(r225868): Release assert when removing an SVGUseElement from Document::m_svgUseElements

Modified: trunk/Source/WebCore/platform/mac/PasteboardMac.mm (231275 => 231276)


--- trunk/Source/WebCore/platform/mac/PasteboardMac.mm	2018-05-02 22:55:06 UTC (rev 231275)
+++ trunk/Source/WebCore/platform/mac/PasteboardMac.mm	2018-05-02 22:55:44 UTC (rev 231276)
@@ -199,7 +199,7 @@
     if (types.contains(WebURLsWithTitlesPboardType)) {
         Vector<String> paths;
         paths.append([cocoaURL absoluteString]);
-        paths.append(pasteboardURL.title.stripWhiteSpace());
+        paths.append(String(title).stripWhiteSpace());
         newChangeCount = platformStrategies()->pasteboardStrategy()->setPathnamesForType(paths, WebURLsWithTitlesPboardType, pasteboardName);
     }
     if (types.contains(String(legacyURLPasteboardType())))

Modified: trunk/Tools/ChangeLog (231275 => 231276)


--- trunk/Tools/ChangeLog	2018-05-02 22:55:06 UTC (rev 231275)
+++ trunk/Tools/ChangeLog	2018-05-02 22:55:44 UTC (rev 231276)
@@ -1,3 +1,17 @@
+2018-05-02  Aditya Keerthi  <[email protected]>
+
+        Can't copy and paste URLs that have no title into Mail (macOS)
+        https://bugs.webkit.org/show_bug.cgi?id=185205
+        <rdar://problem/36352406>
+
+        Reviewed by Tim Horton.
+
+        Added test to verify behavior when copying and pasting a URL without a title.
+
+        * TestWebKitAPI/Tests/mac/ContextMenuCanCopyURL.html:
+        * TestWebKitAPI/Tests/mac/ContextMenuCanCopyURL.mm:
+        (TestWebKitAPI::TEST):
+
 2018-05-02  Carlos Alberto Lopez Perez  <[email protected]>
 
         [GTK] Generate a JSC bundle on the 64 and 32 bit release bots and upload it to webkitgtk.org (follow-up fix)

Modified: trunk/Tools/TestWebKitAPI/Tests/mac/ContextMenuCanCopyURL.html (231275 => 231276)


--- trunk/Tools/TestWebKitAPI/Tests/mac/ContextMenuCanCopyURL.html	2018-05-02 22:55:06 UTC (rev 231275)
+++ trunk/Tools/TestWebKitAPI/Tests/mac/ContextMenuCanCopyURL.html	2018-05-02 22:55:44 UTC (rev 231276)
@@ -1,4 +1,4 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 </head>
-Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.<a href=''>Click me</a>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.<a href=''>
 http://💩.la</a>.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
\ No newline at end of file
+Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.<a href=''>Click me</a>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.<a href=''>
 http://💩.la</a>.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.<a href='' style='background: #000000; display: block; width: 200px; height: 200px;'></a>

Modified: trunk/Tools/TestWebKitAPI/Tests/mac/ContextMenuCanCopyURL.mm (231275 => 231276)


--- trunk/Tools/TestWebKitAPI/Tests/mac/ContextMenuCanCopyURL.mm	2018-05-02 22:55:06 UTC (rev 231275)
+++ trunk/Tools/TestWebKitAPI/Tests/mac/ContextMenuCanCopyURL.mm	2018-05-02 22:55:44 UTC (rev 231276)
@@ -110,6 +110,13 @@
     NSArray * titles = [WebURLsWithTitles titlesFromPasteboard: [NSPasteboard generalPasteboard]];
     EXPECT_WK_STREQ(@"http://xn--ls8h.la/", [[urls objectAtIndex:0] absoluteString]);
     EXPECT_WK_STREQ(@"http://💩.la", [titles objectAtIndex:0]);
+
+    contextMenuCopyLink(webView.get(), 2);
+
+    urls = [WebURLsWithTitles URLsFromPasteboard:[NSPasteboard generalPasteboard]];
+    titles = [WebURLsWithTitles titlesFromPasteboard:[NSPasteboard generalPasteboard]];
+    EXPECT_WK_STREQ(@"https://www.quirksmode.org/html5/videos/big_buck_bunny.mp4", [[urls objectAtIndex:0] absoluteString]);
+    EXPECT_WK_STREQ(@"big_buck_bunny.mp4", [titles objectAtIndex:0]);
 }
 
 } // namespace TestWebKitAPI
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to