Commit a1231c3e authored by bdakin@apple.com's avatar bdakin@apple.com
Browse files

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:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154528 268f45cc-cd09-0410-ab3c-d52691b4dbfc
parent e2ae3748
2013-08-23 Beth Dakin <bdakin@apple.com>
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 <eric.carlson@apple.com>
 
[Mac] some track language tags are not recognized
......@@ -1709,6 +1709,7 @@ _hasCaseInsensitiveSuffix
_stringIsCaseInsensitiveEqualToString
_suggestedFilenameWithMIMEType
_wkCGContextGetShouldSmoothFonts
_wkCGContextIsPDFContext
_wkCGContextResetClip
_wkCGPatternCreateWithImageAndTransform
_wkCTRunGetInitialAdvance
......
......@@ -838,9 +838,10 @@ void GraphicsContext::clipOut(const IntRect& rect)
// 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);
......
......@@ -202,6 +202,7 @@ extern void (*wkSetNSURLRequestShouldContentSniff)(NSMutableURLRequest *, BOOL);
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);
......
......@@ -92,6 +92,7 @@ void (*wkSetDragImage)(NSImage*, NSPoint offset);
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);
......
2013-08-23 Beth Dakin <bdakin@apple.com>
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 <psolanki@apple.com>
<https://webkit.org/b/120029> Document::markers() should return a reference
......
......@@ -99,6 +99,7 @@ void InitWebCoreSystemInterface(void)
INIT(SetNSURLConnectionDefersCallbacks);
INIT(SetNSURLRequestShouldContentSniff);
INIT(SetPatternPhaseInUserSpace);
INIT(CGContextIsPDFContext);
INIT(GetUserToBaseCTM);
INIT(SetUpFontCache);
INIT(SignalCFReadStreamEnd);
......
2013-08-23 Beth Dakin <bdakin@apple.com>
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 <ap@apple.com>
 
[WK2] Assertion failures when loading XSL stylesheets with NetworkProcess
......
......@@ -72,6 +72,7 @@ void InitWebCoreSystemInterface(void)
INIT(SignedPublicKeyAndChallengeString);
INIT(GetPreferredExtensionForMIMEType);
INIT(GetUserToBaseCTM);
INIT(CGContextIsPDFContext);
INIT(GetWheelEventDeltas);
INIT(GetNSEventKeyChar);
INIT(HitTestMediaUIPart);
......
2013-08-23 Beth Dakin <bdakin@apple.com>
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 <achristensen@apple.com>
Re-separating Win32 and Win64 builds.
......
......@@ -209,6 +209,7 @@ OSStatus WKThemeDrawTrack(const HIThemeTrackDrawInfo* inDrawInfo, CGContextRef i
BOOL WKCGContextIsBitmapContext(CGContextRef context);
bool WKCGContextIsPDFContext(CGContextRef context);
void WKGetWheelEventDeltas(NSEvent *, float *deltaX, float *deltaY, BOOL *continuous);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment