Commit Graph

76 Commits

Author SHA1 Message Date
Jeff Gilbert
70a22b2878 Bug 1470325 - s/FooBinding/Foo_Binding/g - r=qdot
MozReview-Commit-ID: JtTcLL5OPF0
2018-06-26 17:05:01 -07:00
Boris Zbarsky
d54406240d Bug 1449631 part 6. Remove nsIDOMEventTarget::DispatchEvent. r=smaug
MozReview-Commit-ID: 8YMgmMwZkAL
2018-04-05 13:42:41 -04:00
Gijs Kruitbosch
2c52d17c20 Bug 1371888 - cache plugin information in pluginreg.dat to avoid sync startup load, r=florian,mossop
This changes the pluginreg.dat format to include the blocklist state.

There is now only the saved blocklist state in a plugin tag instance, rather than
looking it up from in there using the blocklist service, so it was renamed from
mCachedBlocklistState to mBlocklistState. We pass the 'right' state to the plugin
instance when the plugintag is constructed. If we don't have state, we mark it as
unblocked.

mCachedBlocklistStateChanged was never read so it's being removed.

Bug 1439519 adds a 'blocklist-loaded' notification that is fired once the blocklist is loaded.
The plugin host implementation will listen to this in the parent process and update the
blocklist state of all the plugins, and broadcast changes to the child process, just like when
we update the blocklist from the server. We now also avoid re-sending plugin content to the
content processes if the plugin state hasn't changed as a result of the blocklist having been
loaded.

Finally, because new plugins should still get an up-to-date blocklist state, and
telemetry should get up-to-date data about which plugins are and aren't enabled
once we have that data, we ensure that once we've loaded the blocklist async,
we schedule an idle task to parse it and consider it loaded.

All this means that plugin blocklist information could be mistaken between the points where
a new plugin is installed and we first run Firefox with the new plugin, and the point where
we load the blocklist. Given the trade-offs, that size of window (tiny) seems OK, also given
that there's already a much larger window in blocklist updates (which only happen once every 24h).

MozReview-Commit-ID: 1gsojRkUzTw
2018-02-20 16:53:48 +00:00
Boris Zbarsky
fd28401723 Bug 1431846 part 2. Rename nsPIDOMWindowInner::GetNavigator() to Navigator(), since it never returns null. r=mystor
Also have it return a dom::Navigator.

MozReview-Commit-ID: 5thGopGWIk9
2018-01-22 12:59:15 -05:00
Nicholas Nethercote
09493fcbcf Bug 1384835 (part 3, attempt 2) - Remove the Preferences::Get*CString() variants that return nsAdoptingCString. r=froydnj. 2017-07-31 14:28:48 +10:00
Jan Keromnes
318d0bac14 Bug 1376628 - Use nullptr where possible in dom/base/ (clang-tidy: modernize-use-nullptr). r=ehsan 2017-06-27 17:23:00 -04:00
Kirk Steuber
08b3810f6c Bug 1336714 - Added a null check to the GetParentDocument call in nsDocument::ComputeFlashClassification. Change nsDocument::GetAllowPlugins to return result rather than using unnecessary outparam. nsPluginArray::AllowPlugins changed to call the GetAllowPlugins method on the inner window's document rather than on the docshell's mContentViewer's document. r=bsmedberg,bz
MozReview-Commit-ID: Crx9v8OBKKq
2017-02-06 12:47:00 -08:00
Mike Conley
3ae3ae6417 Bug 1312091 - Allow third-party subframes to access navigator.plugins[plugin] if the top-level document has allowed it. r=bsmedberg
MozReview-Commit-ID: 5Ei77KD6qZC
2017-01-23 11:45:44 -05:00
Boris Zbarsky
13f35d56b8 Bug 1324044. Add fingerprinting resistance in GetSupportedNames in nsMimeTypeArray and nsPluginArray. r=qdot 2016-12-17 00:25:52 -05:00
Boris Zbarsky
6f77c61a28 Bug 1324035 part 4. Change nsContentUtils::ResistFingerprinting to just take a dom::CallerType instead of having all its consumers check it. r=qdot 2016-12-17 00:25:52 -05:00
Boris Zbarsky
0ea61b199c Bug 1324035 part 3. Stop using nsContentUtils::ThreadSafeIsCallerChrome in nsPluginArray. r=qdot 2016-12-17 00:25:52 -05:00
Sylvestre Ledru
bce04869ce Bug 1317430 - Avoid a unnecessary copy by passing a const & in dom/base/ r=smaug
MozReview-Commit-ID: A70LY4ekX8E
2016-11-14 23:15:46 +01:00
Andi-Bogdan Postelnicu
c47b0b7b15 Bug 1317241 - Replace default bodies of special member functions with = default in dom/. r=baku
MozReview-Commit-ID: 12AHOhrpaNO
2016-11-14 11:40:37 +02:00
Brad Lassey
0732bffd2c bug 1298083 - Don't hide blocklisted Flash from navigator.plugins r=bsmedberg 2016-10-05 09:46:45 -04:00
Brad Lassey
96de82b958 bug 1294341 - add a fake filename to avoid an assertion that plugin filenames have periods in them r=bsmedberg 2016-09-29 12:37:20 -04:00
Brad Lassey
2f38ceb96c bug 1294341 - pref to control which CTP plugins should be hidden r=bsmedberg 2016-08-26 19:27:43 -04:00
Brad Lassey
9c7995a326 bug 1294341 - put dummy plugin in navigator.plugins when a click to play plugin is hidden and its the only plugin r=bsmedberg 2016-08-24 14:02:02 -04:00
Benjamin Smedberg
44bc16815c Bug 1296004 - Disable bug 1186948 via a new pref, r=mconley
There were no automated tests for this originally, so no test changes are here, but I've verified the correct behavior manually. Definitely need to add some automated tests before this gets flipped on by default again.

