📄 webpreferences.cpp
字号:
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 + -