Skip to content

amp-bind: Support Math functions#7797

Merged
dreamofabear merged 5 commits intoampproject:masterfrom
dreamofabear:bind-math
Mar 1, 2017
Merged

amp-bind: Support Math functions#7797
dreamofabear merged 5 commits intoampproject:masterfrom
dreamofabear:bind-math

Conversation

@dreamofabear
Copy link
Copy Markdown

@dreamofabear dreamofabear commented Feb 24, 2017

/to @aghassemi @kmh287 PTAL 👀

],
'[object Math]':
[
Math.abs,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add sign (we polyfill it already so support is there)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.


/** @const @private {!Object} */
this.builtInScope_ = Object.create(null);
this.builtInScope_['Math'] = Math;
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So if someone names their state "Math", it will be override without warning with this?

I wonder if we should put all builtins under a single namespace and prevent that to be used as a top level key for state. builtins.Math.foo? AMP.Math.foo? ...

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That is already something you can do in JS and it might be counter-intuitive to have to prefix a call to Math.random in bind when you don't have to in JS.

I imagine we'll have the complete list of all these built-in scopes published somewhere. If users end up overwriting one then it's likely they're not going to use ours anyway e.g. would someone naming their state "Math" reasonably expect that certain uses of Math will refer to the custom state, and others to our built-in?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yea, that was intended to replicate JS behavior. I think it's fine and the error message will be clear -- e.g. if Math is overriden with a number:

[object Number].random() is not a supported function.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am still concerned about this. Requiring state definition be aware of a list of reserved keywords is not a good idea. In real-world scenarios, state is normally not handwritten, it is auto-generated from some data and a lot of times that data itself is based on user-input. Requiring the developer to sanitize the state to account for our reserved keywords is not great.

Imagine a scenario where server-side template uses username as amp-bind variables:

// this is a server-size template,`{{Username}}` will be replaced by a JSEncoded string of the username at render time
<button on="tap:AMP.setState({{Username}}, true)>Activate your account</button>

<div [show]="{{Username}}">
 You account is active.
 Your lucky number is <span [text]="Math.random()"></span>
</div>

Now with this code everything is fine until someone decides to use Math as their username causing a user-specific, hard-to-debug issue.

Maybe the right solution is clearly separating builtin functions from state and state property access syntax. e.g. -20 | Math.floor instead of Math.floor(-20) this way, Math is not longer a scope same way state is a scope.

Copy link
Copy Markdown
Author

@dreamofabear dreamofabear Feb 27, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see your point, but this issue isn't limited to the Math object. A server-side template that performs AMP.setState({{Username}}='foo') will also overwrite <amp-state> data with the same id value. IMO this "gotcha" is worth the simplicity and flexibility it provides (e.g. <amp-state> can be used as default values for mutable data).

Personally not a fan of pipe syntax, but I can probably avoid adding Math to the scope as you mention by baking it in to the expression parser. Perhaps we should leave out Math altogether -- the expression floor(-20) shouldn't ever conflict with user data since we disallow custom functions.

Thanks for the suggestion.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like your proposal, inducing removing Math. prefix.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done. We might want to add static functions from other built-in objects in the future, e.g. Date.now(), but I'm not aware of any overlapping function names.

Copy link
Copy Markdown
Contributor

@kmh287 kmh287 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@jridgewell
Copy link
Copy Markdown
Contributor

I strongly suggest keeping the Math prefix. Who knows what name collisions there are with any other global classes we'd like to add later.

@dreamofabear
Copy link
Copy Markdown
Author

@jridgewell Agree that would be ideal, though I spent some time trying to make this work in the expression parser and so far no dice. I'll merge this now but first remove it from public documentation (amp-bind.md) while I investigate.

BTW I scanned through all JS built-in objects and looks like the only collision is JSON.parse and Date.parse.

@jridgewell
Copy link
Copy Markdown
Contributor

though I spent some time trying to make this work in the expression parser and so far no dice

It would require setting Math as a restricted property on the state, right?

@dreamofabear
Copy link
Copy Markdown
Author

dreamofabear commented Feb 28, 2017

That's close to how it originally worked. I was trying to get the parser to parse Math.abs() as a special invocation rule while still recognizing Math.abs as a scope variable and member access.

@jridgewell
Copy link
Copy Markdown
Contributor

Is it needed for the parser to do this? We can just set the property on the state, then forbid assignments to it?

@amphtml-team
Copy link
Copy Markdown

amphtml-team commented Mar 1, 2017 via email

@jridgewell
Copy link
Copy Markdown
Contributor

Preventing assignment would cause AMP.setState({Math: 'foo'}) to fail,

We don't necessarily have to prevent overriding it.

Just read @aghassemi's comments. I don't see how removing the Math prefix solves for when a user uses random as their username.

@dreamofabear
Copy link
Copy Markdown
Author

I don't see how removing the Math prefix solves for when a user uses random as their username.

Because the expression parser can disambiguate between abs() and abs since we don't support custom functions. See this unit test: https://github.com/ampproject/amphtml/pull/7797/files#diff-61e25d4300877aba8c751d5f1495671dR254

@jridgewell
Copy link
Copy Markdown
Contributor

Yah, so my expression is abs(). Now user has set their username to abs.

<button on="tap:AMP.setState({{Username}}=foo)>Activate your account</button>

So now my abs = foo. Now when we evaluate my expression abs(), we get an error. Isn't this the same as overriding Math?

@dreamofabear
Copy link
Copy Markdown
Author

Actually the unit test linked above tests that exact scenario, check it out. 😃

The expression grammar doesn't define function invocation as <expr>(), so it when it parses foo() it doesn't first evaluate foo and then try to invoke it as a function. The grammar rule for invocation has details.

@jridgewell
Copy link
Copy Markdown
Contributor

Ahh, now I see it.

I'm still not a fan of the no Math prefix, though.

Copy link
Copy Markdown
Contributor

@kmh287 kmh287 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would like to re-review this before merge

Copy link
Copy Markdown
Contributor

@kmh287 kmh287 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm, thanks for waiting

@dreamofabear dreamofabear merged commit 1a568de into ampproject:master Mar 1, 2017
@dreamofabear dreamofabear deleted the bind-math branch March 1, 2017 21:48
erwinmombay pushed a commit that referenced this pull request Mar 9, 2017
* initial setup for extension nexxtv-player

* added nexxtv player logic

* nexxtv player bugfixes, cleanup, tests, docs

* added video interface, changed attribute start to seek-to

* reworked video interface for nexxtv-player

* added message handler for nexxtv player and tests

* nexxtv player minor fixes & cleanup

* nexxtv player changed indents from 4 spaces to 2

* added unlayoutCallback for nexxtv player

* initial setup for extension nexxtv-player

* added nexxtv player logic

* nexxtv player bugfixes, cleanup, tests, docs

* added video interface, changed attribute start to seek-to

* reworked video interface for nexxtv-player

* added message handler for nexxtv player and tests

* nexxtv player minor fixes & cleanup

* nexxtv player changed indents from 4 spaces to 2

* added unlayoutCallback for nexxtv player

* fixed linting issues (#7673)

* initial setup for extension nexxtv-player

* added nexxtv player logic

* nexxtv player bugfixes, cleanup, tests, docs

* added video interface, changed attribute start to seek-to

* reworked video interface for nexxtv-player

* added message handler for nexxtv player and tests

* nexxtv player minor fixes & cleanup

* nexxtv player changed indents from 4 spaces to 2

* added unlayoutCallback for nexxtv player

* initial setup for extension nexxtv-player

* added nexxtv player logic

* nexxtv player bugfixes, cleanup, tests, docs

* added video interface, changed attribute start to seek-to

* reworked video interface for nexxtv-player

* added message handler for nexxtv player and tests

* nexxtv player minor fixes & cleanup

* fixed linting issues (#7673)

* nexxtv player review fixes (#7816)

* nexxtv player: updated validation rules (#7816)

* nexxtv player validator ordered alphabetical, changed spec_url

* fire amp-dom-update event on insert and replace (#7819)

* temp

* trigger `amp-dom-update` event on insert and replace

* switch -amp-form to i-amp-form

* Validator Rollup (#7844)

* Revision bump.

* Revision bump for amp-playbuzz changes in #7450

* Revision bump.

* Allow filtering by HtmlFormat (AMP, AMP4ADS) in the code generator.

* Revision bump.

* Revision bump due to Github pull.

* Code generation now driven by a variable LIGHT, which is broader than the previous GENERATE_DETAILED_ERRORS distinction. LIGHT implies filtered for specific format (AMP or AMP4ADS, and only amp.validator.validateSaxEvents, and no detailed errors.

* Generate ValidatorRules.directAttrLists and globalAttrs and ampLayoutAttrs, reducing overhead by indirection.

* Implement parallax effect extension (#7794)

* Do not set hidden attribute on hide/collapse (#7879)

* amp-bind: Support `Math` functions (#7797)

* initial commit for Math in amp-bind

* fix lint

* ali's comment

* avoid scope conflicts with built-in functions

* remove Math functions from documentation

* Measure 3P ad latency (#7902)

* Update spec URLs from github to ampproject. (#7901)

* Update github urls to ampproject urls

* test .out updated

* Too many slashes.

* Moved Developing.md and Design_Principles.md (#7908)

* Rename DEVELOPING.md to contributing/DEVELOPING.md

* Move files to new folder

* Renaming toggle to toggleVisibility because it was conflicting with sidebar and breaking it (#7855)

* disable scrollRestoration auto for embed case (#7899)

* Disable Fast Fetch for all ads when remote.html is used. (#7906)

* Fix DoubleClick Fast Fetch bugs around categoryExclusions and tagForChildDirectedTreatment (#7843)

* Fix incorrect parameter name for `tagForChildDirectedTreatment` in DoubleClick.

* Added unit test for tagForChildDirectedTreatment.

* Fixed the categoryExclusions bug in Fast Fetch DoubleClick.

* Removed parens in arrow functions to satisfy linter

* Adds two new experiment IDs (#7850)

* Adds two new experiment IDs to distinguish "any externally triggered" experiment from "any internally triggered".

Also updates tests to remove a number of assumptions that only a single eid will be populated.

* Use return val to detect "externally selected"; test updates.

* Updated network implementation guide. (#7862)

* Updated network impl guide.

* Changed 'validation' to 'verification'

* Cid timeout error should not be dev error (#7911)

* Fix amp-ad test (#7918)

* Update amp-install-serviceworker.md (#7932)

Fully escape javascript regex.

* Update amp-cache-modifications.md (#7933)

Add `data-no-service-worker-fallback-shell-url` as a URL to be rewritten as absolute.

* amp-fx-parallax Don't use global (#7942)

* Viewer integration: rewrite error message to indicate request name (#7923)

* rewrite error message

* update

* ticks

* Fix up links in DEVELOPING.md (#7944)

We moved DEVELOPING.md to the contributing folder but didn't update many of the relative links accordingly.

* Popin ad extension document updated. (#7674)

* Add popin ad extension.

* register popin.

* Add resizeable attribute.

* Remove resizable.

* Implemented the render-start and no-content APIs.

* Fixed lint.

* Remove quatation.

* Use tei@popin.cc

* Rebase old commit .

* Fixed document because tag was not closed.

* I replaced the removed double quotes.

* Add double quotes.

* Support for bind expressions in mustache templates (#7602)

* first pass at adding/removing subtrees

* tests passing

* Add ability to add and remove bindings in the subtree rooted at a specific node

* lint fixes

* merge conflict

* ci issues

* some cleanup

* pr comments

* pr comments, new method of removing bindings for node and its children

* fix some lint warnings

* test and lint fixes

* mutation observer

* update comments

* add observer

* naive implementation

* cleanup

* clean

* cleanup bind impl

* very simple example of bind in a template

* pr comments

* lint errors

* pr comments

* cleanup

* lint errors

* pr comments

* pr comments and lint warnings

* typo

* comments

* more lint warnings

* pr comment

* change README

* cleanup

* pr comments

* pr comments 2

* lint warnings

* don't use foreach on Nodelist

* casting

* more ci warnings

* even more ci warnings

* even more ci warnings

* even more ci issues

* even more ci comments

* even more ci issues

* pr comments

* more pr comments

* fix refactoring oversight

* pr comments

* pr comments

* merge

* pr comments

* ci issues

* pr comments

* assertElement

* pr comments

* typo

* updating sanitizer

* fixing up sanitizer test

* pr comments

* pr comments

* expanded on amp-mustache tests

* pr comments

* remove class from whitelist

* restore whole sandbox

* update mustache validator test and output

* pr comments

* nexxtv player gulp check-types fixes (#7816)

* nexxtv player fix error gulp presumbit with postmessage (#7816)

* added dependency check for nexxtv player (#7816)

* nexxtv player minor fix in validator (#7816)

* nexxtv player fixed validator (#7816)

* fixed validator (#7816)
kmh287 pushed a commit to kmh287/amphtml that referenced this pull request Mar 13, 2017
* initial commit for Math in amp-bind

* fix lint

* ali's comment

* avoid scope conflicts with built-in functions

* remove Math functions from documentation
kmh287 pushed a commit to kmh287/amphtml that referenced this pull request Mar 13, 2017
* initial setup for extension nexxtv-player

* added nexxtv player logic

* nexxtv player bugfixes, cleanup, tests, docs

* added video interface, changed attribute start to seek-to

* reworked video interface for nexxtv-player

* added message handler for nexxtv player and tests

* nexxtv player minor fixes & cleanup

* nexxtv player changed indents from 4 spaces to 2

* added unlayoutCallback for nexxtv player

* initial setup for extension nexxtv-player

* added nexxtv player logic

* nexxtv player bugfixes, cleanup, tests, docs

* added video interface, changed attribute start to seek-to

* reworked video interface for nexxtv-player

* added message handler for nexxtv player and tests

* nexxtv player minor fixes & cleanup

* nexxtv player changed indents from 4 spaces to 2

* added unlayoutCallback for nexxtv player

* fixed linting issues (ampproject#7673)

* initial setup for extension nexxtv-player

* added nexxtv player logic

* nexxtv player bugfixes, cleanup, tests, docs

* added video interface, changed attribute start to seek-to

* reworked video interface for nexxtv-player

* added message handler for nexxtv player and tests

* nexxtv player minor fixes & cleanup

* nexxtv player changed indents from 4 spaces to 2

* added unlayoutCallback for nexxtv player

* initial setup for extension nexxtv-player

* added nexxtv player logic

* nexxtv player bugfixes, cleanup, tests, docs

* added video interface, changed attribute start to seek-to

* reworked video interface for nexxtv-player

* added message handler for nexxtv player and tests

* nexxtv player minor fixes & cleanup

* fixed linting issues (ampproject#7673)

* nexxtv player review fixes (ampproject#7816)

* nexxtv player: updated validation rules (ampproject#7816)

* nexxtv player validator ordered alphabetical, changed spec_url

* fire amp-dom-update event on insert and replace (ampproject#7819)

* temp

* trigger `amp-dom-update` event on insert and replace

* switch -amp-form to i-amp-form

* Validator Rollup (ampproject#7844)

* Revision bump.

* Revision bump for amp-playbuzz changes in ampproject#7450

* Revision bump.

* Allow filtering by HtmlFormat (AMP, AMP4ADS) in the code generator.

* Revision bump.

* Revision bump due to Github pull.

* Code generation now driven by a variable LIGHT, which is broader than the previous GENERATE_DETAILED_ERRORS distinction. LIGHT implies filtered for specific format (AMP or AMP4ADS, and only amp.validator.validateSaxEvents, and no detailed errors.

* Generate ValidatorRules.directAttrLists and globalAttrs and ampLayoutAttrs, reducing overhead by indirection.

* Implement parallax effect extension (ampproject#7794)

* Do not set hidden attribute on hide/collapse (ampproject#7879)

* amp-bind: Support `Math` functions (ampproject#7797)

* initial commit for Math in amp-bind

* fix lint

* ali's comment

* avoid scope conflicts with built-in functions

* remove Math functions from documentation

* Measure 3P ad latency (ampproject#7902)

* Update spec URLs from github to ampproject. (ampproject#7901)

* Update github urls to ampproject urls

* test .out updated

* Too many slashes.

* Moved Developing.md and Design_Principles.md (ampproject#7908)

* Rename DEVELOPING.md to contributing/DEVELOPING.md

* Move files to new folder

* Renaming toggle to toggleVisibility because it was conflicting with sidebar and breaking it (ampproject#7855)

* disable scrollRestoration auto for embed case (ampproject#7899)

* Disable Fast Fetch for all ads when remote.html is used. (ampproject#7906)

* Fix DoubleClick Fast Fetch bugs around categoryExclusions and tagForChildDirectedTreatment (ampproject#7843)

* Fix incorrect parameter name for `tagForChildDirectedTreatment` in DoubleClick.

* Added unit test for tagForChildDirectedTreatment.

* Fixed the categoryExclusions bug in Fast Fetch DoubleClick.

* Removed parens in arrow functions to satisfy linter

* Adds two new experiment IDs (ampproject#7850)

* Adds two new experiment IDs to distinguish "any externally triggered" experiment from "any internally triggered".

Also updates tests to remove a number of assumptions that only a single eid will be populated.

* Use return val to detect "externally selected"; test updates.

* Updated network implementation guide. (ampproject#7862)

* Updated network impl guide.

* Changed 'validation' to 'verification'

* Cid timeout error should not be dev error (ampproject#7911)

* Fix amp-ad test (ampproject#7918)

* Update amp-install-serviceworker.md (ampproject#7932)

Fully escape javascript regex.

* Update amp-cache-modifications.md (ampproject#7933)

Add `data-no-service-worker-fallback-shell-url` as a URL to be rewritten as absolute.

* amp-fx-parallax Don't use global (ampproject#7942)

* Viewer integration: rewrite error message to indicate request name (ampproject#7923)

* rewrite error message

* update

* ticks

* Fix up links in DEVELOPING.md (ampproject#7944)

We moved DEVELOPING.md to the contributing folder but didn't update many of the relative links accordingly.

* Popin ad extension document updated. (ampproject#7674)

* Add popin ad extension.

* register popin.

* Add resizeable attribute.

* Remove resizable.

* Implemented the render-start and no-content APIs.

* Fixed lint.

* Remove quatation.

* Use tei@popin.cc

* Rebase old commit .

* Fixed document because tag was not closed.

* I replaced the removed double quotes.

* Add double quotes.

* Support for bind expressions in mustache templates (ampproject#7602)

* first pass at adding/removing subtrees

* tests passing

* Add ability to add and remove bindings in the subtree rooted at a specific node

* lint fixes

* merge conflict

* ci issues

* some cleanup

* pr comments

* pr comments, new method of removing bindings for node and its children

* fix some lint warnings

* test and lint fixes

* mutation observer

* update comments

* add observer

* naive implementation

* cleanup

* clean

* cleanup bind impl

* very simple example of bind in a template

* pr comments

* lint errors

* pr comments

* cleanup

* lint errors

* pr comments

* pr comments and lint warnings

* typo

* comments

* more lint warnings

* pr comment

* change README

* cleanup

* pr comments

* pr comments 2

* lint warnings

* don't use foreach on Nodelist

* casting

* more ci warnings

* even more ci warnings

* even more ci warnings

* even more ci issues

* even more ci comments

* even more ci issues

* pr comments

* more pr comments

* fix refactoring oversight

* pr comments

* pr comments

* merge

* pr comments

* ci issues

* pr comments

* assertElement

* pr comments

* typo

* updating sanitizer

* fixing up sanitizer test

* pr comments

* pr comments

* expanded on amp-mustache tests

* pr comments

* remove class from whitelist

* restore whole sandbox

* update mustache validator test and output

* pr comments

* nexxtv player gulp check-types fixes (ampproject#7816)

* nexxtv player fix error gulp presumbit with postmessage (ampproject#7816)

* added dependency check for nexxtv player (ampproject#7816)

* nexxtv player minor fix in validator (ampproject#7816)

* nexxtv player fixed validator (ampproject#7816)

* fixed validator (ampproject#7816)
mrjoro pushed a commit to mrjoro/amphtml that referenced this pull request Apr 28, 2017
* initial commit for Math in amp-bind

* fix lint

* ali's comment

* avoid scope conflicts with built-in functions

* remove Math functions from documentation
mrjoro pushed a commit to mrjoro/amphtml that referenced this pull request Apr 28, 2017
* initial setup for extension nexxtv-player

* added nexxtv player logic

* nexxtv player bugfixes, cleanup, tests, docs

* added video interface, changed attribute start to seek-to

* reworked video interface for nexxtv-player

* added message handler for nexxtv player and tests

* nexxtv player minor fixes & cleanup

* nexxtv player changed indents from 4 spaces to 2

* added unlayoutCallback for nexxtv player

* initial setup for extension nexxtv-player

* added nexxtv player logic

* nexxtv player bugfixes, cleanup, tests, docs

* added video interface, changed attribute start to seek-to

* reworked video interface for nexxtv-player

* added message handler for nexxtv player and tests

* nexxtv player minor fixes & cleanup

* nexxtv player changed indents from 4 spaces to 2

* added unlayoutCallback for nexxtv player

* fixed linting issues (ampproject#7673)

* initial setup for extension nexxtv-player

* added nexxtv player logic

* nexxtv player bugfixes, cleanup, tests, docs

* added video interface, changed attribute start to seek-to

* reworked video interface for nexxtv-player

* added message handler for nexxtv player and tests

* nexxtv player minor fixes & cleanup

* nexxtv player changed indents from 4 spaces to 2

* added unlayoutCallback for nexxtv player

* initial setup for extension nexxtv-player

* added nexxtv player logic

* nexxtv player bugfixes, cleanup, tests, docs

* added video interface, changed attribute start to seek-to

* reworked video interface for nexxtv-player

* added message handler for nexxtv player and tests

* nexxtv player minor fixes & cleanup

* fixed linting issues (ampproject#7673)

* nexxtv player review fixes (ampproject#7816)

* nexxtv player: updated validation rules (ampproject#7816)

* nexxtv player validator ordered alphabetical, changed spec_url

* fire amp-dom-update event on insert and replace (ampproject#7819)

* temp

* trigger `amp-dom-update` event on insert and replace

* switch -amp-form to i-amp-form

* Validator Rollup (ampproject#7844)

* Revision bump.

* Revision bump for amp-playbuzz changes in ampproject#7450

* Revision bump.

* Allow filtering by HtmlFormat (AMP, AMP4ADS) in the code generator.

* Revision bump.

* Revision bump due to Github pull.

* Code generation now driven by a variable LIGHT, which is broader than the previous GENERATE_DETAILED_ERRORS distinction. LIGHT implies filtered for specific format (AMP or AMP4ADS, and only amp.validator.validateSaxEvents, and no detailed errors.

* Generate ValidatorRules.directAttrLists and globalAttrs and ampLayoutAttrs, reducing overhead by indirection.

* Implement parallax effect extension (ampproject#7794)

* Do not set hidden attribute on hide/collapse (ampproject#7879)

* amp-bind: Support `Math` functions (ampproject#7797)

* initial commit for Math in amp-bind

* fix lint

* ali's comment

* avoid scope conflicts with built-in functions

* remove Math functions from documentation

* Measure 3P ad latency (ampproject#7902)

* Update spec URLs from github to ampproject. (ampproject#7901)

* Update github urls to ampproject urls

* test .out updated

* Too many slashes.

* Moved Developing.md and Design_Principles.md (ampproject#7908)

* Rename DEVELOPING.md to contributing/DEVELOPING.md

* Move files to new folder

* Renaming toggle to toggleVisibility because it was conflicting with sidebar and breaking it (ampproject#7855)

* disable scrollRestoration auto for embed case (ampproject#7899)

* Disable Fast Fetch for all ads when remote.html is used. (ampproject#7906)

* Fix DoubleClick Fast Fetch bugs around categoryExclusions and tagForChildDirectedTreatment (ampproject#7843)

* Fix incorrect parameter name for `tagForChildDirectedTreatment` in DoubleClick.

* Added unit test for tagForChildDirectedTreatment.

* Fixed the categoryExclusions bug in Fast Fetch DoubleClick.

* Removed parens in arrow functions to satisfy linter

* Adds two new experiment IDs (ampproject#7850)

* Adds two new experiment IDs to distinguish "any externally triggered" experiment from "any internally triggered".

Also updates tests to remove a number of assumptions that only a single eid will be populated.

* Use return val to detect "externally selected"; test updates.

* Updated network implementation guide. (ampproject#7862)

* Updated network impl guide.

* Changed 'validation' to 'verification'

* Cid timeout error should not be dev error (ampproject#7911)

* Fix amp-ad test (ampproject#7918)

* Update amp-install-serviceworker.md (ampproject#7932)

Fully escape javascript regex.

* Update amp-cache-modifications.md (ampproject#7933)

Add `data-no-service-worker-fallback-shell-url` as a URL to be rewritten as absolute.

* amp-fx-parallax Don't use global (ampproject#7942)

* Viewer integration: rewrite error message to indicate request name (ampproject#7923)

* rewrite error message

* update

* ticks

* Fix up links in DEVELOPING.md (ampproject#7944)

We moved DEVELOPING.md to the contributing folder but didn't update many of the relative links accordingly.

* Popin ad extension document updated. (ampproject#7674)

* Add popin ad extension.

* register popin.

* Add resizeable attribute.

* Remove resizable.

* Implemented the render-start and no-content APIs.

* Fixed lint.

* Remove quatation.

* Use tei@popin.cc

* Rebase old commit .

* Fixed document because tag was not closed.

* I replaced the removed double quotes.

* Add double quotes.

* Support for bind expressions in mustache templates (ampproject#7602)

* first pass at adding/removing subtrees

* tests passing

* Add ability to add and remove bindings in the subtree rooted at a specific node

* lint fixes

* merge conflict

* ci issues

* some cleanup

* pr comments

* pr comments, new method of removing bindings for node and its children

* fix some lint warnings

* test and lint fixes

* mutation observer

* update comments

* add observer

* naive implementation

* cleanup

* clean

* cleanup bind impl

* very simple example of bind in a template

* pr comments

* lint errors

* pr comments

* cleanup

* lint errors

* pr comments

* pr comments and lint warnings

* typo

* comments

* more lint warnings

* pr comment

* change README

* cleanup

* pr comments

* pr comments 2

* lint warnings

* don't use foreach on Nodelist

* casting

* more ci warnings

* even more ci warnings

* even more ci warnings

* even more ci issues

* even more ci comments

* even more ci issues

* pr comments

* more pr comments

* fix refactoring oversight

* pr comments

* pr comments

* merge

* pr comments

* ci issues

* pr comments

* assertElement

* pr comments

* typo

* updating sanitizer

* fixing up sanitizer test

* pr comments

* pr comments

* expanded on amp-mustache tests

* pr comments

* remove class from whitelist

* restore whole sandbox

* update mustache validator test and output

* pr comments

* nexxtv player gulp check-types fixes (ampproject#7816)

* nexxtv player fix error gulp presumbit with postmessage (ampproject#7816)

* added dependency check for nexxtv player (ampproject#7816)

* nexxtv player minor fix in validator (ampproject#7816)

* nexxtv player fixed validator (ampproject#7816)

* fixed validator (ampproject#7816)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants