Commit Graph

69 Commits

Author SHA1 Message Date
Kris Maglione
31bcef7913 Bug 1580764: Part 2 - Use BrowsingContext IDs rather than window IDs to compute frame IDs. r=zombie
Differential Revision: https://phabricator.services.mozilla.com/D82464
2020-07-07 21:37:53 +00:00
Nika Layzell
0f8183fdfc Bug 1599579 - Part 3: Load toplevel extension frames into a per-extension BrowsingContextGroup, r=kmag
This is done by tracking a specific BrowsingContextGroup ID on the
WebExtensionPolicy in the parent process. Whenever a load is done with that
policy, the browsing context is replaced to ensure it is loaded in the correct
BrowsingContextGroup.

This patch also ensures that extension iframes are always loaded in the same
process as their embedder document, even if the frame was previously remote.

Differential Revision: https://phabricator.services.mozilla.com/D80256
2020-07-06 19:45:39 +00:00
Luca Greco
c148adab44 Bug 1609920 - part 1: Allow the WebExtension Framework to register a moz-extension service worker. r=dom-workers-and-storage-reviewers,asuth,mixedpuppy
- Adds the new about:config pref "extensions.backgroundServiceWorker.enabled" (currently defaults to false).
- Adds the background.service_worker property to the manifest JSON schema definition
- Locks background.service_worker manifest property behind the new preference
- Adds a new BackgroundWorker class to ext-backgroundPage.js (responsible for managing the background
  service worker for the extension, e.g. make sure that the expected worker script is registered
  as expected when the extension is starting up)
- Adds to the ServiceWorkerManager a new method to allow the WebExtension Framework to register the
  background service worker without an existing extension page
- Allows the "moz-extension" schema in the dom/serviceworkers and dom/cache internals

Depends on D63697

Differential Revision: https://phabricator.services.mozilla.com/D60244
2020-07-03 10:14:24 +00:00
Sebastian Hengst
48e0b31e50 Backed out 4 changesets (bug 1609920) for leaks in browser-chrome. CLOSED TREE
Backed out changeset 1c8faab05606 (bug 1609920)
Backed out changeset eaa0bb2cf36b (bug 1609920)
Backed out changeset fd1e4db7cf78 (bug 1609920)
Backed out changeset 0e68db4ad6af (bug 1609920)
2020-07-01 17:10:13 +02:00
Luca Greco
83c4af032c Bug 1609920 - part 1: Allow the WebExtension Framework to register a moz-extension service worker. r=dom-workers-and-storage-reviewers,asuth,mixedpuppy
- Adds the new about:config pref "extensions.backgroundServiceWorker.enabled" (currently defaults to false).
- Adds the background.service_worker property to the manifest JSON schema definition
- Locks background.service_worker manifest property behind the new preference
- Adds a new BackgroundWorker class to ext-backgroundPage.js (responsible for managing the background
  service worker for the extension, e.g. make sure that the expected worker script is registered
  as expected when the extension is starting up)
- Adds to the ServiceWorkerManager a new method to allow the WebExtension Framework to register the
  background service worker without an existing extension page
- Allows the "moz-extension" schema in the dom/serviceworkers and dom/cache internals

Depends on D63697

Differential Revision: https://phabricator.services.mozilla.com/D60244
2020-06-10 12:13:29 +00:00
Butkovits Atila
6ed80007ad Backed out 6 changesets (bug 1599579) for bc failures at test_chrome_ext_contentscript_data_uri.html.
Backed out changeset b767f26b10ed (bug 1599579)
Backed out changeset c5bc0ea42193 (bug 1599579)
Backed out changeset cfdd8d5973d4 (bug 1599579)
Backed out changeset 73f6c956fc30 (bug 1599579)
Backed out changeset 14698ab42ee4 (bug 1599579)
Backed out changeset b4bdd8759433 (bug 1599579)
2020-06-30 21:41:27 +03:00
Nika Layzell
f3114c7ba8 Bug 1599579 - Part 3: Load toplevel extension frames into a per-extension BrowsingContextGroup, r=kmag
This is done by tracking a specific BrowsingContextGroup ID on the
WebExtensionPolicy in the parent process. Whenever a load is done with that
policy, the browsing context is replaced to ensure it is loaded in the correct
BrowsingContextGroup.

