WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
17484
Add Windows (Cairo) support in WebKit.dll
https://bugs.webkit.org/show_bug.cgi?id=17484
Summary
Add Windows (Cairo) support in WebKit.dll
Brent Fulgham
Reported
2008-02-21 17:30:38 PST
A small number or routines in the WebKit API classes assume a CoreGraphics backend. This patch conditionalizes these regions of the code to allow a Cairo-based WebKit.dll to be built.
Attachments
Patch to conditionalize some CG/Cairo calls in WebKit proper.
(7.91 KB, patch)
2008-02-21 17:42 PST
,
Brent Fulgham
darin
: review-
Details
Formatted Diff
Diff
Tweak for current SVN
(6.60 KB, patch)
2008-02-27 17:49 PST
,
Brent Fulgham
no flags
Details
Formatted Diff
Diff
Tweak for 2008-03-07
(5.00 KB, patch)
2008-03-07 15:18 PST
,
Brent Fulgham
no flags
Details
Formatted Diff
Diff
Tweak for 2008-05-28
(19.96 KB, patch)
2008-05-28 13:35 PDT
,
Brent Fulgham
no flags
Details
Formatted Diff
Diff
Patch against current sources
(22.39 KB, patch)
2008-10-22 23:11 PDT
,
Brent Fulgham
no flags
Details
Formatted Diff
Diff
Patch against current sources.
(26.62 KB, patch)
2008-11-11 21:45 PST
,
Brent Fulgham
no flags
Details
Formatted Diff
Diff
Configuration Patches for Cairo build.
(965 bytes, patch)
2008-11-11 21:48 PST
,
Brent Fulgham
no flags
Details
Formatted Diff
Diff
Full Patch versus ToT
(53.86 KB, patch)
2008-11-25 16:30 PST
,
Brent Fulgham
no flags
Details
Formatted Diff
Diff
Patch against current sources
(52.14 KB, patch)
2008-11-26 14:06 PST
,
Brent Fulgham
no flags
Details
Formatted Diff
Diff
Patch against ToT
(34.50 KB, patch)
2008-11-29 19:34 PST
,
Brent Fulgham
no flags
Details
Formatted Diff
Diff
Patch against ToT
(40.71 KB, patch)
2008-12-11 13:36 PST
,
Brent Fulgham
no flags
Details
Formatted Diff
Diff
Update against ToT (2008-12-14)
(32.21 KB, patch)
2008-12-14 21:59 PST
,
Brent Fulgham
no flags
Details
Formatted Diff
Diff
Update Against ToT (2008-12-18)
(30.14 KB, patch)
2008-12-17 21:06 PST
,
Mital Vora
no flags
Details
Formatted Diff
Diff
Update against ToT (2009-01-05)
(25.68 KB, patch)
2009-01-05 18:07 PST
,
Brent Fulgham
no flags
Details
Formatted Diff
Diff
Patch against ToT
(7.44 KB, patch)
2009-01-11 14:03 PST
,
Brent Fulgham
no flags
Details
Formatted Diff
Diff
Patch against ToT (2009-01-23)
(5.58 KB, patch)
2009-01-23 21:28 PST
,
Brent Fulgham
no flags
Details
Formatted Diff
Diff
Patch against ToT (2009-03-24)
(3.18 KB, patch)
2009-03-24 13:58 PDT
,
Brent Fulgham
no flags
Details
Formatted Diff
Diff
Patch against TotT (2009-05-29)
(2.13 KB, patch)
2009-05-29 11:54 PDT
,
Brent Fulgham
no flags
Details
Formatted Diff
Diff
Patch against ToT (@r45831)
(1021 bytes, patch)
2009-07-13 12:05 PDT
,
Brent Fulgham
no flags
Details
Formatted Diff
Diff
Show Obsolete
(18)
View All
Add attachment
proposed patch, testcase, etc.
Brent Fulgham
Comment 1
2008-02-21 17:42:35 PST
Created
attachment 19268
[details]
Patch to conditionalize some CG/Cairo calls in WebKit proper.
Darin Adler
Comment 2
2008-02-24 18:14:11 PST
Comment on
attachment 19268
[details]
Patch to conditionalize some CG/Cairo calls in WebKit proper. Good general direction. Some comments: #include "config.h" +#include "NotImplemented.h" #include "WebDragClient.h" This is wrong. The first include after "config.h" should be the file's own header "WebDragClient.h". There should be a blank line after that before the rest of the includes. +#else + notImplemented (); +#endif No space before the parenthesis. void WebFrame::dispatchDidReceiveAuthenticationChallenge(DocumentLoader* loader, unsigned long identifier, const AuthenticationChallenge& challenge) { +#if USE(CFNETWORK) Not answering the challenge at all will simply make the browser hang. You should probably do something better than that. Or is there some reason this is OK? +#if PLATFORM(CG) It seems strange to just conditionalize the printing code without adding a call to notImplemented(). How is this different from the createDragImage case? +#if !PLATFORM(CAIRO) #if !defined(NDEBUG) && defined(USE_DEBUG_SAFARI_THEME) I think this is backwards. It should be #if PLATFORM(CG), since SafariTheme relies on CG. In the future we might need to add a conditional about whether SafariTheme is being included, since someone with CG still might not want SafariTheme. I definitely don't think that "CAIRO" is a good way to say "no SafariTheme". The purpose of WebKitGraphics is to give a way to draw text if you can't compile C++ code. There's no reason to have it if the context is a WebCore::GraphicsContext object. I suggest leaving these functions out entirely for non-CG platforms.
Brent Fulgham
Comment 3
2008-02-27 17:49:15 PST
Created
attachment 19421
[details]
Tweak for current SVN Not intending this for review. Just making it available for other windows porters.
Brent Fulgham
Comment 4
2008-03-07 15:18:00 PST
Created
attachment 19596
[details]
Tweak for 2008-03-07
Brent Fulgham
Comment 5
2008-05-28 13:35:10 PDT
Created
attachment 21400
[details]
Tweak for 2008-05-28
Brent Fulgham
Comment 6
2008-10-22 23:11:00 PDT
Created
attachment 24590
[details]
Patch against current sources
Brent Fulgham
Comment 7
2008-11-11 21:45:54 PST
Created
attachment 25086
[details]
Patch against current sources.
Brent Fulgham
Comment 8
2008-11-11 21:48:24 PST
Created
attachment 25087
[details]
Configuration Patches for Cairo build. Changes to configurations needed to build under Cairo.
Brent Fulgham
Comment 9
2008-11-11 21:49:37 PST
The main set of patches (the 26.62 KB patch) works around various build errors in WebKit.dll. The COM stuff makes heavy use of Apple-specific libraries, which must be commented out. The small patch (965 bytes) just modifies the configuration as necessary to build.
Brent Fulgham
Comment 10
2008-11-11 22:04:35 PST
I have placed a tarball of the requirements to build WebKit (Cairo) here:
http://web.me.com/bfulgham/Site/Downloads.html
.
Franco Lucchini
Comment 11
2008-11-16 12:13:42 PST
I managed to build a version of webkit completely independent from CoreGraphics. It wasn't difficult, because i just closed all the #include CoreGraphics/* in an #if PLATFORM(CG) directive. That way I built a WinLauncher executable that doesn't require CoreGraphics.dll. I did the same for the CFNetwork library, but I wonder how to replace the CFURLCache mechanism implemented in WebView.cpp. Any idea? Eventually I will post a patch containing my modifications.
Brent Fulgham
Comment 12
2008-11-25 16:30:41 PST
Created
attachment 25510
[details]
Full Patch versus ToT
Brent Fulgham
Comment 13
2008-11-26 14:06:33 PST
Created
attachment 25535
[details]
Patch against current sources Small update that enables the scroll/pan function (i.e., click mouse wheel, then mouse movement becomes scroll).
Brent Fulgham
Comment 14
2008-11-29 19:34:57 PST
Created
attachment 25604
[details]
Patch against ToT No longer includes visual studio changes, as these are part of the main tree now.
Brent Fulgham
Comment 15
2008-12-11 13:36:27 PST
Created
attachment 25963
[details]
Patch against ToT
Brent Fulgham
Comment 16
2008-12-14 21:59:10 PST
Created
attachment 26021
[details]
Update against ToT (2008-12-14)
Mital Vora
Comment 17
2008-12-17 21:06:07 PST
Created
attachment 26111
[details]
Update Against ToT (2008-12-18) Update Against ToT (2008-12-18) SVN Version: 39368.
Brent Fulgham
Comment 18
2009-01-05 18:07:00 PST
Created
attachment 26448
[details]
Update against ToT (2009-01-05) Much of this patch is a duplicate of 23092. Once that patch is approved and landed this patch will nearly go away.
Brent Fulgham
Comment 19
2009-01-11 14:03:53 PST
Created
attachment 26615
[details]
Patch against ToT Current patch. Boy it's small now that the CFNetwork stuff is in place!
Brent Fulgham
Comment 20
2009-01-23 21:28:49 PST
Created
attachment 26992
[details]
Patch against ToT (2009-01-23)
Brent Fulgham
Comment 21
2009-03-24 13:58:05 PDT
Created
attachment 28910
[details]
Patch against ToT (2009-03-24)
Brent Fulgham
Comment 22
2009-05-29 11:54:39 PDT
Created
attachment 30783
[details]
Patch against TotT (2009-05-29)
Joonghoon Kim
Comment 23
2009-06-03 00:20:03 PDT
New patch (2009-05-29) prevents for all ports from including winsock. In WebCore/config.h, the code to define _WINSOCKAPI_ should be moved into #if PLATFORM(WIN) ~ #endif that defines WTF_USE_CURL. And every file that includes curl.h should include winsock2.h before. WebCore/HistoryPropertyList.h should be copied into WEBKITOUTPUTDIR. I think it's better to use some environmental variable (as $PRODUCTION) than use config.h only. WebCorePrefix.h includes CoreServices.h but CF-Lite doesn't have it.
Brent Fulgham
Comment 24
2009-06-04 14:52:03 PDT
(In reply to
comment #23
)
> WebCore/HistoryPropertyList.h should be copied into WEBKITOUTPUTDIR.
This omission has been corrected in @
r44434
.
Brent Fulgham
Comment 25
2009-07-08 11:07:03 PDT
(In reply to
comment #23
)
> And every file that includes curl.h should include winsock2.h before.
This change has been landed in @
r45630
.
Brent Fulgham
Comment 26
2009-07-13 12:05:31 PDT
Created
attachment 32669
[details]
Patch against ToT (@
r45831
)
Brent Fulgham
Comment 27
2009-07-13 16:49:46 PDT
All elements of the Windows Cairo software, build system, and configuration are now part of WebKit proper. I am closing this issue now that all sub-issue work is complete. Thanks to everyone for their help!
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug