[Webkit-unassigned] [Bug 99344] New: WebKit should be prepared for conflicting versions of shipped libraries

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Oct 15 11:35:48 PDT 2012


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

           Summary: WebKit should be prepared for conflicting versions of
                    shipped libraries
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: PC
        OS/Version: Windows 7
            Status: UNCONFIRMED
          Severity: Blocker
          Priority: P2
         Component: Platform
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: grant_gayed at ca.ibm.com


As an embeddable component, WebKit should be robust to conflicts between its shipped libraries and similar libraries from other sources.  The Eclipse SWT Browser has encountered two cases of its WebKit embedding failing due to conflicts between shipped libraries:

- Oracle's latest Java runtimes now ship libxml.dll, and it's a different version than the libxml.dll that's shipped with WebKit.  As a result, the Browser's attempt to embed WebKit now fails on Windows because the libxml.dll from the Java runtime is loaded instead of the libxml.dll from WebKit when resolving the dependencies of WebKit.dll (Windows' .dll search order favors libraries in the application directory).

- SWT's Browser can also embed Gecko.  However attempts to create WebKit- and Gecko-based Browser instances in the same process fail due to a conflict between their shipped SQLite3 libraries (also happens on non-Windows platforms).

These cannot be worked around properly, as they both boil down to identically-named libraries with different content being loaded.  However there are changes that components like WebKit could make in order to be prepared for such cases:

1. Rename shipped libraries from their common names (eg.- libxml2.dll --> webkit-libxml2.dll).  Q: legally ok?

2. Statically link more in order to eliminate the need for separately-resolvable libraries.

3. (Windows) Bundling the dependent libraries as private assemblies rather than plain-old dll's should ensure that the expected version of a library is indeed the one that is loaded and referenced.  Also, with assemblies I believe that multiple versions of a library can co-exist in a process because the dependencies are stated in terms of the assembly name/version rather than library name.

Report is marked as a blocker because the Eclipse SWT Browser's embedding of WebKit on Windows is broken with the latest Oracle JRE, which is becoming the typical installed Java runtime version.

-- 
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