MozReview-Commit-ID: FMagXw3WeD9
2016-08-17 15:35:31 -04:00
Brad Lassey
69ebd74b4e bug 1289670 - Show plugin activation icon when navigator.mimetypes is queried r=mrbkap 2016-07-27 17:45:48 -04:00
Brad Lassey
793803fe51 Bug 1186948 - remove plugins that are click-to-play from navigator.plugins (restricted to Flash). r=jst,mconley,mrbkap 2015-08-03 19:24:35 -04:00
Mike Conley
7d5d9ce2da Backed out changeset 776f0bb21587 for causing bug 1284203.
MozReview-Commit-ID: KtsmLahe1hC
2016-07-04 13:38:52 -04:00
Arthur Edelstein
2099904e23 Bug 1281963 - Hide mime types and plugins when resisting fingerprinting. r=blassey 2016-06-30 08:40:00 +02:00
Brad Lassey
db7c4d8a31 bug 1186948 - remove plugins that are click-to-play from navigator.plugins (restricted to Flash) r=jst 2015-08-03 19:24:35 -04:00
Chris Peterson
2ec50b0041 Backed out changeset 7383d49bc7c8 (Flash click-to-play bug 1186948) 2016-06-05 01:03:36 -07:00
Brad Lassey
f0e02af596 bug 1186948 - remove plugins that are click-to-play from navigator.plugins (restricted to Flash) r=jst 2015-08-03 19:24:35 -04:00
Boris Zbarsky
79a0215206 Bug 1270349 part 5. Use LegacyUnenumerableNamedProperties instead of passing flags to GetSupportedNames to determine whether named props on DOM proxies should be reflected in ownPropertyKeys. r=peterv 2016-05-09 22:25:40 -04:00
Boris Zbarsky
15e0a33e25 Bug 1270349 part 4. Use LegacyUnenumerableNamedProperties instead of NameIsEnumerable() calls to determine whether named props on DOM proxies should be enumerable. r=peterv 2016-05-09 22:25:40 -04:00
Kyle Huey
e95edb30a9 Bug 1241764: Replace nsPIDOMWindow with nsPIDOMWindowInner/Outer. r=mrbkap,smaug 2016-01-30 09:05:36 -08:00
Kyle Huey
8f8794e1c7 Bug 1216401: Eviscerate nsIDOMWindow, move still needed methods to nsPIDOMWindow. r=bz 2015-10-26 14:37:32 -07:00
Nathan Froyd
4e6d8f6705 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi
2015-10-18 01:24:48 -04:00
Aryeh Gregor
c1bd5a2ced Bug 1179451 - Part 1: Rewrite some ternary operators as if/else. r=froydnj 2015-08-13 15:22:48 +03:00
John Schoenick
174709e97c Bug 1178963 part 1. Use nsIPluginTagInternal instead of nsPluginTag in cases where it may be nsFakePluginTag. r=peterv 2015-05-20 15:30:05 +02:00
Chris Peterson
5a6ef75460 Bug 1169945 - Remove unused plugins.enumerable_names whitelist. r=bsmedberg 2015-05-29 22:42:23 -07:00
Andrew McCreight
92010d3e4c Bug 1152551, part 2 - Fix mode lines in dom/. r=jst 2015-05-03 15:32:37 -04:00
Boris Zbarsky
3a822d99b4 Bug 1117172 part 3. Change the wrappercached WrapObject methods to allow passing in aGivenProto. r=peterv
The only manual changes here are to BindingUtils.h, BindingUtils.cpp,
Codegen.py, Element.cpp, IDBFileRequest.cpp, IDBObjectStore.cpp,
dom/workers/Navigator.cpp, WorkerPrivate.cpp, DeviceStorageRequestChild.cpp,
Notification.cpp, nsGlobalWindow.cpp, MessagePort.cpp, nsJSEnvironment.cpp,
Sandbox.cpp, XPCConvert.cpp, ExportHelpers.cpp, and DataStoreService.cpp.  The
rest of this diff was generated by running the following commands:

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapObjectInternal\(JSContext *\* *(?:aCx|cx|aContext|aCtx|js))\)/\1, JS::Handle<JSObject*> aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapObjectInternal\((?:aCx|cx|aContext|aCtx|js))\)/\1, aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapNode\(JSContext *\* *(?:aCx|cx|aContext|aCtx|js))\)/\1, JS::Handle<JSObject*> aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapNode\((?:aCx|cx|aContext|aCtx|js))\)/\1, aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapObject\(JSContext *\* *(?:aCx|cx|aContext|aCtx|js))\)/\1, JS::Handle<JSObject*> aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(Binding(?:_workers)?::Wrap\((?:aCx|cx|aContext|aCtx|js), [^,)]+)\)/\1, aGivenProto)/g'
2015-03-19 10:13:33 -04:00
Peter Van der Beken
3467274091 Bug 1078744 - Replace SetIsDOMBinding with SetIsNonDOMBinding, remove nsWrapperCache::SetIsDOMBinding. r=bz. 2014-10-07 11:44:49 +02:00
Chris Peterson
d52b8bfceb Bug 793978 - Alphabetize navigator.plugins and navigator.mimeTypes arrays to reduce fingerprintable entropy. r=bsmedberg 2012-09-18 00:56:14 -07:00
Jon Morton
1e10f70bd4 Bug 1032417: Move nsPluginElement's destructor to the implementation file. r=khuey 2014-06-30 16:00:30 -07:00
Trevor Saunders
c5d0801c5c bug 966059 - add nsIDocShell::GetWindow and GetDocument r=smaug 2014-01-09 21:03:47 -05:00
Birunthan Mohanathas
a993719744 Bug 1001966 - Part 2: Change uses of numbered NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE macro to the variadic variant. r=smaug 2014-04-29 04:57:00 -04:00
Boris Zbarsky
829f8e8296 Bug 843840 part 2. Add a way to ask DOM proxies for only their enumerable property names, and use that in the enumerate hook. r=peterv 2014-04-15 22:58:44 -04:00
Boris Zbarsky
2cf1c7125d Bug 843840 part 1. Add a way to ask DOM proxies with a named getter whether a property is enumerable or not and use that information in getOwnPropertyDescriptor. r=peterv 2014-04-15 22:58:44 -04:00
Boris Zbarsky
b95c359828 Bug 991742 part 8. Remove the "aScope" argument of WebIDL/nsWrapperCache WrapObject() methods. r=bholley
This patch was mostly generated with the following command:

