Commit graph

54 commits

Author SHA1 Message Date
Luca Greco
42507b3a15 Bug 1593240 - Prevent re-entrancy issues in ExtensionPolicyService::CheckContentScripts related to EPS.loadContentScript calls r=robwu,mixedpuppy
ExtensionPolicyService::CheckContentScripts does retrieve mContentScripts a WebExtensionPolicy instance
and it may call the ExtensionProcessScript methods PreloadContentScript or LoadContentScript while iterating
over it mContentScript.

Both PreloadContentScript and LoadContentScript are going to run some privileged JS code, and LoadContentScript
will load an extension content script. There is a chance that some of the JS code executed could call
WebExtensionPolicy::UnregisterContentScript (or RegisterContentScript) and mutate the mContentScripts array
that EPS::CheckContentScripts is already iterating over, and when that happens it is possible that once the
execution goes back to the ongoing CheckContentScripts iteration, the iterator is invalidated and
the InvalidArrayIndex_CRASH triggered.

Differential Revision: https://phabricator.services.mozilla.com/D69336
2020-04-06 18:59:16 +00:00
Simon Giesecke
aaf6cb4e75 Bug 1617628 - Hide nsBaseHashtable Put overloads in nsRefPtrHashtable subclass. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D63899

--HG--
extra : moz-landing-system : lando
2020-02-25 17:03:36 +00:00
Rob Wu
c11ee00882 Bug 1502525 - Read extensions.webextensions.remote once r=mixedpuppy
Differential Revision: https://phabricator.services.mozilla.com/D60976

--HG--
extra : moz-landing-system : lando
2020-02-03 17:27:46 +00:00
Boris Zbarsky
75124bdd98 Bug 1517588. Use nsIPrincipal::IsSystemPrincipal instead of nsContentUtils::IsSystemPrincipal r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D53067

--HG--
extra : moz-landing-system : lando
2019-12-05 04:44:32 +00:00
Nihanth Subramanya
674d6130b6 Bug 1600390 - Cache the values of the CSP prefs in the ExtensionPolicyService. r=mixedpuppy
Differential Revision: https://phabricator.services.mozilla.com/D55374

--HG--
extra : moz-landing-system : lando
2019-12-03 23:24:42 +00:00
Ehsan Akhgari
dc998c5c5a Bug 1592599 - Switch nsIDocShell.getDocShellEnumerator() away from using nsISimpleEnumerator; r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D51100

--HG--
extra : moz-landing-system : lando
2019-11-18 20:11:58 +00:00
Shane Caraveo
f800952de9 Bug 1581611 Part 1: add content_scripts to the extension content_security_policy r=rpl,bzbarsky
This patch adds support for including content_scripts CSP in the extensions
manifest, along with all interfaces necessary to access the CSP value.  This does not
implement actual use of the CSP for content scripts.

Differential Revision: https://phabricator.services.mozilla.com/D46824

--HG--
extra : moz-landing-system : lando
2019-11-01 06:02:45 +00:00
Shane Caraveo
9ca23aa397 Bug 1581609 rename extension contentSecurityPolicy to support multiple V3 CSP values r=rpl,webidl
Differential Revision: https://phabricator.services.mozilla.com/D46818

--HG--
extra : moz-landing-system : lando
2019-11-01 06:02:22 +00:00
Boris Zbarsky
a0b4a1fee2 Bug 1582892. Expose the number of strings in a Web IDL enum in a nice way. r=edgar
Differential Revision: https://phabricator.services.mozilla.com/D49536

--HG--
extra : moz-landing-system : lando
2019-10-23 03:54:39 +00:00
Daniel Varga
ae5334abca Backed out changeset f9a4c8d67be3 (bug 1582892) for build bustage at build/src/dom/console/ConsoleInstance. On a CLOSED TREE 2019-10-23 06:13:54 +03:00
Boris Zbarsky
e09da7b0c7 Bug 1582892. Expose the number of strings in a Web IDL enum in a nice way. r=edgar
Differential Revision: https://phabricator.services.mozilla.com/D49536

