⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 webpreferences.cpp

📁 linux下开源浏览器WebKit的源码,市面上的很多商用浏览器都是移植自WebKit
💻 CPP
📖 第 1 页 / 共 3 页
字号:
void WebPreferences::copyWebKitPreferencesToCFPreferences(CFDictionaryRef dict){    ASSERT_ARG(dict, dict);    int count = CFDictionaryGetCount(dict);    if (count <= 0)        return;    CFStringRef didRemoveDefaultsKey = CFSTR(WebKitDidMigrateDefaultSettingsFromSafari3BetaPreferenceKey);    bool omitDefaults = !booleanValueForPreferencesValue(CFDictionaryGetValue(dict, didRemoveDefaultsKey));    OwnArrayPtr<CFTypeRef> keys(new CFTypeRef[count]);    OwnArrayPtr<CFTypeRef> values(new CFTypeRef[count]);    CFDictionaryGetKeysAndValues(dict, keys.get(), values.get());    for (int i = 0; i < count; ++i) {        if (!keys[i] || !values[i] || CFGetTypeID(keys[i]) != CFStringGetTypeID())            continue;        if (omitDefaults) {            CFTypeRef defaultValue = CFDictionaryGetValue(defaultSettings, keys[i]);            if (defaultValue && CFEqual(defaultValue, values[i]))                continue;        }        setValueForKey(static_cast<CFStringRef>(keys[i]), values[i]);    }}// IUnknown -------------------------------------------------------------------HRESULT STDMETHODCALLTYPE WebPreferences::QueryInterface(REFIID riid, void** ppvObject){    *ppvObject = 0;    if (IsEqualGUID(riid, IID_IUnknown))        *ppvObject = static_cast<IWebPreferences*>(this);    else if (IsEqualGUID(riid, IID_IWebPreferences))        *ppvObject = static_cast<IWebPreferences*>(this);    else if (IsEqualGUID(riid, IID_IWebPreferencesPrivate))        *ppvObject = static_cast<IWebPreferencesPrivate*>(this);    else if (IsEqualGUID(riid, CLSID_WebPreferences))        *ppvObject = this;    else        return E_NOINTERFACE;    AddRef();    return S_OK;}ULONG STDMETHODCALLTYPE WebPreferences::AddRef(void){    return ++m_refCount;}ULONG STDMETHODCALLTYPE WebPreferences::Release(void){    ULONG newRef = --m_refCount;    if (!newRef)        delete(this);    return newRef;}// IWebPreferences ------------------------------------------------------------HRESULT STDMETHODCALLTYPE WebPreferences::standardPreferences(     /* [retval][out] */ IWebPreferences** standardPreferences){    if (!standardPreferences)        return E_POINTER;    *standardPreferences = sharedStandardPreferences();    (*standardPreferences)->AddRef();    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::initWithIdentifier(         /* [in] */ BSTR anIdentifier,        /* [retval][out] */ IWebPreferences** preferences){    WebPreferences *instance = getInstanceForIdentifier(anIdentifier);    if (instance) {        *preferences = instance;        instance->AddRef();        return S_OK;    }    load();    *preferences = this;    AddRef();    if (anIdentifier) {        m_identifier = anIdentifier;        setInstance(this, m_identifier);    }    this->postPreferencesChangesNotification();    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::identifier(     /* [retval][out] */ BSTR* ident){    if (!ident)        return E_POINTER;    *ident = m_identifier ? SysAllocString(m_identifier) : 0;    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::standardFontFamily(     /* [retval][out] */ BSTR* family){    *family = stringValueForKey(CFSTR(WebKitStandardFontPreferenceKey));    return (*family) ? S_OK : E_FAIL;}HRESULT STDMETHODCALLTYPE WebPreferences::setStandardFontFamily(     /* [in] */ BSTR family){    setStringValue(CFSTR(WebKitStandardFontPreferenceKey), family);    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::fixedFontFamily(     /* [retval][out] */ BSTR* family){    *family = stringValueForKey(CFSTR(WebKitFixedFontPreferenceKey));    return (*family) ? S_OK : E_FAIL;}HRESULT STDMETHODCALLTYPE WebPreferences::setFixedFontFamily(     /* [in] */ BSTR family){    setStringValue(CFSTR(WebKitFixedFontPreferenceKey), family);    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::serifFontFamily(     /* [retval][out] */ BSTR* fontFamily){    *fontFamily = stringValueForKey(CFSTR(WebKitSerifFontPreferenceKey));    return (*fontFamily) ? S_OK : E_FAIL;}HRESULT STDMETHODCALLTYPE WebPreferences::setSerifFontFamily(     /* [in] */ BSTR family){    setStringValue(CFSTR(WebKitSerifFontPreferenceKey), family);    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::sansSerifFontFamily(     /* [retval][out] */ BSTR* family){    *family = stringValueForKey(CFSTR(WebKitSansSerifFontPreferenceKey));    return (*family) ? S_OK : E_FAIL;}HRESULT STDMETHODCALLTYPE WebPreferences::setSansSerifFontFamily(     /* [in] */ BSTR family){    setStringValue(CFSTR(WebKitSansSerifFontPreferenceKey), family);    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::cursiveFontFamily(     /* [retval][out] */ BSTR* family){    *family = stringValueForKey(CFSTR(WebKitCursiveFontPreferenceKey));    return (*family) ? S_OK : E_FAIL;}HRESULT STDMETHODCALLTYPE WebPreferences::setCursiveFontFamily(     /* [in] */ BSTR family){    setStringValue(CFSTR(WebKitCursiveFontPreferenceKey), family);    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::fantasyFontFamily(     /* [retval][out] */ BSTR* family){    *family = stringValueForKey(CFSTR(WebKitFantasyFontPreferenceKey));    return (*family) ? S_OK : E_FAIL;}HRESULT STDMETHODCALLTYPE WebPreferences::setFantasyFontFamily(     /* [in] */ BSTR family){    setStringValue(CFSTR(WebKitFantasyFontPreferenceKey), family);    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::defaultFontSize(     /* [retval][out] */ int* fontSize){    *fontSize = integerValueForKey(CFSTR(WebKitDefaultFontSizePreferenceKey));    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::setDefaultFontSize(     /* [in] */ int fontSize){    setIntegerValue(CFSTR(WebKitDefaultFontSizePreferenceKey), fontSize);    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::defaultFixedFontSize(     /* [retval][out] */ int* fontSize){    *fontSize = integerValueForKey(CFSTR(WebKitDefaultFixedFontSizePreferenceKey));    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::setDefaultFixedFontSize(     /* [in] */ int fontSize){    setIntegerValue(CFSTR(WebKitDefaultFixedFontSizePreferenceKey), fontSize);    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::minimumFontSize(     /* [retval][out] */ int* fontSize){    *fontSize = integerValueForKey(CFSTR(WebKitMinimumFontSizePreferenceKey));    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::setMinimumFontSize(     /* [in] */ int fontSize){    setIntegerValue(CFSTR(WebKitMinimumFontSizePreferenceKey), fontSize);    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::minimumLogicalFontSize(     /* [retval][out] */ int* fontSize){    *fontSize = integerValueForKey(CFSTR(WebKitMinimumLogicalFontSizePreferenceKey));    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::setMinimumLogicalFontSize(     /* [in] */ int fontSize){    setIntegerValue(CFSTR(WebKitMinimumLogicalFontSizePreferenceKey), fontSize);    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::defaultTextEncodingName(     /* [retval][out] */ BSTR* name){    *name = stringValueForKey(CFSTR(WebKitDefaultTextEncodingNamePreferenceKey));    return (*name) ? S_OK : E_FAIL;}HRESULT STDMETHODCALLTYPE WebPreferences::setDefaultTextEncodingName(     /* [in] */ BSTR name){    setStringValue(CFSTR(WebKitDefaultTextEncodingNamePreferenceKey), name);    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::userStyleSheetEnabled(     /* [retval][out] */ BOOL* enabled){    *enabled = boolValueForKey(CFSTR(WebKitUserStyleSheetEnabledPreferenceKey));    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::setUserStyleSheetEnabled(     /* [in] */ BOOL enabled){    setBoolValue(CFSTR(WebKitUserStyleSheetEnabledPreferenceKey), enabled);    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::userStyleSheetLocation(     /* [retval][out] */ BSTR* location){    *location = stringValueForKey(CFSTR(WebKitUserStyleSheetLocationPreferenceKey));    return (*location) ? S_OK : E_FAIL;}HRESULT STDMETHODCALLTYPE WebPreferences::setUserStyleSheetLocation(     /* [in] */ BSTR location){    setStringValue(CFSTR(WebKitUserStyleSheetLocationPreferenceKey), location);    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::isJavaEnabled(     /* [retval][out] */ BOOL* enabled){    *enabled = boolValueForKey(CFSTR(WebKitJavaEnabledPreferenceKey));    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::setJavaEnabled(     /* [in] */ BOOL enabled){    setBoolValue(CFSTR(WebKitJavaEnabledPreferenceKey), enabled);    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::isJavaScriptEnabled(     /* [retval][out] */ BOOL* enabled){    *enabled = boolValueForKey(CFSTR(WebKitJavaScriptEnabledPreferenceKey));    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::setJavaScriptEnabled(     /* [in] */ BOOL enabled){    setBoolValue(CFSTR(WebKitJavaScriptEnabledPreferenceKey), enabled);    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::isWebSecurityEnabled(     /* [retval][out] */ BOOL* enabled){    *enabled = boolValueForKey(CFSTR(WebKitWebSecurityEnabledPreferenceKey));    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::setWebSecurityEnabled(     /* [in] */ BOOL enabled){    setBoolValue(CFSTR(WebKitWebSecurityEnabledPreferenceKey), enabled);    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::allowUniversalAccessFromFileURLs(    /* [retval][out] */ BOOL* allowAccess){    *allowAccess = boolValueForKey(CFSTR(WebKitAllowUniversalAccessFromFileURLsPreferenceKey));    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::setAllowUniversalAccessFromFileURLs(    /* [in] */ BOOL allowAccess){    setBoolValue(CFSTR(WebKitAllowUniversalAccessFromFileURLsPreferenceKey), allowAccess);    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::javaScriptCanOpenWindowsAutomatically(     /* [retval][out] */ BOOL* enabled){    *enabled = boolValueForKey(CFSTR(WebKitJavaScriptCanOpenWindowsAutomaticallyPreferenceKey));    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::setJavaScriptCanOpenWindowsAutomatically(     /* [in] */ BOOL enabled){    setBoolValue(CFSTR(WebKitJavaScriptCanOpenWindowsAutomaticallyPreferenceKey), enabled);    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::arePlugInsEnabled(     /* [retval][out] */ BOOL* enabled){    *enabled = boolValueForKey(CFSTR(WebKitPluginsEnabledPreferenceKey));    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::setPlugInsEnabled(     /* [in] */ BOOL enabled){    setBoolValue(CFSTR(WebKitPluginsEnabledPreferenceKey), enabled);    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::allowsAnimatedImages(     /* [retval][out] */ BOOL* enabled){    *enabled = boolValueForKey(CFSTR(WebKitAllowAnimatedImagesPreferenceKey));    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::setAllowsAnimatedImages(     /* [in] */ BOOL enabled){    setBoolValue(CFSTR(WebKitAllowAnimatedImagesPreferenceKey), enabled);    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::allowAnimatedImageLooping(     /* [retval][out] */ BOOL* enabled){    *enabled = boolValueForKey(CFSTR(WebKitAllowAnimatedImageLoopingPreferenceKey));    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::setAllowAnimatedImageLooping(     /* [in] */ BOOL enabled){    setBoolValue(CFSTR(WebKitAllowAnimatedImageLoopingPreferenceKey), enabled);    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::setLoadsImagesAutomatically(     /* [in] */ BOOL enabled){    setBoolValue(CFSTR(WebKitDisplayImagesKey), enabled);    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::loadsImagesAutomatically(     /* [retval][out] */ BOOL* enabled){    *enabled = boolValueForKey(CFSTR(WebKitDisplayImagesKey));    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::setAutosaves(     /* [in] */ BOOL enabled){    m_autoSaves = !!enabled;    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::autosaves(     /* [retval][out] */ BOOL* enabled){    *enabled = m_autoSaves ? TRUE : FALSE;    return S_OK;}HRESULT STDMETHODCALLTYPE WebPreferences::setShouldPrintBackgrounds( 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -