Refactor ProtectedMediaIdentifierPermissionContext to derive from PermissionContextBase.
[chromium-blink-merge.git] / chrome / docs / platform-pillar.html
blobedda60f82c079abec9f80108a6d687dde7fffbc8
1 {{+content:partials.site}}
2 <div class="pillar-content">
4 <h1>Chrome Platform</h1>
6 <section class="article-list g-section">
7 <article class="new">
8 <h4 class="label">Apps</h4>
9 <h2>Learn Basics</h2>
10 <p>Develop your first Chrome App and discover
11 how they look, how they behave, and how they are modeled.
12 Launch your Apps from your native platform
13 using the
14 <a href="http://chrome.blogspot.com/2013/12/a-new-breed-of-chrome-apps-now.html">Chrome App Launcher</a>:
15 </p>
16 <p><a href="/apps/first_app.html">Learn more</a></p>
17 <img src="{{static}}/images/platform-pillar/chrome_apps.png" alt="500px Chrome App launched from Chrome App Launcher">
18 </article>
20 <article>
21 <h4 class="label">Apps</h4>
22 <h2>Learn with Codelab</h2>
23 <p>The goal of this codelab is to get you building Chrome Apps fast.
24 Once you've completed this codelab, you will have a simple Todo app.</p>
25 <p><a href="/apps/app_codelab1_setup.html">Learn more</a></p>
26 <img src="{{static}}/images/platform-pillar/todo_codelab.png"
27 width="110%"
28 alt="Create this simple Todo Chrome App.">
29 </article>
31 <article>
32 <h4 class="label">Apps</h4>
33 <h2>Samples</h2>
34 <p>Browse official Chrome Apps samples in the
35 <a href="https://github.com/GoogleChrome/chrome-app-samples">chrome-apps-samples GitHub repository</a>.
36 The <a href="https://github.com/GoogleChrome/chrome-app-samples/blob/master/README.md">README.md</a>
37 lists each sample's APIs and provides a link to download in the Chrome Web Store.</p>
38 <img src="{{static}}/images/platform-pillar/chrome_app_samples.png" alt="Chrome apps samples maintained in GitHub repository">
39 </article>
41 <article>
42 <h4 class="label">Apps</h4>
43 <h2>Reference</h2>
44 <p>Chrome Apps have access to Chrome APIs not available to traditional web sites.
45 With these APIs,
46 you can build powerful apps that interact
47 with network and hardware devices, media tools, and much more.
48 <ul>
49 <li><a href="/apps/api_index.html">Chrome Platform APIs</a>: lists APIs available in each Chrome channel</li>
50 <li><a href="/apps/manifest.html">Manifest File Format</a>: lists supported manifest fields</li>
51 <li><a href="/apps/app_deprecated.html">Disabled Web Features</a>: lists disabled open web platform features</li>
52 </ul></p>
53 <p><a href="/apps/api_index.html">Learn more</a></p>
54 </article>
56 <article>
57 <h4 class="label">Apps</h4>
58 <h2>Develop in Cloud</h2>
59 <p>Chrome Apps leverage the Google Cloud Platform to store and access data.
60 They work offline by default
61 and can sync back to the cloud once connectivity is restored.
62 Use the
63 <a href="/apps/syncFileSystem.html">syncFileSystem API</a>
64 to save and synchronize caching data in Google Drive.</p>
65 <p><a href="/apps/offline_apps.html">Learn more</a></p>
66 <img src="{{static}}/images/platform-pillar/sync_file_system.png" alt="Use Google Drive to store Chrome Apps data in the cloud.">
67 </article>
69 <article>
70 <h4 class="label">Apps</h4>
71 <h2>Network and Hardware APIs</h2>
72 <p> Chrome Apps can interact with low-level system services.
73 Using the network and hardware APIs, they can:
74 <ul>
75 <li>Act as <a href="/apps/socket.html">network clients</a>
76 for TCP and UDP connections.</li>
77 <li>Communicate with <a href="/apps/app_usb.html">usb devices</a>.</li>
78 <li>Read and write to devices connected to <a href="/apps/serial.html">serial ports</a>.</li>
79 <li>Connect to <a href="/apps/app_bluetooth.html">bluetooth devices</a>.</li>
80 </ul></p>
81 </article>
83 <article>
84 <h4 class="label">Extensions</h4>
85 <h2>Learn Basics</h2>
86 <p>Extensions are small software programs that can modify and
87 enhance the functionality of the Chrome browser.
88 Write extensions using web technologies: HTML, JavaScript, and CSS.</p>
89 <p><a href="/extensions/overview.html">Learn more</a></p>
90 <img src="{{static}}/images/platform-pillar/extensions.png" alt="Browser action and page actions are common extension types.">
91 </article>
93 <article>
94 <h4 class="label">Extensions</h4>
95 <h2>Getting Started Tutorial</h2>
96 <p>This tutorial walks you through the construction
97 of a simple browser action extension.
98 Clicking the browser action UI element opens a pop-up window.</p>
99 <p><a href="/extensions/getstarted.html">Learn more</a></p>
100 <img src="{{static}}/images/platform-pillar/one_click_kittens.png" alt="One-click kittens tutorial">
101 </article>
103 <article>
104 <h4 class="label">Extensions</h4>
105 <h2>Samples</h2>
106 <p>Browse official Chrome Extensions samples;
107 each sample lists API methods and links to source files.
108 Filter by keyword or API:</p>
109 <p><a href="/extensions/samples.html">Learn more</a></p>
110 <img src="{{static}}/images/platform-pillar/extension_samples.png" alt="Extension samples page">
111 </article>
113 <article>
114 <h4 class="label">Extensions</h4>
115 <h2>Reference</h2>
116 <p>Extensions are essentially web pages;
117 they can use all APIs that the browser provides to web pages.
118 Using Extensions APIs, they can also interact programmatically with browser features
119 such as bookmarks and tabs.
120 Read the reference docs to find out more:
121 <ul>
122 <li><a href="/extensions/whats_new.html">What's New</a>: lists what's new in stable Chrome versions</li>
123 <li><a href="/extensions/api_index.html">Chrome Platform APIs</a>: lists APIs available in each Chrome channel</li>
124 <li><a href="/extensions/manifest.html">Manifest File Format</a>: describes supported manifest fields</li>
125 <li><a href="/extensions/permission_warnings.html">Permissions</a>: describes permission warnings</li>
126 </ul>
127 </p>
128 <p><a href="/extensions/api_index.html">Learn more</a></p>
129 </article>
131 <article class="new">
132 <h4 class="label">Extensions</h4>
133 <h2>Distribute Extensions</h2>
134 <p><a href="/extensions/packaging.html">Upload your extension</a>
135 to test it in developer channels,
136 then <a href="/extensions/hosting.html">publish your extension</a>
137 in the Chrome Web Store.
138 New feature! You can now
139 <a href="/webstore/payments-otp">monetize your extensions</a>!</p>
140 <p><a href="/extensions/hosting.html">Learn more</a></p>
141 <img src="{{static}}/images/platform-pillar/upload_extensions.png" alt="Upload extensions on chrome://extensions page.">
142 </article>
143 <article>
144 <h4 class="label">Extensions</h4>
145 <h2>Themes</h2>
146 <p>A theme is a special kind of extension that changes the way the browser looks.
147 Themes are <a href="/extensions/packaging.html">packaged</a> like regular extensions,
148 but they don't contain JavaScript or HTML code.
149 Distribute your themes in the
150 <a href="https://chrome.google.com/webstore/category/themes">Chrome Web Store</a>.
151 </p>
152 <p><a href="/extensions/themes.html">Learn more</a></p>
153 <img src="{{static}}/images/platform-pillar/theme.png" alt="Grass theme">
154 </article>
156 <article class="new">
157 <h4 class="label">Native Client</h4>
158 <h2>Learn Basics</h2>
159 <p>Native Client is a sandbox for running compiled C and C++ code in the browser.
160 Portable Native Client extends that technology with architecture independence,
161 letting developers compile their code once to run in any website and on any architecture.</p>
162 <p><a href="/native-client/index.html">Learn more</a></p>
163 <img src="{{static}}/images/platform-pillar/pnacl_intro.png" alt="Watch a live recorded conversation on Native Client.">
164 </article>
166 <article>
167 <h4 class="label">Native Client</h4>
168 <h2>Tutorial</h2>
170 <p>This multi-part tutorial explains how to get started developing applications with Native Client.</p>
172 <p><a href="/native-client/devguide/tutorial/tutorial-part1">Part one</a>
173 shows how to build and run a simple web application
174 using Portable Native Client (PNaCl).</p>
176 <p><a href="/native-client/devguide/tutorial/tutorial-part2">Part two</a>
177 shows how to convert the finished PNaCl web application
178 to use the Native Client SDK build system and common JavaScript files.
179 </p>
180 <p><a href="/native-client/devguide/tutorial/tutorial-part1">Learn more</a></p>
181 </article>
183 <article>
184 <h4 class="label">Native Client</h4>
185 <h2>SDK</h2>
186 <p>Follow these steps to download
187 and install the Native Client SDK:
188 <ol>
189 <li>Download the SDK update utility and unzip.</li>
190 <li>See which versions are available.</li>
191 <li>Run <code>naclsdk</code> with the “update” command
192 to download particular bundles that are available.</li>
193 </ol>
194 </p>
195 <p><a href="/native-client/sdk/download">Learn more</a></p>
196 </article>
198 <article>
199 <h4 class="label">Native Client</h4>
200 <h2>Development Cycle</h2>
201 <p>End-to-end native client development workflow:
202 <ul>
203 <li><a href="/native-client/devguide/devcycle/building.html">Build</a>
204 Native Client modules.</li>
205 <li><a href="/native-client/devguide/devcycle/running.html">Run</a>
206 Native Client applications during development.</li>
207 <li><a href="/native-client/devguide/devcycle/debugging.html">Debug, monitor, and measure</a>
208 Native Client application performance.</li>
209 </ul></p>
210 <p><a href="/native-client/devguide/devcycle/building.html">Learn more</a></p>
211 </article>
213 <article>
214 <h4 class="label">Native Client</h4>
215 <h2>Coding Your Application</h2>
216 <p>Dive deeper into Native Client development.
217 Learn:
218 <ul>
219 <li>How Native Client applications are
220 <a href="/native-client/devguide/coding/application-structure.html">structured</a></li>
221 <li>Which classes and functions to implement in your
222 <a href="/native-client/devguide/coding/native-client-modules.html">Native Client module</a> for Chrome to load, initialize, and run it</li>
223 <li>How to use the
224 <a href="/native-client/devguide/coding/message-system.html">messaging system</a>
225 to communicate between the JavaScript code and
226 the Native Client module's C or C++code</li>
227 </ul>
228 And much more!</p>
229 <p><a href="/native-client/devguide/coding/application-structure.html">Learn more</a></p>
230 </article>
232 <article>
233 <h4 class="label">Native Client</h4>
234 <h2>Pepper API</h2>
235 <p>The Pepper API lets Native Client modules communicate
236 with the hosting browser and access system-level functions in a safe and portable way.
237 Pepper has both a
238 <a href="/native-client/pepperc/index.html">C API</a> and a
239 <a href="/native-client/peppercpp/index.html">C++ API</a>.</p>
241 <p>These APIs are generally divided into two parts:
242 <ul><li>Functions implemented in the browser
243 that you call from your Native Client module</li>
244 <li>Functions the browser invokes so you must implement them
245 in your Native Client module
246 </li>
247 </ul>
248 </p>
249 <p><a href="/native-client/overview.html#pepper-plugin-api">Learn more</a></p>
250 </article>
252 <article>
253 <h4 class="label">Store</h4>
254 <h2>What Is the Chrome Web Store?</h2>
255 <p>The Chrome Web Store lets you
256 <a href="/webstore/publish.html">publish</a>
257 your Chrome Apps, Extensions, and Themes
258 where Chrome users can easily find them.</p>
259 <p><a href="/webstore/index.html">Learn more</a></p>
260 <img src="{{static}}/images/platform-pillar/chrome_web_store.png" alt="Publish apps, extensions, and themes in Chrome Web Store.">
261 </article>
263 <article>
264 <h4 class="label">Store</h4>
265 <h2>Tutorial: Getting Started</h2>
266 <p>Follow these simple steps
267 to publish your app, extension,
268 or theme to the Chrome Web Store:
269 <ol>
270 <li>Create manifest file.</li>
271 <li>Get image assets.</li>
272 <li>Test app.</li>
273 <li>Zip app.</li>
274 <li>Upload your app to store.</li>
275 </ol>
276 </p>
277 <p><a href="/webstore/get_started_simple.html">Learn more</a></p>
278 </article>
280 <article>
281 <h4 class="label">Store</h4>
282 <h2>Branding</h2>
283 <p>Follow the Chrome Web Store branding guidelines
284 for supplying images and promotional assets.</p>
285 <p><a href="/webstore/branding.html">Learn more</a></p>
286 <img src="{{static}}/images/platform-pillar/ChromeWebStore_BadgeWBorder_v2_206x58.png" alt="Using the Chrome Web Store badge">
287 </article>
289 <article class="new">
290 <h4 class="label">Store</h4>
291 <h2>Monetizing</h2>
292 <p>Two options for charging your users:
293 Chrome Web Store Payments for
294 <a href="/webstore/payments-otp">one-time payments</a> or
295 <a href="/apps/google_wallet.html">Google Wallet for Digital Goods</a>
296 to sell digital or virtual goods in your Chrome Apps or Extensions.</p>
297 <p><a href="/webstore/money.html">Learn more</a></p>
298 <img src="{{static}}/images/platform-pillar/wallet-review.png"
299 width="250px"
300 alt="Using Google Wallet in apps and extensions">
301 </article>
303 <article>
304 <h4 class="label">Store</h4>
305 <h2>Publishing</h2>
306 <p>When your app, extension, or theme is finished (if not before),
307 upload it with the
308 <a href="https://chrome.google.com/webstore/developer/dashboard">Developer Dashboard</a>.
309 Uploading generates an app ID,
310 which you may need to complete your application code.</p>
311 <p><a href="/webstore/publish.html">Learn more</a></p>
312 <img src="{{static}}/images/platform-pillar/store_developer_dashboard.png" alt="Chrome Web Store Developer Dashboard">
313 </article>
315 <article>
316 <h4 class="label">Store</h4>
317 <h2>Best Practices</h2>
318 <p>When publishing in the store,
319 follow these <a href="/webstore/best_practices.html">best practices</a>:
320 <ul>
321 <li>Support Google Accounts.</li>
322 <li>Keep ex-user data for 30 days.</li>
323 <li>Cache license data.</li>
324 <li>Create a compelling store listing.</li>
325 </ul>
326 </p>
327 <p><a href="/webstore/best_practices.html">Learn more</a></p>
328 </article>
330 </section>
332 <section class="g-section g-tpl-33-67" id="further-resources">
333 <h2>Further Resources</h2>
334 <div class="g-unit g-first">
335 <article class="g-content">
336 <h2 class="school">Office Hours</h2>
337 <p>Watch demos of the Platform and get help in Chrome Office Hours on
338 <a href="https://developers.google.com/live/chrome/">Google Developers Live</a>.</p>
339 </article>
340 </div>
341 <div class="g-unit">
342 <div class="g-section g-tpl-50-50">
343 <div class="g-unit g-first">
344 <article class="g-content">
345 <h2 class="chat">Ask Questions</h2>
346 <p>Ask questions and get answers on these Stack Overflow channels:
347 <ul>
348 <li><a href="http://stackoverflow.com/questions/tagged/google-chrome">google-chrome</a>
349 </li>
350 <li><a href="http://stackoverflow.com/questions/tagged/google-chrome-extension">google-chrome-extension</a></li>
351 <li><a href="http://stackoverflow.com/questions/tagged/google-chrome-app">google-chrome-app</a></li>
352 </ul>
353 </p>
354 </article>
355 </div>
356 <div class="g-unit g-last">
357 <article class="g-content">
358 <h2 class="puzzle">Join a Group</h2>
359 <p>Help us make the Chrome Platform better!
360 Join a Chrome Platform group:
361 <ul>
362 <li><a href="https://groups.google.com/a/chromium.org/forum/#!forum/chromium-apps">Chrome Apps</a></li>
363 <li><a href="https://groups.google.com/a/chromium.org/forum/#!forum/chromium-extensions">Chrome Extensions</a></li>
364 <li><a href="https://groups.google.com/forum/#!forum/native-client-discuss">Native Client</a></li>
365 </ul>
366 </p>
367 </article>
368 </div>
369 </div>
370 </div>
371 </section>
373 </div>
374 {{/partials.site}}