NPAPI:ClearSiteData: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
= Status = | = Status = | ||
Accepted, ready for implementation. | |||
= Contributors = | = Contributors = | ||
* Last modified: | * Last modified: January 5, 2011 | ||
* Authors: Julian Reschke (greenbytes), Dan Witte (Mozilla), Bernhard Bauer (Chromium), Rajesh Gwalani (Adobe), Josh Aas (Mozilla), Maciej Stachowiak (Apple) | * Authors: Julian Reschke (greenbytes), Dan Witte (Mozilla), Bernhard Bauer (Chromium), Rajesh Gwalani (Adobe), Josh Aas (Mozilla), Maciej Stachowiak (Apple) | ||
Line 22: | Line 22: | ||
</pre> | </pre> | ||
This function returns a <code>NULL</code>-terminated list of sites with data. Each site string is a domain per the domain portion of the URI specification but with a requirement for NFKC-normalized UTF-8 encoding. No other encoding is allowed. Memory for site strings must be allocated with <code>NPN_MemAlloc</code> and the browser will be responsible for freeing the memory with <code>NPN_MemFree</code>. | This function returns a <code>NULL</code>-terminated list of sites with data. Each site string is a domain per the domain portion of the URI specification but with a requirement for NFKC-normalized UTF-8 encoding. No other encoding is allowed. Memory for the array and the site strings must be allocated with <code>NPN_MemAlloc</code> and the browser will be responsible for freeing the memory with <code>NPN_MemFree</code>. | ||
== Clearing Data == | == Clearing Data == |
Revision as of 03:14, 6 January 2011
Status
Accepted, ready for implementation.
Contributors
- Last modified: January 5, 2011
- Authors: Julian Reschke (greenbytes), Dan Witte (Mozilla), Bernhard Bauer (Chromium), Rajesh Gwalani (Adobe), Josh Aas (Mozilla), Maciej Stachowiak (Apple)
Overview
Allows browsers to discover and clear plugin private data.
Specification
Discovering Data
The following method will allow browsers to discover which sites a plugin has data for. Note that plugins (but no instances) must be initialized and function tables retrieved in order to call this method.
char** NPP_GetSitesWithData(void);
This function returns a NULL
-terminated list of sites with data. Each site string is a domain per the domain portion of the URI specification but with a requirement for NFKC-normalized UTF-8 encoding. No other encoding is allowed. Memory for the array and the site strings must be allocated with NPN_MemAlloc
and the browser will be responsible for freeing the memory with NPN_MemFree
.
Clearing Data
The following method will allow browsers to request that plugins clear data. Note that plugins (but no instances) must be initialized and function tables retrieved in order to call this method.
NPError NPP_ClearSiteData( const char* site, // site for which to clear data PRUint64 flags, // what type of data to clear PRUInt64 maxAge // max. age of information in seconds );
- The
site
argument is interpreted as follows:- If
NULL
, all site-specific data and more generic data on browsing history (for instance, number of sites visited) should be cleared. - If
!NULL
, argument is a site string from the discovery API (an exact copy or the original). The browser is responsible for allocating and freeing the memory used for this argument. The plugin must copy the string in order to retain it outside the scope of the call.
- If
- The
flags
argument is a bit mask representing the type(s) of data to clear.
#define NP_CLEAR_ALL 0 /* Clear all private data */ #define NP_CLEAR_CACHE 1 << 0 /* Clear cached data which can simply be retrieved again as requested. To be used out of concern for space and not necessarily privacy. */ /* More flags may be defined later, this spec will be updated. */
- The
maxAge
argument is the maximum age in seconds of data to clear, inclusive. IfmaxAge
is0
, no data is cleared. IfmaxAge
is the maximum unsigned 64-bit integer, all data is cleared.
The following new NPError
values will be available for return from NPP_ClearSiteData
:
// can't clear by time range #define NPERR_TIME_RANGE_NOT_SUPPORTED (NPERR_BASE + 14) // malformed 'site' string #define NPERR_MALFORMED_SITE (NPERR_BASE + 15)
For any other type of error the plugin must return NPERR_GENERIC_ERROR
.
If site data is in use by an instance of the plugin when NPP_ClearSiteData
is called then it is up to the plugin to do the right thing.
Open Issues
- None.
Notes
Notes for this specification are here.