Skip to content
This repository

Add @grant metadata #1425

Closed
arantius opened this Issue September 23, 2011 · 3 comments

2 participants

arantius Johan Sundström
arantius
Collaborator

There should be a metadata imperative like @grant that would grant access to special APIs.

A value of @grant none would mean that the script has no special API access, and will instead execute within the content scope.

Any other value provided to @grant would run the script in legacy (sandbox / wrappers) mode, with only the named APIs provided. This imperative can be repeated as many times as necessary to request access to all necessary functions.

If a script has no @grant at all, at install time, it and its @requires will be scanned for implied APIs. The appropriate @grants to provide the discovered APIs will be implicitly provided.

Johan Sundström
Collaborator

The implication that an explicit @grant none makes all undeclared GM_* identifiers used in the script (or its @require files) syntax errors sounds good.

I could see surfacing @grant status (mostly the boolean "none" vs "some", and maybe also vs "undeclared") in the script list at some point too, as a dev / power user aid.

arantius
Collaborator

The implication that an explicit @grant none makes all undeclared GM_* identifiers used in the script (or its @require files) syntax errors sounds good.

Well, today they're all functions, and they would be undefined, so calling undefined will be a syntax error without us doing anything.

arantius arantius referenced this issue from a commit in arantius/greasemonkey May 22, 2012
arantius Refactor out common getScriptSource() method.
Refs #1425
59de647
arantius arantius referenced this issue from a commit in arantius/greasemonkey May 22, 2012
arantius Helper method to sniff API usage in a script.
Refs #1425
5402c32
arantius arantius referenced this issue from a commit in arantius/greasemonkey May 22, 2012
arantius Parse/save grant metadata for scripts.
Refs #1425
4f54c6b
arantius
Collaborator

This seems to be working.

arantius arantius closed this June 15, 2012
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.