Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
There is no way GLM-5.2 would have been able to backport WebKit.
Are you sure 🙂
1781474548225.png
 
Are you sure 🙂
Yes, I trust my experience actually working with these things much more than synthetic benchmarks which the providers can game. Admittedly I haven't used GLM 5.2 since it came out yesterday, but my experience with GLM 5.1 is that it's far worse than the benchmarks would suggest.

I do need to try out the OpenAI models again at some point, they used to be clearly worse than Claude, but I've heard GPT-5.5 is much better. But I'm not going to do that for WebKit, because the consensus on Hacker News is that Opus 4.8 is still better at long-running tasks, and this is basically the longest task.

Edit: It's also text only, which means it can't test Safari.
 
Last edited:
Okay, I think this is far enough where I'm comfortable letting other people play around with it, if they want to. Everything gets copied into the associated folders in /System/Library. Please remember:
  1. You must make a Time Machine backup first!
  2. AquaProxy is effectively required.
  3. You must use Safari 7, not Safari 9.
    • If you don't know where to get Safari 7, there's a working copy in the Applications folder of the Mavericks installer DMG which should work. (Just copy it out, no special extraction necessary.)
    • ^ However, if you previously installed Safari 9, then you will also have a Safari 9-specific WebKit framework on your system under StagedFrameworks. It is theoretically possible this may interfere with something.
    • Just to be clear, if you've never installed a Safari update, please keep it that way. It makes things simpler and matches my own testing VM.
  4. This will update the web views used in (almost) every app, not just Safari!
    • Accordingly, it also has the potential to cause issues in any app which uses a web view.
    • The web views in 32 bit apps will be unchanged. This is intentional; modern WebKit is 64-bit only.
  5. I do not recommend using this as a daily driver. For the moment, it's a fun toy. Hopefully it can eventually become more than that.
Crashes or bugs which can be consistently reproduced every time are very helpful—I will feed those directly back to the agent. Feel free to test beyond only Safari. This includes small polish-level details; I care a lot about those.

Transient problems which cannot be consistently reproduced are, frankly, not very helpful at this time. However, I will personally enjoy hearing about your experience.

Known issues:
  • You cannot scroll in Reader Mode.
  • Web Inspector toolbar looks wrong.
  • If you open the App Store app and right click, you will see a context menu which should not exist.

 
Last edited:
Safari 7.0.6 immediately crashes, running the Safari binary in terminal (.app/Contents/MacOS/Safari) outputs
Code:
dyld: Symbol not found: _OBJC_CLASS_$_WKBrowsingContextController
  Referenced from: /System/Library/StagedFrameworks/Safari/Safari.framework/Versions/A/Safari
  Expected in: /System/Library/Frameworks/WebKit.framework/Versions/A/WebKit
 in /System/Library/StagedFrameworks/Safari/Safari.framework/Versions/A/Safari
Trace/BPT trap: 5
as its only fatal message.
I have previously installed Safari 9.
 
Safari 7.0.6 immediately crashes, running the Safari binary in terminal (.app/Contents/MacOS/Safari) outputs
Code:
dyld: Symbol not found: _OBJC_CLASS_$_WKBrowsingContextController
  Referenced from: /System/Library/StagedFrameworks/Safari/Safari.framework/Versions/A/Safari
  Expected in: /System/Library/Frameworks/WebKit.framework/Versions/A/WebKit
 in /System/Library/StagedFrameworks/Safari/Safari.framework/Versions/A/Safari
Trace/BPT trap: 5
as its only fatal message.
I have previously installed Safari 9.
Okay, that's got to be the problem: StagedFrameworks is the updated Safari 9 WebKit. I guess Safari 7 also looks there if present? I don't really understand this mechanism and I have not experimented with it yet.

Depending on how much you're willing to mess with this system (make sure you're in a position to undo it), you could try deleting StagedFrameworks, or you could try replacing the WebKit in StagedFrameworks too.

Eventually, if this backport becomes good enough for real use, I'll need to make a full Safari 9 downgrade script.
 
Last edited:
Mail crashes on startup with the fatal error:
Code:
dyld: Symbol not found: _WKPageRunJavaScriptInMainFrame_b
  Referenced from: /System/Library/PrivateFrameworks/MailUI.framework/Versions/A/MailUI
  Expected in: /System/Library/PrivateFrameworks/WebKit2.framework/Versions/A/WebKit2
 in /System/Library/PrivateFrameworks/MailUI.framework/Versions/A/MailUI
Trace/BPT trap: 5
If it helps, I had Mail open before WebKit installation on a message that may have included JavaScript.
 
  • Like
Reactions: Wowfunhappy
Dash (downloaded from mavericksforever.com, version 3.4.4) crashes with:

