Bug 18435 - Cairo build does not work as it is in the tree
Summary: Cairo build does not work as it is in the tree
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Platform (show other bugs)
Version: 528+ (Nightly build)
Hardware: PC Windows Vista
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-04-11 15:10 PDT by Daniel Zucker
Modified: 2009-12-18 09:24 PST (History)
2 users (show)

See Also:


Attachments
fix for Cairo build (3.62 KB, patch)
2008-04-11 15:11 PDT, Daniel Zucker
aroben: review-
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Daniel Zucker 2008-04-11 15:10:07 PDT
Cairo build needs to remove functions WebFrame::spoolPages; DrawTextAtPoint; and createDragImageForLink since these require functionality not currently implemented in the Cairo configuration.
Comment 1 Daniel Zucker 2008-04-11 15:11:44 PDT
Created attachment 20487 [details]
fix for Cairo build

this is needed for Cairo build to work
Comment 2 Adam Roben (:aroben) 2008-04-14 09:04:27 PDT
Comment on attachment 20487 [details]
fix for Cairo build

This patch seems to use tabs for indentation. Please only use 4 spaces for indentation.

@@ -1665,6 +1666,7 @@ HRESULT STDMETHODCALLTYPE WebFrame::spoo
     /* [in] */ UINT endPage,
     /* [retval][out] */ void* ctx)
 {
+#if !PLATFORM(CAIRO)
     if (!printDC || !ctx) {
         ASSERT_NOT_REACHED();
         return E_POINTER;
@@ -1748,8 +1750,11 @@ HRESULT STDMETHODCALLTYPE WebFrame::spoo
         CGContextEndPage(pctx);
         CGContextRestoreGState(pctx);
     }
- 
     return S_OK;
+#else
+	notImplemented();
+	return E_NOTIMPL;
+#endif //!PLATFORM(CAIRO)
 }

Can we move most of spoolPages down into WebCore? You should talk to Alp Toker, who I think was working on a cross-platform printing abstraction.

 void DrawTextAtPoint(CGContextRef cgContext, LPCTSTR text, int length, POINT point, const WebFontDescription& description, CGColorRef color, int underlinedIndex, bool drawAsPassword)
 {
+#if !PLATFORM(CAIRO)
     GraphicsContext context(cgContext);
 
     String drawString(text, length);
     if (drawAsPassword)
         drawString = drawString.impl()->secure(WebCore::bullet);
     WebCoreDrawTextAtPoint(context, drawString, point, makeFont(description), color, underlinedIndex);
+#else
+	notImplemented();
+#endif //!Platform(CAIRO)
 }

Seems like this whole function will have to be compiled out for Cairo, since you won't have a CGContextRef type.

I think we can/should rework WebDragClient to use the new ImageBuffer abstraction so that we can remove the CG-specific code from it.
Comment 3 Alexander Butenko 2009-07-28 21:14:09 PDT
builds fine now.
Comment 4 Brent Fulgham 2009-12-18 09:24:50 PST
Equivalents of these patches are all in the tree now.