| OLD | NEW |
| 1 Sky | 1 Sky |
| 2 === | 2 === |
| 3 | 3 |
| 4 Sky is an experiment in building a UI framework for Mojo. The approach we're | 4 Sky is an experiment in building a UI framework for Mojo. The approach we're |
| 5 exploring is to create a layered framework based around a retained hierarchy of | 5 exploring is to create a layered framework based around a retained hierarchy of |
| 6 semantic elements. We're experimenting with different ideas and exploring | 6 semantic elements. We're experimenting with different ideas and exploring |
| 7 various approaches, many of which won't work and will need to be discarded, but, | 7 various approaches, many of which won't work and will need to be discarded, but, |
| 8 if we're lucky, some of which might turn out to be useful. | 8 if we're lucky, some of which might turn out to be useful. |
| 9 | 9 |
| 10 Sky has three layers, each of which also adds progressively more opinion. At | 10 Sky has three layers, each of which also adds progressively more opinion. At |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 121 ``network_service``. Typically, however, Sky applications access services via | 121 ``network_service``. Typically, however, Sky applications access services via |
| 122 frameworks that provide idiomatic interfaces to the underlying Mojo services. | 122 frameworks that provide idiomatic interfaces to the underlying Mojo services. |
| 123 These idiomatic interfaces are layered on top of the underlying Mojo service, | 123 These idiomatic interfaces are layered on top of the underlying Mojo service, |
| 124 and developers are free to use the underlying service directly. | 124 and developers are free to use the underlying service directly. |
| 125 | 125 |
| 126 As an example, the following is a sketch of a module that wraps Mojo's | 126 As an example, the following is a sketch of a module that wraps Mojo's |
| 127 ``network_service`` in a simpler functional interface: | 127 ``network_service`` in a simpler functional interface: |
| 128 | 128 |
| 129 ```html | 129 ```html |
| 130 SKY MODULE | 130 SKY MODULE |
| 131 <import src=”mojo://shell” as=”shell” /> | 131 <import src=”mojo:shell” as=”shell” /> |
| 132 <import src="/mojo/network/network_service.mojom.sky" as="net" /> | 132 <import src="/mojo/network/network_service.mojom.sky" as="net" /> |
| 133 <import src="/mojo/network/url_loader.mojom.sky" as="loader" /> | 133 <import src="/mojo/network/url_loader.mojom.sky" as="loader" /> |
| 134 <script> | 134 <script> |
| 135 module.exports = function fetch(url) { | 135 module.exports = function fetch(url) { |
| 136 return new Promise(function(resolve, reject) { | 136 return new Promise(function(resolve, reject) { |
| 137 var networkService = shell.connectToService( | 137 var networkService = shell.connectToService( |
| 138 "mojo://network_service", net.NetworkService); | 138 "mojo:network_service", net.NetworkService); |
| 139 var request = new loader.URLRequest({ | 139 var request = new loader.URLRequest({ |
| 140 url: url, method: "GET", auto_follow_redirects: true}); | 140 url: url, method: "GET", auto_follow_redirects: true}); |
| 141 var urlLoader = networkService.createURLLoader(); | 141 var urlLoader = networkService.createURLLoader(); |
| 142 urlLoader.start(request).then(function(response) { | 142 urlLoader.start(request).then(function(response) { |
| 143 if (response.status_code == 200) | 143 if (response.status_code == 200) |
| 144 resolve(response.body); | 144 resolve(response.body); |
| 145 else | 145 else |
| 146 reject(response); | 146 reject(response); |
| 147 }); | 147 }); |
| 148 }; | 148 }; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 160 We're documenting Sky with a [set of technical specifications](specs) that | 160 We're documenting Sky with a [set of technical specifications](specs) that |
| 161 define precisely the behavior of the engine. Currently both the implementation | 161 define precisely the behavior of the engine. Currently both the implementation |
| 162 and the specification are in flux, but hopefully they'll converge over time. | 162 and the specification are in flux, but hopefully they'll converge over time. |
| 163 | 163 |
| 164 Contributing | 164 Contributing |
| 165 ------------ | 165 ------------ |
| 166 | 166 |
| 167 Instructions for building and testing Sky are contained in [HACKING.md](HACKING.
md). For | 167 Instructions for building and testing Sky are contained in [HACKING.md](HACKING.
md). For |
| 168 coordination, we use the ``#mojo`` IRC channel on | 168 coordination, we use the ``#mojo`` IRC channel on |
| 169 [Freenode](https://freenode.net/). | 169 [Freenode](https://freenode.net/). |
| OLD | NEW |