InjectedBundlePage::InjectedBundlePage(WKBundlePageRef page) : m_page(page) , m_world(AdoptWK, WKBundleScriptWorldCreateWorld()) , m_isLoading(false) { WKBundlePageLoaderClient loaderClient = { 0, this, didStartProvisionalLoadForFrame, didReceiveServerRedirectForProvisionalLoadForFrame, didFailProvisionalLoadWithErrorForFrame, didCommitLoadForFrame, didFinishDocumentLoadForFrame, didFinishLoadForFrame, didFailLoadWithErrorForFrame, didReceiveTitleForFrame, 0, 0, 0, didClearWindowForFrame, didCancelClientRedirectForFrame, willPerformClientRedirectForFrame, didChangeLocationWithinPageForFrame, didHandleOnloadEventsForFrame, didDisplayInsecureContentForFrame, didRunInsecureContentForFrame }; WKBundlePageSetLoaderClient(m_page, &loaderClient); WKBundlePageUIClient uiClient = { 0, this, willAddMessageToConsole, willSetStatusbarText, willRunJavaScriptAlert, willRunJavaScriptConfirm, willRunJavaScriptPrompt, 0 /*mouseDidMoveOverElement*/ }; WKBundlePageSetUIClient(m_page, &uiClient); WKBundlePageEditorClient editorClient = { 0, this, shouldBeginEditing, shouldEndEditing, shouldInsertNode, shouldInsertText, shouldDeleteRange, shouldChangeSelectedRange, shouldApplyStyle, didBeginEditing, didEndEditing, didChange, didChangeSelection }; WKBundlePageSetEditorClient(m_page, &editorClient); }
static void didCreatePage(WKBundleRef, WKBundlePageRef page, const void*) { WKBundlePageUIClient uiClient; memset(&uiClient, 0, sizeof(WKBundlePageUIClient)); uiClient.version = kWKBundlePageUIClientCurrentVersion; uiClient.willAddMessageToConsole = willAddMessageToConsole; WKBundlePageSetUIClient(page, &uiClient); }