Title: [154528] trunk
Revision
154528
Author
[email protected]
Date
2013-08-23 15:57:07 -0700 (Fri, 23 Aug 2013)

Log Message

REGRESSION (r132545): Some PDFs generated by WebKit are blank when viewed in 
Adobe Reader
https://bugs.webkit.org/show_bug.cgi?id=120240
-and corresponding-
<rdar://problem/14634453>

Reviewed by Anders Carlsson.

Source/WebCore: 

This patch makes it so that we don’t use the infinite rect for the PDF context, 
and it adds WebCoreSystemInterface API to find out if the current content is the 
PDF context. 

* WebCore.exp.in:
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::clipOut):
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:

Source/WebKit/mac: 

Hook up new WebSystemInterface API to find out if the current context is the PDF 
context.

* WebCoreSupport/WebSystemInterface.mm:
(InitWebCoreSystemInterface):

Source/WebKit2: 

Hook up new WebSystemInterface API to find out if the current context is the PDF 
context. 

* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface):

WebKitLibraries: 

* WebKitSystemInterface.h:
* libWebKitSystemInterfaceLion.a:
* libWebKitSystemInterfaceMountainLion.a:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (154527 => 154528)


--- trunk/Source/WebCore/ChangeLog	2013-08-23 22:44:15 UTC (rev 154527)
+++ trunk/Source/WebCore/ChangeLog	2013-08-23 22:57:07 UTC (rev 154528)
@@ -1,3 +1,23 @@
+2013-08-23  Beth Dakin  <[email protected]>
+
+        REGRESSION (r132545): Some PDFs generated by WebKit are blank when viewed in 
+        Adobe Reader
+        https://bugs.webkit.org/show_bug.cgi?id=120240
+        -and corresponding-
+        <rdar://problem/14634453>
+
+        Reviewed by Anders Carlsson.
+
+        This patch makes it so that we don’t use the infinite rect for the PDF context, 
+        and it adds WebCoreSystemInterface API to find out if the current content is the 
+        PDF context. 
+
+        * WebCore.exp.in:
+        * platform/graphics/cg/GraphicsContextCG.cpp:
+        (WebCore::GraphicsContext::clipOut):
+        * platform/mac/WebCoreSystemInterface.h:
+        * platform/mac/WebCoreSystemInterface.mm:
+
 2013-08-23  Eric Carlson  <[email protected]>
 
         [Mac] some track language tags are not recognized

Modified: trunk/Source/WebCore/WebCore.exp.in (154527 => 154528)


--- trunk/Source/WebCore/WebCore.exp.in	2013-08-23 22:44:15 UTC (rev 154527)
+++ trunk/Source/WebCore/WebCore.exp.in	2013-08-23 22:57:07 UTC (rev 154528)
@@ -1709,6 +1709,7 @@
 _stringIsCaseInsensitiveEqualToString
 _suggestedFilenameWithMIMEType
 _wkCGContextGetShouldSmoothFonts
+_wkCGContextIsPDFContext
 _wkCGContextResetClip
 _wkCGPatternCreateWithImageAndTransform
 _wkCTRunGetInitialAdvance

Modified: trunk/Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp (154527 => 154528)


--- trunk/Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp	2013-08-23 22:44:15 UTC (rev 154527)
+++ trunk/Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp	2013-08-23 22:57:07 UTC (rev 154528)
@@ -838,9 +838,10 @@
 
     // FIXME: Using CGRectInfinite is much faster than getting the clip bounding box. However, due
     // to <rdar://problem/12584492>, CGRectInfinite can't be used with an accelerated context that
-    // has certain transforms that aren't just a translation or a scale.
+    // has certain transforms that aren't just a translation or a scale. And due to <rdar://problem/14634453>
+    // we cannot use it in for a printing context either.
     const AffineTransform& ctm = getCTM();
