Commit Graph

113 Commits

Author SHA1 Message Date
Rob Wu
b60b96622e Bug 1302020 - Add filter to Messenger + fix code documentation r=billm
- Make all keys in `filter` mandatory.
- Add `optionalFilter` to Messenger to take over the role of the former
  `filter` parameter.
- Add documentation to Messenger to explain what it really does.
- Fix type comments. Many message message managers were declared as a
  sender, while they are at most a receiver (e.g. `Services.pppm`).

MozReview-Commit-ID: ILDnP2qDIK9
2016-09-11 22:38:40 -07:00
Ehsan Akhgari
513846c904 Bug 1297687 - Part 3: Ensure that the expanded principal of a sandbox has a sensible OriginAttributes; r=bholley
This patch allows specifying an OriginAttributes when creating a sandbox
using Components.utils.Sandbox() by specifying an originAttributes
member on the options dictionary.

If an OA is specified in this way, it is used for creating codebase
principals from the string arguments passed to the function.  Otherwise,
if one or more principals are passed in the array argument to Sandbox(),
the OA of the principal(s) is used to construct codebase principals from
the strings inside the array.  In this case, we check to make sure that
all of the passed principals have the same OA, otherwise we'll throw an
exception.

In case no explicit OA is specified and no principals are passed in the
array argument, we create the codebase principals using a default OA.
2016-09-22 13:27:51 -04:00
Philipp Kewisch
dc8e3f9b36 Bug 1298879 - Upgrade to ESLint 3.5.0 for faster linting. r=miker 2016-09-20 10:27:03 +01:00
Tomislav Jovanovic
1a9e69a168 bug 1288263 - tabs.detectLanguage() returns "und" for undetermined, r=kmag
MozReview-Commit-ID: 72ltWdufHiu
2016-09-10 23:05:02 +02:00
Rob Wu
91820391f9 Bug 1298979 - Add ProxyMessenger, change message managers and getSender r=billm
- Introduce a proxy for IPC messages to allow the following APIs
  to be run out-of-process (ProxyMessenger):

    * runtime.connect
    * runtime.sendMessage
    * tabs.connect
    * tabs.sendMessage
    * runtime.onConnect
    * runtime.onMessage

- Update getSender in ext-tabs, make it independent of the context
  (in particular do not throw an error when a message is received while
  the tab is gone), and move it from MessageChannel to ProxyMessenger to
  make sure that it works in webext-oop. MessageChannel lives in a child
  process, whereas the TabManager (used by getSender) requires data from
  the main process.

- Set the third parameter of `addMessageListener` to true in some places
  to make sure that messages get delivered even after unloading the
  context. This is needed for the next two points.

- Put the `messageManager` property in BaseContext, and let it be set by
  `setContentWindow` - runtime.sendMessage/connect and tabs.sendMessage/
  connect depends on this property, and using the frame message manager
  makes sense.

- Unconditionally use the frame message manager in
  runtime.sendMessage/connect instead of sometimes the cpmm.

MozReview-Commit-ID: 4QkPnlMOkjS
2016-08-25 17:08:08 -07:00
Rob Wu
f600b2cf99 Bug 1287010 - Use schema-generated extension, split ext-extension.js r=billm
- This was the last non-schema-generated API in content scripts.

MozReview-Commit-ID: FaIOCHoircf
2016-08-18 19:19:40 -07:00
Rob Wu
0167c8c6a2 Bug 1287010, 1286712 - Use schema-generated runtime API, split ext-runtime.js r=billm
- Use schema-generated runtime API for content scripts instead of
  untyped API.
- Move logic that cannot be run in the main process to a new file.

Together with the previous patch that migrated the i18n API, this
concludes the fix for bug 1286712.

MozReview-Commit-ID: A3yG0x1kjwx
2016-08-18 18:15:37 -07:00
Rob Wu
4aa1ab5d36 Bug 1287010 - Use schema-generated i18n for all contexts r=billm
Use schema-generated i18n API for both content script and
addon contexts, instead of just the addon context.

MozReview-Commit-ID: AKDAFxNv6Zs
2016-08-20 15:49:20 -07:00
Rob Wu
fc61c013eb Bug 1287010 - Prepare for moving content script APIs to schemas r=billm
- By default, schema APIs are not injected in content scripts unless
  the JSON schema sets the "restrictions" attribute to `["content"]`.
- Added the "restrictions" attribute to the storage and test schemas.
  Other APIs will follow in subsequent commits and make use of the
  primitives introduced in this commit.

MozReview-Commit-ID: 1rNjQap0BiM
2016-08-18 17:46:57 -07:00
Rob Wu
488a453294 Bug 1287010 - Move Management logic to SchemaAPIManager r=billm
- Moved Management logic to ExtensionUtils (as SchemaAPIManager) so that
  the logic can be used by addon and content processes.
- Remove the `context.extension.hasPermission(api.permission)` check in
  `generateAPIs` because the only user (`registeredPrivilegedAPI`) was
  removed before in bug 1295082.
