Title: [122228] trunk
Revision
122228
Author
[email protected]
Date
2012-07-10 09:18:40 -0700 (Tue, 10 Jul 2012)

Log Message

Editing: Reproducible crasher when pasting a 0x0 image into Mail
https://bugs.webkit.org/show_bug.cgi?id=90640
<rdar://problem/11141920>

Patch by Alice Cheng <[email protected]> on 2012-07-10
Reviewed by Brady Eidson.

Source/WebCore:

0x0 images don't get a resource representation in the WebArchive, so we need a null check

Test: TestWebKitAPI/Tests/mac/0.png
      TestWebKitAPI/Tests/mac/WebViewCanPasteZeroPng.mm

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

Tools:

Test cases for the patch. 0x0 images don't get a resource representation in the WebArchive, so we need a null check.

* TestWebKitAPI/Tests/mac/0.png: Added.
* TestWebKitAPI/Tests/mac/WebViewCanPasteZeroPng.mm: Added.
(TestWebKitAPI):
(TestWebKitAPI::TEST):

Modified Paths

Added Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (122227 => 122228)


--- trunk/Source/WebCore/ChangeLog	2012-07-10 16:11:08 UTC (rev 122227)
+++ trunk/Source/WebCore/ChangeLog	2012-07-10 16:18:40 UTC (rev 122228)
@@ -1,3 +1,19 @@
+2012-07-10  Alice Cheng  <[email protected]>
+
+        Editing: Reproducible crasher when pasting a 0x0 image into Mail
+        https://bugs.webkit.org/show_bug.cgi?id=90640
+        <rdar://problem/11141920>
+
+        Reviewed by Brady Eidson.
+
+        0x0 images don't get a resource representation in the WebArchive, so we need a null check
+
+        Test: TestWebKitAPI/Tests/mac/0.png
+              TestWebKitAPI/Tests/mac/WebViewCanPasteZeroPng.mm
+
+        * platform/mac/PasteboardMac.mm:
+        (WebCore::documentFragmentWithImageResource):
+
 2012-07-10  Nikita Vasilyev  <[email protected]>
 
         Web Inspector: Make the Tab character 4 spaces width

Modified: trunk/Source/WebCore/platform/mac/PasteboardMac.mm (122227 => 122228)


--- trunk/Source/WebCore/platform/mac/PasteboardMac.mm	2012-07-10 16:11:08 UTC (rev 122227)
+++ trunk/Source/WebCore/platform/mac/PasteboardMac.mm	2012-07-10 16:18:40 UTC (rev 122228)
@@ -368,6 +368,9 @@
     
 static PassRefPtr<DocumentFragment> documentFragmentWithImageResource(Frame* frame, PassRefPtr<ArchiveResource> resource)
 {
+    if (!resource)
+        return 0;
+    
     if (DocumentLoader* loader = frame->loader()->documentLoader())
         loader->addArchiveResource(resource.get());
 

Modified: trunk/Tools/ChangeLog (122227 => 122228)


--- trunk/Tools/ChangeLog	2012-07-10 16:11:08 UTC (rev 122227)
+++ trunk/Tools/ChangeLog	2012-07-10 16:18:40 UTC (rev 122228)
@@ -1,3 +1,18 @@
+2012-07-10  Alice Cheng  <[email protected]>
+
+        Editing: Reproducible crasher when pasting a 0x0 image into Mail
+        https://bugs.webkit.org/show_bug.cgi?id=90640
+        <rdar://problem/11141920>
+
+        Reviewed by Brady Eidson.
+
+        Test cases for the patch. 0x0 images don't get a resource representation in the WebArchive, so we need a null check.
+
+        * TestWebKitAPI/Tests/mac/0.png: Added.
+        * TestWebKitAPI/Tests/mac/WebViewCanPasteZeroPng.mm: Added.
+        (TestWebKitAPI):
+        (TestWebKitAPI::TEST):
+
 2012-07-10  Leandro Gracia Gil  <[email protected]>
 
         WebSurroundingText layout tests should use the same code path as the rest of the feature.

Added: trunk/Tools/TestWebKitAPI/Tests/mac/0.png (0 => 122228)


--- trunk/Tools/TestWebKitAPI/Tests/mac/0.png	                        (rev 0)
+++ trunk/Tools/TestWebKitAPI/Tests/mac/0.png	2012-07-10 16:18:40 UTC (rev 122228)
@@ -0,0 +1,10 @@
+\x89PNG
+
+
+IHDRĉ$iCCPICC Profile8\x85U\xDFo\xDBT>\x89oR\xA4? XG\x87\x8AůUS[\xB9\xAD\xC6I\x93\xA5\xEDJ\xA5\xE9\xD8*$\xE4:7\x89\xA9\xDB鶪O{\x817\xFC@\xD9H<!
+b{\xD9\xF6\xC0\xB4IS\x87*\xAAIH{\xE8\xC4!&\xEDU\xE1\xBBvb'S\xC4\\xF5\xFA\xCB9\xDF9\xE7;\xE7^\xDBD=_i\xB5\x9AU\x88\x96\xAB\xAE\x9D\xCF$\x95\x93\xA7\x94\x9EM\x8Aҳ\xD4Kԫ\xE9N-\x91\xCB\xCD.\xC1\xF7\xCE\xEB\xE1\x8A\xCB\xED\x91\xEE\xFEN\xF6#\xBFz\x8B\xDCщ"O\xC0n}\xF8Q\xCC\xD4k\xB6K\xBF\xFB\xF8i\xB7\xDC\xF3\xF0\xD36\xAB\x97}\x9Cx\xD1\xC7'=N!?	\x8E\xD0*\xEB\xAD\xBC<\xBC\xD8f/\xB7a_ȓ\xE1Un\xBA"f\x91\xB3\xAD\x92ar\xCF\xE1/\x8Fq\xB71\xFF.\x9Bu\xF4\xEC]\x83X\xFB\x9C\xA5\xB9c\xB8\x89\xDE+\xF6T\xBE\x89?׵\xF4\xF0K\xB0_\xAF\xB9Ia\xF8\x8F\xFA\xD2|xQ\xF4\xA9\x92}t\xDE\xE7G__\xAD\xDE\xDE{\xD1p\xA7M\xFBju1{\xB1\xD1\xF5%\xEB\x98\xC8#8\xD7ug\xB3\xA4\x80\xEFV\xF8\xB4\xD8c葨\xC8Si\xE0a\xE0\xC1J}\xAA\x99_\x9AqV\xE6\x84\xDD˳Z\x99\xCC#\x8Fd\xBF\xA7\xCD\xE4\x80\x80?\xB4\xAD\xBC\xA8\xCD\xD2:73\xA2\xF2KWkn\xAE\xA9Aڮ\x9AYQ\xFD2\x99;^\x8F\xC8)m\xBB\x95”\xCB\xBAv\xA1\xCBJ\xC6\xD1\xE9&\xADfzg\xDA\xD8\xBB\x9Eڐ\x9F\xDD\xD2\xECty\xD8?\xBC:/\xE6\xDB]\xD4Rb\xB6\xA3\xC0G\xE8DD#N-bթJ;\xA4P\x9E2\x94ĽF6<%2Ȅ\x85\xC3\xCBa1"O\xD2l\xDDy9\x8F\xE3DŽ\x8C\xB2\xBD-\xA2Q\xA5;ǯp\xBFɱX?S\xD9\xFCb\xB3\xEC0g\xA4\xB07؛\xECK\xC1:\xC1
+rm:*\xD3}(\xF5\xF3\xBCOuT:NP\xF2\xFC@}(\x88Q\xCE\xD9\xEF\xFA͏\xFE\x86\x9A\xB0K+\xF4#O\xD014[\xED hu7\xD2>\xA7kk?\xEC<\xCA\xBB\xF8\xCE\xED\xBEkkt\xFCq\xF3\x8D݋m\xC76\xB0nƶ\xC2\xF8د\xB1-\xFCmR;`z\x8A\x96\xA1\xCA\xF0v\xC2	x#=\\xD3%
+\xEBo\xE0Y\xD0\xDARڱ\xA3\xA5\xEA\xF9\x81\xD0#&\xC1?\xC8>\xCCҹ\xE1Ъ\xFE\xA2\xFE\xA9n\xA8_\xA8\xD4\xDF;j\x84;\xA6$}*}+\xFD(}'}/\xFDL\x8AtY\xBA"\xFD$]\x95\xBE\x91.9\xBB⦅%\xD8{\xAF_a݊]h\xD5k\x9F5'SN\xCA{\xE4\xE5\x94\xFC\xBC\xFC\xB2<\xB0\xB9_\x93\xA7\xE4\xBD\xF0\xEC	\xF6\xCD\xFD\xBDt
+\xB3jM\xB5{-\xF14%\x9D\xD7\xC6Tń\xABtY۟\x93\xA6R6\xC8\xC6\xD8\xF4#\xA7v\\x9C喊x:\x9E\x8A'H\x89\xEF\x8BO\xC4\xC7\xE23\xB7\x9E\xBC\xF8^\xF8&\xB0\xA6\xF5\xFE\x930::\xE0m,L%\xC83\xE2\x9D:qVE\xF4
+t\x9B\xD0\xCD]~\xDF\xA2I\xABv\xD66\xCAWٯ\xAA\xAF)	|ʸ2]\xD5G\x87\xCD4\xCF\xE5(6w\xB8\xBD‹\xA3$\xBE\x83"\x8E\xE8A\xDE\xFB\xBEEv\xDDm\xEE[D\x87\xFF\xC2;\xEBVh[\xA8}\xED\xF5\xBFچ\xF0N|\xE63\xA2\x8B\xF5\xBA\xBD\xE2\xE7\xA3H\xE4\x91S:\xB0\xDF\xFB\xE9K\xE2\xDDt\xB7\xD1x\x80\xF7U\xCF'D;7\xFF\xAE7;_"\xFF\xD1e\xF3?Yqxl+	pHYsg\x9F\xD2R
+IDATc\xF8\xFF\xFF?\xFC\xFE\xE6\xFF\xABIEND\xAEB`\x82
\ No newline at end of file

Added: trunk/Tools/TestWebKitAPI/Tests/mac/WebViewCanPasteZeroPng.mm (0 => 122228)


--- trunk/Tools/TestWebKitAPI/Tests/mac/WebViewCanPasteZeroPng.mm	                        (rev 0)
+++ trunk/Tools/TestWebKitAPI/Tests/mac/WebViewCanPasteZeroPng.mm	2012-07-10 16:18:40 UTC (rev 122228)
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "config.h"
+#import "PlatformUtilities.h"
+#import "WTFStringUtilities.h"
+
+#import <WebKit/WebViewPrivate.h>
+#import <WebKit/DOM.h>
+
+namespace TestWebKitAPI {
+
+TEST(WebKit1, WebViewCanPasteZeroPng)
+{
+    WebView *webView = [[WebView alloc] initWithFrame:NSZeroRect frameName:nil groupName:nil];
+    [webView setEditable:YES];
+    
+    //pasting a 0x0 image as pdf board type. Referring to <rdar://problem/11141920>
+    [[NSPasteboard generalPasteboard] declareTypes:[NSArray arrayWithObject:NSPDFPboardType] owner:nil];
+    [[[NSBundle mainBundle] URLForResource:@"0" withExtension:@"png" subdirectory:@"TestWebKitAPI.resources"] writeToPasteboard:[NSPasteboard generalPasteboard]];
+    [webView paste:nil];
+    
+    [webView release];
+}
+
+} // namespace TestWebKitAPI
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to