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

Unified Diff: sky/specs/style.md

Issue 845053002: Specs and Docs: minor updates to fix mistakes I found when proof-reading (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sky/specs/runloop.md ('k') | 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 885e91b5e7020c28952a6682da29a8ae497b249e..864d50a8b21453b249d66d55a6460466128e5bf1 100644
--- a/sky/specs/style.md
+++ b/sky/specs/style.md
@@ -323,6 +323,10 @@ class StyleValueResolverSettings {
// let other transitions that come later know that you were half-way
// through a transition so they can shorten their time accordingly
//
+ // best practices: if you're storing values on the state object,
+ // then remove the values once they are no longer needed. For
+ // example, when your transition ends, set the object to null.
+ //
// best practices: if you're a style value that contains multiple
// style values, then before you call their resolve you should
// replace the state with a state that is specific to them, and
@@ -342,6 +346,16 @@ class StyleValueResolverSettings {
// ourState.b = settings.state;
// settings.state = ourState;
// return a + b; // or whatever
+ //
+ // best practices: if you're a style value that contains multiple
+ // style values, and all those style values are storing null, then
+ // store null yourself, instead of storing many nulls of your own.
+
+ // attribute Boolean wasStateSet;
+ Boolean getShouldSaveState();
+ // returns true if state is not null, and either state was set
+ // since the last reset, or firstTime is false.
+
}
class Property : StyleNode {
@@ -507,6 +521,7 @@ class StyleDeclaration {
// is marked dirty, the relevant render node is informed and can then update
// its property cache accordingly
+
getter AbstractStyleValue? (PropertyHandle property);
// looks up the Property object for /property/, and returns its value
// null if property is missing
@@ -627,12 +642,13 @@ class RenderNode { // implemented in C++ with no virtual tables
any getProperty(PropertyHandle property, GetPropertySettings? settings = null);
// looking at the cached data for the given pseudoElement:
// if there's a cached value:
- // if settings.forceCache is true, return the value
- // if neither dirty bit is set, return the cached resolved value
+ // if settings.forceCache is true, return the cached value
+ // if neither dirty bit is set, return the cached value
// if the cascade dirty bit is not set (value dirty is set) then
// resolve the value using the same StyleValue object
// - with firstTime=false on the resolver settings
// - with the cached state object if any
+ // - jump to "cache" below
// if settings.forceCache is true, return null
// - if there's an override declaration with the property (with
// the pseudo or without), then get the value object from there and
@@ -656,8 +672,12 @@ class RenderNode { // implemented in C++ with no virtual tables
// pseudoElement/property combination
// - using the obtained StyleValue object, call resolve(),
// passing it this node and the resolver settings object.
- // - update the cache with the obtained value and resolver settings,
- // resetting the dirty bits; update the state similarly
+ // - jump to "cache" below
+ // cache:
+ // - update the cache with the obtained value and resolver settings
+ // - reset the dirty bits
+ // - if the resolver settings' getShouldSaveState() method returns false,
+ // then discard any cached state, otherwise, cache the new state
readonly attribute RenderNodeStyleDeclarationList overrideStyles;
// mutable; initially empty
« no previous file with comments | « sky/specs/runloop.md ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698