RESOLVED FIXED 91302
[Mac] Do not try to update the cache model for every WebPreferences change
https://bugs.webkit.org/show_bug.cgi?id=91302
Summary [Mac] Do not try to update the cache model for every WebPreferences change
Benjamin Poulain
Reported 2012-07-13 17:29:33 PDT
Try lazier updates.
Attachments
Patch (15.06 KB, patch)
2012-07-13 17:42 PDT, Benjamin Poulain
no flags
Patch (15.06 KB, patch)
2012-07-13 18:52 PDT, Benjamin Poulain
no flags
Patch (15.30 KB, patch)
2012-07-14 15:08 PDT, Benjamin Poulain
no flags
Benjamin Poulain
Comment 1 2012-07-13 17:42:05 PDT
Benjamin Poulain
Comment 2 2012-07-13 18:52:56 PDT
Joseph Pecoraro
Comment 3 2012-07-13 19:08:58 PDT
Comment on attachment 152398 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=152398&action=review > Tools/TestWebKitAPI/Tests/mac/SetAndUpdateCacheModel.mm:63 > + // On change, the cache model always take the highest value of any preference bound to a WebView. The implementation of _cacheModelChangedNotification will take a higher cache model even if the WebPreferences object that is changing is not bound to a WebView. Weird, but that is legacy behavior. You could update this comment.
Benjamin Poulain
Comment 4 2012-07-14 02:03:36 PDT
Ryosuke Niwa
Comment 5 2012-07-14 03:02:53 PDT
This patch broke builds: /Volumes/Data/slave/snowleopard-release/build/WebKitBuild/WebKit.build/Release/WebKit.build/Objects-normal/x86_64/WebPreferences.o /Volumes/Data/slave/snowleopard-release/build/Source/WebKit/mac/WebView/WebPreferences.mm:226:5:{226:5-226:46}: error: instance method '-_postCacheModelChangedNotification' not found (return type defaults to 'id') [-Werror,3] [self _postCacheModelChangedNotification]; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 error generated.
Ryosuke Niwa
Comment 6 2012-07-14 03:48:15 PDT
Sorry but I'm rolling out this patch since I don't know how to fix this build failure.
WebKit Review Bot
Comment 7 2012-07-14 03:49:06 PDT
Re-opened since this is blocked by 91321
Joseph Pecoraro
Comment 8 2012-07-14 12:11:16 PDT
(In reply to comment #5) > This patch broke builds: > > /Volumes/Data/slave/snowleopard-release/build/WebKitBuild/WebKit.build/Release/WebKit.build/Objects-normal/x86_64/WebPreferences.o > /Volumes/Data/slave/snowleopard-release/build/Source/WebKit/mac/WebView/WebPreferences.mm:226:5:{226:5-226:46}: error: instance method '-_postCacheModelChangedNotification' not found (return type defaults to 'id') [-Werror,3] > [self _postCacheModelChangedNotification]; > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > 1 error generated. My guess is to fix this issue you probably just need to reorder (or forward declare) the method. WebPreferences.mm:226 calls the method which is defined later in the file. Newer compilers just get this right, but in older compilers the order matters.
Benjamin Poulain
Comment 9 2012-07-14 14:06:54 PDT
(In reply to comment #6) > Sorry but I'm rolling out this patch since I don't know how to fix this build failure. Thank you for reverting. I went to bed before the bots went red. (In reply to comment #8) > My guess is to fix this issue you probably just need to reorder (or forward declare) the method. WebPreferences.mm:226 calls the method which is defined later in the file. Newer compilers just get this right, but in older compilers the order matters. Yep, that is why that worked locally. I'll fix that...
Benjamin Poulain
Comment 10 2012-07-14 15:08:33 PDT
Benjamin Poulain
Comment 11 2012-07-14 16:31:22 PDT
Benjamin Poulain
Comment 12 2012-07-14 17:28:36 PDT
Note You need to log in before you can comment on or make changes to this bug.