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 MLAUNCH.EXE is 49MB!. What happens when it runs? It is not tied to Window System yet.
MONA_ASSERT failure Loader.cpp:21: size < MAX_IMAGE_SIZE kernel panic
Okay, the binary executable is too big. Defined MAX_IMAGE_SIZE=100MB on the kernel.
Re-run it. Yay, no errors.
The next thing we have to do is to define WebView?.
Wrote following code, which seems a minimal WebKit client code.
#include <config.h> #include <Page.h> #include <Frame.h> #include "FrameLoaderClientMona.h" int main(int argc, char* argv[]) { printf("%s %s:%d\n", __func__, __FILE__, __LINE__); WebCore::Page::PageClients pageClients; WebCore::Page* page = new WebCore::Page(pageClients); WebCore::FrameLoaderClientMona* loaderClient = new WebCore::FrameLoaderClientMona(); RefPtr<WebCore::Frame> frame = WebCore::Frame::create(page, 0, loaderClient); frame->init(); WebCore::ResourceRequest req = WebCore::ResourceRequest("http://google.com/"); frame->loader()->load(req, false); printf("%s %s:%d\n", __func__, __FILE__, __LINE__); }
And then killed :D
================================================================================ Killed MLAUNCH.EXE (thread 0th) Reason: Access denied Stack trace: 1. (a2a30f51) (unknown) 2. (a2a0e30f) (unknown) 3. (a2a0e9ef) (unknown) 4. (a0ab55a5) (unknown) 5. (a2a2100e) (unknown) Registers: eax : 00000000 ebx : a2a19000 ecx : ffffffff edx : 0000000c esp : effffc34 ebp : effffc38 esi : efffff0c edi : 0000000c cs : 0000002b ds : 00000033 ss : 0000003b cr3 : 00312000