| OLD | NEW |
| 1 <meta name="doc-family" content="apps"> | 1 <meta name="doc-family" content="apps"> |
| 2 <h1>Chrome Apps Architecture</h1> | 2 <h1>Chrome Apps Architecture</h1> |
| 3 | 3 |
| 4 | 4 |
| 5 <p> | 5 <p> |
| 6 Chrome Apps integrate closely with a user’s operating system. | 6 Chrome Apps integrate closely with a user’s operating system. |
| 7 They are designed to be run outside of a browser tab, | 7 They are designed to be run outside of a browser tab, |
| 8 to run robustly in offline and poor connectivity scenarios and | 8 to run robustly in offline and poor connectivity scenarios and |
| 9 to have far more powerful capabilities than are available | 9 to have far more powerful capabilities than are available |
| 10 in a typical web browsing environment. | 10 in a typical web browsing environment. |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 67 <p> | 67 <p> |
| 68 | 68 |
| 69 <p> | 69 <p> |
| 70 <iframe title="YouTube video player" width="610" height="380" src="//www.youtube
.com/embed/yr1jgREbH8U" frameborder="0" allowfullscreen></iframe> | 70 <iframe title="YouTube video player" width="610" height="380" src="//www.youtube
.com/embed/yr1jgREbH8U" frameborder="0" allowfullscreen></iframe> |
| 71 </p> | 71 </p> |
| 72 | 72 |
| 73 <h3 id="lifecycle">App lifecycle at a glance</h3> | 73 <h3 id="lifecycle">App lifecycle at a glance</h3> |
| 74 | 74 |
| 75 <p> | 75 <p> |
| 76 For detailed instructions on how to use the programming model, | 76 For detailed instructions on how to use the programming model, |
| 77 see <a href="app_lifecycle.html">Manage App Lifecycle</a>. | 77 see <a href="app_lifecycle">Manage App Lifecycle</a>. |
| 78 Here's a brief summary of the Chrome App lifecyle | 78 Here's a brief summary of the Chrome App lifecyle |
| 79 to get you started: | 79 to get you started: |
| 80 </p> | 80 </p> |
| 81 | 81 |
| 82 <br> | 82 <br> |
| 83 | 83 |
| 84 <table class="simple"> | 84 <table class="simple"> |
| 85 <tr> | 85 <tr> |
| 86 <th scope="col"> Stage </th> | 86 <th scope="col"> Stage </th> |
| 87 <th scope="col"> Summary </th> | 87 <th scope="col"> Summary </th> |
| 88 </tr> | 88 </tr> |
| 89 <tr> | 89 <tr> |
| 90 <td>Installation</td> | 90 <td>Installation</td> |
| 91 <td>User chooses to install the app and explicitly accepts the | 91 <td>User chooses to install the app and explicitly accepts the |
| 92 » <a href="declare_permissions.html">permissions</a>. | 92 » <a href="declare_permissions">permissions</a>. |
| 93 </td> | 93 </td> |
| 94 </tr> | 94 </tr> |
| 95 <tr> | 95 <tr> |
| 96 <td>Startup</td> | 96 <td>Startup</td> |
| 97 <td>The event page is loaded, | 97 <td>The event page is loaded, |
| 98 the 'launch' event fires, | 98 the 'launch' event fires, |
| 99 and app pages open in windows. | 99 and app pages open in windows. |
| 100 You | 100 You |
| 101 <a href="app_lifecycle.html#eventpage">create the windows</a> | 101 <a href="app_lifecycle#eventpage">create the windows</a> |
| 102 that your app requires, | 102 that your app requires, |
| 103 how they look, and how they communicate | 103 how they look, and how they communicate |
| 104 with the event page and with other windows. | 104 with the event page and with other windows. |
| 105 </td> | 105 </td> |
| 106 </tr> | 106 </tr> |
| 107 <tr> | 107 <tr> |
| 108 <td>Termination</td> | 108 <td>Termination</td> |
| 109 <td>User can terminate apps at any time | 109 <td>User can terminate apps at any time |
| 110 and app can be quickly restored to previous state. | 110 and app can be quickly restored to previous state. |
| 111 <a href="app_lifecycle.html#local_settings">Stashing data</a> | 111 <a href="app_lifecycle#local_settings">Stashing data</a> |
| 112 protects against data loss.</td> | 112 protects against data loss.</td> |
| 113 </tr> | 113 </tr> |
| 114 <tr> | 114 <tr> |
| 115 <td>Update</td> | 115 <td>Update</td> |
| 116 <td>Apps can be updated at any time; | 116 <td>Apps can be updated at any time; |
| 117 however, the code that a Chrome App is running | 117 however, the code that a Chrome App is running |
| 118 cannot change during a startup/termination cycle.</td> | 118 cannot change during a startup/termination cycle.</td> |
| 119 </tr> | 119 </tr> |
| 120 <tr> | 120 <tr> |
| 121 <td>Uninstallation</td> | 121 <td>Uninstallation</td> |
| 122 <td>User can actively uninstall apps. | 122 <td>User can actively uninstall apps. |
| 123 When uninstalled, no executing code or | 123 When uninstalled, no executing code or |
| 124 private data is left behind.</td> | 124 private data is left behind.</td> |
| 125 </tr> | 125 </tr> |
| 126 </table> | 126 </table> |
| 127 | 127 |
| 128 <h2 id="security">Security model</h2> | 128 <h2 id="security">Security model</h2> |
| 129 | 129 |
| 130 <p> | 130 <p> |
| 131 The Chrome Apps security model protects users | 131 The Chrome Apps security model protects users |
| 132 by ensuring their information is managed | 132 by ensuring their information is managed |
| 133 in a safe and secure manner. | 133 in a safe and secure manner. |
| 134 <a href="contentSecurityPolicy.html">Comply with CSP</a> | 134 <a href="contentSecurityPolicy">Comply with CSP</a> |
| 135 includes detailed information on how to comply with content security policy. | 135 includes detailed information on how to comply with content security policy. |
| 136 This policy blocks dangerous scripting | 136 This policy blocks dangerous scripting |
| 137 reducing cross-site scripting bugs | 137 reducing cross-site scripting bugs |
| 138 and protecting users against man-in-the-middle attacks. | 138 and protecting users against man-in-the-middle attacks. |
| 139 </p> | 139 </p> |
| 140 | 140 |
| 141 <p> | 141 <p> |
| 142 Loading the Chrome App main page locally provides a place | 142 Loading the Chrome App main page locally provides a place |
| 143 to enforce stricter security than the web. | 143 to enforce stricter security than the web. |
| 144 Like Chrome extensions, | 144 Like Chrome extensions, |
| (...skipping 10 matching lines...) Expand all Loading... |
| 155 <p> | 155 <p> |
| 156 Chrome Apps reuse Chrome extension process isolation, | 156 Chrome Apps reuse Chrome extension process isolation, |
| 157 and take this a step further by isolating storage and external content. | 157 and take this a step further by isolating storage and external content. |
| 158 Each app has its own private storage area | 158 Each app has its own private storage area |
| 159 and can’t access the storage of another app | 159 and can’t access the storage of another app |
| 160 or personal data (such as cookies) for websites that you use in your browser. | 160 or personal data (such as cookies) for websites that you use in your browser. |
| 161 All external processes are isolated from the app. | 161 All external processes are isolated from the app. |
| 162 Since iframes run in the same process as the surrounding page, | 162 Since iframes run in the same process as the surrounding page, |
| 163 they can only be used to load other app pages. | 163 they can only be used to load other app pages. |
| 164 You can use the <code>object</code> tag to | 164 You can use the <code>object</code> tag to |
| 165 <a href="app_external.html">embed external content</a>; | 165 <a href="app_external">embed external content</a>; |
| 166 this content runs in a separate process from the app. | 166 this content runs in a separate process from the app. |
| 167 </p> | 167 </p> |
| 168 | 168 |
| 169 <p> | 169 <p> |
| 170 <iframe title="YouTube video player" width="610" height="380" src="//www.youtube
.com/embed/EDtiWN42lHs" frameborder="0" allowfullscreen></iframe> | 170 <iframe title="YouTube video player" width="610" height="380" src="//www.youtube
.com/embed/EDtiWN42lHs" frameborder="0" allowfullscreen></iframe> |
| 171 </p> | 171 </p> |
| 172 | 172 |
| 173 <p class="backtotop"><a href="#top">Back to top</a></p> | 173 <p class="backtotop"><a href="#top">Back to top</a></p> |
| OLD | NEW |