find . -name "*.h" -o -name "*.cpp" | xargs sed -e '/WrapObject(JSContext/ {; N; s/\(WrapObject(JSContext *\* *a\{0,1\}[Cc]x\),\n\{0,1\} *JS::Handle<JSObject\*> a\{0,1\}[sS]cope/\1/ ; }' -i ""

and then reverting the changes that made to
dom/bindings/BindingUtils.h, since those WrapObject methods are not
the ones we're trying to change here, plus a bunch of manual fixups
for cases that this command did not catch (including all the callsites
of WrapObject()).
2014-04-08 18:27:18 -04:00
Boris Zbarsky
ae0180ee85 Bug 991742 part 6. Remove the "aScope" argument of binding Wrap() methods. r=bholley
This patch was mostly generated with this command:

find . -name "*.h" -o -name "*.cpp" | xargs sed -e 's/Binding::Wrap(aCx, aScope, this/Binding::Wrap(aCx, this/' -e 's/Binding_workers::Wrap(aCx, aScope, this/Binding_workers::Wrap(aCx, this/' -e 's/Binding::Wrap(cx, scope, this/Binding::Wrap(cx, this/' -i ""

plus a few manual fixes to dom/bindings/Codegen.py, js/xpconnect/src/event_impl_gen.py, and a few C++ files that were not caught in the search-and-replace above.
2014-04-08 18:27:17 -04:00
Ehsan Akhgari
68bfe70f09 Bug 927728 - Part 1: Replace PRUnichar with char16_t; r=roc
This patch was automatically generated by the following script:

#!/bin/bash
# Command to convert PRUnichar to char16_t

function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
       ! -wholename "*security/nss*" \
       ! -wholename "*modules/libmar*" \
       ! -wholename "*/.hg*" \
       ! -wholename "obj-ff-dbg*" \
       ! -name prtypes.h \
       ! -name Char16.h \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert PRUnichar char16_t
2014-01-04 10:02:17 -05:00
Chris Peterson
6fa4081cb5 Bug 757726 - Part 6a: Add support for cloaking plugin names in navigator.plugins and navigator.mimeTypes enumeration. r=johns sr=bsmedberg 2013-10-31 22:19:09 -07:00
Chris Peterson
389bf049bf Bug 757726 - Part 4: Consolidate duplicate code into EnsurePlugins() and EnsureMimeTypes(). r=johns 2013-10-20 00:05:05 -07:00
Chris Peterson
1ffb4c788f Bug 757726 - Part 3: Refactor nsPluginArray::GetPlugins() to GetMimeTypes(). r=johns 2013-10-17 00:19:43 -07:00
Olli Pettay
ce6d80643f Bug 904351, make MimeType/Array, PluginArray/Element to hold strong reference to their parent object, r=mccr8 2013-08-28 23:55:29 +03:00
Ehsan Akhgari
6c2dd7f365 Bug 905353 - Minimize the #includes in dom/base; r=jst 2013-08-15 14:17:48 -04:00