static WKPageGroupRef createWebPageGroup(const QString& name) { WKPageGroupRef pageGroup =WKPageGroupCreateWithIdentifier(WKStringCreateWithQString(name)); WKPreferencesRef preferences = WKPageGroupGetPreferences(pageGroup); WKPreferencesSetAcceleratedCompositingEnabled(preferences, true); WKPreferencesSetFrameFlatteningEnabled(preferences, true); return pageGroup; }
void QWebPreferencesPrivate::setAttribute(QWebPreferencesPrivate::WebAttribute attr, bool enable) { switch (attr) { case AutoLoadImages: WKPreferencesSetLoadsImagesAutomatically(preferencesRef(), enable); break; #if ENABLE(FULLSCREEN_API) case FullScreenEnabled: WKPreferencesSetFullScreenEnabled(preferencesRef(), enable); break; #endif case JavascriptEnabled: WKPreferencesSetJavaScriptEnabled(preferencesRef(), enable); break; case PluginsEnabled: WKPreferencesSetPluginsEnabled(preferencesRef(), enable); break; case OfflineWebApplicationCacheEnabled: WKPreferencesSetOfflineWebApplicationCacheEnabled(preferencesRef(), enable); break; case LocalStorageEnabled: WKPreferencesSetLocalStorageEnabled(preferencesRef(), enable); break; case XSSAuditingEnabled: WKPreferencesSetXSSAuditorEnabled(preferencesRef(), enable); break; case PrivateBrowsingEnabled: WKPreferencesSetPrivateBrowsingEnabled(preferencesRef(), enable); break; case DnsPrefetchEnabled: WKPreferencesSetDNSPrefetchingEnabled(preferencesRef(), enable); break; case FrameFlatteningEnabled: WKPreferencesSetFrameFlatteningEnabled(preferencesRef(), enable); case DeveloperExtrasEnabled: WKPreferencesSetDeveloperExtrasEnabled(preferencesRef(), enable); break; #if ENABLE(WEBGL) case WebGLEnabled: WKPreferencesSetWebGLEnabled(preferencesRef(), enable); break; #endif default: ASSERT_NOT_REACHED(); } }
void QWebPreferencesPrivate::setAttribute(QWebPreferencesPrivate::WebAttribute attr, bool enable) { WKPreferencesRef preferencesRef = WKPageGroupGetPreferences(webViewPrivate->pageGroup.get()); switch (attr) { case AutoLoadImages: WKPreferencesSetLoadsImagesAutomatically(preferencesRef, enable); break; #if ENABLE(FULLSCREEN_API) case FullScreenEnabled: WKPreferencesSetFullScreenEnabled(preferencesRef, enable); break; #endif case JavascriptEnabled: WKPreferencesSetJavaScriptEnabled(preferencesRef, enable); break; case PluginsEnabled: WKPreferencesSetPluginsEnabled(preferencesRef, enable); break; case OfflineWebApplicationCacheEnabled: WKPreferencesSetOfflineWebApplicationCacheEnabled(preferencesRef, enable); break; case LocalStorageEnabled: WKPreferencesSetLocalStorageEnabled(preferencesRef, enable); break; case XSSAuditingEnabled: WKPreferencesSetXSSAuditorEnabled(preferencesRef, enable); break; case PrivateBrowsingEnabled: WKPreferencesSetPrivateBrowsingEnabled(preferencesRef, enable); break; case DnsPrefetchEnabled: WKPreferencesSetDNSPrefetchingEnabled(preferencesRef, enable); break; case FrameFlatteningEnabled: WKPreferencesSetFrameFlatteningEnabled(preferencesRef, enable); case DeveloperExtrasEnabled: WKPreferencesSetDeveloperExtrasEnabled(preferencesRef, enable); break; #if ENABLE(WEBGL) case WebGLEnabled: WKPreferencesSetWebGLEnabled(preferencesRef, enable); break; #if ENABLE(CSS_SHADERS) case CSSCustomFilterEnabled: WKPreferencesSetCSSCustomFilterEnabled(preferencesRef, enable); break; #endif #endif #if ENABLE(WEB_AUDIO) case WebAudioEnabled: WKPreferencesSetWebAudioEnabled(preferencesRef, enable); break; #endif case CaretBrowsingEnabled: // FIXME: Caret browsing doesn't make much sense in touch mode. WKPreferencesSetCaretBrowsingEnabled(preferencesRef, enable); break; case NotificationsEnabled: WKPreferencesSetNotificationsEnabled(preferencesRef, enable); break; case UniversalAccessFromFileURLsAllowed: WKPreferencesSetUniversalAccessFromFileURLsAllowed(preferencesRef, enable); break; case FileAccessFromFileURLsAllowed: WKPreferencesSetFileAccessFromFileURLsAllowed(preferencesRef, enable); break; default: ASSERT_NOT_REACHED(); } }
MiniBrowser::MiniBrowser(GMainLoop* mainLoop, Mode mode, int width, int height, int viewportHorizontalDisplacement, int viewportVerticalDisplacement) : m_context(AdoptWK, WKContextCreate()) , m_pageGroup(AdoptWK, (WKPageGroupCreateWithIdentifier(WKStringCreateWithUTF8CString("MiniBrowser")))) , m_window(new LinuxWindow(this, width, height)) , m_view(0) , m_mainLoop(mainLoop) , m_lastClickTime(0) , m_lastClickX(0) , m_lastClickY(0) , m_lastClickButton(kWKEventMouseButtonNoButton) , m_clickCount(0) , m_touchMocker(0) , m_mode(mode) , m_displayUpdateScheduled(false) , m_gestureRecognizer(GestureRecognizer(this)) , m_postponeTextInputUpdates(true) , m_shouldFocusEditableArea(false) , m_shouldRestoreViewportWhenLosingFocus(false) , m_pageHandlesTouchEvents(false) , m_viewportMinScale(0.25) , m_viewportMaxScale(5) , m_viewportUserScalable(true) , m_viewportInitScale(1) { g_main_loop_ref(m_mainLoop); WKPreferencesRef preferences = WKPageGroupGetPreferences(m_pageGroup.get()); WKPreferencesSetAcceleratedCompositingEnabled(preferences, true); WKPreferencesSetFrameFlatteningEnabled(preferences, true); WKPreferencesSetDeveloperExtrasEnabled(preferences, true); m_view = NIXViewCreate(m_context.get(), m_pageGroup.get()); NIXViewClient viewClient; memset(&viewClient, 0, sizeof(NIXViewClient)); viewClient.version = kNIXViewClientCurrentVersion; viewClient.clientInfo = this; viewClient.viewNeedsDisplay = MiniBrowser::viewNeedsDisplay; viewClient.webProcessCrashed = MiniBrowser::webProcessCrashed; viewClient.webProcessRelaunched = MiniBrowser::webProcessRelaunched; viewClient.doneWithTouchEvent = MiniBrowser::doneWithTouchEvent; viewClient.doneWithGestureEvent = MiniBrowser::doneWithGestureEvent; viewClient.pageDidRequestScroll = MiniBrowser::pageDidRequestScroll; viewClient.didChangeContentsSize = MiniBrowser::didChangeContentsSize; viewClient.didChangeViewportAttributes = MiniBrowser::didChangeViewportAttributes; viewClient.didFindZoomableArea = MiniBrowser::didFindZoomableArea; viewClient.updateTextInputState = MiniBrowser::updateTextInputState; NIXViewSetViewClient(m_view, &viewClient); NIXViewInitialize(m_view); WKPageLoaderClient loaderClient; memset(&loaderClient, 0, sizeof(loaderClient)); loaderClient.version = kWKPageLoaderClientCurrentVersion; loaderClient.clientInfo = this; loaderClient.didStartProgress = MiniBrowser::didStartProgress; WKPageSetPageLoaderClient(pageRef(), &loaderClient); if (m_mode == MobileMode) WKPageSetUseFixedLayout(pageRef(), true); WKSize size = m_window->size(); m_viewRect = WKRectMake(viewportHorizontalDisplacement, viewportVerticalDisplacement, size.width - viewportHorizontalDisplacement, size.height - viewportVerticalDisplacement); NIXViewSetSize(m_view, m_viewRect.size); if (viewportHorizontalDisplacement || viewportVerticalDisplacement) { NIXMatrix transform = NIXMatrixMakeTranslation(viewportHorizontalDisplacement, viewportVerticalDisplacement); NIXViewSetUserViewportTransformation(m_view, &transform); } NIXViewSetFocused(m_view, true); NIXViewSetVisible(m_view, true); NIXViewSetActive(m_view, true); }