/* * Copyright (C) 2010 Google Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following disclaimer * in the documentation and/or other materials provided with the * distribution. * * Neither the name of Google Inc. nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "config.h" #include "WebPreferences.h" #include "WebView.h" using namespace WebKit; void WebPreferences::reset() { #if OS(MAC_OS_X) cursiveFontFamily = WebString::fromUTF8("Apple Chancery"); fantasyFontFamily = WebString::fromUTF8("Papyrus"); WebString serif = WebString::fromUTF8("Times"); #else // These two fonts are picked from the intersection of // Win XP font list and Vista font list : // http://www.microsoft.com/typography/fonts/winxp.htm // http://blogs.msdn.com/michkap/archive/2006/04/04/567881.aspx // Some of them are installed only with CJK and complex script // support enabled on Windows XP and are out of consideration here. // (although we enabled both on our buildbots.) // They (especially Impact for fantasy) are not typical cursive // and fantasy fonts, but it should not matter for layout tests // as long as they're available. cursiveFontFamily = WebString::fromUTF8("Comic Sans MS"); fantasyFontFamily = WebString::fromUTF8("Impact"); // NOTE: case matters here, this must be 'times new roman', else // some layout tests fail. WebString serif = WebString::fromUTF8("times new roman"); #endif serifFontFamily = serif; standardFontFamily = serif; fixedFontFamily = WebString::fromUTF8("Courier"); sansSerifFontFamily = WebString::fromUTF8("Helvetica"); defaultFontSize = 16; defaultFixedFontSize = 13; minimumFontSize = 0; minimumLogicalFontSize = 9; DOMPasteAllowed = true; XSSAuditorEnabled = false; allowFileAccessFromFileURLs = true; authorAndUserStylesEnabled = true; defaultTextEncodingName = WebString::fromUTF8("ISO-8859-1"); developerExtrasEnabled = false; experimentalWebGLEnabled = false; javaEnabled = false; javaScriptCanAccessClipboard = true; javaScriptCanOpenWindowsAutomatically = true; javaScriptEnabled = true; loadsImagesAutomatically = true; localStorageEnabled = true; offlineWebApplicationCacheEnabled = true; pluginsEnabled = true; shrinksStandaloneImagesToFit = false; textAreasAreResizable = false; userStyleSheetLocation = WebURL(); usesPageCache = false; webSecurityEnabled = true; caretBrowsingEnabled = false; // Allow those layout tests running as local files, i.e. under // LayoutTests/http/tests/local, to access http server. allowUniversalAccessFromFileURLs = true; #if OS(DARWIN) editingBehavior = WebSettings::EditingBehaviorMac; #else editingBehavior = WebSettings::EditingBehaviorWin; #endif tabsToLinks = false; hyperlinkAuditingEnabled = false; acceleratedCompositingEnabled = false; accelerated2dCanvasEnabled = false; } void WebPreferences::applyTo(WebView* webView) { WebSettings* settings = webView->settings(); settings->setCursiveFontFamily(cursiveFontFamily); settings->setFantasyFontFamily(fantasyFontFamily); settings->setSerifFontFamily(serifFontFamily); settings->setStandardFontFamily(standardFontFamily); settings->setFixedFontFamily(fixedFontFamily); settings->setSansSerifFontFamily(sansSerifFontFamily); settings->setDefaultFontSize(defaultFontSize); settings->setDefaultFixedFontSize(defaultFixedFontSize); settings->setMinimumFontSize(minimumFontSize); settings->setMinimumLogicalFontSize(minimumLogicalFontSize); settings->setDOMPasteAllowed(DOMPasteAllowed); settings->setXSSAuditorEnabled(XSSAuditorEnabled); settings->setAllowFileAccessFromFileURLs(allowFileAccessFromFileURLs); settings->setAuthorAndUserStylesEnabled(authorAndUserStylesEnabled); settings->setDefaultTextEncodingName(defaultTextEncodingName); settings->setDeveloperExtrasEnabled(developerExtrasEnabled); settings->setExperimentalWebGLEnabled(experimentalWebGLEnabled); settings->setJavaEnabled(javaEnabled); settings->setJavaScriptCanAccessClipboard(javaScriptCanAccessClipboard); settings->setJavaScriptCanOpenWindowsAutomatically(javaScriptCanOpenWindowsAutomatically); settings->setJavaScriptEnabled(javaScriptEnabled); settings->setLoadsImagesAutomatically(loadsImagesAutomatically); settings->setLocalStorageEnabled(localStorageEnabled); settings->setOfflineWebApplicationCacheEnabled(offlineWebApplicationCacheEnabled); settings->setPluginsEnabled(pluginsEnabled); settings->setShrinksStandaloneImagesToFit(shrinksStandaloneImagesToFit); settings->setTextAreasAreResizable(textAreasAreResizable); settings->setUserStyleSheetLocation(userStyleSheetLocation); settings->setUsesPageCache(usesPageCache); settings->setWebSecurityEnabled(webSecurityEnabled); settings->setAllowUniversalAccessFromFileURLs(allowUniversalAccessFromFileURLs); settings->setEditingBehavior(editingBehavior); settings->setHyperlinkAuditingEnabled(hyperlinkAuditingEnabled); // LayoutTests were written with Safari Mac in mind which does not allow // tabbing to links by default. webView->setTabsToLinks(tabsToLinks); settings->setCaretBrowsingEnabled(caretBrowsingEnabled); // Fixed values. settings->setShouldPaintCustomScrollbars(true); settings->setTextDirectionSubmenuInclusionBehaviorNeverIncluded(); settings->setDownloadableBinaryFontsEnabled(true); settings->setAllowScriptsToCloseWindows(false); settings->setNeedsSiteSpecificQuirks(true); settings->setEditableLinkBehaviorNeverLive(); settings->setFontRenderingModeNormal(); settings->setTextDirectionSubmenuInclusionBehaviorNeverIncluded(); settings->setUsesEncodingDetector(false); settings->setImagesEnabled(true); settings->setAcceleratedCompositingEnabled(acceleratedCompositingEnabled); settings->setAccelerated2dCanvasEnabled(accelerated2dCanvasEnabled); }