-    bool canUseCGRectInfinite = !isAcceleratedContext() || (!ctm.b() && !ctm.c());
+    bool canUseCGRectInfinite = !wkCGContextIsPDFContext(platformContext()) && (!isAcceleratedContext() || (!ctm.b() && !ctm.c()));
     CGRect rects[2] = { canUseCGRectInfinite ? CGRectInfinite : CGContextGetClipBoundingBox(platformContext()), rect };
     CGContextBeginPath(platformContext());
     CGContextAddRects(platformContext(), rects, 2);

Modified: trunk/Source/WebCore/platform/mac/WebCoreSystemInterface.h (154527 => 154528)


--- trunk/Source/WebCore/platform/mac/WebCoreSystemInterface.h	2013-08-23 22:44:15 UTC (rev 154527)
+++ trunk/Source/WebCore/platform/mac/WebCoreSystemInterface.h	2013-08-23 22:57:07 UTC (rev 154528)
@@ -202,6 +202,7 @@
 extern void (*wkSetBaseCTM)(CGContextRef, CGAffineTransform);
 extern void (*wkSetPatternPhaseInUserSpace)(CGContextRef, CGPoint);
 extern CGAffineTransform (*wkGetUserToBaseCTM)(CGContextRef);
+extern bool (*wkCGContextIsPDFContext)(CGContextRef);
 extern void (*wkSetUpFontCache)();
 extern void (*wkSignalCFReadStreamEnd)(CFReadStreamRef stream);
 extern void (*wkSignalCFReadStreamError)(CFReadStreamRef stream, CFStreamError *error);

Modified: trunk/Source/WebCore/platform/mac/WebCoreSystemInterface.mm (154527 => 154528)


--- trunk/Source/WebCore/platform/mac/WebCoreSystemInterface.mm	2013-08-23 22:44:15 UTC (rev 154527)
+++ trunk/Source/WebCore/platform/mac/WebCoreSystemInterface.mm	2013-08-23 22:57:07 UTC (rev 154528)
@@ -92,6 +92,7 @@
 void (*wkSetBaseCTM)(CGContextRef, CGAffineTransform);
 void (*wkSetPatternPhaseInUserSpace)(CGContextRef, CGPoint point);
 CGAffineTransform (*wkGetUserToBaseCTM)(CGContextRef);
+bool (*wkCGContextIsPDFContext)(CGContextRef);
 void (*wkSetUpFontCache)();
 void (*wkSignalCFReadStreamEnd)(CFReadStreamRef stream);
 void (*wkSignalCFReadStreamHasBytes)(CFReadStreamRef stream);

Modified: trunk/Source/WebKit/mac/ChangeLog (154527 => 154528)


--- trunk/Source/WebKit/mac/ChangeLog	2013-08-23 22:44:15 UTC (rev 154527)
+++ trunk/Source/WebKit/mac/ChangeLog	2013-08-23 22:57:07 UTC (rev 154528)
@@ -1,3 +1,19 @@
+2013-08-23  Beth Dakin  <[email protected]>
+
+        REGRESSION (r132545): Some PDFs generated by WebKit are blank when viewed in 
+        Adobe Reader
+        https://bugs.webkit.org/show_bug.cgi?id=120240
+        -and corresponding-
+        <rdar://problem/14634453>
+
+        Reviewed by Anders Carlsson.
+
+        Hook up new WebSystemInterface API to find out if the current context is the PDF 
+        context.
+
+        * WebCoreSupport/WebSystemInterface.mm:
+        (InitWebCoreSystemInterface):
+
 2013-08-20  Pratik Solanki  <[email protected]>
 
         <https://webkit.org/b/120029> Document::markers() should return a reference

Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebSystemInterface.mm (154527 => 154528)


--- trunk/Source/WebKit/mac/WebCoreSupport/WebSystemInterface.mm	2013-08-23 22:44:15 UTC (rev 154527)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebSystemInterface.mm	2013-08-23 22:57:07 UTC (rev 154528)
@@ -99,6 +99,7 @@
     INIT(SetNSURLConnectionDefersCallbacks);
     INIT(SetNSURLRequestShouldContentSniff);
     INIT(SetPatternPhaseInUserSpace);
