void QWebSettingsPrivate::apply() { if (settings) { settings->setTextAreasAreResizable(true); QWebSettingsPrivate* global = QWebSettings::globalSettings()->d; QString family = fontFamilies.value(QWebSettings::StandardFont, global->fontFamilies.value(QWebSettings::StandardFont)); settings->setStandardFontFamily(family); family = fontFamilies.value(QWebSettings::FixedFont, global->fontFamilies.value(QWebSettings::FixedFont)); settings->setFixedFontFamily(family); family = fontFamilies.value(QWebSettings::SerifFont, global->fontFamilies.value(QWebSettings::SerifFont)); settings->setSerifFontFamily(family); family = fontFamilies.value(QWebSettings::SansSerifFont, global->fontFamilies.value(QWebSettings::SansSerifFont)); settings->setSansSerifFontFamily(family); family = fontFamilies.value(QWebSettings::CursiveFont, global->fontFamilies.value(QWebSettings::CursiveFont)); settings->setCursiveFontFamily(family); family = fontFamilies.value(QWebSettings::FantasyFont, global->fontFamilies.value(QWebSettings::FantasyFont)); settings->setFantasyFontFamily(family); int size = fontSizes.value(QWebSettings::MinimumFontSize, global->fontSizes.value(QWebSettings::MinimumFontSize)); settings->setMinimumFontSize(size); size = fontSizes.value(QWebSettings::MinimumLogicalFontSize, global->fontSizes.value(QWebSettings::MinimumLogicalFontSize)); settings->setMinimumLogicalFontSize(size); size = fontSizes.value(QWebSettings::DefaultFontSize, global->fontSizes.value(QWebSettings::DefaultFontSize)); settings->setDefaultFontSize(size); size = fontSizes.value(QWebSettings::DefaultFixedFontSize, global->fontSizes.value(QWebSettings::DefaultFixedFontSize)); settings->setDefaultFixedFontSize(size); bool value = attributes.value(QWebSettings::AutoLoadImages, global->attributes.value(QWebSettings::AutoLoadImages)); settings->setLoadsImagesAutomatically(value); value = attributes.value(QWebSettings::DnsPrefetchEnabled, global->attributes.value(QWebSettings::DnsPrefetchEnabled)); settings->setDNSPrefetchingEnabled(value); value = attributes.value(QWebSettings::JavascriptEnabled, global->attributes.value(QWebSettings::JavascriptEnabled)); settings->setScriptEnabled(value); #if USE(ACCELERATED_COMPOSITING) value = attributes.value(QWebSettings::AcceleratedCompositingEnabled, global->attributes.value(QWebSettings::AcceleratedCompositingEnabled)); settings->setAcceleratedCompositingEnabled(value); settings->setAcceleratedCompositingFor3DTransformsEnabled(value); settings->setAcceleratedCompositingForAnimationEnabled(value); settings->setAcceleratedCompositingForVideoEnabled(false); settings->setAcceleratedCompositingForPluginsEnabled(false); #endif #if ENABLE(WEBGL) value = attributes.value(QWebSettings::WebGLEnabled, global->attributes.value(QWebSettings::WebGLEnabled)); settings->setWebGLEnabled(value); #if ENABLE(CSS_SHADERS) // For now, enable CSS shaders when WebGL is enabled. settings->setCSSCustomFilterEnabled(value); #endif #if USE(ACCELERATED_COMPOSITING) settings->setAcceleratedCompositingForCanvasEnabled(value); #endif #endif value = attributes.value(QWebSettings::CSSRegionsEnabled, global->attributes.value(QWebSettings::CSSRegionsEnabled)); WebCore::RuntimeEnabledFeatures::setCSSRegionsEnabled(value); value = attributes.value(QWebSettings::CSSGridLayoutEnabled, global->attributes.value(QWebSettings::CSSGridLayoutEnabled)); settings->setCSSGridLayoutEnabled(value); value = attributes.value(QWebSettings::HyperlinkAuditingEnabled, global->attributes.value(QWebSettings::HyperlinkAuditingEnabled)); settings->setHyperlinkAuditingEnabled(value); value = attributes.value(QWebSettings::JavascriptCanOpenWindows, global->attributes.value(QWebSettings::JavascriptCanOpenWindows)); settings->setJavaScriptCanOpenWindowsAutomatically(value); value = attributes.value(QWebSettings::JavascriptCanCloseWindows, global->attributes.value(QWebSettings::JavascriptCanCloseWindows)); settings->setAllowScriptsToCloseWindows(value); value = attributes.value(QWebSettings::JavaEnabled, global->attributes.value(QWebSettings::JavaEnabled)); settings->setJavaEnabled(value); value = attributes.value(QWebSettings::PluginsEnabled, global->attributes.value(QWebSettings::PluginsEnabled)); settings->setPluginsEnabled(value); value = attributes.value(QWebSettings::PrivateBrowsingEnabled, global->attributes.value(QWebSettings::PrivateBrowsingEnabled)); settings->setPrivateBrowsingEnabled(value); value = attributes.value(QWebSettings::SpatialNavigationEnabled, global->attributes.value(QWebSettings::SpatialNavigationEnabled)); settings->setSpatialNavigationEnabled(value); value = attributes.value(QWebSettings::JavascriptCanAccessClipboard, global->attributes.value(QWebSettings::JavascriptCanAccessClipboard)); settings->setDOMPasteAllowed(value); settings->setJavaScriptCanAccessClipboard(value); value = attributes.value(QWebSettings::DeveloperExtrasEnabled, global->attributes.value(QWebSettings::DeveloperExtrasEnabled)); settings->setDeveloperExtrasEnabled(value); value = attributes.value(QWebSettings::FrameFlatteningEnabled, global->attributes.value(QWebSettings::FrameFlatteningEnabled)); settings->setFrameFlatteningEnabled(value); QUrl location = !userStyleSheetLocation.isEmpty() ? userStyleSheetLocation : global->userStyleSheetLocation; settings->setUserStyleSheetLocation(WebCore::KURL(location)); QString encoding = !defaultTextEncoding.isEmpty() ? defaultTextEncoding: global->defaultTextEncoding; settings->setDefaultTextEncodingName(encoding); QString storagePath = !localStoragePath.isEmpty() ? localStoragePath : global->localStoragePath; settings->setLocalStorageDatabasePath(storagePath); value = attributes.value(QWebSettings::PrintElementBackgrounds, global->attributes.value(QWebSettings::PrintElementBackgrounds)); settings->setShouldPrintBackgrounds(value); #if ENABLE(SQL_DATABASE) value = attributes.value(QWebSettings::OfflineStorageDatabaseEnabled, global->attributes.value(QWebSettings::OfflineStorageDatabaseEnabled)); WebCore::DatabaseManager::manager().setIsAvailable(value); #endif value = attributes.value(QWebSettings::OfflineWebApplicationCacheEnabled, global->attributes.value(QWebSettings::OfflineWebApplicationCacheEnabled)); settings->setOfflineWebApplicationCacheEnabled(value); value = attributes.value(QWebSettings::LocalStorageEnabled, global->attributes.value(QWebSettings::LocalStorageEnabled)); settings->setLocalStorageEnabled(value); value = attributes.value(QWebSettings::LocalContentCanAccessRemoteUrls, global->attributes.value(QWebSettings::LocalContentCanAccessRemoteUrls)); settings->setAllowUniversalAccessFromFileURLs(value); value = attributes.value(QWebSettings::LocalContentCanAccessFileUrls, global->attributes.value(QWebSettings::LocalContentCanAccessFileUrls)); settings->setAllowFileAccessFromFileURLs(value); value = attributes.value(QWebSettings::XSSAuditingEnabled, global->attributes.value(QWebSettings::XSSAuditingEnabled)); settings->setXSSAuditorEnabled(value); #if USE(TILED_BACKING_STORE) value = attributes.value(QWebSettings::TiledBackingStoreEnabled, global->attributes.value(QWebSettings::TiledBackingStoreEnabled)); settings->setTiledBackingStoreEnabled(value); #endif #if ENABLE(SMOOTH_SCROLLING) value = attributes.value(QWebSettings::ScrollAnimatorEnabled, global->attributes.value(QWebSettings::ScrollAnimatorEnabled)); settings->setEnableScrollAnimator(value); #endif value = attributes.value(QWebSettings::CaretBrowsingEnabled, global->attributes.value(QWebSettings::CaretBrowsingEnabled)); settings->setCaretBrowsingEnabled(value); value = attributes.value(QWebSettings::NotificationsEnabled, global->attributes.value(QWebSettings::NotificationsEnabled)); settings->setNotificationsEnabled(value); value = attributes.value(QWebSettings::SiteSpecificQuirksEnabled, global->attributes.value(QWebSettings::SiteSpecificQuirksEnabled)); settings->setNeedsSiteSpecificQuirks(value); settings->setUsesPageCache(WebCore::pageCache()->capacity()); } else { QList<QWebSettingsPrivate*> settings = *::allSettings(); for (int i = 0; i < settings.count(); ++i) settings[i]->apply(); } }
void QWebSettingsPrivate::apply() { if (settings) { settings->setTextAreasAreResizable(true); QWebSettingsPrivate* global = QWebSettings::globalSettings()->d; QString family = fontFamilies.value(QWebSettings::StandardFont, global->fontFamilies.value(QWebSettings::StandardFont)); settings->setStandardFontFamily(family); family = fontFamilies.value(QWebSettings::FixedFont, global->fontFamilies.value(QWebSettings::FixedFont)); settings->setFixedFontFamily(family); family = fontFamilies.value(QWebSettings::SerifFont, global->fontFamilies.value(QWebSettings::SerifFont)); settings->setSerifFontFamily(family); family = fontFamilies.value(QWebSettings::SansSerifFont, global->fontFamilies.value(QWebSettings::SansSerifFont)); settings->setSansSerifFontFamily(family); family = fontFamilies.value(QWebSettings::CursiveFont, global->fontFamilies.value(QWebSettings::CursiveFont)); settings->setCursiveFontFamily(family); family = fontFamilies.value(QWebSettings::FantasyFont, global->fontFamilies.value(QWebSettings::FantasyFont)); settings->setFantasyFontFamily(family); int size = fontSizes.value(QWebSettings::MinimumFontSize, global->fontSizes.value(QWebSettings::MinimumFontSize)); settings->setMinimumFontSize(size); size = fontSizes.value(QWebSettings::MinimumLogicalFontSize, global->fontSizes.value(QWebSettings::MinimumLogicalFontSize)); settings->setMinimumLogicalFontSize(size); size = fontSizes.value(QWebSettings::DefaultFontSize, global->fontSizes.value(QWebSettings::DefaultFontSize)); settings->setDefaultFontSize(size); size = fontSizes.value(QWebSettings::DefaultFixedFontSize, global->fontSizes.value(QWebSettings::DefaultFixedFontSize)); settings->setDefaultFixedFontSize(size); bool value = attributes.value(QWebSettings::AutoLoadImages, global->attributes.value(QWebSettings::AutoLoadImages)); settings->setLoadsImagesAutomatically(value); value = attributes.value(QWebSettings::DnsPrefetchEnabled, global->attributes.value(QWebSettings::DnsPrefetchEnabled)); settings->setDNSPrefetchingEnabled(value); value = attributes.value(QWebSettings::JavascriptEnabled, global->attributes.value(QWebSettings::JavascriptEnabled)); settings->setScriptEnabled(value); #if USE(ACCELERATED_COMPOSITING) value = attributes.value(QWebSettings::AcceleratedCompositingEnabled, global->attributes.value(QWebSettings::AcceleratedCompositingEnabled)); settings->setAcceleratedCompositingEnabled(value); #if ENABLE(ACCELERATED_2D_CANVAS) value = value && attributes.value(QWebSettings::Accelerated2dCanvasEnabled, global->attributes.value(QWebSettings::Accelerated2dCanvasEnabled)); settings->setAccelerated2dCanvasEnabled(value); #endif bool showDebugVisuals = qgetenv("WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS") == "1"; settings->setShowDebugBorders(showDebugVisuals); settings->setShowRepaintCounter(showDebugVisuals); #endif #if ENABLE(WEBGL) value = attributes.value(QWebSettings::WebGLEnabled, global->attributes.value(QWebSettings::WebGLEnabled)); settings->setWebGLEnabled(value); #if ENABLE(CSS_SHADERS) // For now, enable CSS shaders when WebGL is enabled. settings->setCSSCustomFilterEnabled(value); #endif #endif #if ENABLE(WEB_AUDIO) value = attributes.value(QWebSettings::WebAudioEnabled, global->attributes.value(QWebSettings::WebAudioEnabled)); settings->setWebAudioEnabled(value); #endif value = attributes.value(QWebSettings::CSSRegionsEnabled, global->attributes.value(QWebSettings::CSSRegionsEnabled)); WebCore::RuntimeEnabledFeatures::setCSSRegionsEnabled(value); value = attributes.value(QWebSettings::CSSGridLayoutEnabled, global->attributes.value(QWebSettings::CSSGridLayoutEnabled)); settings->setCSSGridLayoutEnabled(value); value = attributes.value(QWebSettings::HyperlinkAuditingEnabled, global->attributes.value(QWebSettings::HyperlinkAuditingEnabled)); settings->setHyperlinkAuditingEnabled(value); value = attributes.value(QWebSettings::JavascriptCanOpenWindows, global->attributes.value(QWebSettings::JavascriptCanOpenWindows)); settings->setJavaScriptCanOpenWindowsAutomatically(value); value = attributes.value(QWebSettings::JavascriptCanCloseWindows, global->attributes.value(QWebSettings::JavascriptCanCloseWindows)); settings->setAllowScriptsToCloseWindows(value); value = attributes.value(QWebSettings::JavaEnabled, global->attributes.value(QWebSettings::JavaEnabled)); settings->setJavaEnabled(value); value = attributes.value(QWebSettings::PluginsEnabled, global->attributes.value(QWebSettings::PluginsEnabled)); settings->setPluginsEnabled(value); value = attributes.value(QWebSettings::PrivateBrowsingEnabled, global->attributes.value(QWebSettings::PrivateBrowsingEnabled)); settings->setPrivateBrowsingEnabled(value); value = attributes.value(QWebSettings::SpatialNavigationEnabled, global->attributes.value(QWebSettings::SpatialNavigationEnabled)); settings->setSpatialNavigationEnabled(value); value = attributes.value(QWebSettings::JavascriptCanAccessClipboard, global->attributes.value(QWebSettings::JavascriptCanAccessClipboard)); settings->setDOMPasteAllowed(value); settings->setJavaScriptCanAccessClipboard(value); value = attributes.value(QWebSettings::DeveloperExtrasEnabled, global->attributes.value(QWebSettings::DeveloperExtrasEnabled)); settings->setDeveloperExtrasEnabled(value); value = attributes.value(QWebSettings::FrameFlatteningEnabled, global->attributes.value(QWebSettings::FrameFlatteningEnabled)); settings->setFrameFlatteningEnabled(value); QUrl location = !userStyleSheetLocation.isEmpty() ? userStyleSheetLocation : global->userStyleSheetLocation; settings->setUserStyleSheetLocation(WebCore::KURL(location)); QString encoding = !defaultTextEncoding.isEmpty() ? defaultTextEncoding: global->defaultTextEncoding; settings->setDefaultTextEncodingName(encoding); QString storagePath = !localStoragePath.isEmpty() ? localStoragePath : global->localStoragePath; settings->setLocalStorageDatabasePath(storagePath); if (mediaType.isEmpty()) mediaType = global->mediaType; value = attributes.value(QWebSettings::PrintElementBackgrounds, global->attributes.value(QWebSettings::PrintElementBackgrounds)); settings->setShouldPrintBackgrounds(value); value = attributes.value(QWebSettings::OfflineStorageDatabaseEnabled, global->attributes.value(QWebSettings::OfflineStorageDatabaseEnabled)); #if ENABLE(SQL_DATABASE) WebCore::DatabaseManager::manager().setIsAvailable(value); #endif #if ENABLE(INDEXED_DATABASE) QString path = !offlineDatabasePath.isEmpty() ? offlineDatabasePath : global->offlineDatabasePath; Q_ASSERT(groupSettings); // Setting the path to empty string disables persistent storage of the indexed database. if (!value) path = QString(); groupSettings->setIndexedDBDatabasePath(path); qint64 quota = offlineStorageDefaultQuota ? offlineStorageDefaultQuota : global->offlineStorageDefaultQuota; groupSettings->setIndexedDBQuotaBytes(quota); #endif value = attributes.value(QWebSettings::OfflineWebApplicationCacheEnabled, global->attributes.value(QWebSettings::OfflineWebApplicationCacheEnabled)); settings->setOfflineWebApplicationCacheEnabled(value); value = attributes.value(QWebSettings::LocalStorageEnabled, global->attributes.value(QWebSettings::LocalStorageEnabled)); settings->setLocalStorageEnabled(value); bool remoteAccess = attributes.value(QWebSettings::LocalContentCanAccessRemoteUrls, global->attributes.value(QWebSettings::LocalContentCanAccessRemoteUrls)); settings->setAllowUniversalAccessFromFileURLs(remoteAccess); settings->setAllowRemoteAccessFromFileURLs(remoteAccess); value = attributes.value(QWebSettings::LocalContentCanAccessFileUrls, global->attributes.value(QWebSettings::LocalContentCanAccessFileUrls)); settings->setAllowFileAccessFromFileURLs(value); value = attributes.value(QWebSettings::XSSAuditingEnabled, global->attributes.value(QWebSettings::XSSAuditingEnabled)); settings->setXSSAuditorEnabled(value); #if USE(TILED_BACKING_STORE) value = attributes.value(QWebSettings::TiledBackingStoreEnabled, global->attributes.value(QWebSettings::TiledBackingStoreEnabled)); settings->setTiledBackingStoreEnabled(value); #endif #if ENABLE(SMOOTH_SCROLLING) value = attributes.value(QWebSettings::ScrollAnimatorEnabled, global->attributes.value(QWebSettings::ScrollAnimatorEnabled)); settings->setScrollAnimatorEnabled(value); #endif value = attributes.value(QWebSettings::CaretBrowsingEnabled, global->attributes.value(QWebSettings::CaretBrowsingEnabled)); settings->setCaretBrowsingEnabled(value); value = attributes.value(QWebSettings::NotificationsEnabled, global->attributes.value(QWebSettings::NotificationsEnabled)); settings->setNotificationsEnabled(value); value = attributes.value(QWebSettings::SiteSpecificQuirksEnabled, global->attributes.value(QWebSettings::SiteSpecificQuirksEnabled)); settings->setNeedsSiteSpecificQuirks(value); settings->setUsesPageCache(WebCore::pageCache()->capacity()); } else { QList<QWebSettingsPrivate*> settings = *::allSettings(); for (int i = 0; i < settings.count(); ++i) settings[i]->apply(); } }