Commit Graph

20 Commits

Author SHA1 Message Date
Shubham Chinda 3929b9f760 fix: Remove runtime.getBrowserInfo() (#200) 2019-08-01 19:01:38 +02:00
Luca Greco 6f178c56da
fix: browser.devtools.inspectedWindow.eval promise should always resolve to an array (#175)
* fix: browser.devtools.inspectedWindow.eval promise should always resolve to an array
* test(integration): Add test for browser.devtools.inspectedWindow.eval API
2019-02-01 08:38:35 +01:00
Rob Wu 2537b23837 fix: add tabs.discard 2018-06-15 10:49:53 -07:00
Rob Wu 32863899bd style: alphabetically sort methods in tabs namespace 2018-06-15 10:49:53 -07:00
Rob Wu a3cb260c8e fix: Remove non-existing pageAction.getIcon
- Alphabetically sort keys
- Remove non-existing pageAction.getIcon
  (neither Firefox nor Chrome support this method).
2018-06-15 10:49:53 -07:00
Rob Wu e2754582c7 fix: Add missing management.setEnabled
setEnabled is partially implemented in Firefox:
- https://bugzil.la/1282982
- https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/API/management/setEnabled

The management API has many more methods in Chrome,
Firefox does not support them:
- createAppShortcut
- generateAppForLink
- getPermissionWarningsById
- getPermissionWarningsByManifest
- launchApp
- setLaunchType
- uninstall
2018-06-15 10:49:53 -07:00
Rob Wu 28377724ca style: alphabetically sort history keys 2018-06-15 10:49:53 -07:00
Rob Wu 597788817e fix: Fix downloads schemas
- Alphabetically sort keys
- Add `"fallbackToNoCallback": true` to `open` and `show`
  because these methods do currently not take any callbacks in Chrome:
  https://developer.chrome.com/extensions/downloads#method-open
  https://developer.chrome.com/extensions/downloads#method-show
- Chrome has a `downloads.acceptDanger` method, but Firefox does not,
  so this is not included in the schema.
2018-06-15 10:49:53 -07:00
Rob Wu fc25bd3e4c style: Alphabetically sort keys in contextMenus 2018-06-15 10:49:53 -07:00
Rob Wu 1981c59d94 fix: Add missing browserAction APIs (#99)
Note that the "openPopup" method is only available to the dev channel:
c2b078825a/chrome/common/extensions/api/_api_features.json (178)
https://crbug.com/436489
2018-06-15 10:49:53 -07:00
Rob Wu 5046a3f400 fix: Remove non-existing bookmarks.{export,import}
These APIs are not supported by Firefox:
https://searchfox.org/mozilla-central/rev/292d295d6b084b43b70de26a42e68513bb7b36a3/browser/components/extensions/schemas/bookmarks.json#436-465

In Chrome the APIs are not available either, except to some internal components:
b7963dca6a/chrome/common/extensions/api/_api_features.json (138)

Also moved "getTree" to ensure that the keys are alphabetically sorted.
2018-06-15 10:49:53 -07:00
Rob Wu 4a407da02c feat: Add topSites namespace to metadata
https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/topSites#Browser_compatibility
2018-06-15 10:41:08 -07:00
Rob Wu 69e58761a5 feat: Add sessions namespace to metadata
https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/sessions#Browser_compatibility

Only `sessions.getRecentlyClosed` and `sessions.restore` are currently
supported by Firefox.

`sessions.getDevices` is included anyway since this method may be added
to Firefox in the future: https://bugzil.la/1308059
2018-06-15 10:41:08 -07:00
Rob Wu f086bc15ac feat: Add permissions namespace to metadata
https://searchfox.org/mozilla-central/rev/292d295d6b084b43b70de26a42e68513bb7b36a3/toolkit/components/extensions/schemas/permissions.json
https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/permissions#Browser_compatibility
2018-06-15 10:41:08 -07:00
Rob Wu 9225b2a91b feat: Add browsingData namespace to metadata
The auto-generated output from the metadata generator also includes the
following methods from Chrome. Firefox does not support them, so they
were not included in the metadata:

```
    "removeAppcache": {
      "minArgs": 1,
      "maxArgs": 1
    },
    "removeFileSystems": {
      "minArgs": 1,
      "maxArgs": 1
    },
    "removeIndexedDB": {
      "minArgs": 1,
      "maxArgs": 1
    },
    "removeWebSQL": {
      "minArgs": 1,
      "maxArgs": 1
    },
```

Also see:
https://searchfox.org/mozilla-central/rev/292d295d6b084b43b70de26a42e68513bb7b36a3/browser/components/extensions/schemas/browsing_data.json
https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/browsingData#Browser_compatibility
2018-06-15 10:41:08 -07:00
Luca Greco 917ed413f6 fix: Add a new fallbackToNoCallback metadata property to customize the pageAction.show/hide wrappers behavior 2018-03-13 14:27:22 +01:00
Megaman 0778db93ca fix: pageAction.show/hide should have 1 non-optional parameter in their metadata 2018-03-13 14:27:22 +01:00
Sébastien Règne 13d0ced89e feat: add identity.launchWebAuthFlow() in metadata. (#39)
Provides the api metadata for the identity.launchWebAuthFlow API method (which fixes #80)
2018-01-09 16:27:33 +01:00
Luca Greco 61d92ea79b feat: Added devtools.inspectedWindow.eval and devtools.panels.create to wrapped APIs.
To be able to wrap the devtools API namespaces, this patch applies the
following changes:

- fix: Prevent Proxy violation exception on the read-only/non-configurable devtools property
  by using an empty object with the `chrome` API object as its prototype
  as the root Proxy target (the Proxy instances returned for the
  `chrome` API object) and add a related test case.

- fix: Added support for a new `singleCallbackArg` metadata property,
  which prevents devtools.panels.create to resolve an array of
  parameters (See the related Chromium issue at
  https://bugs.chromium.org/p/chromium/issues/detail?id=768159)
  and add the related test cases.

- test: Changes to the test case related to proxy getter/setter behavior
  on non wrapped properties:

  in the "deletes proxy getter/setter that are not wrapped" test case from
  the "test-proxied-properties.js" test file, we ensure that when a
  getter/setter is called for a "non-wrapped" property, the getter/setter
  is going to affect the original target object, unfortunately this in
  not true anymore for the root object (the `chrome` API object) because
  we are using an empty object (which has the `chrome` API object as its
  prototype and it is not exposed outside of the polyfill sources)
  as the target of the Proxy instance related to it,
  this change to the target of the Proxy has been needed to prevent the
  TypeError exception raised by the Proxy instance when we try to access
  the "devtools" property (which is non-configurable and read-only on the
  `chrome` API object).
2017-09-25 22:20:07 +02:00
Kris Maglione c74d1af46d Initial checkin. 2016-10-10 11:36:21 -07:00