webkit

26. Got a title - WebKit porting to Mona OS

Our WebKit port reached at the curl layer which issues HTTP request. The request is successfully sent and a response comes. The response is redirected to the parser. Finally we get a title of the web page on FrameLoaderClientMona::setTitle…

25.Classes named xxxClient on WebKit - WebKit porting to Mona OS

We see many classes named xxxClient on WebKit. And also we have to implement them. For example we should implement following classes. ChromeClient ContextMenuClient CookieJarClient DragClient EditorClient FrameLoaderClient Since they have …

24. What does WebView do? - WebKit porting to Mona OS

We have to implement our own WebView class. I had a quick look at Haiku port WebView. It uses many WebCore classes, I don't understand what they do. Okay, we need to discern the big picture. Found Surfin' Safari - Blog Archive » How WebKit…

WebKit移植のWebView 構築の進め方

WebCore のコンパイルが通るようになった。(たくさんの notImplemented() とともに)。 次のアクションとして libwebcore を使うアプリケーションを作ろうとした。WebView 最小骨格の部分を取り出して全く構造化せずベタ書きしたものを書いて動かそうという作…

23. AVL tree - WebKit porting to Mona OS

Finally stack trace problem was fixed by writing AVL tree. We also expanded kernel heap region to store huge map file. We get a correct stack trace. ================================================================================ Killed ML…

22. stack trace problem - WebKit porting to Mona OS

I'm trying an application which uses libwebcore. As we expected, it crashes. We want to know exact where it crashes. So enabled stack trace function on Mona which was introduced by Mr.A. The stack trace function uses a map file which is ge…

21. No undefined references - WebKit porting to Mona OS

With a great help from notImplemented() function, there's no undefined references on MonaLauncher whose source code is following. #include <config.h> #include <Page.h> int main(int argc, char* argv[]) { WebCore::Page::PageClients pageClients; } Size of MLAU</page.h></config.h>…

20. Ported libcurl - WebKit porting to Mona OS

About 10 days passed after the last article. I was sick in bed with a bad cold. I'm getting better. Ported libcurl which is used internally on WebKit and offers HTTP protocol (and other many protocols). ToDo - Dependencies DragImageRef at …

19. Ported cairo partially and pixman - WebKit porting to Mona OS

Built cairo for Mona without any surface. I will add cairo-mona-surface.cpp later when necessary. And also ported pixman library which is used intenrally in cairo. ToDo - Dependencies DragImageRef at Source/WebCore/platform/DragImage.h Nat…

18. Start porting cairo - WebKit porting to Mona OS

cairo functions used in WebKit are follwing 133 functions. We should support them on Mona. cairo_append_path cairo_arc cairo_arc_negative cairo_clip cairo_clip_extents cairo_close_path cairo_context_get_font_options cairo_create cairo_crea…

17. Building page, accessibility and editing and porting libxml2 are done. - WebKit porting to Mona OS

There are more sub or subsub directories to build, but I'm not sure what is necessary or not. As jsc on JavaScriptCore, we need to build an application which uses WebCore(libwebcore). It seems that Tools/xxxLauncher is good sample applicat…

16. Building WebCore/html, css, loader, rendering and dom directory is done - WebKit porting to Mona OS

Let's build WebKit on OSX, and see what's happening. % Tools/Scripts/build-webkit --debug --no-svg 2>&1|tee webkit.build.osx.log The build process is going as following. ANGLE (necessary?) JavaScriptCore (done) JavaScriptGlue (not yet) Web…

15. Building WebCore - WebKit porting to Mona OS

Let's build WebKit on OSX, and see what's happening. % Tools/Scripts/build-webkit --debug --no-svg 2>&1|tee webkit.build.osx.log The build process is going as following. ANGLE (necessary?) JavaScriptCore (done) JavaScriptGlue (not yet) Web…

14. SunSpider - WebKit porting to Mona OS

The next thing I have to do is trying more complex JavaScript programs than "Hello, World". At first tried string-base64.js for this purpose. Yay it runs without an error. And tests some other SunSpider programs. All of them run without an…

13. jsc.exe works! - WebKit porting to Mona OS

Previously on porting Webkit to Mona, jsc.exe is killed. After a long long printf debug, I concluded that malloc(dlmalloc) on Mona seems to have a bug. Since it re-allocates a region which is not free-ed yet. So two objects are allocated o…

12. Debugging jsc.exe - WebKit porting to Mona OS

jsc.exe is killed on GlobalObject* globalObject = GlobalObject::create(*globalData, GlobalObject::createStructure(*globalData, jsNull()), options.arguments) at jscmain. After some printf debug, I found m_structure member of m_functionProto…

11. Build ICU 4.4.2 using mingw cross compiler - WebKit porting to Mona OS

Porting ICU is a hard and tough work? No I'm busy myself with other things :D ICU 4.4.2 is what we are looking for which doen't depend on C++ RTTI. Let's build it for our OS. Since Unicode data files should be generated on compilation time…

10. Gave up C++ RTTI and exceptions - WebKit porting to Mona OS

Where are we? building JavaScriptCore on Mona OS needs ICU ICU needs RTTI support Have to build libsupc++ to support RTTI On the last article 9. How to support C++ RTTI and exceptions on your hobby OS, I wrote C++ RTTI and exceptions worke…

9. How to support C++ RTTI and exceptions on your hobby OS - WebKit porting to Mona OS

Where are we? building JavaScriptCore on Mona OS needs ICU ICU needs RTTI support Have to build libsupc++ to support RTTI Requirements and assumptions I explain here how to enable RTTI and exceptions on my hobby OS Mona. We use mingw cross…

8. Build Mingw gcc-4.6.1 - WebKit porting to Mona OS

Where are we? building JavaScriptCore needs ICU ICU needs RTTI support Have to build libsupc++ to support RTTI Have to build mingw to build libsupc++ binutils % mkdir ~/mingw % cd src % wget http://ftp.gnu.org/gnu/binutils/binutils-2.21.1.…

7. ICU required RTTI - WebKit porting to Mona OS

While porting ICU, I found ICU requires C++ rtti. I met a library for the first time which requires C++ rtti. Sigh. Since our OS doesn't support C++ rtti and exceptions, we have two options. support rtti write ICU alternative. Webkit uses …

6. Disabled PLATFORM(QT) - WebKit porting to Mona OS

After walking through JavaScriptCore and jsc.cpp, it seems that we should disable PLATFORM(QT) and remove QT related file from Makfile. Let's start again. ../../../Source/JavaScriptCore/wtf/unicode/icu/UnicodeIcu.h:27:27: error: unicode/uc…

5. libjscore.a - WebKit porting to Mona OS

Finally got libjscore.a. The next thing we should do is to use libjscore.a. jsc command uses libjscore.a. So let's build jsc. Modified WebKit/WebKitBuild/Release/JavaScriptCore/Makefile.jsc to use our cross compiler. "make -f Makefile.jsc"…

4. STL port was done - WebKit porting to Mona OS

The prvious problem we fronted was bootstrap hunging up. I've never imagined I should dive into bootstrap code again! Finally I found what was wrong. The bootstrap sequence is firstboot reads and jumps into secondboot secondboot reads KERN…

3. STL - WebKit porting to Mona OS

Since WebKit/Source/JavaScriptCore/wtf/qt/MainThreadQt.cpp is small, I will visit it later. Commented out the following files on Makefile. Source/JavaScriptCore/wtf/qt/MainThreadQt.cpp Source/JavaScriptCore/wtf/qt/StringQt.cpp Source/JavaS…

2. Where should I start from? - WebKit porting to Mona OS

Okay, let's check the output. 7.0M WebKit/WebKitBuild/Release/JavaScriptCore/release/libjscore.a 56MB WebKit/WebKitBuild/Release/WebCore/release/libwebcore.a As someone said, I think it's better to start from building JavaScriptCore for so…

1. Building WebKit on Linux - WebKit porting to Mona OS

To see what's happening on build process, just tried to build WebKit on my Ubuntu laptop. At first I've tried to build GTK+ WebKit, but it requires GLIB - version >= 2.27.90. My Ubuntu uses glib 2.0.0, and it seems dangerous to upgrade gli…

0. Table of Contents - WebKit porting to Mona OS

I started porting WebKit to my own OS, Mona OS (http://www.monaos.org). Here are some memorandums of the porting process. I wish these would be useful to other OS developers. 1. Building WebKit on Linux 2. Where should I start from? 3. STL…