commit | 4985b226382a88c62a9d921dacab11e393f91c79 | [log] [tgz] |
---|---|---|
author | Fredrik Söderquist <fs@opera.com> | Thu Mar 07 13:11:55 2019 |
committer | Commit Bot <commit-bot@chromium.org> | Thu Mar 07 13:11:55 2019 |
tree | 2f761e119587f137974728d8f1bf381f230f217f | |
parent | 468b222b5108c5abf64b093676084da7e9356bd3 [diff] |
Improve tainting for filter primitives This makes tainting for many filter primitives less pessimistic, by implementing the "Tainted Filter Primitives" section [1] from the specification. For feFlood/feDropShadow: A value of 'currentcolor' for 'flood-color' taints. For feSpecularLighting/feDiffuseLighting: A value of 'currentcolor' for 'lighting-color' taints. For the other primitives (which currently lack any specific logic), i.e: feBlend, feComponentTransfer, feComposite, feConvolveMatrix, feDisplacementMap, feGaussianBlur, feMorphology, feOffset and feTile no local tainting is performed (the TaintsOrigin() override is returning false). The signature/convention of the TaintsOrigin() is changed by removing the |inputs_taint_origin| argument, and always taint the primitive if it (the flag returned by FilterEffect::InputsTaintOrigin) is true. This saves each primitive to have to relate to this flag. (For primitives that have no inputs this flag would always be false regardless.) This means that TaintsOrigin() for each primitive is now essentially computing the "local" tainting state. [1] https://drafts.fxtf.org/filter-effects/#tainted-filter-primitives Bug: 792518 Change-Id: Ie2d45eeb1ae8478009b88b8b87b3c4c325ede306 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1503257 Commit-Queue: Fredrik Söderquist <fs@opera.com> Reviewed-by: Philip Rogers <pdr@chromium.org> Cr-Commit-Position: refs/heads/master@{#638546}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .