OSDN Git Service

Merge WebKit at r71558: Initial merge by git.
[android-x86/external-webkit.git] / WebKitTools / MiniBrowser / mac / WebBundle / WebBundleMain.m
index f36aaae..f3d44a5 100644 (file)
 
 static WKBundleRef globalBundle;
 
-// WKBundlePageClient
+// WKBundlePageClient functions
 
-void _didStartProvisionalLoadForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo)
+void didClearWindowObjectForFrame(WKBundlePageRef page, WKBundleFrameRef frame, WKBundleScriptWorldRef world, const void *clientInfo)
 {
-}
-
-void _didReceiveServerRedirectForProvisionalLoadForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo)
-{
-}
-
-void _didFailProvisionalLoadWithErrorForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo)
-{
-}
-
-void _didCommitLoadForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo)
-{
-}
-
-void _didFinishLoadForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo)
-{
-}
-
-void _didFailLoadWithErrorForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo)
-{
-}
-
-void _didReceiveTitleForFrame(WKBundlePageRef page, WKStringRef title, WKBundleFrameRef frame, const void *clientInfo)
-{
-}
+    WKURLRef wkURL = WKBundleFrameCopyURL(WKBundlePageGetMainFrame(page));
+    CFURLRef cfURL = WKURLCopyCFURL(0, wkURL);
+    WKRelease(wkURL);
 
-void _didClearWindowForFrame(WKBundlePageRef page, WKBundleFrameRef frame, JSContextRef ctx, JSObjectRef window, const void *clientInfo)
-{
-    CFURLRef cfURL = WKURLCopyCFURL(0, WKBundleFrameGetURL(WKBundlePageGetMainFrame(page)));
-    LOG(@"WKBundlePageClient - _didClearWindowForFrame %@", [(NSURL *)cfURL absoluteString]);
+    LOG(@"WKBundlePageClient - didClearWindowForFrame %@", [(NSURL *)cfURL absoluteString]);
     CFRelease(cfURL);
 
-    WKStringRef message = WKStringCreateWithCFString(CFSTR("Window was cleared"));
-    WKBundlePostMessage(globalBundle, message);
-    WKStringRelease(message);
+    WKStringRef messageName = WKStringCreateWithCFString(CFSTR("Callback"));
+    WKStringRef messageBody = WKStringCreateWithCFString(CFSTR("Window was cleared"));
+    WKBundlePostMessage(globalBundle, messageName, messageBody);
+    WKRelease(messageName);
+    WKRelease(messageBody);
 }
 
 
 // WKBundleClient
 
-void _didCreatePage(WKBundleRef bundle, WKBundlePageRef page, const void* clientInfo)
+void didCreatePage(WKBundleRef bundle, WKBundlePageRef page, const void* clientInfo)
 {
     LOG(@"WKBundleClient - didCreatePage\n");
 
-    WKBundlePageLoaderClient client = {
-        0,
-        0,
-        _didStartProvisionalLoadForFrame,
-        _didReceiveServerRedirectForProvisionalLoadForFrame,
-        _didFailProvisionalLoadWithErrorForFrame,
-        _didCommitLoadForFrame,
-        _didFinishLoadForFrame,
-        _didFailLoadWithErrorForFrame,
-        _didReceiveTitleForFrame,
-        _didClearWindowForFrame
-    };
+    WKBundlePageLoaderClient client;
+    memset(&client, 0, sizeof(client));
+    client.didClearWindowObjectForFrame = didClearWindowObjectForFrame;
+
     WKBundlePageSetLoaderClient(page, &client);
 }
 
-void _willDestroyPage(WKBundleRef bundle, WKBundlePageRef page, const void* clientInfo)
+void willDestroyPage(WKBundleRef bundle, WKBundlePageRef page, const void* clientInfo)
 {
     LOG(@"WKBundleClient - willDestroyPage\n");
 }
 
-void _didRecieveMessage(WKBundleRef bundle, WKStringRef message, const void *clientInfo)
+void didRecieveMessage(WKBundleRef bundle, WKStringRef messageName, WKTypeRef messageBody, const void *clientInfo)
 {
-    CFStringRef cfMessage = WKStringCopyCFString(0, message);
-    LOG(@"WKBundleClient - didRecieveMessage %@\n", cfMessage);
-    CFRelease(cfMessage);
+    CFStringRef cfMessageName = WKStringCopyCFString(0, messageName);
+
+    WKTypeID typeID = WKGetTypeID(messageBody);
+    if (typeID == WKStringGetTypeID()) {
+        CFStringRef cfMessageBody = WKStringCopyCFString(0, (WKStringRef)messageBody);
+        LOG(@"WKBundleClient - didRecieveMessage - MessageName: %@ MessageBody %@", cfMessageName, cfMessageBody);
+        CFRelease(cfMessageBody);
+    } else {
+        LOG(@"WKBundleClient - didRecieveMessage - MessageName: %@ (MessageBody Unhandeled)\n", cfMessageName);
+    }
+
+    CFRelease(cfMessageName);
 }
 
-void WKBundleInitialize(WKBundleRef bundle)
+void WKBundleInitialize(WKBundleRef bundle, WKTypeRef initializationUserData)
 {
     globalBundle = bundle;
 
     WKBundleClient client = {
         0,
         0,
-        _didCreatePage,
-        _willDestroyPage,
-        _didRecieveMessage
+        didCreatePage,
+        willDestroyPage,
+        didRecieveMessage
     };
     WKBundleSetClient(bundle, &client);
 }