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

Unified Diff: sky/specs/style.md

Issue 817353003: Specs: Make isNew only get set if it's not added in the same frame as the owner layout manager (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 6 years 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sky/specs/style.md
diff --git a/sky/specs/style.md b/sky/specs/style.md
index 43b8cb445f181ea7044d4961f749839e7b63ad65..5b4a9981321d0413caddbeb32a665daf5d8ad8c7 100644
--- a/sky/specs/style.md
+++ b/sky/specs/style.md
@@ -269,6 +269,8 @@ StyleNode
The types marked with * in the list above are not part of sky:core.
+TODO(ianh): consider removing 'StyleValue' from these class names
+
```javascript
abstract class StyleNode {
abstract void markDirty();
@@ -326,11 +328,11 @@ class PixelLengthStyleValue : LengthStyleValue {
Float resolve(PropertyHandle property, RenderNode node, StyleValueResolverSettings? settings = null);
}
-typedef Color Float; // TODO(ianh): figure out what Color should be
+typedef RawColor Float; // TODO(ianh): figure out what Color should be
class ColorStyleValue : LengthStyleValue {
constructor(StyleNode parentNode, Float red, Float green, Float blue, Float alpha);
// ... color API ...
- Color resolve(PropertyHandle property, RenderNode node, StyleValueResolverSettings? settings = null);
+ RawColor resolve(PropertyHandle property, RenderNode node, StyleValueResolverSettings? settings = null);
}
class AbstractOpaqueStyleValue : AbstractStyleValue {
@@ -500,8 +502,10 @@ rooted at the document's RenderNode.
If you come across a node that doesn't have an assigned RenderNode,
then create one, placing it in the appropriate place in the RenderTree
tree, after any nodes marked isGhost=true, with ownerLayoutManager
-pointing to the parent RenderNode's layoutManager, and then, if
-autoreap is false on the ownerLayoutManager, mark it "isNew".
+pointing to the parent RenderNode's layoutManager, if it has one, and,
+if it has one and autoreap is false on that layout manager, mark the
+new node "isNew". (This means that when a node is marked isNew, the
+layout manager has already laid out at least one frame.)
For each element, if the node's needsManager is true, call
getLayoutManager() on the element, and if that's not null, and if the
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698