Code:
objc[5603]: Class LSDatabaseContext is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class NSPresentationIntent is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class SecKeyProxy is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class UTType is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class NSTouchBar is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class NSCandidateListTouchBarItem is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class NSColorPickerTouchBarItem is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class NSPopoverTouchBarItem is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class NSTextTouchBarItemController is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class NSFilePromiseReceiver is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class LSAppLink is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class _LSOpenConfiguration is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class WebSpeechRecognizerTask is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class _NSScrollingMomentumCalculator is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class _NSScrollingPredominantAxisFilter is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class WebFullScreenController is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class WebViewVisualIdentificationOverlay is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class LSBundleProxy is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class WKCaptionStyleMenuController is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class WKDownloadProgress is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class WKTextExtractionContainerItem is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class WKTextExtractionContentEditableItem is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class WKTextExtractionEditable is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class WKTextExtractionFormItem is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class WKTextExtractionIFrameItem is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class WKTextExtractionImageItem is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class WKTextExtractionLink is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class WKTextExtractionLinkItem is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class WKTextExtractionScrollableItem is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class WKTextExtractionSelectItem is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class WKTextExtractionTextFormControlItem is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class WKTextExtractionTextItem is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class WebAVPlayerLayer is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class _NSHSTSStorage is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class _NSHTTPAlternativeServicesFilter is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class _NSHTTPAlternativeServicesStorage is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class _WKTextExtractionInteractionResult is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class _WKTextExtractionResult is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class _WKTextManipulationItem is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class _WKTextPreview is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class _WKWarningView is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class _WKWebPushDaemonConnection is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class _WKWebPushMessage is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[5603]: Class _WKWebPushSubscriptionData is implemented in both /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore and /System/Library/PrivateFrameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
2026-06-18 23:22:14.173 Dash[5603:507] Invalid color System, linkColor (warning given only once)
2026-06-18 23:22:14.745 Dash[5603:507] Unknown Safari version encountered: 12602.4.8. Safari was most likely updated. Check user agent and update it here too.
2026-06-18 23:22:14.745 Dash[5603:507] Unknown Safari short version encountered: 10.0.3. Safari was most likely updated. Check user agent and update it here too.
2026-06-18 23:22:14.902 Dash[5603:507] -[DHWindowController setTouchBar:]: unrecognized selector sent to instance 0x7fe08c82e3d0
2026-06-18 23:22:14.903 Dash[5603:507] -[DHWindowController setTouchBar:]: unrecognized selector sent to instance 0x7fe08c82e3d0
2026-06-18 23:22:14.906 Dash[5603:507] (
    0   CoreFoundation                      0x00007fff8409325c __exceptionPreprocess + 172
    1   libobjc.A.dylib                     0x00007fff898c7e75 objc_exception_throw + 43
    2   CoreFoundation                      0x00007fff8409612d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
    3   CoreFoundation                      0x00007fff83ff1272 ___forwarding___ + 1010
    4   CoreFoundation                      0x00007fff83ff0df8 _CF_forwarding_prep_0 + 120
    5   Dash                                0x00000001012d1560 Dash + 1181024
    6   Dash                                0x00000001012d1fb8 Dash + 1183672
    7   Dash                                0x00000001012cf8c9 Dash + 1173705
    8   Dash                                0x00000001012cf599 Dash + 1172889
    9   Dash                                0x00000001012dc08d Dash + 1224845
    10  Dash                                0x00000001012a21e0 Dash + 987616
    11  Dash                                0x00000001012a1f5f Dash + 986975
    12  CoreFoundation                      0x00007fff83fb3309 -[NSSet makeObjectsPerformSelector:] + 201
    13  AppKit                              0x00007fff88bcdafd -[NSIBObjectData nibInstantiateWithOwner:topLevelObjects:] + 1157
    14  AppKit                              0x00007fff88bc25ce loadNib + 327
    15  AppKit                              0x00007fff88bc1b6c +[NSBundle(NSNibLoading) _loadNibFile:nameTable:withZone:ownerBundle:] + 288
    16  AppKit                              0x00007fff88bc195c -[NSBundle(NSNibLoading) loadNibNamed:owner:topLevelObjects:] + 197
    17  AppKit                              0x00007fff88bc174b +[NSBundle(NSNibLoading) loadNibNamed:owner:] + 357
    18  Dash                                0x00000001011bf71d Dash + 59165
    19  Dash                                0x00000001011b3ef2 Dash + 12018
    20  CoreFoundation                      0x00007fff84061e0c __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12
    21  CoreFoundation                      0x00007fff83f5582d _CFXNotificationPost + 2893
    22  Foundation                          0x00007fff8a8cfdda -[NSNotificationCenter postNotificationName:object:userInfo:] + 68
    23  AppKit                              0x00007fff88bd2cde -[NSApplication finishLaunching] + 440
    24  AppKit                              0x00007fff88bd27f3 -[NSApplication run] + 128
    25  AppKit                              0x00007fff88bbd783 NSApplicationMain + 940
    26  libdyld.dylib                       0x00007fff8290d5fd start + 1
)
Abort trap: 6
 
@_sudo11 Thanks for all the testing, very helpful! A heads up that I am very unlikely to have any updates before next Tuesday at the earliest because I'm approaching my usage limit for the week.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.