--HG--
extra : moz-landing-system : lando
2019-10-18 03:26:43 +00:00
Matt Woodrow
b41a3493f1 Bug 1583700 - Listen for DocumentChannel's on-opening-request as well as HTTP's in ExtensionPolicyService. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D50118

--HG--
extra : moz-landing-system : lando
2019-10-22 19:52:16 +00:00
Kannan Vijayan
3fb6190ec6 Bug 1559414 - Rename unaudited pre-fission methods with SameProcess for future audit burndown. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D39378

--HG--
extra : moz-landing-system : lando
2019-07-26 16:48:31 +00:00
Rob Wu
349969e334 Bug 1551490 - Fix test failures with inline options in HTML about:addons r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D34078

--HG--
extra : moz-landing-system : lando
2019-06-09 11:18:54 +00:00
Ryan Hunt
6d8bc2e134 Bug 1523969 part 23 - Move method definition inline comments to new line in 'toolkit/'. r=ehsan
Differential Revision: https://phabricator.services.mozilla.com/D21124

--HG--
extra : rebase_source : f44a8f1cd9e2e73b6bb2a994d9aeb42779d2d36f
extra : histedit_source : f39b1350e24c58104047e65f14883ee3f710a295
2019-02-25 16:12:51 -06:00
Boris Zbarsky
709be5f5e2 Bug 1528146. Fix how web extensions are injected into about:blank. r=kmag
The basic idea is to make non-initial about:blank fire
document-element-inserted notifications just like every other document.  We
then ensure that there's a notification (initial-document-element-inserted)
that only gets fired once per window for documents that are in a window.  This
notification is what webextensions use to inject into the document.

The old setup which injected into about:blank when its global is created gets
removed in favor of injecting the same way as into every other document.

