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); #if USE(TEXTURE_MAPPER) settings->setAcceleratedCompositingForVideoEnabled(false); settings->setAcceleratedCompositingForPluginsEnabled(false); #endif #endif #if ENABLE(WEBGL) value = attributes.value(QWebSettings::WebGLEnabled, global->attributes.value(QWebSettings::WebGLEnabled)); settings->setWebGLEnabled(value); #if USE(ACCELERATED_COMPOSITING) settings->setAcceleratedCompositingForCanvasEnabled(value); #endif #endif 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); QString path = !pluginSupplementalPath.isEmpty() ? pluginSupplementalPath : global->pluginSupplementalPath; settings->setPluginSupplementalPath(path); 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::AbstractDatabase::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 value = attributes.value(QWebSettings::SiteSpecificQuirksEnabled, global->attributes.value(QWebSettings::SiteSpecificQuirksEnabled)); settings->setNeedsSiteSpecificQuirks(value); settings->setUsesPageCache(WebCore::pageCache()->capacity()); #if ENABLE(VIDEO) && USE(WEBOS_MULTIMEDIA) QString moptions = !mediaPipelineOptions.isEmpty() ? mediaPipelineOptions: global->mediaPipelineOptions; settings->setMediaPipelineOptions( moptions ); #endif } else { QList<QWebSettingsPrivate*> settings = *::allSettings(); for (int i = 0; i < settings.count(); ++i) settings[i]->apply(); } }
void WebSettingsPrivate::apply(int setting, bool global) { if (isGlobal()) { // Cycle through the page settings and apply the defaults for (size_t i = 0; i < m_pageSettings.size(); ++i) m_pageSettings.at(i)->apply(setting, global); } else { // Apply the WebCore::Settings to this page's settings WebCoreSettingsState* webcoreSettingsState = global ? WebSettings::pageGroupSettings(m_webCoreSettingsState->pageGroupName)->d->m_webCoreSettingsState : m_webCoreSettingsState; WebCore::Settings* settings = getSettings(m_page); if (setting == AllSettings || setting == IsXSSAuditorEnabled) settings->setXSSAuditorEnabled(webcoreSettingsState->xssAuditorEnabled); if (setting == AllSettings || setting == LoadsImagesAutomatically) settings->setLoadsImagesAutomatically(webcoreSettingsState->loadsImagesAutomatically); if (setting == AllSettings || setting == ShouldDrawBorderWhileLoadingImages) settings->setShouldDrawBorderWhileLoadingImages(webcoreSettingsState->shouldDrawBorderWhileLoadingImages); if (setting == AllSettings || setting == IsJavaScriptEnabled) settings->setJavaScriptEnabled(webcoreSettingsState->isJavaScriptEnabled); if (setting == AllSettings || setting == DefaultFixedFontSize) settings->setDefaultFixedFontSize(webcoreSettingsState->defaultFixedFontSize); if (setting == AllSettings || setting == DefaultFontSize) settings->setDefaultFontSize(webcoreSettingsState->defaultFontSize); if (setting == AllSettings || setting == MinimumFontSize) settings->setMinimumFontSize(webcoreSettingsState->minimumFontSize); if (setting == AllSettings || setting == SerifFontFamily) settings->setSerifFontFamily(webcoreSettingsState->serifFontFamily); if (setting == AllSettings || setting == FixedFontFamily) settings->setFixedFontFamily(webcoreSettingsState->fixedFontFamily); if (setting == AllSettings || setting == SansSerifFontFamily) settings->setSansSerifFontFamily(webcoreSettingsState->sansSerifFontFamily); if (setting == AllSettings || setting == StandardFontFamily) settings->setStandardFontFamily(webcoreSettingsState->standardFontFamily); if (setting == AllSettings || setting == CanJavaScriptOpenWindowsAutomatically) settings->setJavaScriptCanOpenWindowsAutomatically(webcoreSettingsState->canJavaScriptOpenWindowsAutomatically); if (setting == AllSettings || setting == ArePluginsEnabled) settings->setPluginsEnabled(webcoreSettingsState->arePluginsEnabled); if (setting == AllSettings || setting == DefaultTextEncodingName) settings->setDefaultTextEncodingName(webcoreSettingsState->defaultTextEncodingName); if (setting == AllSettings || setting == UserStyleSheet) settings->setUserStyleSheetLocation(webcoreSettingsState->userStyleSheet); if (setting == AllSettings || setting == FirstScheduledLayoutDelay) settings->setFirstScheduledLayoutDelay(webcoreSettingsState->firstScheduledLayoutDelay); if (setting == AllSettings || setting == UseWebKitCache) settings->setUseCache(webcoreSettingsState->useWebKitCache); #if ENABLE(DATABASE) if (setting == AllSettings || setting == LocalStoragePath) settings->setLocalStorageDatabasePath(webcoreSettingsState->localStoragePath); if (setting == AllSettings || setting == IsDatabasesEnabled) { WebCore::Database::setIsAvailable(webcoreSettingsState->isDatabasesEnabled); WebCore::DatabaseSync::setIsAvailable(webcoreSettingsState->isDatabasesEnabled); } if (setting == AllSettings || setting == IsLocalStorageEnabled) settings->setLocalStorageEnabled(webcoreSettingsState->isLocalStorageEnabled); if (setting == AllSettings || setting == IsOfflineWebApplicationCacheEnabled) settings->setOfflineWebApplicationCacheEnabled(webcoreSettingsState->isOfflineWebApplicationCacheEnabled); if (setting == AllSettings || setting == LocalStorageQuota) getGroupSettings(m_page)->setLocalStorageQuotaBytes(webcoreSettingsState->localStorageQuota); if (setting == AllSettings || setting == IsFrameFlatteningEnabled) settings->setFrameFlatteningEnabled(webcoreSettingsState->isFrameFlatteningEnabled); #endif // These are *NOT* exposed via the API so just always set them if this // is global and we're setting all the settings... if (setting == AllSettings && global) { settings->setJavaEnabled(webcoreSettingsState->isJavaEnabled); } // Apply the Olympia settings to this page's settings OlympiaSettingsState* olympiaSettingsState = global ? WebSettings::pageGroupSettings(m_webCoreSettingsState->pageGroupName)->d->m_olympiaSettingsState : m_olympiaSettingsState; if (setting == AllSettings || setting == UserAgentString) m_olympiaSettingsState->userAgentString = olympiaSettingsState->userAgentString; if (setting == AllSettings || setting == IsZoomToFitOnLoad) m_olympiaSettingsState->isZoomToFitOnLoad = olympiaSettingsState->isZoomToFitOnLoad; if (setting == AllSettings || setting == IsScrollbarsEnabled) m_olympiaSettingsState->isScrollbarsEnabled = olympiaSettingsState->isScrollbarsEnabled; if (setting == AllSettings || setting == IsGeolocationEnabled) m_olympiaSettingsState->isGeolocationEnabled = olympiaSettingsState->isGeolocationEnabled; if (setting == AllSettings || setting == DoesGetFocusNodeContext) m_olympiaSettingsState->doesGetFocusNodeContext = olympiaSettingsState->doesGetFocusNodeContext; if (setting == AllSettings || setting == AreLinksHandledExternally) m_olympiaSettingsState->areLinksHandledExternally = olympiaSettingsState->areLinksHandledExternally; if (setting == AllSettings || setting == ShouldUpdateTextReflowMode) { m_olympiaSettingsState->textReflowMode = olympiaSettingsState->textReflowMode; settings->setTextReflowEnabled(m_olympiaSettingsState->textReflowMode == WebSettings::TextReflowEnabled); } if (setting == AllSettings || setting == IsEmailMode) { m_olympiaSettingsState->isEmailMode = olympiaSettingsState->isEmailMode; // FIXME: See RIM Bug #746. // We don't want HTMLTokenizer to yield for anything other than email // case because call to currentTime() is too expensive at currentTime() :( settings->setShouldUseFirstScheduledLayoutDelay(m_olympiaSettingsState->isEmailMode); settings->setProcessHTTPEquiv(!m_olympiaSettingsState->isEmailMode); } if (setting == AllSettings || setting == ShouldRenderAnimationsOnScroll) m_olympiaSettingsState->shouldRenderAnimationsOnScroll = olympiaSettingsState->shouldRenderAnimationsOnScroll; if (setting == AllSettings || setting == OverZoomColor) m_olympiaSettingsState->overZoomColor = olympiaSettingsState->overZoomColor; if (setting == AllSettings || setting == IsWritingDirectionRTL) m_olympiaSettingsState->isWritingDirectionRTL = olympiaSettingsState->isWritingDirectionRTL; if (setting == AllSettings || setting == IsDirectRenderingToCanvasEnabled) m_olympiaSettingsState->isDirectRenderingToCanvasEnabled = olympiaSettingsState->isDirectRenderingToCanvasEnabled; if (setting == AllSettings || setting == MaxPluginInstances) m_olympiaSettingsState->maxPluginInstances = olympiaSettingsState->maxPluginInstances; // BrowserField2 settings if ( setting == AllSettings || setting == AllowCrossSiteRequests ) m_olympiaSettingsState->allowCrossSiteRequests = olympiaSettingsState->allowCrossSiteRequests; if ( setting == AllSettings || setting == UserScalable ) m_olympiaSettingsState->userScalable = olympiaSettingsState->userScalable; if ( setting == AllSettings || setting == InitialScale ) m_olympiaSettingsState->initialScale = olympiaSettingsState->initialScale; if ( setting == AllSettings || setting == ViewportWidth ) m_olympiaSettingsState->viewportWidth = olympiaSettingsState->viewportWidth; if ( setting == AllSettings || setting == ShouldHandlePatternUrls ) m_olympiaSettingsState->shouldHandlePatternUrls = olympiaSettingsState->shouldHandlePatternUrls; if ( setting == AllSettings || setting == IsCookieCacheEnabled ) m_olympiaSettingsState->isCookieCacheEnabled = olympiaSettingsState->isCookieCacheEnabled; } }
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); 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 #if USE(ACCELERATED_COMPOSITING) settings->setAcceleratedCompositingForCanvasEnabled(value); #endif #endif #if ENABLE(WEB_AUDIO) value = attributes.value(QWebSettings::WebAudioEnabled, global->attributes.value(QWebSettings::WebAudioEnabled)); WebCore::RuntimeEnabledFeatures::setWebAudioEnabled(value); #endif value = attributes.value(QWebSettings::CSSRegionsEnabled, global->attributes.value(QWebSettings::CSSRegionsEnabled)); WebCore::RuntimeEnabledFeatures::setCSSRegionsEnabled(value); value = attributes.value(QWebSettings::CSSCompositingEnabled, global->attributes.value(QWebSettings::CSSCompositingEnabled)); WebCore::RuntimeEnabledFeatures::setCSSCompositingEnabled(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); #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->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(); } }
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::JavascriptEnabled, global->attributes.value(QWebSettings::JavascriptEnabled)); settings->setJavaScriptEnabled(value); #if USE(ACCELERATED_COMPOSITING) value = attributes.value(QWebSettings::AcceleratedCompositingEnabled, global->attributes.value(QWebSettings::AcceleratedCompositingEnabled)); settings->setAcceleratedCompositingEnabled(value); #endif #if ENABLE(3D_CANVAS) value = attributes.value(QWebSettings::WebGLEnabled, global->attributes.value(QWebSettings::WebGLEnabled)); settings->setWebGLEnabled(value); #endif value = attributes.value(QWebSettings::JavascriptCanOpenWindows, global->attributes.value(QWebSettings::JavascriptCanOpenWindows)); settings->setJavaScriptCanOpenWindowsAutomatically(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::ZoomTextOnly, global->attributes.value(QWebSettings::ZoomTextOnly)); settings->setZoomMode(value ? WebCore::ZoomTextOnly : WebCore::ZoomPage); value = attributes.value(QWebSettings::PrintElementBackgrounds, global->attributes.value(QWebSettings::PrintElementBackgrounds)); settings->setShouldPrintBackgrounds(value); #if ENABLE(DATABASE) value = attributes.value(QWebSettings::OfflineStorageDatabaseEnabled, global->attributes.value(QWebSettings::OfflineStorageDatabaseEnabled)); WebCore::Database::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 ENABLE(TILED_BACKING_STORE) value = attributes.value(QWebSettings::TiledBackingStoreEnabled, global->attributes.value(QWebSettings::TiledBackingStoreEnabled)); settings->setTiledBackingStoreEnabled(value); #endif 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(); } }