mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 855613. Stop exposing nsIDOMMimeType in nsIPluginTag. r=joshmoz@gmail.com
This commit is contained in:
parent
2dbea26139
commit
27fed2a3cd
@ -302,7 +302,7 @@ function initPluginsRow() {
|
||||
let mimeTypes = aTag.getMimeTypes();
|
||||
if (mimeTypes.length < 1)
|
||||
return false;
|
||||
let mimeType = mimeTypes[0].type;
|
||||
let mimeType = mimeTypes[0];
|
||||
return (!aTag.disabled && pluginHost.isPluginClickToPlayForType(mimeType));
|
||||
});
|
||||
|
||||
@ -314,7 +314,7 @@ function initPluginsRow() {
|
||||
|
||||
let permissionEntries = [];
|
||||
for (let plugin of tags) {
|
||||
let mimeType = plugin.getMimeTypes()[0].type;
|
||||
let mimeType = plugin.getMimeTypes()[0];
|
||||
let permString = pluginHost.getPermissionStringForType(mimeType);
|
||||
let pluginName = makeNicePluginName(plugin.name)
|
||||
let permEntry = fillInPluginPermissionTemplate(pluginName, permString);
|
||||
|
@ -4,9 +4,8 @@
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#include "nsISupports.idl"
|
||||
interface nsIDOMMimeType;
|
||||
|
||||
[scriptable, uuid(87b4fcfc-417b-47f6-9c79-dfeb5e5a4840)]
|
||||
[scriptable, uuid(00ea1f72-a57a-49bb-ac57-478902d9228b)]
|
||||
interface nsIPluginTag : nsISupports
|
||||
{
|
||||
// enabledState is stored as one of the following as an integer in prefs,
|
||||
@ -26,5 +25,11 @@ interface nsIPluginTag : nsISupports
|
||||
attribute unsigned long enabledState;
|
||||
|
||||
void getMimeTypes([optional] out unsigned long aCount,
|
||||
[retval, array, size_is(aCount)] out nsIDOMMimeType aResults);
|
||||
[retval, array, size_is(aCount)] out wstring aResults);
|
||||
void getMimeDescriptions([optional] out unsigned long aCount,
|
||||
[retval, array, size_is(aCount)]
|
||||
out wstring aResults);
|
||||
void getExtensions([optional] out unsigned long aCount,
|
||||
[retval, array, size_is(aCount)]
|
||||
out wstring aResults);
|
||||
};
|
||||
|
@ -131,7 +131,8 @@ mVersion(aVersion),
|
||||
mLastModifiedTime(aLastModifiedTime),
|
||||
mNiceFileName()
|
||||
{
|
||||
InitMime(aMimeTypes, aMimeDescriptions, aExtensions, static_cast<uint32_t>(aVariants));
|
||||
InitMime(aMimeTypes, aMimeDescriptions, aExtensions,
|
||||
static_cast<uint32_t>(aVariants));
|
||||
if (!aArgsAreUTF8)
|
||||
EnsureMembersAreUTF8();
|
||||
}
|
||||
@ -431,19 +432,51 @@ nsPluginTag::SetPluginState(PluginState state)
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsPluginTag::GetMimeTypes(uint32_t* aCount, nsIDOMMimeType*** aResults)
|
||||
nsPluginTag::GetMimeTypes(uint32_t* aCount, PRUnichar*** aResults)
|
||||
{
|
||||
uint32_t count = mMimeTypes.Length();
|
||||
*aResults = static_cast<nsIDOMMimeType**>
|
||||
*aResults = static_cast<PRUnichar**>
|
||||
(nsMemory::Alloc(count * sizeof(**aResults)));
|
||||
if (!*aResults)
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
*aCount = count;
|
||||
|
||||
for (uint32_t i = 0; i < count; i++) {
|
||||
nsIDOMMimeType* mimeType = new DOMMimeTypeImpl(this, i);
|
||||
(*aResults)[i] = mimeType;
|
||||
NS_ADDREF((*aResults)[i]);
|
||||
(*aResults)[i] = ToNewUnicode(mMimeTypes[i]);
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsPluginTag::GetMimeDescriptions(uint32_t* aCount, PRUnichar*** aResults)
|
||||
{
|
||||
uint32_t count = mMimeDescriptions.Length();
|
||||
*aResults = static_cast<PRUnichar**>
|
||||
(nsMemory::Alloc(count * sizeof(**aResults)));
|
||||
if (!*aResults)
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
*aCount = count;
|
||||
|
||||
for (uint32_t i = 0; i < count; i++) {
|
||||
(*aResults)[i] = ToNewUnicode(mMimeDescriptions[i]);
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsPluginTag::GetExtensions(uint32_t* aCount, PRUnichar*** aResults)
|
||||
{
|
||||
uint32_t count = mExtensions.Length();
|
||||
*aResults = static_cast<PRUnichar**>
|
||||
(nsMemory::Alloc(count * sizeof(**aResults)));
|
||||
if (!*aResults)
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
*aCount = count;
|
||||
|
||||
for (uint32_t i = 0; i < count; i++) {
|
||||
(*aResults)[i] = ToNewUnicode(mExtensions[i]);
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
|
@ -37,7 +37,7 @@
|
||||
ok(tagTestPlugin, "plugin tags should have Test Plug-in");
|
||||
var mimeType = tagTestPlugin.getMimeTypes()[0];
|
||||
ok(mimeType, "should have a MIME type for Test Plug-in");
|
||||
ok(navigator.mimeTypes[mimeType.type], "navigator.mimeTypes should have an entry for '" + mimeType.type + "'");
|
||||
ok(navigator.mimeTypes[mimeType], "navigator.mimeTypes should have an entry for '" + mimeType + "'");
|
||||
ok(!tagTestPlugin.disabled, "test plugin should not be disabled");
|
||||
|
||||
nextTest = testPart2;
|
||||
@ -46,7 +46,7 @@
|
||||
function testPart2() {
|
||||
var navTestPlugin = navigator.plugins.namedItem("Test Plug-in");
|
||||
ok(!navTestPlugin, "now navigator.plugins should not have Test Plug-in");
|
||||
ok(!navigator.mimeTypes[mimeType.type], "now navigator.mimeTypes should not have an entry for '" + mimeType.type + "'");
|
||||
ok(!navigator.mimeTypes[mimeType], "now navigator.mimeTypes should not have an entry for '" + mimeType + "'");
|
||||
|
||||
nextTest = testPart3;
|
||||
tagTestPlugin.enabledState = Components.interfaces.nsIPluginTag.STATE_ENABLED;
|
||||
@ -54,7 +54,7 @@
|
||||
|
||||
function testPart3() {
|
||||
ok(navTestPlugin, "now navigator.plugins should have Test Plug-in again");
|
||||
ok(navigator.mimeTypes[mimeType.type], "now navigator.mimeTypes should have an entry for '" + mimeType.type + "' again");
|
||||
ok(navigator.mimeTypes[mimeType], "now navigator.mimeTypes should have an entry for '" + mimeType + "' again");
|
||||
obsService.removeObserver(observer, "plugin-info-updated");
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
@ -402,9 +402,19 @@ function PluginWrapper(aId, aName, aDescription, aTags) {
|
||||
|
||||
this.__defineGetter__("pluginMimeTypes", function() {
|
||||
let types = [];
|
||||
for (let tag of aTags)
|
||||
for (let type of tag.getMimeTypes({}))
|
||||
for (let tag of aTags) {
|
||||
let mimeTypes = tag.getMimeTypes({});
|
||||
let mimeDescriptions = tag.getMimeDescriptions({});
|
||||
let extensions = tag.getExtensions({});
|
||||
for (let i = 0; i < mimeTypes.length; i++) {
|
||||
let type = {};
|
||||
type.type = mimeTypes[i];
|
||||
type.description = mimeDescriptions[i];
|
||||
type.suffixes = extensions[i];
|
||||
|
||||
types.push(type);
|
||||
}
|
||||
}
|
||||
return types;
|
||||
});
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user