Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(647)

Side by Side Diff: sky/specs/dom.md

Issue 912653003: Specs: Dartification or various odds and ends (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « sky/specs/debug.md ('k') | sky/specs/idl.md » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 Sky DOM APIs 1 Sky DOM APIs
2 ============ 2 ============
3 3
4 ```dart 4 ```dart
5 SKY MODULE
6 <!-- part of sky:core -->
7
8 <script>
5 // ELEMENT TREE API 9 // ELEMENT TREE API
6 10
7 abstract class ChildNode { 11 abstract class ChildNode {
8 @nonnull external TreeScope get ownerScope; // O(1) 12 @nonnull external TreeScope get ownerScope; // O(1)
9 13
10 external ParentNode get parentNode; // O(1) 14 external ParentNode get parentNode; // O(1)
11 external Element get parentElement; // O(1) // if parentNode isn't an element, returns null 15 external Element get parentElement; // O(1) // if parentNode isn't an element, returns null
12 external ChildNode get previousSibling; // O(1) 16 external ChildNode get previousSibling; // O(1)
13 external ChildNode get nextSibling; // O(1) 17 external ChildNode get nextSibling; // O(1)
14 18
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 Type getLayoutManager() => rootLayoutManager; // O(1) 180 Type getLayoutManager() => rootLayoutManager; // O(1)
177 } 181 }
178 182
179 Type rootLayoutManager = BlockLayoutManager; // O(1) 183 Type rootLayoutManager = BlockLayoutManager; // O(1)
180 184
181 185
182 // BUILT-IN ELEMENTS 186 // BUILT-IN ELEMENTS
183 187
184 @tagname('import') 188 @tagname('import')
185 class ImportElement extends Element { 189 class ImportElement extends Element {
186 //XXX ImportElement = Element; 190 ImportElement = Element;
187 191
188 @override 192 @override
189 Type getLayoutManager() => null; // O(1) 193 Type getLayoutManager() => null; // O(1)
190 } 194 }
191 195
192 @tagname('template') 196 @tagname('template')
193 class TemplateElement extends Element { 197 class TemplateElement extends Element {
194 //XXX TemplateElement = Element; 198 TemplateElement = Element;
195 199
196 // TODO(ianh): convert <template> to using a token stream instead of a Documen tFragment 200 // TODO(ianh): convert <template> to using a token stream instead of a Documen tFragment
197 201
198 @nonnull external DocumentFragment get content; // O(1) 202 @nonnull external DocumentFragment get content; // O(1)
199 203
200 @override 204 @override
201 Type getLayoutManager() => null; // O(1) 205 Type getLayoutManager() => null; // O(1)
202 } 206 }
203 207
204 @tagname('script') 208 @tagname('script')
205 class ScriptElement extends Element { 209 class ScriptElement extends Element {
206 //XXX ScriptElement = Element; 210 ScriptElement = Element;
207 211
208 @override 212 @override
209 Type getLayoutManager() => null; // O(1) 213 Type getLayoutManager() => null; // O(1)
210 } 214 }
211 215
212 @tagname('style') 216 @tagname('style')
213 class StyleElement extends Element { 217 class StyleElement extends Element {
214 //XXX StyleElement = Element; 218 StyleElement = Element;
215 219
216 @nonnull external List</*@nonnull*/ Rule> getRules(); // O(N) in rules 220 @nonnull external List</*@nonnull*/ Rule> getRules(); // O(N) in rules
217 221
218 @override 222 @override
219 Type getLayoutManager() => null; // O(1) 223 Type getLayoutManager() => null; // O(1)
220 } 224 }
221 225
222 @tagname('content') 226 @tagname('content')
223 class ContentElement extends Element { 227 class ContentElement extends Element {
224 //XXX ContentElement = Element; 228 ContentElement = Element;
225 229
226 @nonnull external List</*@nonnull*/ Node> getDistributedNodes(); // O(N) in di stributed nodes 230 @nonnull external List</*@nonnull*/ Node> getDistributedNodes(); // O(N) in di stributed nodes
227 231
228 @override 232 @override
229 Type getLayoutManager() => null; // O(1) 233 Type getLayoutManager() => null; // O(1)
230 } 234 }
231 235
232 @tagname('img') 236 @tagname('img')
233 class ImgElement extends Element { 237 class ImgElement extends Element {
234 //XXX ImgElement = Element; 238 ImgElement = Element;
235 239
236 @override 240 @override
237 Type getLayoutManager() => ImgElementLayoutManager; // O(1) 241 Type getLayoutManager() => ImgElementLayoutManager; // O(1)
238 } 242 }
239 243
240 @tagname('div') 244 @tagname('div')
241 class DivElement extends Element { 245 class DivElement extends Element {
242 //XXX DivElement = Element; 246 DivElement = Element;
243 } 247 }
244 248
245 @tagname('span') 249 @tagname('span')
246 class SpanElement extends Element { 250 class SpanElement extends Element {
247 //XXX SpanElement = Element; 251 SpanElement = Element;
248 } 252 }
249 253
250 @tagname('iframe') 254 @tagname('iframe')
251 class IframeElement extends Element { 255 class IframeElement extends Element {
252 //XXX IframeElement = Element; 256 IframeElement = Element;
253 257
254 @override 258 @override
255 Type getLayoutManager() => IframeElementLayoutManager; // O(1) 259 Type getLayoutManager() => IframeElementLayoutManager; // O(1)
256 } 260 }
257 261
258 @tagname('t') 262 @tagname('t')
259 class TElement extends Element { 263 class TElement extends Element {
260 //XXX TElement = Element; 264 TElement = Element;
261 } 265 }
262 266
263 @tagname('a') 267 @tagname('a')
264 class AElement extends Element { 268 class AElement extends Element {
265 //XXX AElement = Element; 269 AElement = Element;
266 } 270 }
267 271
268 @tagname('title') 272 @tagname('title')
269 class TitleElement extends Element { 273 class TitleElement extends Element {
270 //XXX TitleElement = Element; 274 TitleElement = Element;
271 275
272 @override 276 @override
273 Type getLayoutManager() => null; // O(1) 277 Type getLayoutManager() => null; // O(1)
274 } 278 }
275 279
276 class ErrorElement extends Element { 280 class _ErrorElement extends Element {
277 ErrorElement._create(); 281 _ErrorElement._create();
278 282
279 @override 283 @override
280 Type getLayoutManager() => ErrorElementLayoutManager; // O(1) 284 Type getLayoutManager() => _ErrorElementLayoutManager; // O(1)
281 } 285 }
282 286
283 class SelectorQuery { 287 class SelectorQuery {
284 external SelectorQuery(@nonnull String selector); // O(F()) where F() is the c omplexity of the selector 288 external SelectorQuery(@nonnull String selector); // O(F()) where F() is the c omplexity of the selector
285 289
286 @nonnull external bool matches(@nonnull Element element); // O(F()) 290 @nonnull external bool matches(@nonnull Element element); // O(F())
287 external Element find(@nonnull FindRoot root); // O(N*F())+O(M) where N is the number of descendants and M the average depth of the tree 291 external Element find(@nonnull FindRoot root); // O(N*F())+O(M) where N is the number of descendants and M the average depth of the tree
288 @nonnull external List</*@nonnull*/ Element> findAll(FindRoot root); // O(N*F( ))+O(N*M) where N is the number of descendants and M the average depth of the tr ee 292 @nonnull external List</*@nonnull*/ Element> findAll(FindRoot root); // O(N*F( ))+O(N*M) where N is the number of descendants and M the average depth of the tr ee
289 } 293 }
294 </script>
290 ``` 295 ```
OLDNEW
« no previous file with comments | « sky/specs/debug.md ('k') | sky/specs/idl.md » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698