Changeset 39212 in webkit
- Timestamp:
- Dec 11, 2008 11:10:47 AM (15 years ago)
- Location:
- trunk
- Files:
-
- 6 added
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebKit/mac/ChangeLog
r39195 r39212 1 2008-12-10 Glenn Wilson <gwilson@google.com> 2 3 Reviewed by Adam Roben. 4 5 Added new methods for overriding default WebPreference values 6 and for resetting preferences to their defaults. 7 https://bugs.webkit.org/show_bug.cgi?id=20534 8 9 * WebView/WebPreferenceKeysPrivate.h: 10 * WebView/WebPreferences.mm: 11 (-[WebPreferences resetToDefaults]): new method 12 (-[WebPreferences overridePreference:flag:]): new method 13 * WebView/WebPreferencesPrivate.h: new method signatures 14 1 15 2008-12-10 Anders Carlsson <andersca@apple.com> 2 16 -
trunk/WebKit/mac/WebView/WebPreferenceKeysPrivate.h
r38410 r39212 73 73 #define WebKitOfflineWebApplicationCacheEnabledPreferenceKey @"WebKitOfflineWebApplicationCacheEnabled" 74 74 #define WebKitZoomsTextOnlyPreferenceKey @"WebKitZoomsTextOnly" 75 #define WebKitDefaultPreferencesOverridden @"WebKitDefaultPreferencesOverridden" 75 76 76 77 // These are private both because callers should be using the cover methods and because the -
trunk/WebKit/mac/WebView/WebPreferences.mm
r38778 r39212 1096 1096 return [self _boolValueForKey:WebKitEnableFullDocumentTeardownPreferenceKey]; 1097 1097 } 1098 1099 - (void)resetToDefaults 1100 { 1101 if (![self _boolValueForKey:WebKitDefaultPreferencesOverridden]) 1102 return; 1103 [self init]; 1104 1105 [self _setBoolValue:false forKey:WebKitDefaultPreferencesOverridden]; 1106 [self _postPreferencesChangesNotification]; 1107 } 1108 1109 - (void)overridePreference:(NSString *)key flag:(NSString *)preferenceFlag 1110 { 1111 [self _setStringValue:preferenceFlag forKey:key]; 1112 [self _setBoolValue:true forKey:WebKitDefaultPreferencesOverridden]; 1113 } 1114 1115 1116 1098 1117 @end 1099 1118 -
trunk/WebKit/mac/WebView/WebPreferencesPrivate.h
r38410 r39212 103 103 - (void)setTextDirectionSubmenuInclusionBehavior:(WebTextDirectionSubmenuInclusionBehavior)behavior; 104 104 105 // This method is meant for overriding preferences for tests run 106 // with DumpRenderTree only. 107 -(void)overridePreference:(NSString *)key flag:(NSString *)flag; 108 109 // This method is meant for resetting overridden preferences for tests run 110 // with DumpRenderTree only. 111 -(void)resetToDefaults; 112 113 105 114 // If site-specific spoofing is enabled, some pages that do inappropriate user-agent string checks will be 106 115 // passed a nonstandard user-agent string to get them to work correctly. This method might be removed in -
trunk/WebKit/win/ChangeLog
r39201 r39212 1 2008-12-10 Glenn Wilson <gwilson@google.com> 2 3 Reviewed by Adam Roben. 4 5 Added support for overriding default preferences per-test. 6 https://bugs.webkit.org/show_bug.cgi?id=20534 7 Two new methods were added: resetToDefaults and overridePreference. 8 9 * Interfaces/IWebPreferencesPrivate.idl: new method signatures 10 * WebPreferenceKeysPrivate.h: added new key for internal state 11 * WebPreferences.cpp: added new methods 12 (WebPreferences::overridePreference): new method 13 (WebPreferences::resetToDefaults): new method 14 * WebPreferences.h: new method signatures 15 1 16 2008-12-08 Tor Arne Vestbø <tavestbo@trolltech.com> 2 17 -
trunk/WebKit/win/Interfaces/IWebPreferencesPrivate.idl
r38234 r39212 67 67 HRESULT setLocalStorageEnabled([in] BOOL enabled); 68 68 HRESULT localStorageEnabled([out, retval] BOOL *enabled); 69 70 // This method is meant for overriding preferences for tests run 71 // with DumpRenderTree only. 72 HRESULT overridePreference([in] BSTR key, [in] BSTR value); 73 74 // This method is meant for resetting overridden preferences for tests run 75 // with DumpRenderTree only. 76 HRESULT resetToDefaults(); 77 69 78 } -
trunk/WebKit/win/WebPreferenceKeysPrivate.h
r38234 r39212 63 63 #define WebKitCacheModelPreferenceKey "WebKitCacheModelPreferenceKey" 64 64 #define WebKitLocalStorageDatabasePathPreferenceKey "WebKitLocalStorageDatabasePath" 65 #define WebKitDefaultPreferencesOverridden "WebKitDefaultPreferencesOverridden" 65 66 66 67 // These are private both because callers should be using the cover methods and because the -
trunk/WebKit/win/WebPreferences.cpp
r38234 r39212 1224 1224 } 1225 1225 1226 HRESULT STDMETHODCALLTYPE WebPreferences::overridePreference(BSTR key, BSTR value) 1227 { 1228 if (!SysStringLen(key) || !SysStringLen(value)) 1229 return E_FAIL; 1230 RetainPtr<CFStringRef> keyRef(AdoptCF, CFStringCreateWithCharacters(0, reinterpret_cast<UniChar*>(key), SysStringLen(key))); 1231 setStringValue(keyRef.get(), value); 1232 setBoolValue(CFSTR(WebKitDefaultPreferencesOverridden), true); 1233 return S_OK; 1234 } 1235 1236 HRESULT STDMETHODCALLTYPE WebPreferences::resetToDefaults() 1237 { 1238 if (!boolValueForKey(CFSTR(WebKitDefaultPreferencesOverridden))) 1239 return S_OK; 1240 1241 int count = CFDictionaryGetCount(defaultSettings); 1242 if (count <= 0) 1243 return S_OK; 1244 1245 OwnArrayPtr<CFTypeRef> keys(new CFTypeRef[count]); 1246 OwnArrayPtr<CFTypeRef> values(new CFTypeRef[count]); 1247 CFDictionaryGetKeysAndValues(defaultSettings, keys.get(), values.get()); 1248 1249 for (int i = 0; i < count; ++i) 1250 setValueForKey(static_cast<CFStringRef>(keys[i]), values[i]); 1251 1252 setBoolValue(CFSTR(WebKitDefaultPreferencesOverridden), false); 1253 1254 postPreferencesChangesNotification(); 1255 1256 return S_OK; 1257 } 1258 1226 1259 void WebPreferences::willAddToWebView() 1227 1260 { -
trunk/WebKit/win/WebPreferences.h
r38234 r39212 339 339 /* [retval][out] */ BOOL *zoomsTextOnly); 340 340 341 // This method is meant for overriding preferences for tests run 342 // with DumpRenderTree only. 343 virtual HRESULT STDMETHODCALLTYPE overridePreference( 344 /* [in] */ BSTR key, 345 /* [in] */ BSTR value); 346 347 // This method is meant for resetting overridden preferences for tests run 348 // with DumpRenderTree only. 349 virtual HRESULT STDMETHODCALLTYPE resetToDefaults(); 350 341 351 // WebPreferences 342 352 -
trunk/WebKitTools/ChangeLog
r39191 r39212 1 2008-12-10 Glenn Wilson <gwilson@google.com> 2 3 Reviewed by Adam Roben. 4 5 Changed LayoutTestController and DumpRenderTree to allow for manual 6 overriding of default preferences at test time. Also added support for 7 resetting the preferences after each test. 8 https://bugs.webkit.org/show_bug.cgi?id=20534 9 10 * DumpRenderTree/LayoutTestController.cpp: Added callback method for overriding preferences 11 * DumpRenderTree/LayoutTestController.h: Added signature for callback 12 * DumpRenderTree/win/DumpRenderTree.cpp: Added calls to reset preferences after each test if necessary 13 * DumpRenderTree/win/LayoutTestControllerWin.cpp: Added JS override function 14 * DumpRenderTree/mac/DumpRenderTree.mm: Added calls to reset preferences after each test if necessary 15 * DumpRenderTree/mac/LayoutTestControllerMac.mm: Added JS override function 16 1 17 2008-12-10 Brady Eidson <beidson@apple.com> 2 18 3 Reviewed by Darin 19 Reviewed by Darin Adler. 4 20 5 21 Implement the new policy delegate (including navigation type and permissive mode) for DRT/win -
trunk/WebKitTools/DumpRenderTree/LayoutTestController.cpp
r39178 r39212 349 349 } 350 350 351 static JSValueRef overridePreferenceCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception) 352 { 353 if (argumentCount < 2) 354 return JSValueMakeUndefined(context); 355 356 JSRetainPtr<JSStringRef> key(Adopt, JSValueToStringCopy(context, arguments[0], exception)); 357 ASSERT(!*exception); 358 JSRetainPtr<JSStringRef> value(Adopt, JSValueToStringCopy(context, arguments[1], exception)); 359 ASSERT(!*exception); 360 361 LayoutTestController* controller = reinterpret_cast<LayoutTestController*>(JSObjectGetPrivate(thisObject)); 362 controller->overridePreference(key.get(), value.get()); 363 364 return JSValueMakeUndefined(context); 365 } 366 351 367 static JSValueRef keepWebHistoryCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception) 352 368 { … … 803 819 { "keepWebHistory", keepWebHistoryCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete }, 804 820 { "notifyDone", notifyDoneCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete }, 821 { "overridePreference", overridePreferenceCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete }, 805 822 { "pathToLocalResource", pathToLocalResourceCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete }, 806 823 { "queueBackNavigation", queueBackNavigationCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete }, -
trunk/WebKitTools/DumpRenderTree/LayoutTestController.h
r39178 r39212 74 74 void setPersistentUserStyleSheetLocation(JSStringRef path); 75 75 void clearPersistentUserStyleSheet(); 76 void overridePreference(JSStringRef key, JSStringRef flag); 76 77 int windowCount(); 77 78 -
trunk/WebKitTools/DumpRenderTree/mac/DumpRenderTree.mm
r38884 r39212 979 979 980 980 WebPreferences *preferences = [webView preferences]; 981 [preferences resetToDefaults]; 981 982 [preferences setPrivateBrowsingEnabled:NO]; 982 983 [preferences setAuthorAndUserStylesEnabled:YES]; -
trunk/WebKitTools/DumpRenderTree/mac/LayoutTestControllerMac.mm
r39178 r39212 268 268 } 269 269 270 void LayoutTestController::overridePreference(JSStringRef key, JSStringRef flag) 271 { 272 RetainPtr<CFStringRef> keyCF(AdoptCF, JSStringCopyCFString(kCFAllocatorDefault, key)); 273 NSString *keyNS = (NSString *)keyCF.get(); 274 275 RetainPtr<CFStringRef> flagCF(AdoptCF, JSStringCopyCFString(kCFAllocatorDefault, flag)); 276 NSString *flagNS = (NSString *)flagCF.get(); 277 278 [[WebPreferences standardPreferences] overridePreference:keyNS flag:flagNS]; 279 } 280 270 281 void LayoutTestController::setPersistentUserStyleSheetLocation(JSStringRef jsURL) 271 282 { -
trunk/WebKitTools/DumpRenderTree/win/DumpRenderTree.cpp
r39191 r39212 657 657 COMPtr<IWebPreferencesPrivate> prefsPrivate(Query, preferences); 658 658 if (prefsPrivate) { 659 prefsPrivate->resetToDefaults(); 659 660 prefsPrivate->setAuthorAndUserStylesEnabled(TRUE); 660 661 prefsPrivate->setDeveloperExtrasEnabled(FALSE); -
trunk/WebKitTools/DumpRenderTree/win/LayoutTestControllerWin.cpp
r39191 r39212 42 42 #include <JavaScriptCore/JavaScriptCore.h> 43 43 #include <JavaScriptCore/JSRetainPtr.h> 44 #include <JavaScriptCore/JSStringRefBSTR.h> 44 45 #include <WebKit/WebKit.h> 45 46 #include <string> … … 659 660 return false; // FIXME: Implement this on Windows 660 661 } 662 663 void LayoutTestController::overridePreference(JSStringRef key, JSStringRef flag) 664 { 665 COMPtr<IWebView> webView; 666 if (FAILED(frame->webView(&webView))) 667 return; 668 669 COMPtr<IWebPreferences> preferences; 670 if (FAILED(webView->preferences(&preferences))) 671 return; 672 673 COMPtr<IWebPreferencesPrivate> prefsPrivate(Query, preferences); 674 if (!prefsPrivate) 675 return; 676 677 BSTR keyBSTR = JSStringCopyBSTR(key); 678 BSTR flagBSTR = JSStringCopyBSTR(flag); 679 prefsPrivate->overridePreference(keyBSTR, flagBSTR); 680 SysFreeString(keyBSTR); 681 SysFreeString(flagBSTR); 682 }
Note: See TracChangeset
for help on using the changeset viewer.