- Add new category "webextension-scripts-content", intended for
  registering the few scripts that must be loaded in a content process.

MozReview-Commit-ID: 81nhblV8YE6
2016-08-17 17:51:21 -07:00
Rob Wu
812e170fe8 Bug 1287010 - Make environment of Context explicit. r=billm
- Add `envType` to BaseContext.
 - Pass an explicit envType to all `registerSchemaAPI` invocations.
 - The factories passed to `registerSchemaAPI` will be split up later, so
   that content scripts (`content_child`) and addon pages can share
   common implementations.
 - The factories that implement the addon API will also be split up,
   to separate code running in the main process (`addon_parent`) from
   code running in a child process (`addon_child`).
 - Remove the use of a hardcoded list of `namespaces` from ProxyContext.
   Now `envType` is used to specify whether an API should be activated.

MozReview-Commit-ID: Jiff8HIwG92
2016-08-16 15:51:50 -07:00
Rob Wu
98a49ff299 Bug 1295082 - BaseContext.extensionId -> BaseContext.extension.id r=kmag
MozReview-Commit-ID: 2tFVUwjyJQu
2016-08-16 14:29:52 -07:00
Rob Wu
6efdd88867 Bug 1295082 - Put Extension in BaseContext r=kmag
ExtensionContext in Extension.jsm has |extension| as an instance member,
so use it instead of passing |extension| to registerSchemaAPI's
callback.

And to make sure that this pattern also works in content processes, move
the |extension| member to BaseContext.

MozReview-Commit-ID: BgsGGCPQxJR
2016-08-15 01:04:58 -07:00
Sebastian Hengst
c7a498ffbd Backed out changeset 0ce1cc39aa3d (bug 1295082) for timing out in test_ext_schemas_api_injection.js. r=backout 2016-08-18 16:47:09 +02:00
Sebastian Hengst
ff21875b1a Backed out changeset dc7b09331202 (bug 1295082) 2016-08-18 16:46:30 +02:00
Rob Wu
7c6379abff Bug 1295082 - BaseContext.extensionId -> BaseContext.extension.id r=kmag
MozReview-Commit-ID: 2tFVUwjyJQu
2016-08-16 14:29:52 -07:00
Rob Wu
6189daa99f Bug 1295082 - Put Extension in BaseContext r=kmag
ExtensionContext in Extension.jsm has |extension| as an instance member,
so use it instead of passing |extension| to registerSchemaAPI's
callback.

And to make sure that this pattern also works in content processes, move
the |extension| member to BaseContext.

