cygprofile: increase timeouts to allow showing web contents
[chromium-blink-merge.git] / chrome / common / extensions / docs / templates / articles / single_purpose.html
bloba2281df40f84261d1ba99538f1cc3772b2d2170c
1 <h1>Extensions Quality Guidelines FAQ</h1>
3 <h2 id="one">1.) What is the new policy?</h2>
5 <p>
6 To maintain the quality of the Chrome user experience,
7 we recently launched a new policy requiring Chrome extensions
8 to have a single purpose.
9 We are also introducing the new
10 <a href="http://blog.chromium.org/2014/03/protecting-user-settings-on-windows.html">Settings Override API</a>
11 to allow extensions to manage important Chrome settings on Windows.
12 Beginning with the July 2014 release of Chrome,
13 the Settings Override API will be the only approved path
14 for offering settings changes to Chrome users on Windows.
15 In addition, starting with the May 20, 2014 release of Chrome,
16 we <a href="http://blog.chromium.org/2014/02/make-sure-to-get-your-extension-in.html">have begun to require</a>
17 that extensions in Chrome for Windows be hosted in the Chrome Web Store.
18 Starting in Chrome 44 in July 2015,
19 extensions in Mac are also
20 <a href="http://blog.chromium.org/2015/05/continuing-to-protect-chrome-users-from.html">required to be hosted in the Chrome Web Store</a>.</p>
22 <h2 id="two">2.) Why did Google launch a “single purpose” Chrome extensions policy?</h2>
24 <p>For an overview of the policy announcement, please read this
25 <a href="http://blog.chromium.org/2013/12/keeping-chrome-extensions-simple.html">Chromium blog post</a>.</p>
27 <p>We launched this policy because
28 multi-purpose extensions can crowd your browser UI
29 and slow down your web browsing sometimes significantly.
30 Speed and simplicity have always been part of Chrome's core principles,
31 so this policy will help us get back to the design that was originally intended.
32 Also, unexpected changes to browser functionality and
33 settings have become the number one user complaint for Chrome users,
34 and this policy helps minimize the problem by ensuring
35 that users understand what extensions are doing.
36 </p>
38 <h2 id="three">3.) Where can I find the “single purpose” policy?</h2>
40 <p>
41 Please refer to the
42 <a href="https://developer.chrome.com/webstore/program_policies?csw=1#extensions">Extensions Quality Guidelines</a>
43 section of the Chrome Web Store Developer Program Policies.
44 </p>
46 <h2 id="four">4.) What does “single purpose” actually mean?</h2>
48 <p>
49 “Single purpose” can refer to one of two aspects of an extension:
50 </p>
52 <p>
53 An extension can have a single purpose limited to a narrow
54 <strong>focus area or subject matter</strong>
55 (for example, news headlines", "weather", "comparison shopping").
56 If the extension has a narrow focus area or subject matter,
57 then it can offer various functions related
58 to that focus area or subject matter.
59 For example, a news headlines extension could have a browser action button
60 that allows users to see news stories and replace the new tab page
61 with news-only content,
62 so long as all of those functions are narrowly focused
63 on the news headline focus area.
64 </p>
66 <p>
67 Or, an extension can have a single purpose limited
68 to a narrow <strong>browser function</strong>
69 (for example, "new tab page", "tab management", or "browser history").
70 If the extension is implemented in a single function,
71 then it can offer content or features related to different areas or subjects.
72 For example, an extension that replaces the new tab page could offer
73 multiple unrelated features on the new tab page
74 (for example, weather forecast, news headlines, search engine, and so on),
75 but it can’t also provide a browser action button,
76 change the browser’s homepage, or
77 make any other changes to browser functionality.
78 </p>
80 <p>
81 Be conscious of your extension’s permissions.
82 We assume your extension utilizes each of the permissions it requests.
83 Excessive permissions unrelated to your extension’s single purpose will be viewed
84 as enabling unrelated functionalities, resulting in a policy violation.
85 </p>
87 <h2 id="five">5.) Will this policy affect my extension?</h2>
89 <p>
90 It depends.
91 Particularly if your extension offers multiple features,
92 please make sure that it has a single purpose.
93 Ask yourself these questions:
94 </p>
96 <ul>
97 <li>Does my extension have a narrow focus area
98 or a narrow function as described above?</li>
99 <li>If my extension has a narrow focus area,
100 are all of the features directly related to that single purpose?</li>
101 <li>If my extension has multiple features,
102 does it only affect a narrow function of the browser?</li>
103 <li>Does my extension modify Chrome’s behavior in a predictable way,
104 in line with the extension's narrow, stated purpose?</li>
105 <li>Does my extension request any unnecessary permissions?</li>
106 </ul>
109 If you’re unsure, you can email
110 <a href="mailto:chromewebstore-policy@google.com">chromewebstore-policy@google.com</a>
111 with your extension ID,
112 and we’ll take a look and try to provide feedback within a week.
113 If your extension does not have a single purpose,
114 then you will need to remove functionality
115 or split your extension into different extensions.
116 </p>
118 <h2 id="six">6.) What will happen
119 if I don’t make my extension compliant with this policy?</h2>
122 If you created your extension after December 19, 2013,
123 your extension will not be permitted in the Chrome Web Store.
124 If you created your extension prior to December 19,2013,
125 your extension may be removed from the Chrome Web Store starting July 22, 2014,
126 although you will still be able to update the extension and file appeals.
127 Please keep in mind that
128 your re-published item will not be immediately published live in the store.
129 The re-published item will undergo a compliance review
130 before it can be restored.
131 </p>
134 In order to minimize disruption for users,
135 we recommend that you take a moment to carefully review your extensions
136 and make necessary updates as soon as possible.
137 You can email us at
138 <a href="mailto:chromewebstore-policy@google.com">chromewebstore-policy@google.com</a>
139 with your extension ID, and we’ll try to provide feedback within a week.
140 </p>
142 <h2 id="seven">7.) Can my extension make changes to the start page,
143 homepage, and new tab settings?</h2>
146 Yes.
147 If the purpose of your extension is to modify one narrow function
148 of the browser (either the start page, homepage or new tab page, for example),
149 and it does only that, then it would be compliant with the single-purpose policy.
150 Additionally, if the purpose of your extension is limited
151 to one focus area or subject matter,
152 then you can have various functions related to that one area or subject matter,
153 including changes to start page, homepage and new tab page.
154 </p>
157 Beginning with the July release of Chrome,
158 the only way to programmatically change the homepage, search provider,
159 and startup page settings in Chrome on Windows will be via an extension
160 that uses the Settings Override API.
161 Where more than one extension modifies these Chrome settings,
162 the most recently installed extension will manage the settings it has modified
163 via the Settings Override API.
164 Extension developers can modify the new tab page
165 (and a few other Chrome pages) using the same
166 <a href="https://developer.chrome.com/extensions/override">override method</a>
167 as before.
168 </p>
171 In addition,
172 if you want to publish an extension that modifies Chrome settings,
173 you must either control any domains you wish to set in any changed browser settings
174 or redistribute an extension created by the entity that controls those domains.
175 For example, you could distribute an extension that changes the homepage
176 to wikipedia.org if the Wikimedia Foundation originally created and
177 published the extension in the Chrome Web Store,
178 and gave you the right to distribute it.
179 </p>
182 Please see this
183 <a href="http://blog.chromium.org/2014/03/protecting-user-settings-on-windows.html">Chromium blog post</a>
184 for more information.
185 </p>
187 <h2 id="eight">8.) Can my extension make changes to the default search settings?</h2>
190 Yes.
191 If the only purpose of the extension is to change the default search settings,
192 then it would be compliant with the single purpose policy.
193 Additionally,
194 if the single purpose of your extension is search as the narrow focus area,
195 and nothing else, then you can offer various functions related to search,
196 including changes to default search settings.
197 </p>
199 <h2 id="nine">9.) How will users be notified of settings changes in new versions of Chrome?</h2>
202 If an extension changes Chrome settings via the Settings Override API,
203 the user will be notified of the settings changes prior to installation,
204 when they encounter the settings change for the first time,
205 and via an indicator next to each changed setting on the Chrome settings page.
206 From these notifications,
207 users will have the option to reverse the settings changes
208 by disabling the extension.
209 </p>
211 <h2 id="10">10.) What happens to settings when an extension is disabled?</h2>
214 All Chrome settings changed by an extension will be reverted
215 when that extension is disabled.
216 All other settings
217 (for example, those changed directly by a Windows binary)
218 will remain unchanged.
219 </p>
221 <h2 id="eleven">11.) Will users’ existing homepage, search provider or
222 startup pages be affected by the introduction of the Settings Override API?</h2>
226 A user’s existing homepage, search provider or startup settings will
227 remain unchanged by the introduction of Settings Override API.
228 Following the launch of the Settings Override API,
229 only extensions can programmatically change these settings and
230 only through the Settings Override API.
231 But all changes to a user’s homepage, search provider or
232 startup pages made prior to the launch of the Settings Override API,
233 including any that may have been made by Windows binaries,
234 will remain unchanged until the user manually updates those settings or
235 installs an extension that uses the Settings Override API to change them.
236 </p>
238 <h2 id="twelve">12.) Is this new policy only on some operating systems?</h2>
241 The <a href="https://developer.chrome.com/extensions/hosting_changes">requirement</a>
242 that Chrome extensions be hosted in the Chrome Web Store
243 initially applies only to Windows and Mac extensions.
244 The new Settings Override API will initially be made available
245 only on Chrome for Windows.
246 However, the single-purpose policy will apply to all Chrome extensions.
247 </p>
249 <h2 id="thirteen">13.) Does this policy apply to Chrome apps too?</h2>
252 At this time, Chrome apps (as distinguished from extensions)
253 are not required to be distributed through the Chrome Web Store,
254 or to have a single purpose.
255 Chrome apps are currently not capable of changing Chrome settings.
256 </p>
258 <h2 id="fourteen">14.) Can I bundle ad injection with some other type of functionality?</h2>
262 This violates the single purpose policy.
263 However, if injecting ads is the single purpose of the extension and
264 the extension is otherwise compliant with Chrome policies,
265 then it would be acceptable.
266 For example, a “related articles” extension that adds sponsored links
267 to articles related to a page the user is visiting would be compliant
268 with the single purpose policy because it has a single purpose limited
269 to a narrow function of the browser.
270 You also might want to explore the other monetization options described
271 <a href="https://developer.chrome.com/webstore/money">here</a>.
272 </p>
274 <h2 id="fifteen">15.) Are toolbars permitted under this policy?</h2>
277 It depends on what the toolbar does.
278 As described in
279 <a href="#four">answer #4</a>,
280 it must adhere to the narrow single purpose of the extension.
281 Broad, multi-purpose toolbars are not allowed and
282 toolbars that are implemented using content scripts
283 to inject UI into every page are not recommended because
284 they slow down every page load, clutter the UI,
285 and can lead to security problems for users.
286 Instead, consider using a
287 <a href="https://developer.chrome.com/extensions/browserAction">browser action popup</a>,
288 which was designed to solve this very problem.
289 It's a better user experience, with no performance or security downsides.
290 </p>
292 <h2 id="sixteen">16.) What will happen to non-compliant extensions
293 that were already installed by users?</h2>
296 All extensions must comply with the Extension Quality Guidelines.
297 If a user installed a non-compliant extension,
298 then you will need to update them to a compliant extension
299 that is hosted in the Chrome Web Store.
300 If the user is not updated to a compliant extension
301 that is hosted in the Chrome Web Store,
302 then the extension will be automatically disabled.
303 As noted above,
304 any settings or behaviours controlled by the extension,
305 including any settings controlled by the Settings Override API,
306 will be reverted when the extension is disabled.
307 You can find more information
308 <a href="http://blog.chromium.org/2014/02/make-sure-to-get-your-extension-in.html">here</a>.
309 </p>
311 <h2 id="seventeen">17.) If my extension is rejected from the Chrome Web Store
312 because it doesn’t comply with the single purpose policy,
313 what will happen after the requirement to host extensions
314 in the Chrome Web Store comes into effect?</h2>
317 If your extension is rejected from the Chrome Web Store,
318 you will need to make changes or appeal the decision.
319 After the requirement to host extensions
320 in the Chrome Web Store comes into effect for Windows in late May 2014,
321 your extension must be hosted in the Chrome Web Store or
322 it will be automatically disabled from the users’ browsers.
323 The same will occur for Mac extensions that are not hosted
324 on the Chrome Web Store prior to the release of 44 in July 2015.
325 </p>
327 <h2 id="eighteen">18.) If my extension gets flagged for review under the single purpose policy,
328 what will happen?</h2>
331 Our team will review it,
332 and it may be removed from the Chrome Web Store.
333 You’ll have a chance to make changes and appeal the decision.
334 As noted above,
335 if you created your extension before we announced the policy on December 19, 2013,
336 you have until July 22, 2014 to make changes.
337 If your extension was created after the policy was announced,
338 it needs to be compliant now.
339 You can temporarily unpublish it and contact us at
340 <a href="mailto:chromewebstore-policy@google.com">chromewebstore-policy@google.com</a>
341 with your extension ID if you’d like feedback.
342 We’ll try to respond within a week.
343 </p>
345 <h2 id="nineteen">19.) I need help. Who should I contact?</h2>
348 You can email
349 <a href="mailto:chromewebstore-policy@google.com">chromewebstore-policy@google.com</a>
350 with your extension ID,
351 and we’ll take a look and try to provide feedback within a week.
352 This is a lightweight review intended to give you an indication
353 of whether your extension will comply with the new policy.
354 </p>
356 <h2 id="appendix">Appendix: Examples of extensions that comply with the quality guidelines</h2>
359 An extension that adds features to Chrome’s browser history.
360 All of the features are contained in a single browser function.
361 </p>
363 <img src="{{static}}/images/history-extension.png"
364 width="680"
365 height="385"
366 alt="Image of browsing history extension">
369 An extension with a single subject matter:
370 It provides dropdown information about the weather.
371 Because it is focused on one type of content,
372 this extension could also change browser settings, like the new tab page,
373 where the extension displays weather conditions and offers a weather search.
374 </p>
376 <img src="{{static}}/images/extension.png"
377 width="680"
378 height="425"
379 alt="Image of weather extension">
381 <img src="{{static}}/images/search-extension2.png"
382 width="680"
383 height="425"
384 alt="Image of weather extension showing new tab page">
387 A search extension.
388 It has multiple features, including this dropdown,
389 but all of them are related to the narrow subject matter of search.
390 </p>
392 <img src="{{static}}/images/extension2.png"
393 width="680"
394 height="425"
395 alt="Image of search extension">