+    INIT(CGContextIsPDFContext);
     INIT(GetUserToBaseCTM);
     INIT(SetUpFontCache);
     INIT(SignalCFReadStreamEnd);

Modified: trunk/Source/WebKit2/ChangeLog (154527 => 154528)


--- trunk/Source/WebKit2/ChangeLog	2013-08-23 22:44:15 UTC (rev 154527)
+++ trunk/Source/WebKit2/ChangeLog	2013-08-23 22:57:07 UTC (rev 154528)
@@ -1,3 +1,19 @@
+2013-08-23  Beth Dakin  <[email protected]>
+
+        REGRESSION (r132545): Some PDFs generated by WebKit are blank when viewed in 
+        Adobe Reader
+        https://bugs.webkit.org/show_bug.cgi?id=120240
+        -and corresponding-
+        <rdar://problem/14634453>
+
+        Reviewed by Anders Carlsson.
+
+        Hook up new WebSystemInterface API to find out if the current context is the PDF 
+        context. 
+
+        * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
+        (InitWebCoreSystemInterface):
+
 2013-08-23  Alexey Proskuryakov  <[email protected]>
 
         [WK2] Assertion failures when loading XSL stylesheets with NetworkProcess

Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebSystemInterface.mm (154527 => 154528)


--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebSystemInterface.mm	2013-08-23 22:44:15 UTC (rev 154527)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebSystemInterface.mm	2013-08-23 22:57:07 UTC (rev 154528)
@@ -72,6 +72,7 @@
         INIT(SignedPublicKeyAndChallengeString);
         INIT(GetPreferredExtensionForMIMEType);
         INIT(GetUserToBaseCTM);
+        INIT(CGContextIsPDFContext);
         INIT(GetWheelEventDeltas);
         INIT(GetNSEventKeyChar);
         INIT(HitTestMediaUIPart);

Modified: trunk/WebKitLibraries/ChangeLog (154527 => 154528)


--- trunk/WebKitLibraries/ChangeLog	2013-08-23 22:44:15 UTC (rev 154527)
+++ trunk/WebKitLibraries/ChangeLog	2013-08-23 22:57:07 UTC (rev 154528)
@@ -1,3 +1,17 @@
+2013-08-23  Beth Dakin  <[email protected]>
+
+        REGRESSION (r132545): Some PDFs generated by WebKit are blank when viewed in 
+        Adobe Reader
+        https://bugs.webkit.org/show_bug.cgi?id=120240
+        -and corresponding-
+        <rdar://problem/14634453>
+
+        Reviewed by Anders Carlsson.
+
+        * WebKitSystemInterface.h:
+        * libWebKitSystemInterfaceLion.a:
+        * libWebKitSystemInterfaceMountainLion.a:
+
 2013-08-23  Alex Christensen  <[email protected]>
 
         Re-separating Win32 and Win64 builds.

Modified: trunk/WebKitLibraries/WebKitSystemInterface.h (154527 => 154528)


--- trunk/WebKitLibraries/WebKitSystemInterface.h	2013-08-23 22:44:15 UTC (rev 154527)
+++ trunk/WebKitLibraries/WebKitSystemInterface.h	2013-08-23 22:57:07 UTC (rev 154528)
@@ -209,6 +209,7 @@
 
 
 BOOL WKCGContextIsBitmapContext(CGContextRef context);
+bool WKCGContextIsPDFContext(CGContextRef context);
 
 void WKGetWheelEventDeltas(NSEvent *, float *deltaX, float *deltaY, BOOL *continuous);
 

Modified: trunk/WebKitLibraries/libWebKitSystemInterfaceLion.a


(Binary files differ)

Modified: trunk/WebKitLibraries/libWebKitSystemInterfaceMountainLion.a


(Binary files differ)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to