JavaScriptCore:
authorthatcher <thatcher@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 15 Aug 2006 23:51:04 +0000 (23:51 +0000)
committerthatcher <thatcher@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 15 Aug 2006 23:51:04 +0000 (23:51 +0000)
commitd4f135283d1ff4cb61c6b358eda55ce81865d3c6
tree48860d2056b1b52537b271b684705248993e5082
parentcdc60e41b548e53f58670b62d53a07ad3191cefa
JavaScriptCore:

        Reviewed by Tim H.

        Build fix:  DWARF and -gfull are incompatible with symbol separation.

        * JavaScriptCore.xcodeproj/project.pbxproj:

JavaScriptGlue:

        Reviewed by Tim H.

        Build fix:  DWARF and -gfull are incompatible with symbol separation.

        * JavaScriptGlue.xcodeproj/project.pbxproj:

WebCore:

        Reviewed by Tim H.

        Build fix:  DWARF and -gfull are incompatible with symbol separation.

        * WebCore.xcodeproj/project.pbxproj:

WebKit:

        Reviewed by Darin Adler.

        <http://bugzilla.opendarwin.org/show_bug.cgi?id=8980>
        ASSERTION FAILED: !isLoaded (WebKit/WebKit/Plugins/WebBasePluginPackage.m:228 -[WebBasePluginPackage dealloc])

        <rdar://problem/4526052> intermittent assertion failure in -[WebBasePluginPackage dealloc] running layout tests (8980)

        * Plugins/WebPluginDatabase.h:
        * Plugins/WebPluginDatabase.m:
        (+[WebPluginDatabase installedPlugins]):
        Observe NSApplicationWillTerminateNotification so we can unload plug-ins on quit.
        (-[WebPluginDatabase plugins]):
        'plugins' is now a dictionary.
        (-[WebPluginDatabase close]):
        Call new -_removePlugin: method.
        (-[WebPluginDatabase refresh]):
        Moved parts of this method out into other methods: -_addPlugin:, -_removePlugin:, and -_scanForNewPlugins.
        (-[WebPluginDatabase _plugInPaths]):
        No changes; just moved in file.
        (-[WebPluginDatabase _addPlugin:]):
        New method.  Refactored from -refresh.  Adds a plug-in to the database.
        (-[WebPluginDatabase _removePlugin:]):
        New method.  Refactored from -refresh.  Remove a plug-in from the database.
        (-[WebPluginDatabase _scanForNewPlugins]):
        New method.  Refactored from -refresh.  Returns the list of plug-in packages on disk.
        (-[WebPluginDatabase _applicationWillTerminate]):
        New method.  Called when the application terminates.  Closes the plug-in database so that all plug-ins are
        removed from the DB (and unloaded if necessary).

        * Plugins/WebBasePluginPackage.h:
        * Plugins/WebBasePluginPackage.m:
        (-[WebBasePluginPackage initWithPath:]):
        Try to create the NSBundle first, so if the file is not a valid bundle we bail out early.  This
        avoids some stat()s and allocations during the plug-in refresh process.
        (-[WebBasePluginPackage isLoaded]):
        Removed.
        (-[WebBasePluginPackage load]):
        Base class for plug-in packages now always loads "successfully".
        (-[WebBasePluginPackage dealloc]):
        Removed this assertion.  The base plug-in package class has no concept of
        "unloading".
        (-[WebBasePluginPackage finalize]):
        ditto.
        (-[WebBasePluginPackage wasRemovedFromPluginDatabase:]):
        Moved code to unload plug-in package to WebNetscapePluginPackage.  Not all plug-in
        packages can be "unloaded".

        * Plugins/WebNetscapePluginPackage.h:
        * Plugins/WebNetscapePluginPackage.m:
        (-[WebNetscapePluginPackage _unloadWithShutdown:]):
        Combined old -unload and -unloadWithoutShutdown methods into this new one.
        (-[WebNetscapePluginPackage initWithPath:]):
        Call new unload method.
        (-[WebNetscapePluginPackage load]):
        ditto
        (-[WebNetscapePluginPackage wasRemovedFromPluginDatabase:]):
        ditto
        (-[WebNetscapePluginPackage open]):
        New method.  Called when a plug-in instance starts running.
        (-[WebNetscapePluginPackage close]):
        New method.  Called when a plug-in instance stops running.  When all plug-in instances
        close the plug-in package, and the plug-in package is removed from the database, the plug-in
        is unloaded.

        * Plugins/WebPluginPackage.m:
        (-[WebPluginPackage initWithPath:]):
        (-[WebPluginPackage load]):
        Made this a bit more efficient by checking if the bundle is already loaded.
        (-[WebBasePluginPackage unload]):
        Removed.
        (-[WebBasePluginPackage isLoaded]):
        Removed.

        * Plugins/WebBaseNetscapePluginView.m:
        (-[WebBaseNetscapePluginView start]):
        Open the plug-in package so it remains loaded while this instance uses it.
        (-[WebBaseNetscapePluginView stop]):
        Close the plug-in package when the plug-in instance is stopped.

        * Plugins/WebBaseNetscapePluginStream.m:
        (-[WebBaseNetscapePluginStream startStreamResponseURL:expectedContentLength:lastModifiedDate:MIMEType:]):
        This check is not necessary.  Netscape plug-in packages are never unloaded until all their instances have
        been stopped, and a Netscape plug-in instance will stop its streams when it is stopped.
        (-[WebBaseNetscapePluginStream _destroyStream]):
        ditto
        (-[WebBaseNetscapePluginStream finishedLoadingWithData:]):
        ditto
        (-[WebBaseNetscapePluginStream _deliverData]):
        ditto

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@15897 268f45cc-cd09-0410-ab3c-d52691b4dbfc
JavaScriptCore/ChangeLog
JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
JavaScriptGlue/ChangeLog
JavaScriptGlue/JavaScriptGlue.xcodeproj/project.pbxproj
WebCore/ChangeLog
WebCore/WebCore.xcodeproj/project.pbxproj
WebKit/ChangeLog
WebKit/WebKit.xcodeproj/project.pbxproj