OLD | NEW |
1 <h2 id="howto"> Implementing optional permissions </h2> | 1 <h2 id="howto"> Implementing optional permissions </h2> |
2 | 2 |
3 <h3 id="types"> | 3 <h3 id="types"> |
4 Step 1: Decide which permissions are required and which are optional | 4 Step 1: Decide which permissions are required and which are optional |
5 </h3> | 5 </h3> |
6 | 6 |
7 <p> | 7 <p> |
8 An extension can declare both required and optional permissions. In general, you
should: | 8 An extension can declare both required and optional permissions. In general, you
should: |
9 <ul> | 9 <ul> |
10 <li>Use required permissions when they are needed for your extension’s basic f
unctionality.</li> | 10 <li>Use required permissions when they are needed for your extension’s basic f
unctionality.</li> |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 <li>notifications</li> | 70 <li>notifications</li> |
71 <li>pageCapture</li> | 71 <li>pageCapture</li> |
72 <li>tabs</li> | 72 <li>tabs</li> |
73 <li>topSites</li> | 73 <li>topSites</li> |
74 <li>webNavigation</li> | 74 <li>webNavigation</li> |
75 <li>webRequest</li> | 75 <li>webRequest</li> |
76 <li>webRequestBlocking</li> | 76 <li>webRequestBlocking</li> |
77 </ul> | 77 </ul> |
78 </p> | 78 </p> |
79 | 79 |
| 80 <p>If you want to request hosts that you only discover at runtime, include |
| 81 <code>"http://*/"</code> and/or <code>"https://*/"</code> as an |
| 82 <code>optional_permission</code>. This lets you specify any origin in |
| 83 $ref:Permissions.origins as long as it has a matching scheme. |
| 84 </p> |
| 85 |
80 <h3 id="request"> Step 3: Request optional permissions </h3> | 86 <h3 id="request"> Step 3: Request optional permissions </h3> |
81 <p> | 87 <p> |
82 Request the permissions from within a user gesture using | 88 Request the permissions from within a user gesture using |
83 <code>permissions.request()</code>: | 89 <code>permissions.request()</code>: |
84 <pre> | 90 <pre> |
85 document.querySelector('#my-button').addEventListener('click', function(event) { | 91 document.querySelector('#my-button').addEventListener('click', function(event) { |
86 // Permissions must be requested from inside a user gesture, like a button's | 92 // Permissions must be requested from inside a user gesture, like a button's |
87 // click handler. | 93 // click handler. |
88 chrome.permissions.request({ | 94 chrome.permissions.request({ |
89 permissions: ['tabs'], | 95 permissions: ['tabs'], |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
146 origins: ['http://www.google.com/'] | 152 origins: ['http://www.google.com/'] |
147 }, function(removed) { | 153 }, function(removed) { |
148 if (removed) { | 154 if (removed) { |
149 // The permissions have been removed. | 155 // The permissions have been removed. |
150 } else { | 156 } else { |
151 // The permissions have not been removed (e.g., you tried to remove | 157 // The permissions have not been removed (e.g., you tried to remove |
152 // required permissions). | 158 // required permissions). |
153 } | 159 } |
154 }); | 160 }); |
155 </pre> | 161 </pre> |
OLD | NEW |