Closed Bug 249855 Opened 20 years ago Closed 20 years ago

QuickTime/Flash plugin not scriptable after Firefox re-installation (missing xpt files)

Categories

(Firefox :: General, defect, P2)

x86
Windows 2000
defect

Tracking

()

RESOLVED FIXED

People

(Reporter: pec, Assigned: jst)

References

()

Details

(Keywords: fixed-aviary1.0)

Attachments

(1 file)

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7) Gecko/20040626 Firefox/0.9.1 Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7) Gecko/20040626 Firefox/0.9.1 I have been trying to control an embeded quicktime using javascript to start, stop and fetch the frame number of a quicktime movie. Which ever method I try to use to call the quicktime functions I get an error that the function does not exist. I have tried the same source code under IE and that appears to work with at least some of the ways of referencing the movie clip. Example code taken from... http://developer.apple.com/documentation/quicktime/REF/QT41_HTML/QT41WhatsNew-80.html Reproducible: Always Steps to Reproduce: 1. goto http://www.kenvillines.com/archives/000008.html 2. Click on any of the buttons to start, stop rwd the clip. 3. Actual Results: The clip fails to play and I get errors in the javascript console Expected Results: play clip This does not appear to be a platform specific problem as it fails under v9.0 on Redhat 9.0 too. The article http://www.mozillazine.org/articles/article2351.html implies that this has worked for some time.
Can confirm this bug on Windows XP using Firefox 0.9.1 and Mozilla 1.7.1. The error does not occure using Mozilla 1.6 and Netscape 7.1. on the same machine. PlugIns are scriptable there as expected. The problem also effects RealOne Player, so it's probably a general scripting issue. Hopefully it's not a side effect of the new plugin API mozilla announced a few weeks ago!?
This has nothing to do with the recent plugin API changes. In fact, it's not a mozilla code bug, it's a plugin installation/discovery bug. For QuickTime and Flash (not sure about Real) to be scriptable, mozilla needs to know about the scriptable XPCOM interface that the plugin exposes. This is done by the plugin installers placing a .xpt file (nsIQTScriptablePlugin.xpt for QuickTime, can be found in the QuickTime/Plugins directory after installing the QuickTime player, not sure what the exact filename is for Flash). To fix this, the right .xpt files need to be put in the components directory in the Firefox installation directory, and xpt re-registration needs to be triggerd (this can be done by removing the xpti.dat file in the Firefox profile, move the file elsewhere if removing it scares you :-). That'll make the QuickTime player scriptable again, if it doesn't, let us know... And while this isn't strictly speaking a Mozilla bug, it is something we might be able to help with during installation if the QuickTime player is already installed... Leaving bug open to track that.
Assignee: firefox → jst
Status: UNCONFIRMED → NEW
Ever confirmed: true
Summary: Javascript functions to control an emdeded quicktime fails with "is not a function" errors → QuickTime/Flash plugin not scriptable after Firefox re-installation (missing xpt files)
Oh, forgot to mention that xpt file registration only happens at startup, so quit Firefox, remove the file xpti.dat, and start Firefox again and it should pick up any new xpt files.
I tried closing down Firefox, deleting the xpti.dat file and restarting but that didn't seem to make any difference, still got the same errors. So deleted the file again and reinstalled Quicktime. This time it all worked and with all the various ways of referncing the plugin. Marvellous, thank you.
(In reply to comment #2) nppl3260.xpt is the file required by real player one. if copied mozilla 1.6.1 and firefox 0.9.2 can script the plugin. nsIQTScriptablePlugin.xpt also worked on quicktime for me. i agree this isn't a real mozilla bug because it is a plugin installtion issue, but both plugins are offering the .xpt files in their installation directories and mozilla could look for them when installing. also mozilla could try to get them from other mozilla versions if installed. the need to manually copy .xpt files every time when trying a new version while keeping the old would really be annoying. maybe it's possible to extend the error message in the javascript console with a hint that no appropriate .xpt file was found to make this issue easier to debug. an information could also be added to the about:plugins page and plugindoc.mozdev.org.
(In reply to comment #5) > i agree this isn't a real mozilla bug because it is a plugin installtion issue, > but both plugins are offering the .xpt files in their installation directories > and mozilla could look for them when installing. also mozilla could try to get > them from other mozilla versions if installed. the need to manually copy .xpt > files every time when trying a new version while keeping the old would really > be annoying. I fully agree, we should add the smarts to our installers to deal with this.
Flags: blocking-aviary1.0RC1?
Flags: blocking-aviary1.0RC1? → blocking-aviary1.0RC1+
as part of bug #237727, the installer now deletes xpti.dat
jst: good news, Real (for both nsJSRealPlayerPlugin.xpt and nppl3260.xpt) and ViewPoint (for npViewpoint.xpt) seem to be following the convention described here: http://www.mozilla.org/projects/plugins/first-install-problem.html I'm investigating to see if I can make the installer look in the registry and copy the the .xpt files to the components directory. bad news, quicktime doesn't seem to be following that convention.
If done right, it should be safe to copy the latest version of the XPT files from a given plugin vendor into the mozilla components directory since plugin vendors should rev the IID of their scriptable interfaces if they change them, then it doesn't matter if the wrong xpt file ends up being found by mozilla. I don't know that plugin vendors do that, but if we think that's a safe assumption (I think it is, and maybe we could test with a few versions to see if we could find such a case), we could just do that and see how far that gets us. We might even have contacts at Apple to find out about what's safe to do with the Quicktime plugin, and we'll need to find out what the deal is with Flash too.
We'll do this for 1.0, not PR. jst is focused now on autodiscovery. Johnny, if you get to this sooner, please feel free to re-plus for PR.
Flags: blocking-aviary1.0PR-
Flags: blocking-aviary1.0PR+
Flags: blocking-aviary1.0+
Priority: -- → P2
It seems this bug affects Mozilla too. Not Firefox-only issue.
Attachment #162155 - Flags: review?(bugs)
Comment on attachment 162155 [details] [diff] [review] Make the installer copy flash/QuickTime xpt files to the right place. r+a=ben@mozilla.org
Attachment #162155 - Flags: review?(bugs)
Attachment #162155 - Flags: review+
Attachment #162155 - Flags: approval-aviary+
Fixed on trunk and aviary branch.
Status: NEW → RESOLVED
Closed: 20 years ago
Keywords: fixed-aviary1.0
Resolution: --- → FIXED
flash plugin is not scriptable: mozilla/5.0 (windows; u; windows nt 5.1; en-us; rv:1.7.3) gecko/20041026 firefox/1.0rc1
(In reply to comment #15) > flash plugin is not scriptable: > mozilla/5.0 (windows; u; windows nt 5.1; en-us; rv:1.7.3) gecko/20041026 > firefox/1.0rc1 Can you tell me where the flash plugin is installed on your system (set "plugin.expose_full_path" to true in about:config and load about:plugins)? And you installed Firefox using the installer, right?
Shockwave Flash: C:\Program Files\Netscape\Communicator\Program\Plugins\NPSWF32.dll, Shockwave Flash 7.0 r19 flashplayer.xpt: C:\Program Files\Netscape\Netscape7\Plugins\flashplayer.xpt C:\Program Files\Netscape\Netscape71\plugins\flashplayer.xpt C:\Program Files\Netscape\Netscape72\plugins\flashplayer.xpt All of the Netscape versions (7.0, 7.1, 7.2) are scriptable, but Mozilla 1.8a4 & Firefox aren't. Yes, I uninstalled the old Firefox (full directory was deleted), and reinstalled a new one.
Ok, so firefox is picking up the flash player from the Netscape Communicator directory, and but since there's no .xpt file in that directory, we fail to copy it over. I'm confused as to why the xpt file isn't there, in my tests I've seen the xpt file always end up in the Netscape Communicator directory too. I doubt we'll get to doing anything about this any more before 1.0, the fix is obviously for you to install the Flash player once you've installed 1.0 and it should work for you. Not ideal, of course, but it's too late to change much about this now... :-(
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: