My favorites | Sign in
Project Home Downloads Wiki Issues
New issue   Search
for
  Advanced search   Search tips
Issue 88030: Expose privacy-relevant preferences via an extension API.
7 people starred this issue and may be notified of changes. Back to list
 
Reported by project member mkwst@chromium.org, Jun 30, 2011
I'd like extensions to have access to user preferences like "Use a web service to help resolve navigation errors" (basically, everything under chrome://settings/advanced that we mention in the privacy whitepaper). I see two distinct use-cases:

1. I'd like to creation an app-version of the whitepaper itself that offers users the ability to change settings trivially.

2. I'd like external developers (and perhaps also us) to be able to create extensions that help guide users into certain groups of settings.

I talked with bauerb@ a moment ago about this, and he's into the idea, but I'd appreciate feedback from the extension team before I start putting together a strawman CL. Specifically, if this is something that you guys agree we should implement, where should it sit? Under `chrome.contentSettings.[something]`?

Thanks!
Comment 1 by jochen@chromium.org, Jun 30, 2011
The intention of the contentSettings.misc (now .global) namespace was to serve as a dumping ground for exactly these kinds of preferences.

I'd argue that instead of creating a new namespace, you should add them there. Otherwise we have to figure out for each setting if it's more or less content settings related or not. My take is that contentSettings.global is for all switches that a privacy related extension might want to switch
Comment 2 by mkwst@google.com, Jul 1, 2011
Uploaded a CL for discussion (http://codereview.chromium.org/7298005/), going with Jochen's suggestion.

UMA is a sticking point, will discuss what needs to be done there.
Comment 3 by p...@chromium.org, Jul 2, 2011
Many of these prefs are not content settings. Can we rename the namespace more accurately?
Comment 4 by jochen@chromium.org, Jul 6, 2011
what about renaming the namespace contentSettings to webSettings, as some of the (non-global) ones aren't content settings anyway (like geolocation/notifications)?
Comment 5 by mnissler@chromium.org, Jul 11, 2011
One concern: We've been careful to not expose the internals of the pref system via public APIs in the past. This is so we can change pref names and types easily when it makes sense from a code point of view. For example, from a policy point of view, we have stable externally-visible policy names that we can map to whatever pref name and format we want.

If we create an extension API, will we still be able to change the pref names when the need arises?
Comment 6 by p...@chromium.org, Jul 11, 2011
We should absolutely use a mapping from API to pref name, not a direct parsing of the API call.
Comment 7 by mkwst@chromium.org, Jul 11, 2011
Happily, that's how Bernhard built the thing.  :)

See http://codereview.chromium.org/7298005/patch/3005/4002 for example.
Comment 8 by mkwst@chromium.org, Aug 23, 2011
(No comment was entered for this change.)
Blocking: 93877
Comment 9 by mkwst@chromium.org, Aug 25, 2011
(No comment was entered for this change.)
Blocking: 94243
Comment 10 by bugdro...@chromium.org, Aug 25, 2011
The following revision refers to this bug:
    http://src.chromium.org/viewvc/chrome?view=rev&revision=98396

------------------------------------------------------------------------
r98396 | mkwst@chromium.org | Thu Aug 25 22:41:21 PDT 2011

Changed paths:
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/preference?r1=98396&r2=98395&pathrev=98396
 D http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/content_settings/session_only_incognito?r1=98396&r2=98395&pathrev=98396
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/renderer/resources/renderer_extension_bindings.js?r1=98396&r2=98395&pathrev=98396
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_permission_set.h?r1=98396&r2=98395&pathrev=98396
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_preference_api.cc?r1=98396&r2=98395&pathrev=98396
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/preference/session_only_incognito/test.html?r1=98396&r2=98395&pathrev=98396 (from /trunk/src/chrome/test/data/extensions/api_test/content_settings/session_only_incognito/test.html revision 98395)
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/preference/session_only_incognito/manifest.json?r1=98396&r2=98395&pathrev=98396
 D http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/content_settings/clear?r1=98396&r2=98395&pathrev=98396
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/preference/session_only_incognito?r1=98396&r2=98395&pathrev=98396
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/content_settings/standard/test.html?r1=98396&r2=98395&pathrev=98396
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/experimental.privacy.html?r1=98396&r2=98395&pathrev=98396
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/chrome_tests.gypi?r1=98396&r2=98395&pathrev=98396
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/preference/standard/test.html?r1=98396&r2=98395&pathrev=98396
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/preference/standard/manifest.json?r1=98396&r2=98395&pathrev=98396
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_content_settings_apitest.cc?r1=98396&r2=98395&pathrev=98396
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_permission_set.cc?r1=98396&r2=98395&pathrev=98396
 D http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/content_settings/persistent_incognito?r1=98396&r2=98395&pathrev=98396
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/experimental.contentSettings.html?r1=98396&r2=98395&pathrev=98396
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/api/extension_api.json?r1=98396&r2=98395&pathrev=98396
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/preference/persistent_incognito/test.html?r1=98396&r2=98395&pathrev=98396 (from /trunk/src/chrome/test/data/extensions/api_test/content_settings/persistent_incognito/test.html revision 98395)
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/preference/persistent_incognito/manifest.json?r1=98396&r2=98395&pathrev=98396
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/preference/standard?r1=98396&r2=98395&pathrev=98396
 D http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/content_settings/onchange?r1=98396&r2=98395&pathrev=98396
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_preference_apitest.cc?r1=98396&r2=98395&pathrev=98396
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/preference/persistent_incognito?r1=98396&r2=98395&pathrev=98396
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/experimental.html?r1=98396&r2=98395&pathrev=98396
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/preference/onchange/manifest.json?r1=98396&r2=98395&pathrev=98396
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/preference/clear/manifest.json?r1=98396&r2=98395&pathrev=98396
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/preference/onchange/test.html?r1=98396&r2=98395&pathrev=98396 (from /trunk/src/chrome/test/data/extensions/api_test/content_settings/onchange/test.html revision 98395)
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/preference/clear/test.html?r1=98396&r2=98395&pathrev=98396 (from /trunk/src/chrome/test/data/extensions/api_test/content_settings/clear/test.html revision 98395)
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/preference/onchange?r1=98396&r2=98395&pathrev=98396
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/preference/clear?r1=98396&r2=98395&pathrev=98396

Expose privacy-relevant preferences in Chrome's extension APIs.

Adds a `privacy` permission to hold toggles for features that a) send information to external services (google or otherwise), b) send information to first-party websites, and c) effect Chrome's handling of the network in general.

(Metrics are still a TODO).

* privacy
    * network
    * networkPredictionEnabled (ChromeSetting)
  * services
    * alternateErrorPagesEnabled (ChromeSetting)
    * autofillEnabled (ChromeSetting)
    * instantEnabled (ChromeSetting)
    * safeBrowsingEnabled (ChromeSetting)
    * searchSuggestEnabled (ChromeSetting)
    * translateEnabled (ChromeSetting)
  * websites
    * blockThirdPartyCookies (ChromeSetting)
    * hyperlinkAuditingEnabled (ChromeSetting)
    * referrersEnabled (ChromeSetting)

BUG=88030,55059,54853
TEST=browser_tests

Review URL: http://codereview.chromium.org/7298005
------------------------------------------------------------------------
Comment 11 by mkwst@chromium.org, Aug 25, 2011
Landed the majority of this.

UMA is still TODO; covered in http://crbug.com/94359
Blockedon: 94359
Comment 12 by kar...@google.com, Sep 8, 2011
moving non-essential bugs to m16. please move back if this was done in error and your bug is a blocker for m15.
Labels: bulkmove MovedFrom15
Comment 13 by kar...@google.com, Sep 8, 2011
moving all non-essential bugs from 15 to 16. please feel free to move back if this was an error and your bug is a release blocker.
Labels: Mstone-16
Comment 14 by lafo...@google.com, Oct 24, 2011
(No comment was entered for this change.)
Labels: -Mstone-16 MovedFrom-16 Mstone-17
Comment 15 by bugdro...@chromium.org, Jan 25, 2012
The following revision refers to this bug:
    http://src.chromium.org/viewvc/chrome?view=rev&revision=119031

------------------------------------------------------------------------
r119031 | mkwst@chromium.org | Wed Jan 25 00:14:52 PST 2012

Changed paths:
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/common_resources.grd?r1=119031&r2=119030&pathrev=119031
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/preference/standard/test.js?r1=119031&r2=119030&pathrev=119031
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/preferences/enableReferrer/popup.js?r1=119031&r2=119030&pathrev=119031
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_permission_set.h?r1=119031&r2=119030&pathrev=119031
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_preference_api.cc?r1=119031&r2=119030&pathrev=119031
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/static/manifest.html?r1=119031&r2=119030&pathrev=119031
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/preference/persistent_incognito/test.js?r1=119031&r2=119030&pathrev=119031
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/preference/session_only_incognito/manifest.json?r1=119031&r2=119030&pathrev=119031
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/samples.json?r1=119031&r2=119030&pathrev=119031
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/preferences/enableReferrer.zip?r1=119031&r2=119030&pathrev=119031
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/samples.html?r1=119031&r2=119030&pathrev=119031
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/manifest.html?r1=119031&r2=119030&pathrev=119031
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/preferences/enableReferrer/manifest.json?r1=119031&r2=119030&pathrev=119031
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/preferences/allowThirdPartyCookies.zip?r1=119031&r2=119030&pathrev=119031
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/permission_warnings.html?r1=119031&r2=119030&pathrev=119031
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/app/generated_resources.grd?r1=119031&r2=119030&pathrev=119031
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/static/experimental.privacy.html?r1=119031&r2=119030&pathrev=119031
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/preference/onchange/test.js?r1=119031&r2=119030&pathrev=119031
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/preferences/allowThirdPartyCookies/manifest.json?r1=119031&r2=119030&pathrev=119031
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/preference/clear/test.js?r1=119031&r2=119030&pathrev=119031
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/static/privacy.html?r1=119031&r2=119030&pathrev=119031
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/experimental.privacy.html?r1=119031&r2=119030&pathrev=119031
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/preferences/allowThirdPartyCookies/popup.js?r1=119031&r2=119030&pathrev=119031
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/api/extension_api.cc?r1=119031&r2=119030&pathrev=119031
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/preference/standard/manifest.json?r1=119031&r2=119030&pathrev=119031
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/extension_permission_set.cc?r1=119031&r2=119030&pathrev=119031
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/js/api_page_generator.js?r1=119031&r2=119030&pathrev=119031
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/preference/session_only_incognito/test.js?r1=119031&r2=119030&pathrev=119031
 D http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/api/experimental.privacy.json?r1=119031&r2=119030&pathrev=119031
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/preference/persistent_incognito/manifest.json?r1=119031&r2=119030&pathrev=119031
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/privacy.html?r1=119031&r2=119030&pathrev=119031 (from /trunk/src/chrome/common/extensions/docs/experimental.privacy.html revision 119030)
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/extension_preference_apitest.cc?r1=119031&r2=119030&pathrev=119031
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/static/permission_warnings.html?r1=119031&r2=119030&pathrev=119031
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/preference/onchange/manifest.json?r1=119031&r2=119030&pathrev=119031
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/test/data/extensions/api_test/preference/clear/manifest.json?r1=119031&r2=119030&pathrev=119031
 A http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/api/privacy.json?r1=119031&r2=119030&pathrev=119031 (from /trunk/src/chrome/common/extensions/api/experimental.privacy.json revision 119030)

Move the `privacy` extension API out of experimental.

BUG=88030
TEST=browser_test (ExtensionAPITest.Preference*)

Review URL: https://chromiumcodereview.appspot.com/9244005
------------------------------------------------------------------------
Comment 16 by mkwst@chromium.org, Jan 25, 2012
(No comment was entered for this change.)
Status: Fixed
Labels: -Mstone-17 Mstone-18
Sign in to add a comment

Powered by Google Project Hosting