import changes from `dev' branch of rmottola/Arctic-Fox:

- Bug 1051146 - Part 1: Introduce the B2G specific build flags, initially enabled. r=smaug (341c7565d)
-  Bug 1051146 - art 2: Introduce the new Pocketsphinx and Sphinxbase code with no build integration. r=smaug, r=gerv (f29eafa78)
- Bug 1051146 - Part 3: Introduce build system changes for the new Pocketsphinx and Sphinxbase code. r=smaug, r=gps (06c60429d)
- Bug 1051146 - Part 4: Introduce build system changes for the MOZ_WEBSPEECH_TEST_BACKEND flag. r=smaug, r=gps (16195e66e)
- Bug 1051146 - Part 5: Introduce new English model with no build integration. r=smaug (24996aa9c)
- Bug 1051146 - Part 6: Introduce build integration of new English model. r=smaug, r=gps (b718751a9)
- Bug 1051146 - Part 7: Introduce update scripts for Pocketsphinx and Sphinxbase code. r=smaug (5a85c7ed2)
- Bug 1051148 - Part 1: Patch that introduces WebSpeech API implementation. r=smaug (d18e5d86e)
- Bug 1171249 - Modified configure.in so MOZ_WEBSPEECH undefined implies both MOZ_WEBSPEECH_TEST_BACKEND and MOZ_WEBSPEECH_MODELS are undefined. r=gps (47d13fc61)
- Bug 1051148 - Part 2: Patch that turns off the WebSpeech API implementation using flags. r=gps (8b2ceef89)
- Bug 1051146 - Disable Pocketsphinx building on Windows due to bustage. r=gps (48f4a1c27)
- Bug 1204703 - Make nsContentSecurityManager scriptable (r=sicking) (fb514951a)
- Bug 1215745: Safer implemetation of nsJarChannel::AsyncOpen2. r=ckerschb (3ad0270b4)
- partial of Bug 1178892 - Split the profiler into Core & Gecko files and break apart monolithic headers. r=mstange (eda571469)
- Bug 1213407 - PluginModuleContentParent should delete its Transport. r=billm (153a54404)
- Bug 1169945 - Remove unused plugins.enumerable_names whitelist. r=bsmedberg (52126cbd8)
- Bug 1160166 - Disabled plugin meta information often isn't available to content processes. r=jimm (d63331192)
- Bug 1165981 - Only allow flash as a plugin on Windows 64-bit builds; r=bsmedberg (bfc073186)
- missing bit of 1164543 (5ef55bc55)
- Bug 1178963 part 1. Use nsIPluginTagInternal instead of nsPluginTag in cases where it may be nsFakePluginTag. r=peterv (f8702aead)
- Bug 1200484 (part 1) - Expose the column number in JS::DescribeScriptedCaller(). r=luke. (85cf65a1c)
- Bug 1200484 (part 2) - Use JS column numbers in ReportWrapperDenial(). r=mrbkap. (1de0e6331)
- Bug 1200484 (part 3) - Use JS column numbers in WebSocket.cpp. r=baku. (3febdd8bc)
- Bug 1200484 (part 4) - Expose the column number in nsJSUtils::GetCallingLocation(). r=mrbkap. (479ae5e2a)
- Bug 1200484 (part 5) - Use JS column numbers in XPCNativeInterface::NewInstance(). r=mrbkap. (63e5e4e41)
- Bug 1200484 (part 6) - Use JS column numbers in ContentParent::OnChannelError(). r=billm. (4c84ef09d)
- Bug 1139718 - Warning when sending MM messages that include XPCOM data (r=smaug) (d50774823)
- Bug 1200484 (part 7) - Use JS column numbers in GetParamsForMessage() (bf19fc4cb)
- Bug 1200484 (part 8) - Use JS column numbers in EventSource. r=khuey. (64374ed83)
- Bug 1200484 (part 9) - Use JS column numbers in nsContentUtils::ReportToConsoleNonLocalized. r=khuey. (4d81c5f4f)
- Bug 1200484 (part 10) - Use JS column numbers in indexedDB. r=khuey. (64eec5da6)
- Bug 1200484 (part 11) - Set source location when initializing an nsJSScriptTimeoutHandler from a Function. r=peterv. (f135b3a2c)
- Bug 1200484 (part 12) - Use JS column numbers in nsJSTimeoutHandler. r=peterv. (8ec21dc04)
- Bug 1163664 - Don't check for plugin blocklist state on Android. r=jimm, r=jchen (14b8f3e57)
- Bug 1178963 part 2. Implement nsFakePluginTag to represent a non-NPAPI "plugin" that is actually implemented in JavaScript. r=peterv (ba11d6de0)
- Bug 1178896 - Add support for determining if a plugin is OOP to nsIPluginHost. r=aklotz (e8689641f)
- Bug 1178963 part 3. Make nsPluginHost aware of fake plugins. r=peterv (a2a9f8cb3)
This commit is contained in:
2021-11-01 11:54:37 +08:00
parent 45e1308fed
commit ee118c4b83
326 changed files with 347068 additions and 1162 deletions
+18 -32
View File
@@ -9,11 +9,13 @@
#include "mozilla/dom/MimeTypeArrayBinding.h"
#include "mozilla/dom/MimeTypeBinding.h"
#include "nsIDOMNavigator.h"
#include "nsPIDOMWindow.h"
#include "nsPluginArray.h"
#include "nsIMIMEService.h"
#include "nsIMIMEInfo.h"
#include "Navigator.h"
#include "nsServiceManagerUtils.h"
#include "nsPluginTags.h"
using namespace mozilla;
using namespace mozilla::dom;
@@ -27,8 +29,7 @@ NS_INTERFACE_MAP_END
NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(nsMimeTypeArray,
mWindow,
mMimeTypes,
mHiddenMimeTypes)
mMimeTypes)
nsMimeTypeArray::nsMimeTypeArray(nsPIDOMWindow* aWindow)
: mWindow(aWindow)
@@ -49,7 +50,6 @@ void
nsMimeTypeArray::Refresh()
{
mMimeTypes.Clear();
mHiddenMimeTypes.Clear();
}
nsPIDOMWindow*
@@ -114,10 +114,6 @@ nsMimeTypeArray::NamedGetter(const nsAString& aName, bool &aFound)
ToLowerCase(lowerName);
nsMimeType* mimeType = FindMimeType(mMimeTypes, lowerName);
if (!mimeType) {
mimeType = FindMimeType(mHiddenMimeTypes, lowerName);
}
if (mimeType) {
aFound = true;
return mimeType;
@@ -164,11 +160,8 @@ nsMimeTypeArray::NamedGetter(const nsAString& aName, bool &aFound)
// If we got here, we support this type! Say so.
aFound = true;
// We don't want navigator.mimeTypes enumeration to expose MIME types with
// application handlers, so add them to the list of hidden MIME types.
nsMimeType *mt = new nsMimeType(mWindow, lowerName);
mHiddenMimeTypes.AppendElement(mt);
mMimeTypes.AppendElement(mt);
return mt;
}
@@ -199,7 +192,7 @@ nsMimeTypeArray::GetSupportedNames(unsigned, nsTArray< nsString >& aRetval)
void
nsMimeTypeArray::EnsurePluginMimeTypes()
{
if (!mMimeTypes.IsEmpty() || !mHiddenMimeTypes.IsEmpty() || !mWindow) {
if (!mMimeTypes.IsEmpty() || !mWindow) {
return;
}
@@ -217,7 +210,7 @@ nsMimeTypeArray::EnsurePluginMimeTypes()
return;
}
pluginArray->GetMimeTypes(mMimeTypes, mHiddenMimeTypes);
pluginArray->GetMimeTypes(mMimeTypes);
}
NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(nsMimeType, AddRef)
@@ -225,19 +218,22 @@ NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(nsMimeType, Release)
NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(nsMimeType, mWindow, mPluginElement)
nsMimeType::nsMimeType(nsPIDOMWindow* aWindow, nsPluginElement* aPluginElement,
uint32_t aPluginTagMimeIndex, const nsAString& aType)
nsMimeType::nsMimeType(nsPIDOMWindow* aWindow,
nsPluginElement* aPluginElement,
const nsAString& aType,
const nsAString& aDescription,
const nsAString& aExtension)
: mWindow(aWindow),
mPluginElement(aPluginElement),
mPluginTagMimeIndex(aPluginTagMimeIndex),
mType(aType)
mType(aType),
mDescription(aDescription),
mExtension(aExtension)
{
}
nsMimeType::nsMimeType(nsPIDOMWindow* aWindow, const nsAString& aType)
: mWindow(aWindow),
mPluginElement(nullptr),
mPluginTagMimeIndex(0),
mType(aType)
{
}
@@ -260,14 +256,9 @@ nsMimeType::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
}
void
nsMimeType::GetDescription(nsString& retval) const
nsMimeType::GetDescription(nsString& aRetval) const
{
retval.Truncate();
if (mPluginElement) {
CopyUTF8toUTF16(mPluginElement->PluginTag()->
mMimeDescriptions[mPluginTagMimeIndex], retval);
}
aRetval = mDescription;
}
nsPluginElement*
@@ -280,14 +271,9 @@ nsMimeType::GetEnabledPlugin() const
}
void
nsMimeType::GetSuffixes(nsString& retval) const
nsMimeType::GetSuffixes(nsString& aRetval) const
{
retval.Truncate();
if (mPluginElement) {
CopyUTF8toUTF16(mPluginElement->PluginTag()->
mExtensions[mPluginTagMimeIndex], retval);
}
aRetval = mExtension;
}
void