The changes to Document.cpp are fixing a bug in the "block the parser" stuff
webextensions do.  For about:blank, the blocking happens at a point when the
parser really has nothing else to parse (since it's parsing the empty string).
So the blocking is a no-op.  But we do want to prevent DOMContentLoaded firing,
because otherwise the "end of document" scripts could run before we finish
doing the "beginning of document" work in webextensions.  So we want to make
sure we block DOMContentLoaded, not just the load event.

Differential Revision: https://phabricator.services.mozilla.com/D19892

--HG--
extra : moz-landing-system : lando
2019-02-22 21:27:44 +00:00
Coroiu Cristina
dc0adc07db Backed out changeset 367ca1e16853 (bug 1528146) on request by igoldan, assignee didn't replied back on time a=backout 2019-02-22 10:10:33 +02:00
Christoph Kerschbaumer
54df1cb98c Bug 1528677: Remove nullchecks for loadinfo since we have loadinfo on all channels. r=baku 2019-02-20 13:27:25 +01:00
Boris Zbarsky
84b4628394 Bug 1528146. Fix how web extensions are injected into about:blank. r=kmag
The basic idea is to make non-initial about:blank fire
document-element-inserted notifications just like every other document.  We
then ensure that there's a notification (initial-document-element-inserted)
that only gets fired once per window for documents that are in a window.  This
notification is what webextensions use to inject into the document.

The old setup which injected into about:blank when its global is created gets
removed in favor of injecting the same way as into every other document.

The changes to Document.cpp are fixing a bug in the "block the parser" stuff
webextensions do.  For about:blank, the blocking happens at a point when the
parser really has nothing else to parse (since it's parsing the empty string).
So the blocking is a no-op.  But we do want to prevent DOMContentLoaded firing,
because otherwise the "end of document" scripts could run before we finish
doing the "beginning of document" work in webextensions.  So we want to make
sure we block DOMContentLoaded, not just the load event.

Differential Revision: https://phabricator.services.mozilla.com/D19892

--HG--
extra : moz-landing-system : lando
2019-02-15 23:29:34 +00:00
Emilio Cobos Álvarez
d2ed260822 Bug 1517241 - Rename nsIDocument to mozilla::dom::Document. r=smaug
Summary: Really sorry for the size of the patch. It's mostly automatic
s/nsIDocument/Document/ but I had to fix up in a bunch of places manually to
add the right namespacing and such.

Overall it's not a very interesting patch I think.

nsDocument.cpp turns into Document.cpp, nsIDocument.h into Document.h and
nsIDocumentInlines.h into DocumentInlines.h.

I also changed a bunch of nsCOMPtr usage to RefPtr, but not all of it.

While fixing up some of the bits I also removed some unneeded OwnerDoc() null
checks and such, but I didn't do anything riskier than that.
2019-01-03 17:48:33 +01:00
Peter Van der Beken
58c7fc4d20 Bug 1353867 - Change WindowProxyHolder's native type to BrowsingContext. r=bzbarsky
Make the WindowProxyHolder hold a strong reference to a BrowsingContext, as in the future
we might not have a nsPIDOMWindowOuter (if the document is loaded in a different process).

Differential Revision: https://phabricator.services.mozilla.com/D12651

--HG--
extra : moz-landing-system : lando
2019-01-02 13:27:05 +00:00
Kris Maglione
778252994f Bug 1513366: Part 5 - Migrate extension process script to a JSM. r=aswan
This simplifies things all around, and gets rid of one more unnecessary
component registration.

--HG--
rename : toolkit/components/extensions/extension-process-script.js => toolkit/components/extensions/ExtensionProcessScript.jsm
extra : rebase_source : 7ceb6ada0730f8241bbd5ddbd889a320da22b1b1
2018-12-12 17:58:19 -08:00
Sylvestre Ledru
265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Ehsan Akhgari
490e611801 Bug 1508472 - Part 5: Fifth batch of comment fix-ups in preparation for the tree reformat r=sylvestre
This is a best effort attempt at ensuring that the adverse impact of
reformatting the entire tree over the comments would be minimal. I've used a
combination of strategies including disabling of formatting, some manual
formatting and some changes to formatting to work around some clang-format
limitations.

Differential Revision: https://phabricator.services.mozilla.com/D13371

--HG--
extra : moz-landing-system : lando
2018-11-29 10:30:46 +00:00
Gabriele Svelto
7089fe7369 Bug 1493955 - Store floating-point preferences in a locale-independent way r=njn
Differential Revision: https://phabricator.services.mozilla.com/D6796

--HG--
extra : moz-landing-system : lando
2018-09-28 20:54:09 +00:00
Bogdan Tara
8449b1c489 Backed out changeset ba1fef7b14eb (bug 1493955) for GTest failures CLOSED TREE 2018-09-28 02:42:20 +03:00
Gabriele Svelto
4d700e555a Bug 1493955 - Store floating-point preferences in a locale-independent way r=njn
Differential Revision: https://phabricator.services.mozilla.com/D6796

--HG--
extra : moz-landing-system : lando
2018-09-27 20:41:39 +00:00
Kris Maglione
367cf770e4 Bug 1484373: Follow-up: Fix missed review comment. r=froydnj (implied)
--HG--
extra : rebase_source : 4a107432497e269e0c8e73924d33ca5477b057af
2018-08-24 22:31:10 -07:00
Kris Maglione
ee353355ea Bug 1486199: Ignore null promises when injecting content scripts. r=mixedpuppy
Differential Revision: https://phabricator.services.mozilla.com/D4287

--HG--
extra : rebase_source : 68c8d23145961b0c6377b74b16d0ac5cd5b6fdd6
2018-08-25 14:02:26 -07:00
Kris Maglione
bd83d82562 Bug 1486057: Skip uninitialized windows when injecting content scripts. r=mixedpuppy
Differential Revision: https://phabricator.services.mozilla.com/D4286

--HG--
extra : rebase_source : bb47e0f6462be249b636b72a55ddaa4c9d56028c
2018-08-25 14:00:03 -07:00
Kris Maglione
bb1e69402e Bug 1484373: Follow-up: Fix null deref. r=bustage CLOSED TREE 2018-08-23 16:05:55 -07:00
Kris Maglione
0bf3a103cc Bug 1484373: Follow-up: Fix null deref. r=bustage CLOSED TREE
--HG--
extra : rebase_source : c7805928b5f4e84112a2928df36383d5d56866e3
extra : amend_source : c4862f4c0af9590ba6981dbc12a216a70ede54fb
2018-08-23 16:01:25 -07:00
Kris Maglione
2b3b834ae7 Bug 1484373: Part 9 - Move more extension page matching logic into policy service. r=mixedpuppy
Differential Revision: https://phabricator.services.mozilla.com/D3699

--HG--
extra : rebase_source : 1c3452b15c1a4e99b865e9fff8d71fbfe55e2cec
extra : histedit_source : 8e02930b02f8b2d93075ac62ba856842479de159
2018-08-17 22:30:17 -07:00
Kris Maglione
984c4ecad1 Bug 1484373: Part 4 - Move more content script injection logic into policy service. r=mixedpuppy
Differential Revision: https://phabricator.services.mozilla.com/D3694

--HG--
extra : rebase_source : 8816204962b8f1ee843ca526c99aaa8175ca22c8
extra : histedit_source : ede9809d9f9e9bac5e37cfa79c80b899b349a91b
2018-08-17 22:09:23 -07:00
Kris Maglione
473d7d25c5 Bug 1472491: Follow-up: Add missing CC trace for document observer hashtable. r=me 2018-08-14 12:05:11 -07:00
Kris Maglione
672f5e6524 Bug 1472491: Part 2b - Add MozDocumentObserver class to notify on new pattern-matched documents. r=zombie
MozReview-Commit-ID: 29CsJ2mya36

--HG--
extra : rebase_source : 08d419d7ba9516c0c1831c53ec1fa23b738eb777
extra : source : 52562e8d57a8d2973cfaca9c350b6727996df39f
2018-07-31 21:50:34 -07:00
Valentin Gosu
7937c7c4cc Bug 1476928 - Remove nsIURI.CloneIgnoringRef and nsIURI.CloneWithNewRef r=JuniorHsu
The patch introduces NS_GetURIWithNewRef and NS_GetURIWithNewRef which perform the same function.

Differential Revision: https://phabricator.services.mozilla.com/D2239

--HG--
extra : moz-landing-system : lando
2018-07-23 11:28:47 +00:00
Adrian Wielgosik
c501e3beb0 Bug 1460940 - Clean up most remaining C++-side uses of nsIDOMDocument. r=bz
MozReview-Commit-ID: LKRnyDPNlle

--HG--
extra : rebase_source : a48b7c72a0f7ede38c91149a04d5de53987736f1
2018-05-11 19:46:15 +02:00
Adrian Wielgosik
3309929466 Bug 1460940 - Remove nsIDOMDocument uses in toolkit/. r=bz
MozReview-Commit-ID: LJhw1bKsUkn

--HG--
extra : rebase_source : bb6f877f75ced11f33ae37d7d2e430e54d82517c
2018-05-11 19:46:15 +02:00
Kris Maglione
eb96f57dc4 Bug 1430317: Follow-up: Support QI to nsIMemoryReporter. r=me
MozReview-Commit-ID: 6BvZyVh2dP9
2018-01-12 18:52:36 -08:00
Kris Maglione
f08a241760 Bug 1430317: Add memory reporter to show basic information about active WebExtensions. r=erahm
MozReview-Commit-ID: FR8F30bhhA4

--HG--
extra : rebase_source : 651b3d1f5b6b6a646a89301dc236a7e10924a500
2018-01-12 16:01:18 -08:00
Shane Caraveo
85604b0c2b Bug 1393150 prevent remote extensions when e10s is off, r=bz,kmag
MozReview-Commit-ID: HjLLa9vx2UW

--HG--
extra : rebase_source : d37088f31931a74ef2c40dc510794ebc5f4931ab
2017-09-14 15:12:45 -07:00
Kris Maglione
b3ba0520ee Bug 1396449: Part 1 - Use WebExtensionPolicy objects in extension content principals. r=krizsa
Going through the extension policy service rather than using
WebExtensionPolicy objects directly adds a lot of unnecessary overhead to
common operations on extension principals, and also makes the code more
complicated than it needs to be.

We also use weak references to policy objects here, since principals should
ideally lose as much of their elevated privileges as possible once the
extension instance that created them has been destroyed (which is something we
couldn't handle easily when we simply tracked ID strings).

MozReview-Commit-ID: KDNvVdvLkIt

--HG--
extra : rebase_source : 1b567919d2461bd0315d1a7d89f330cbd585f579
2017-09-05 11:04:43 -07:00
Kris Maglione
7788abbf4f Bug 1356334: Part 4 - Add a helper to synchronously get an extension's name from its ID. r=billm
MozReview-Commit-ID: 8nuvM4PR7XR

--HG--
extra : source : b2a663ffd1446f9f70b220866855a0ecb3503761
extra : histedit_source : 16847e7aececf6c944bbb6b21639629c60bcdc93
2017-08-11 21:22:18 -07:00
Ryan VanderMeulen
3fe1f45009 Backed out 8 changesets (bug 1356334) for frequent test_ext_contentscript_async_loading.html failures on Android debug on a CLOSED TREE.
Backed out changeset 9c677ebfdda0 (bug 1356334)
Backed out changeset 16b49fd1c38a (bug 1356334)
Backed out changeset 4f5bcd2b2dc6 (bug 1356334)
Backed out changeset d832803270ac (bug 1356334)
Backed out changeset b83aea215a82 (bug 1356334)
Backed out changeset b2a663ffd144 (bug 1356334)
Backed out changeset 805c56806930 (bug 1356334)
Backed out changeset 7c880eca810a (bug 1356334)
2017-08-18 11:32:18 -04:00
Kris Maglione
03b92c5149 Bug 1356334: Part 4 - Add a helper to synchronously get an extension's name from its ID. r=billm
MozReview-Commit-ID: 8nuvM4PR7XR

--HG--
extra : rebase_source : fecadb38ca64afeb83f1b7b999295586e9c55944
2017-08-11 21:22:18 -07:00
Nicholas Nethercote
581214bd8b Bug 1384835 (part 1, attempt 2) - Use nsA[C]String references instead of pointers for outparams of Get*String() pref functions. r=froydnj.
--HG--
extra : rebase_source : fe566945a55c281d8290634a5b55bed19415c839
2017-07-31 10:52:51 +10:00
Kris Maglione
7565237b48 Bug 1374129: Avoid loading content scripts into uninitialized about:blank documents. r=aswan
MozReview-Commit-ID: LN1E4Q5xAbO

--HG--
extra : rebase_source : 463b99f1d41ebd0af65b9f23fe71dac7f520dbb7
extra : amend_source : c8b0ec754d67584f33c7ee7364d032f531d16a51
2017-06-21 17:31:43 -07:00
Kris Maglione
d2ac9519c1 Bug 1370263: Null check document URI before matching content scripts. r=mixedpuppy
MozReview-Commit-ID: IB8HMmukD1h

--HG--
extra : rebase_source : 7267ae37b0b0d5813ce5510c1aeb225e16649bba
2017-06-05 10:26:06 -07:00
Kris Maglione
1bc28104c6 Bug 1368102: Part 8 - Move extension page matching into C++. r=billm,mixedpuppy
Bill, can you please review the WebIDL change, and Shane the rest?

MozReview-Commit-ID: 6N3sGrAsHzs

--HG--
extra : rebase_source : adb925ec3dc2a350fc6f9d6cde7a3607f6877384
2017-05-26 12:07:06 -07:00