[Webkit-unassigned] [Bug 32694] WebKitLinkedOnOrAfter() ignores embedded frameworks

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Dec 17 23:17:36 PST 2009


https://bugs.webkit.org/show_bug.cgi?id=32694





--- Comment #4 from opendarwin at lapcatsoftware.com  2009-12-17 23:17:36 PST ---
I believe that something needs to be done, because it's just going to become a
bigger problem over time. You could ship WebKit version 999.9.9, and I could
build a framework against the Mac OS X 10.9 SDK, and WebKit will still think
that the linked version is -1.

Moreover, it seems pretty clear that this was an unanticipated bug. I've
discovered a comment in the file WebKitVersionChecks.h: "A version of -1 is
returned if the main executable did not link against WebKit (should never
happen)." It should never happen, but in fact it does happen all the time, in
shipping applications. That comment is like an assertion without the assert().
;-)

I'm not sure to what extent I'd want explicit opt-in methods. These version
checks are all WebKit-internal backward-compatibility hacks. As a client of the
WebKit framework, I shouldn't need to know the implementation details. I simply
want my code to work as expected: e.g., if I set the WebUIDelegate, then I
expect the webView:contextMenuItemsForElement:defaultMenuItems: callback.

There's no problem with the application-specific, bundle identifier based
checks (as long as the app developer is aware of them). But if it's not
possible for the linked version checks to work correctly in the general case,
then that kind of check should be avoided as much as possible. Don't change the
behavior unless you're going to change the API. API-based checks are far
superior. If an object still implements a deprecated method, then the old
behavior must be assumed, and if an object implements a method that was newly
introduced in a certain WebKit version, then new behavior can be assumed. I
have no objection to 'opting-in' by implementing new API methods, but
philosophically I'd be opposed to opt-in methods that are specifically tailored
for embedded frameworks to implement in order to work around specific internal 
backward-compatibility hacks.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list