void BrowserView::create(RECT webViewRect, BrowserWindow* parentWindow) { assert(!m_webView); static WKContextRef context = WKContextCreate(); m_webView = WKViewCreate(webViewRect, context, 0, parentWindow->window()); WKPageUIClient uiClient = { kWKPageUIClientCurrentVersion, parentWindow, /* clientInfo */ 0, /* createNewPage_deprecatedForUseWithV0 */ showPage, closePage, 0, /* takeFocus */ 0, /* focus */ 0, /* unfocus */ runJavaScriptAlert, runJavaScriptConfirm, runJavaScriptPrompt, setStatusText, 0, /* mouseDidMoveOverElement_deprecatedForUseWithV0 */ 0, /* missingPluginButtonClicked */ 0, /* didNotHandleKeyEvent */ 0, /* didNotHandleWheelEvent */ 0, /* toolbarsAreVisible */ 0, /* setToolbarsAreVisible */ 0, /* menuBarIsVisible */ 0, /* setMenuBarIsVisible */ 0, /* statusBarIsVisible */ 0, /* setStatusBarIsVisible */ 0, /* isResizable */ 0, /* setIsResizable */ 0, /* getWindowFrame */ 0, /* setWindowFrame */ 0, /* runBeforeUnloadConfirmPanel */ 0, /* didDraw */ 0, /* pageDidScroll */ 0, /* exceededDatabaseQuota */ 0, /* runOpenPanel */ 0, /* decidePolicyForGeolocationPermissionRequest */ 0, /* headerHeight */ 0, /* footerHeight */ 0, /* drawHeader */ 0, /* drawFooter */ 0, /* printFrame */ 0, /* runModal */ 0, /* didCompleteRubberBandForMainFrame */ 0, /* saveDataToFileInDownloadsFolder */ 0, /* shouldInterruptJavaScript */ createNewPage, mouseDidMoveOverElement, }; WKPageSetPageUIClient(WKViewGetPage(m_webView), &uiClient); WKViewSetIsInWindow(m_webView, true); }
PlatformWebView::PlatformWebView(WKContextRef contextRef, WKPageGroupRef pageGroupRef, WKPageRef /* relatedPage */, WKDictionaryRef /*options*/) : m_windowIsKey(true) { registerWindowClass(); RECT viewRect = {0, 0, 800, 600}; m_window = CreateWindowExW(0, hostWindowClassName, L"WebKitTestRunner", WS_OVERLAPPEDWINDOW, 0 /*XOFFSET*/, 0 /*YOFFSET*/, viewRect.right, viewRect.bottom, 0, 0, GetModuleHandle(0), 0); m_view = WKViewCreate(viewRect, contextRef, pageGroupRef, m_window); WKViewSetIsInWindow(m_view, true); }