MozReview-Commit-ID: BgsGGCPQxJR
2016-08-15 01:04:58 -07:00
Rob Wu
8472b153c7 Bug 1290157 - Always pass an array to tabs.executeScript on success r=kmag
MozReview-Commit-ID: Ctw8RUtfEZC
2016-08-09 00:28:47 -07:00
Wes Kocher
b9d5a32ad5 Merge inbound to central, a=merge 2016-08-12 13:44:29 -07:00
Kris Maglione
874e487954 Bug 1292369: Null out contentWindow properties when they point to a different inner window than the context belongs to. r=billm
MozReview-Commit-ID: LYQRxpU9vI8
2016-08-04 16:18:25 -07:00
Kris Maglione
d970e4c3c7 Bug 1293700: Make console object available to WebExtension internals. r=aswan
MozReview-Commit-ID: GyD4uo95gt6
2016-08-09 12:40:25 -07:00
Rob Wu
922403c487 Bug 1293126 - Remove Schemas.load from content's ExtensionContext r=kmag
MozReview-Commit-ID: JOToEC2Aokp
2016-08-07 17:59:58 -07:00
Rob Wu
c576617ccb Bug 1197451 - Add clipboardWrite permission r=billm
MozReview-Commit-ID: 6d1mQSVWRPe
2016-07-08 17:19:17 -07:00
Jared Wein
ebf1ccbe46 Bug 1291855 - Enable the no-else-return rule for eslint. r=Felipe,kmag,mossop
MozReview-Commit-ID: DYOmE6xwMJh
2016-08-03 18:54:59 -04:00
Kris Maglione
8c3da6958e Bug 1274871: Return a more useful error message for executeScript without matching window. r=aswan
MozReview-Commit-ID: 3AhuxY6gQPL
2016-07-26 17:55:58 -07:00
Rob Wu
3cbb2da8a5 Bug 1280482 - Add export helpers to content scripts. r=kmag
MozReview-Commit-ID: I4o3NXVphJX
2016-07-15 23:33:47 -07:00
Kris Maglione
4b566c58e2 Bug 1284020: Treat window.fetch/window.XMLHttpRequest the same as the global variants in content scripts. r=aswan
MozReview-Commit-ID: Cuz6CiNZdrd
2016-07-12 15:45:07 -07:00
Sebastian Hengst
b341fe6cc0 Backed out changeset 56d636b5d961 (bug 1284020) for failures in browser_dbg_sources-webext-contentscript.js. r=backout 2016-07-13 10:02:09 +02:00
Kris Maglione
59b91fbcfa Bug 1284020: Treat window.fetch/window.XMLHttpRequest the same as the global variants in content scripts. r=aswan
MozReview-Commit-ID: Cuz6CiNZdrd
2016-07-12 15:45:07 -07:00
Kris Maglione
8e28312be9 Bug 1284942: Don't fire message listeners for windows hidden in bfcache. r=aswan
MozReview-Commit-ID: KSqLt7Qqdkf
2016-07-06 17:14:02 -07:00
Kris Maglione
843973aa31 Bug 1279392: [webext] Move API permission definitions to the schemas. r=aswan
MozReview-Commit-ID: 8m7wJrAbFwS
2016-06-09 17:44:47 -07:00
Sebastian Hengst
d97f588f03 Backed out changeset a00cf073f5c0 (bug 1279392) for failing mochitest test_ext_contentscript_create_iframe.html at least on Linux x64 opt. r=backout 2016-06-14 13:37:52 +02:00
Kris Maglione
b2a33e3bf1 Bug 1279392: [webext] Move API permission definitions to the schemas. r=aswan
MozReview-Commit-ID: 8m7wJrAbFwS
2016-06-09 17:44:47 -07:00
Kris Maglione
e2543e0554 Bug 1269141: Remove content script CSS when disabling an extension. r=aswan
MozReview-Commit-ID: Jhg4XzddIkA
2016-06-04 21:42:55 -07:00
Kris Maglione
fbe0dfe564 Bug 1256607: Support cross-origin fetch() access in WebExtension content scripts. r=aswan
MozReview-Commit-ID: Aw1LSMY3BAW
2016-06-04 20:31:13 -07:00
Bob Silverberg
a1b4a14e81 Bug 1276338 - chrome.runtime.id is undefined in content scripts, r=kmag
MozReview-Commit-ID: BXqB1rW9DzB
2016-05-31 11:55:30 -04:00
Claas Augner
1737833daa Bug 1247455 - Add a .removeCSS method to complement .insertCSS. r=kmag 2016-04-15 00:39:09 +02:00
Bill McCloskey
f43508ae12 Bug 1197346 - Allow browser.storage to be used from content scripts (r=kmag) 2016-04-23 20:04:30 -07:00
Luca Greco
1daaa04fc1 Bug 1261857 - [webext] Support WebExtensions ContentScripts in the Tab DevTools Debugger. r=kmag
MozReview-Commit-ID: BtGqvAkRJZx
2016-04-15 17:09:57 +02:00
Dave Townsend
6c83da2486 Bug 1257246: Update webextension APIs for eslint 2. r=kmag
ESLint 2 now flags anonymous generator functions that don't match the
generator-star-spacing rule so this mostly is fixing that.

MozReview-Commit-ID: 5sLaF26sd0E
2016-04-05 11:30:51 -07:00
Wes Kocher
afb79fc224 Merge inbound to central, a=merge
MozReview-Commit-ID: L8YZYtbmper
2016-04-07 13:42:10 -07:00
Andrew Swan
2680b7869a Bug 1217944 - Part 2 - Support wildcards in web_accessible_resources r=kmag
MozReview-Commit-ID: Ln6JJ5lxc3w
2016-04-06 13:20:23 -07:00
Andrew Swan
354791b132 Bug 1217944 - Part 1 - Make MatchGlobs work on arbitrary strings r=kmag
MozReview-Commit-ID: CK39lpGglKA
2016-04-06 13:07:47 -07:00
Kris Maglione
51106a2f9e Bug 1258199: [webext] Return an empty string for missing keys in getMessage. r=aswan
MozReview-Commit-ID: KEQYq4nZbfk
2016-04-04 13:54:27 -07:00
Wes Kocher
c533b72e89 Backed out changeset c67309c62021 (bug 1258199) for xpcshell failures
MozReview-Commit-ID: FySkZPotDGU
2016-04-04 13:51:12 -07:00
Kris Maglione
3793854b24 Bug 1258199: [webext] Return an empty string for missing keys in getMessage. r=aswan
MozReview-Commit-ID: KEQYq4nZbfk
2016-03-28 17:21:06 +02:00
Tom Schuster
a73438740f Bug 1223634 - Support exclude_globs/include_globs in webext manifests. r=kmag 2016-03-16 15:11:57 +01:00
Kris Maglione
e0795d5219 Bug 1220154, 1249830: Handle sendMessage replies with 0 and >1 listeners correctly. r=billm
MozReview-Commit-ID: 7lE7RaJcl7n
2016-03-04 15:40:56 -08:00
Dave Huseby
d7c8e692f6 Bug 1238177 - fix extension content needs to use the correct user context id origin attribute. r=sicking
(HEAD -> oa, refs/patches/oa/Bug_1238177)
Fixes Bug 1238177 -- extension content needs to use the correct user context id origin attribute
2016-04-04 12:20:00 +02:00
Kris Maglione
d7334ea44a Bug 1248499: [webext] Implement tabs.detectLanguage. r=billm
MozReview-Commit-ID: F4GpSesj2ho
2016-02-26 13:20:28 -08:00