This patch also ensures that extension iframes are always loaded in the same
process as their embedder document, even if the frame was previously remote.

Differential Revision: https://phabricator.services.mozilla.com/D80256
2020-06-30 15:55:43 +00:00
Narcis Beleuzu
9b7838b91e Backed out 5 changesets (bug 1599579) for twinopen failures. CLOSED TREE
Backed out changeset 053229a30ef1 (bug 1599579)
Backed out changeset c2828aec4caf (bug 1599579)
Backed out changeset 085558fe56dc (bug 1599579)
Backed out changeset a4e7334f8ce6 (bug 1599579)
Backed out changeset 9ebd2eb155da (bug 1599579)
2020-06-23 02:23:48 +03:00
Nika Layzell
f98a6e1beb Bug 1599579 - Part 3: Load toplevel extension frames into a per-extension BrowsingContextGroup, r=kmag
This is done by tracking a specific BrowsingContextGroup ID on the
WebExtensionPolicy in the parent process. Whenever a load is done with that
policy, the browsing context is replaced to ensure it is loaded in the correct
BrowsingContextGroup.

This patch also ensures that extension iframes are always loaded in the same
process as their embedder document, even if the frame was previously remote.

Differential Revision: https://phabricator.services.mozilla.com/D80256
2020-06-22 20:43:19 +00:00
Kris Maglione
27026d2594 Bug 1642425: Part 1 - Remove IsTopLevelWindow() method. r=baku
It doesn't do anything sensible under Fission.

Differential Revision: https://phabricator.services.mozilla.com/D77700
2020-06-17 18:01:00 +00:00
Simon Giesecke
4fc750ab70 Bug 1626570 - Improve handling of copying arrays in toolkit/components/extensions/. r=mixedpuppy
Differential Revision: https://phabricator.services.mozilla.com/D72326
2020-04-30 09:39:07 +00:00
Sebastian Streich
5e798ee5c2 Bug 1597724 - Remove nsIPrincipal->GetURI in WebExtensionPolicy.cpp r=ckerschb
Differential Revision: https://phabricator.services.mozilla.com/D70353
2020-04-13 18:49:51 +00:00
Kris Maglione
232ff37e9f Bug 1535617: Part 2 - Clear weak references for most cycle collected objects on unlink. r=mccr8
This covers most cycle collected objects which support weak references, but
not the ones which inherit from a cycle collected class and don't do any cycle
collection on their own.

Differential Revision: https://phabricator.services.mozilla.com/D63962
2020-02-25 19:44:39 +00:00
Nihanth Subramanya
3ca6a51ff7 Bug 1600390 - Cache the values of the CSP prefs in the ExtensionPolicyService. r=mixedpuppy
Differential Revision: https://phabricator.services.mozilla.com/D55374
2019-12-03 23:24:42 +00:00
Shane Caraveo
966ff6e2d8 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
2019-11-01 06:02:45 +00:00
Shane Caraveo
502af3d339 Bug 1581609 rename extension contentSecurityPolicy to support multiple V3 CSP values r=rpl,webidl
Differential Revision: https://phabricator.services.mozilla.com/D46818
2019-11-01 06:02:22 +00:00
Andrew Swan
e62e92b4d4 Bug 1580816 Part 1: Add isPrivileged to WebExtensionPolicy r=zombie
Differential Revision: https://phabricator.services.mozilla.com/D45664
2019-10-01 23:58:26 +00:00
Boris Zbarsky
c21ac232dc Bug 1578173 part 2. Convert chrome-webidl bits to constructor operations. r=edgar
Differential Revision: https://phabricator.services.mozilla.com/D45389
2019-09-11 20:55:26 +00:00
Kannan Vijayan
c690c1925f Bug 1559414 - Rename unaudited pre-fission methods with SameProcess for future audit burndown. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D39378
2019-07-26 16:48:31 +00:00
Nicholas Nethercote
c4aacd8403 Bug 1563139 - Remove StaticPrefs.h. r=glandium
This requires replacing inclusions of it with inclusions of more specific prefs
files.

