[Webkit-unassigned] [Bug 11622] New: Quicktime plugin getting returned for flash content

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Nov 16 16:40:55 PST 2006


http://bugs.webkit.org/show_bug.cgi?id=11622

           Summary: Quicktime plugin getting returned for flash content
           Product: WebKit
           Version: 420+ (nightly)
          Platform: Macintosh
        OS/Version: Mac OS X 10.4
            Status: UNCONFIRMED
          Severity: Blocker
          Priority: P1
         Component: New Bugs
        AssignedTo: webkit-unassigned at opendarwin.org
        ReportedBy: steve at cocoatech.com


WebPluginDatabase.m 

WebKit randomly returns Quicktime plugin for flash content (could effect any
plugin, but flash for sure)

Depending on which order the plugins are found, Quicktime can be returned
instead of Flash Player.

See the // ## lines below for the additions I added.  The problem is if
Quicktime is found first, flash isn't used.

- (WebBasePluginPackage *)pluginForKey:(NSString *)key
withEnumeratorSelector:(SEL)enumeratorSelector
{
    WebBasePluginPackage *plugin, *CFMPlugin=nil, *machoPlugin=nil,
*webPlugin=nil;
    NSEnumerator *pluginEnumerator = [plugins objectEnumerator];
    key = [key lowercaseString];

    while ((plugin = [pluginEnumerator nextObject]) != nil) {
        if ([[[plugin performSelector:enumeratorSelector] allObjects]
containsObject:key]) {
            if ([plugin isKindOfClass:[WebPluginPackage class]]) {

                // ### added the || [webPlugin isQuickTimePlugIn]
                if (!webPlugin || [webPlugin isQuickTimePlugIn])
                    webPlugin = plugin;

            } else if([plugin isKindOfClass:[WebNetscapePluginPackage class]])
{
                WebExecutableType executableType = [(WebNetscapePluginPackage
*)plugin executableType];
                if (executableType == WebCFMExecutableType) {

                    // ### added the || [CFMPlugin isQuickTimePlugIn]
                    if (!CFMPlugin || [CFMPlugin isQuickTimePlugIn])
                        CFMPlugin = plugin;

                } else if (executableType == WebMachOExecutableType) {

                    // ### added the || [machoPlugin isQuickTimePlugIn]
                    if (!machoPlugin || [machoPlugin isQuickTimePlugIn])
                        machoPlugin = plugin;

                } else {
                    ASSERT_NOT_REACHED();
                }
            } else {
                ASSERT_NOT_REACHED();
            }
        }
    }

    // Allow other plug-ins to win over QT because if the user has installed a
plug-in that can handle a type
    // that the QT plug-in can handle, they probably intended to override QT.
    if (webPlugin && ![webPlugin isQuickTimePlugIn])
        return webPlugin;
    else if (machoPlugin && ![machoPlugin isQuickTimePlugIn])
        return machoPlugin;
    else if (CFMPlugin && ![CFMPlugin isQuickTimePlugIn])
        return CFMPlugin;
    else if (webPlugin)
        return webPlugin;
    else if (machoPlugin)
        return machoPlugin;
    else if (CFMPlugin)
        return CFMPlugin;
    return nil;
}


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



More information about the webkit-unassigned mailing list