| Index: chrome/common/extensions/docs/server2/templates/intros/privacy.html
|
| diff --git a/chrome/common/extensions/docs/server2/templates/intros/privacy.html b/chrome/common/extensions/docs/server2/templates/intros/privacy.html
|
| index 24c061c9c7c5bbc9c7f9ffcee791c6899ada534e..c7657ea0640260e616330f798fd8369d3f8d3577 100644
|
| --- a/chrome/common/extensions/docs/server2/templates/intros/privacy.html
|
| +++ b/chrome/common/extensions/docs/server2/templates/intros/privacy.html
|
| @@ -1,19 +1,21 @@
|
| -<!-- BEGIN AUTHORED CONTENT -->
|
| <p id="classSummary">
|
| Use the <code>chrome.privacy</code> module to control usage of the features in
|
| Chrome that can affect a user's privacy. This module relies on the
|
| <a href="types.html#ChromeSetting">ChromeSetting prototype of the type API</a>
|
| for getting and setting Chrome's configuration.
|
| </p>
|
| +
|
| <p class="note">
|
| The <a href="http://www.google.com/intl/en/landing/chrome/google-chrome-privacy-whitepaper.pdf">Chrome Privacy Whitepaper</a>
|
| gives background detail regarding the features which this API can control.
|
| </p>
|
| +
|
| <h2 id="manifest">Manifest</h2>
|
| <p>
|
| You must declare the "privacy" permission in your extension's
|
| <a href="manifest.html">manifest</a> to use the API. For example:
|
| </p>
|
| +
|
| <pre>{
|
| "name": "My extension",
|
| ...
|
| @@ -22,7 +24,9 @@
|
| ]</b>,
|
| ...
|
| }</pre>
|
| +
|
| <h2 id="usage">Usage</h2>
|
| +
|
| <p>
|
| Reading the current value of a Chrome setting is straightforward. You'll first
|
| need to find the property you're interested in, then you'll call
|
| @@ -30,12 +34,14 @@
|
| your extension's level of control. For example, to determine if Chrome's
|
| Autofill feature is enabled, you'd write:
|
| </p>
|
| +
|
| <pre>chrome.privacy.services.autofillEnabled.get({}, function(details) {
|
| if (details.value)
|
| console.log('Autofill is on!');
|
| else
|
| console.log('Autofill is off!');
|
| });</pre>
|
| +
|
| <p>
|
| Changing the value of a setting is a little bit more complex, simply because
|
| you first must verify that your extension can control the setting. The user
|
| @@ -48,12 +54,14 @@
|
| is advisable to warn the user when the settings they've chosen aren't
|
| practically applied.
|
| </p>
|
| +
|
| <p class="note">
|
| Full details about extensions' ability to control <code>ChromeSetting</code>s
|
| can be found under
|
| <a href="types.html#ChromeSetting">
|
| <code>chrome.types.ChromeSetting</code></a>.
|
| </p>
|
| +
|
| <p>
|
| This means that you ought to use the <code>get()</code> method to determine
|
| your level of access, and then only call <code>set()</code> if your extension
|
| @@ -61,6 +69,7 @@
|
| setting it's probably a good idea to visually disable the functionality to
|
| reduce user confusion):
|
| </p>
|
| +
|
| <pre>chrome.privacy.services.autofillEnabled.get({}, function(details) {
|
| if (details.levelOfControl === 'controllable_by_this_extension') {
|
| chrome.privacy.services.autofillEnabled.set({ value: true }, function() {
|
| @@ -71,6 +80,7 @@
|
| }
|
| }
|
| });</pre>
|
| +
|
| <p>
|
| If you're interested in changes to a setting's value, add a listener to its
|
| <code>onChange</code> event. Among other uses, this will allow you to warn the
|
| @@ -78,14 +88,122 @@
|
| enterprise policy overrides your control. To listen for changes to Autofill's
|
| status, for example, the following code would suffice:
|
| </p>
|
| +
|
| <pre>chrome.privacy.services.autofillEnabled.onChange.addListener(
|
| function (details) {
|
| // The new value is stored in `details.value`, the new level of control
|
| // in `details.levelOfControl`, and `details.incognitoSpecific` will be
|
| // `true` if the value is specific to Incognito mode.
|
| });</pre>
|
| +
|
| <h2 id="examples">Examples</h2>
|
| <p>
|
| For example code, see the
|
| <a href="samples.html#privacy">Privacy API samples</a>.
|
| </p>
|
| +
|
| +
|
| +
|
| +<p id="classSummary">
|
| + Use the <code>chrome.privacy</code> module to control usage of the features in
|
| + Chrome that can affect a user's privacy. This module relies on the
|
| + <a href="types.html#ChromeSetting">ChromeSetting prototype of the type API</a>
|
| + for getting and setting Chrome's configuration.
|
| +</p>
|
| +
|
| +<p class="note">
|
| + The <a href="http://www.google.com/intl/en/landing/chrome/google-chrome-privacy-whitepaper.pdf">Chrome Privacy Whitepaper</a>
|
| + gives background detail regarding the features which this API can control.
|
| +</p>
|
| +
|
| +<h2 id="manifest">Manifest</h2>
|
| +<p>
|
| + You must declare the "privacy" permission in your extension's
|
| + <a href="manifest.html">manifest</a> to use the API. For example:
|
| +</p>
|
| +
|
| +<pre>{
|
| + "name": "My extension",
|
| + ...
|
| + <b>"permissions": [
|
| + "privacy"
|
| + ]</b>,
|
| + ...
|
| +}</pre>
|
| +
|
| +<h2 id="usage">Usage</h2>
|
| +
|
| +<p>
|
| + Reading the current value of a Chrome setting is straightforward. You'll first
|
| + need to find the property you're interested in, then you'll call
|
| + <code>get()</code> on that object in order to retrieve its current value and
|
| + your extension's level of control. For example, to determine if Chrome's
|
| + Autofill feature is enabled, you'd write:
|
| +</p>
|
| +
|
| +<pre>chrome.privacy.services.autofillEnabled.get({}, function(details) {
|
| + if (details.value)
|
| + console.log('Autofill is on!');
|
| + else
|
| + console.log('Autofill is off!');
|
| +});</pre>
|
| +
|
| +<p>
|
| + Changing the value of a setting is a little bit more complex, simply because
|
| + you first must verify that your extension can control the setting. The user
|
| + won't see any change to her settings if you extension toggles a setting that
|
| + is either locked to a specific value by enterprise policies
|
| + (<code>levelOfControl</code> will be set to "not_controllable"), or if another
|
| + extension is controlling the value (<code>levelOfControl</code> will be set to
|
| + "controlled_by_other_extensions"). The <code>set()</code> call will succeed,
|
| + but the setting will be immediately overridden. As this might be confusing, it
|
| + is advisable to warn the user when the settings they've chosen aren't
|
| + practically applied.
|
| +</p>
|
| +
|
| +<p class="note">
|
| + Full details about extensions' ability to control <code>ChromeSetting</code>s
|
| + can be found under
|
| + <a href="types.html#ChromeSetting">
|
| + <code>chrome.types.ChromeSetting</code></a>.
|
| +</p>
|
| +
|
| +<p>
|
| + This means that you ought to use the <code>get()</code> method to determine
|
| + your level of access, and then only call <code>set()</code> if your extension
|
| + can grab control over the setting (in fact if your extension can't control the
|
| + setting it's probably a good idea to visibly disable the functionality to
|
| + reduce user confusion):
|
| +</p>
|
| +
|
| +<pre>chrome.privacy.services.autofillEnabled.get({}, function(details) {
|
| + if (details.levelOfControl === 'controllable_by_this_extension') {
|
| + chrome.privacy.services.autofillEnabled.set({ value: true }, function() {
|
| + if (chrome.extension.lastError === undefined)
|
| + console.log("Hooray, it worked!");
|
| + else
|
| + console.log("Sadness!", chrome.extension.lastError);
|
| + }
|
| + }
|
| +});</pre>
|
| +
|
| +<p>
|
| + If you're interested in changes to a setting's value, add a listener to its
|
| + <code>onChange</code> event. Among other uses, this will allow you to warn the
|
| + user if a more recently installed extension grabs control of a setting, or if
|
| + enterprise policy overrides your control. To listen for changes to Autofill's
|
| + status, for example, the following code would suffice:
|
| +</p>
|
| +
|
| +<pre>chrome.privacy.services.autofillEnabled.onChange.addListener(
|
| + function (details) {
|
| + // The new value is stored in `details.value`, the new level of control
|
| + // in `details.levelOfControl`, and `details.incognitoSpecific` will be
|
| + // `true` if the value is specific to Incognito mode.
|
| + });</pre>
|
| +
|
| +<h2 id="examples">Examples</h2>
|
| +<p>
|
| + For example code, see the
|
| + <a href="samples.html#privacy">Privacy API samples</a>.
|
| +</p>
|
|
|