The exception is that StaticPrefsAll.h, which is equivalent to StaticPrefs.h,
and is used in `Codegen.py` because doing something smarter is tricky and
suitable for a follow-up. As a result, any change to StaticPrefList.yaml will
still trigger recompilation of all the generated DOM bindings files, but that's
still a big improvement over trigger recompilation of every file that uses
static prefs.

Most of the changes in this commit are very boring. The only changes that are
not boring are modules/libpref/*, Codegen.py, and ServoBindings.toml.

Differential Revision: https://phabricator.services.mozilla.com/D39138
2019-07-26 01:10:23 +00:00
Jonathan Kingston
32524b62e2 Bug 1560455 - rename CodebasePrincipal to ContentPrincipal. r=ckerschb
Differential Revision: https://phabricator.services.mozilla.com/D35504
2019-07-08 16:37:45 +00:00
Gerald Squelart
e376dc5b78 Bug 1429613 - Variant matcher callbacks renamed from match to operator() - r=froydnj
Mechanical change from Matcher::match(...) to Matcher::operator()(...).
This will now permit the use of generic lambdas, and facilitate the
implementation of multi-lambda match.

Differential Revision: https://phabricator.services.mozilla.com/D24889
2019-04-02 11:53:47 +00:00
Boris Zbarsky
847bb13da7 Bug 1535384 part 1. Eliminate some easy cases of MOZ_CAN_RUN_SCRIPT_BOUNDARY on webidl callbacks. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D23771
2019-03-19 05:24:39 +00:00
Sylvestre Ledru
b31009da86 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D22514
2019-03-13 10:19:06 +01:00
Ryan Hunt
743a2a46fe Bug 1523969 part 23 - Move method definition inline comments to new line in 'toolkit/'. r=ehsan
Differential Revision: https://phabricator.services.mozilla.com/D21124
2019-02-25 16:12:51 -06:00
Kris Maglione
cfebc8fa59 Bug 1518863: Part 1 - Add ready promise to WebExtensionPolicy. r=aswan
This adds a promise member to the stub WebExtensionPolicy objects that we
create early during extension initialization which resolves when the real
extension instance is ready to load content. This promise will be used by the
extension protocol handler to delay loads until the framework is ready to
handle them.

Differential Revision: https://phabricator.services.mozilla.com/D21445
2019-02-27 13:26:37 -08:00
Christoph Kerschbaumer
1a72eb2a6b Bug 1528677: Remove nullchecks for loadinfo since we have loadinfo on all channels. r=baku 2019-02-20 13:27:25 +01:00
Shane Caraveo
49f496bdbc Bug 1511636: update incognito support to use pref and permissions r=rpl,aswan,kmag
This changes the policy to use the pref and permissions rather than a boolean flag.  Using permissions gets us proper settings on startup without introducing any new overhead.  Going this way flips our tests around so rather than testing an override to turn off private browsing support, we test overrides to enable private browsing support.

Differential Revision: https://phabricator.services.mozilla.com/D14482
2019-01-28 18:10:47 +00:00
Emilio Cobos Álvarez
dc336a73ba 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
955ad9221e 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
2019-01-02 13:27:05 +00:00
Peter Van der Beken
0792b09f79 Bug 1353867 - Change WindowProxy type. r=bzbarsky
Add a WindowProxyHolder type and generate binding code that takes or returns it whenever
the WebIDL refers to the WindowProxy type. This patch just makes the WindowProxyHolder
hold a strong reference to a nsPIDOMWindowOuter.

Differential Revision: https://phabricator.services.mozilla.com/D12650
2019-01-02 13:26:56 +00:00
Shane Caraveo
0cf35e1dd8 Bug 1345474 - Add policy flags to support incognito settings r=rpl,kmag
Differential Revision: https://phabricator.services.mozilla.com/D4100
2018-12-10 21:27:22 +00:00
Sylvestre Ledru
e5a134f73a Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset
2018-11-30 11:46:48 +01:00
Ehsan Akhgari
b614d2046a 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
2018-11-29 10:30:46 +00:00
Kris Maglione
edad7fc2b4 Bug 1451463: Make Quitter a WebExtension experiment. r=aswan
Differential Revision: https://phabricator.services.mozilla.com/D12478
2018-04-03 17:19:26 -07:00
Gerald Squelart
eed851e216 Bug 1489944 - Fixed some std::move warnings - r=froydnj
> dom/media/gmp/CDMStorageIdProvider.cpp(63,10):  warning:
> local variable 'storageId' will be copied despite being returned by name [-Wreturn-std-move]
nsAutoCString -> nsCString, will add std::move().

> layout/painting/DisplayItemClip.cpp(581,10):  warning:
> local variable 'str' will be copied despite being returned by name [-Wreturn-std-move]
nsAutoCString -> nsCString, will add std::move().

> layout/painting/DisplayItemClipChain.cpp(88,10):  warning:
> local variable 'str' will be copied despite being returned by name [-Wreturn-std-move]
nsAutoCString -> nsCString, will add std::move().

> layout/painting/nsDisplayList.cpp(179,10):  warning:
> local variable 'str' will be copied despite being returned by name [-Wreturn-std-move]
nsAutoCString -> nsCString, will add std::move().

> gfx/thebes/gfxWindowsPlatform.cpp(454,10):  warning:
> moving a local object in a return statement prevents copy elision [-Wpessimizing-move]
Will remove std::move().

> gfx/thebes/gfxFontEntry.cpp(245,20):  warning:
> local variable 'name' will be copied despite being returned by name [-Wreturn-std-move]
nsAutoCString -> nsCString, will add std::move().

> netwerk/cookie/nsCookieService.cpp(4460,10):  warning:
> local variable 'path' will be copied despite being returned by name [-Wreturn-std-move]
GetPathFromURI() result is stored in an nsAutoCString, so it might as well return that type.

> toolkit/components/extensions/WebExtensionPolicy.cpp(462,12):  warning:
> local variable 'result' will be copied despite being returned by name [-Wreturn-std-move]
> toolkit/components/extensions/WebExtensionPolicy.cpp(475,10):  warning:
> local variable 'result' will be copied despite being returned by name [-Wreturn-std-move]
`result` may be empty or may be arbitrarily long, so I'll use nsCString inside the function.

> toolkit/xre/CmdLineAndEnvUtils.h(349,10):  warning:
> moving a local object in a return statement prevents copy elision [-Wpessimizing-move]
Returning an UniquePtr, will remove std::move().
Also will `return s` instead of `return nullptr` when `(!s)`, to avoid extra construction which could also prevent elision (not entirely sure, but it's at least not worse!); and it's clearer that the two `return`s return the same already-constructed on-stack object.

> tools/profiler/core/shared-libraries-win32.cc(111,10):  warning:
> local variable 'version' will be copied despite being returned by name [-Wreturn-std-move]
nsPrintfCString -> nsCString, will add std::move().

> xpcom/glue/FileUtils.cpp(179,10):  warning:
> local variable 'fullName' will be copied despite being returned by name [-Wreturn-std-move]
> xpcom/glue/FileUtils.cpp(209,10):  warning:
> local variable 'path' will be copied despite being returned by name [-Wreturn-std-move]
nsAuto{,C}String -> ns{,C}String, will add std::move().

This allowed removals of 'AllowCompilerWarnings' from layout/painting,
netwerk/cookie, and toolkit/components/extensions.

Differential Revision: https://phabricator.services.mozilla.com/D5425
2018-09-10 15:51:48 +00:00
Cosmin Sabou
1a193c7255 Backed out changeset be4fd8ee7afd (bug 1483985) for causing build bustages on LookupCache. CLOSED TREE 2018-08-27 18:26:41 +03:00
Alex Gaynor
fe8353bb43 Bug 1483985 - use std::move to avoid a copy in a few places that clang recommends; r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D3543
2018-08-27 15:06:58 +00:00
Kris Maglione
69ebe2ab95 Bug 1484373: Follow-up: Fix stupid typo. r=bustage 2018-08-24 19:22:54 -07:00
Kris Maglione
3f9620ae74 Bug 1484373: Part 6 - Minimize the amount of JS processing required to init extension policies. r=mixedpuppy
Differential Revision: https://phabricator.services.mozilla.com/D3696
2018-08-17 21:14:10 -07:00
Kris Maglione
ac78f9effb Bug 1484373: Part 4 - Move more content script injection logic into policy service. r=mixedpuppy
Differential Revision: https://phabricator.services.mozilla.com/D3694
2018-08-17 22:09:23 -07:00
Kris Maglione
30e794ede9 Bug 1472491: Part 2b - Add MozDocumentObserver class to notify on new pattern-matched documents. r=zombie
MozReview-Commit-ID: 29CsJ2mya36
2018-07-31 21:50:34 -07:00
Kris Maglione
65b9607e38 Bug 1472491: Part 2a - Split matching logic for content scripts into MozDocumentMatcher base class. r=zombie
MozReview-Commit-ID: JAOWZcB4hZW
2018-04-18 14:02:15 -07:00
Kris Maglione
8766ceb571 Bug 1472523: Part 4 - Avoid unnecessary domain string duplication in preference observers. r=njn
MozReview-Commit-ID: EMCgMRTDqDn
2018-07-04 14:52:48 -07:00
Jeff Gilbert
70a22b2878 Bug 1470325 - s/FooBinding/Foo_Binding/g - r=qdot
MozReview-Commit-ID: JtTcLL5OPF0
2018-06-26 17:05:01 -07:00
Emilio Cobos Álvarez
4b8b5e1717 Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj
This was done automatically replacing:

  s/mozilla::Move/std::move/
  s/ Move(/ std::move(/
  s/(Move(/(std::move(/

Removing the 'using mozilla::Move;' lines.

And then with a few manual fixups, see the bug for the split series..

MozReview-Commit-ID: Jxze3adipUh
2018-06-01 10:45:27 +02:00
Kris Maglione
93c85d42c4 Bug 1456485: Part 2 - Allow extensions with the mozillaAddons permission to match restricted schemes. r=zombie
The schema handling for this is currently a bit ugly, for the sake of
simplifying uplift. In the figure, we should find a way to change the schema
pattern matching based on whether or not the extension is privileged.

MozReview-Commit-ID: CU9WR2Ika6k
2018-05-09 18:55:59 -07:00
Kris Maglione
03374a9669 Bug 1436482: Always use the principal URI as the principal URI. r=mixedpuppy
MozReview-Commit-ID: 7oePANQBCxK
2018-04-04 17:01:59 -07:00
Bharat Raghunathan
91498586ef Bug 1441010 - Closed body tag r=zombie
MozReview-Commit-ID: KtMrFlubfz
2018-03-28 09:38:57 +05:30
Kris Maglione
0e4b3bef11 Bug 1415644: Follow-up: Fix assertion in debug builds. r=bustage CLOSED TREE
MozReview-Commit-ID: 1AzZ7X31jAs
2018-03-09 16:09:03 -08:00