| /* |
| * Copyright (C) 2010 Apple 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: |
| * 1. Redistributions of source code must retain the above copyright |
| * notice, this list of conditions and the following disclaimer. |
| * 2. 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. |
| * |
| * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS 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 APPLE INC. OR ITS 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 "WebPreferencesStore.h" |
| |
| #include "FontSmoothingLevel.h" |
| |
| namespace WebKit { |
| |
| static bool hasXSSAuditorEnabledTestRunnerOverride; |
| static bool xssAuditorEnabledTestRunnerOverride; |
| |
| WebPreferencesStore::WebPreferencesStore() |
| : javaScriptEnabled(true) |
| , loadsImagesAutomatically(true) |
| , pluginsEnabled(true) |
| , javaEnabled(true) |
| , offlineWebApplicationCacheEnabled(false) |
| , localStorageEnabled(true) |
| , xssAuditorEnabled(true) |
| , frameFlatteningEnabled(false) |
| , developerExtrasEnabled(false) |
| , privateBrowsingEnabled(false) |
| , textAreasAreResizable(true) |
| , needsSiteSpecificQuirks(false) |
| , acceleratedCompositingEnabled(true) |
| , compositingBordersVisible(false) |
| , compositingRepaintCountersVisible(false) |
| , fontSmoothingLevel(FontSmoothingLevelMedium) |
| , minimumFontSize(0) |
| , minimumLogicalFontSize(9) |
| , defaultFontSize(16) |
| , defaultFixedFontSize(13) |
| #if PLATFORM(WIN) |
| , standardFontFamily("Times New Roman") |
| , cursiveFontFamily("Comic Sans MS") |
| , fantasyFontFamily("Comic Sans MS") |
| , fixedFontFamily("Courier New") |
| , sansSerifFontFamily("Arial") |
| , serifFontFamily("Times New Roman") |
| #else |
| , standardFontFamily("Times") |
| , cursiveFontFamily("Apple Chancery") |
| , fantasyFontFamily("Papyrus") |
| , fixedFontFamily("Courier") |
| , sansSerifFontFamily("Helvetica") |
| , serifFontFamily("Times") |
| #endif |
| { |
| } |
| |
| void WebPreferencesStore::encode(CoreIPC::ArgumentEncoder* encoder) const |
| { |
| encoder->encode(javaScriptEnabled); |
| encoder->encode(loadsImagesAutomatically); |
| encoder->encode(pluginsEnabled); |
| encoder->encode(javaEnabled); |
| encoder->encode(offlineWebApplicationCacheEnabled); |
| encoder->encode(localStorageEnabled); |
| encoder->encode(xssAuditorEnabled); |
| encoder->encode(frameFlatteningEnabled); |
| encoder->encode(privateBrowsingEnabled); |
| encoder->encode(textAreasAreResizable); |
| encoder->encode(developerExtrasEnabled); |
| encoder->encode(fontSmoothingLevel); |
| encoder->encode(minimumFontSize); |
| encoder->encode(minimumLogicalFontSize); |
| encoder->encode(defaultFontSize); |
| encoder->encode(defaultFixedFontSize); |
| encoder->encode(standardFontFamily); |
| encoder->encode(cursiveFontFamily); |
| encoder->encode(fantasyFontFamily); |
| encoder->encode(fixedFontFamily); |
| encoder->encode(sansSerifFontFamily); |
| encoder->encode(serifFontFamily); |
| encoder->encode(acceleratedCompositingEnabled); |
| encoder->encode(compositingBordersVisible); |
| encoder->encode(compositingRepaintCountersVisible); |
| encoder->encode(needsSiteSpecificQuirks); |
| } |
| |
| bool WebPreferencesStore::decode(CoreIPC::ArgumentDecoder* decoder, WebPreferencesStore& s) |
| { |
| if (!decoder->decode(s.javaScriptEnabled)) |
| return false; |
| if (!decoder->decode(s.loadsImagesAutomatically)) |
| return false; |
| if (!decoder->decode(s.pluginsEnabled)) |
| return false; |
| if (!decoder->decode(s.javaEnabled)) |
| return false; |
| if (!decoder->decode(s.offlineWebApplicationCacheEnabled)) |
| return false; |
| if (!decoder->decode(s.localStorageEnabled)) |
| return false; |
| if (!decoder->decode(s.xssAuditorEnabled)) |
| return false; |
| if (!decoder->decode(s.frameFlatteningEnabled)) |
| return false; |
| if (!decoder->decode(s.privateBrowsingEnabled)) |
| return false; |
| if (!decoder->decode(s.textAreasAreResizable)) |
| return false; |
| if (!decoder->decode(s.developerExtrasEnabled)) |
| return false; |
| if (!decoder->decode(s.fontSmoothingLevel)) |
| return false; |
| if (!decoder->decode(s.minimumFontSize)) |
| return false; |
| if (!decoder->decode(s.minimumLogicalFontSize)) |
| return false; |
| if (!decoder->decode(s.defaultFontSize)) |
| return false; |
| if (!decoder->decode(s.defaultFixedFontSize)) |
| return false; |
| if (!decoder->decode(s.standardFontFamily)) |
| return false; |
| if (!decoder->decode(s.cursiveFontFamily)) |
| return false; |
| if (!decoder->decode(s.fantasyFontFamily)) |
| return false; |
| if (!decoder->decode(s.fixedFontFamily)) |
| return false; |
| if (!decoder->decode(s.sansSerifFontFamily)) |
| return false; |
| if (!decoder->decode(s.serifFontFamily)) |
| return false; |
| if (!decoder->decode(s.acceleratedCompositingEnabled)) |
| return false; |
| if (!decoder->decode(s.compositingBordersVisible)) |
| return false; |
| if (!decoder->decode(s.compositingRepaintCountersVisible)) |
| return false; |
| if (!decoder->decode(s.needsSiteSpecificQuirks)) |
| return false; |
| |
| if (hasXSSAuditorEnabledTestRunnerOverride) |
| s.xssAuditorEnabled = xssAuditorEnabledTestRunnerOverride; |
| |
| return true; |
| } |
| |
| void WebPreferencesStore::overrideXSSAuditorEnabledForTestRunner(bool enabled) |
| { |
| hasXSSAuditorEnabledTestRunnerOverride = true; |
| xssAuditorEnabledTestRunnerOverride = enabled; |
| } |
| |
| void WebPreferencesStore::removeTestRunnerOverrides() |
| { |
| hasXSSAuditorEnabledTestRunnerOverride = false; |
| } |
| |
| } // namespace WebKit |