Skip to content
  • cblu's avatar
    WebCore: · c7670d69
    cblu authored
    	Fixed: 3052731 - qt file complains about lack of active-x handler
    	Fixed: 3025872 - Black square where lion should be on mgm.com
    
    	3052731: The page has a syntax error. Notice the missing ">"? He treat this as an OBJECT without an EMBED. khtml actually has a fallback for this. They check the classid and map a mime type to it. They currently map for  realaudio and flash, but not quicktime. I added a quicktime mapping as well as a mapping for shockwave.
    
    	3025872: khtml was unable to parse the EMBED tag within the OBJECT tag (similar to 3052731). When this happens, it looks at the classid and maps it to a mime type. This part was successful because it has a classid->mime type mapping for flash. The strange thing was that it was setting the main URL of the plug-in to "dummy". The code has this comment:
    
    	url = "dummy"; // Not needed, but KHTMLPart aborts the request if empty
    
    	It does this even if the url is valid. It even handles the invalid url case before even calling the part. The fix is to disable this line of code.
    
            Reviewed by trey.
    
            * khtml/rendering/render_frames.cpp:
            (RenderPartObject::updateWidget):
    
    WebKit:
    
    	Fixed: 2862385 - need to pass browser's user agent and version to plug-ins
    	Added some more error checking to the plug-in code
    
            Reviewed by trey.
    
            * Plugins.subproj/WebBaseNetscapePluginView.h:
            * Plugins.subproj/WebBaseNetscapePluginView.m:
            (+[WebBaseNetscapePluginView setCurrentPluginView:]): new, sets a global variable for the current plug-in
            (+[WebBaseNetscapePluginView currentPluginView]): new, returns the current plug-in
            (-[WebBaseNetscapePluginView start]): check if NPP_New fails, return NO if it does, set the current plug-in view. Currently, this is the only place we need to do this.
            (-[WebBaseNetscapePluginView userAgent]): made instance-specific because it depends on the plug-in view's WebController
            * Plugins.subproj/WebBaseNetscapePluginViewPrivate.h:
            * Plugins.subproj/WebNetscapePluginEmbeddedView.m:
            (-[WebNetscapePluginEmbeddedView viewDidMoveToWindow]): don't start the stream is start fails
            * Plugins.subproj/npapi.m:
            (NPN_MemAlloc): tweak
            (NPN_RequestRead): tweak
            (pluginViewForInstance): returns the instance's plug-in view if it has one, if not, return the current plug-in view
            (NPN_GetURLNotify): get the instance from pluginViewForInstance
            (NPN_GetURL):
            (NPN_PostURLNotify):
            (NPN_PostURL):
            (NPN_NewStream):
            (NPN_Write):
            (NPN_DestroyStream):
            (NPN_UserAgent):
            (NPN_Status):
            (NPN_InvalidateRect):
            (NPN_InvalidateRegion):
            (NPN_ForceRedraw):
            (NPN_GetValue):
            (NPN_SetValue):
            (NPN_GetJavaEnv):
            (NPN_GetJavaPeer):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3123 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    c7670d69