Bug 109770

Summary: [CSS Shaders] Parse src property in @-webkit-filter at-rules
Product: WebKit Reporter: Max Vujovic <mvujovic>
Component: CSSAssignee: Max Vujovic <mvujovic>
Status: RESOLVED FIXED    
Severity: Normal CC: achicu, dino, krit, macpherson, menard, michelangelo, ojan.autocc, webkit.review.bot
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on:    
Bug Blocks: 71392    
Attachments:
Description Flags
Patch for Review
dino: review+, mvujovic: commit-queue-
Patch for Landing none

Description Max Vujovic 2013-02-13 16:35:14 PST
The Filter Effects spec [1] specifies the syntax for CSS "src" property in for @filter at-rules:
src: [ <uri> [format(<string>)]?]#

In practice, it can look like:
src: url(shader.vs) format('x-shader/x-vertex'), url(shader.fs) format('x-shader/x-fragment');

This src property is similar to the src property in CSS font-face rules, but a little different. The CSS Fonts spec [2] specifies:
src: [ <uri> [format(<string>#)]? | <font-face-name> ]#
The syntax for a <font-face-name> is a unique font face name enclosed by "local(" and ")".

Unlike the filter src property, the font face src property accepts the local function [e.g. src: local("SomeFont");]. Also, the font face src property accepts a list of strings instead of just one string in its format function.

[1]: https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#custom-filter-src
[2]: http://www.w3.org/TR/css3-fonts/#src-desc
Comment 1 Max Vujovic 2013-02-14 10:39:44 PST
Created attachment 188381 [details]
Patch for Review
Comment 2 Dean Jackson 2013-02-14 17:05:01 PST
Comment on attachment 188381 [details]
Patch for Review

Great tests!
Comment 3 Max Vujovic 2013-02-15 10:13:29 PST
Created attachment 188596 [details]
Patch for Landing

Thanks!

Rebased patch. Added one more positive test case for no whitespace between URL and format [e.g. src: url(shader.vs)format('x-shader/x-vertex'); ]. Rerunning the bots before I set cq+.
Comment 4 Max Vujovic 2013-02-15 10:37:51 PST
Comment on attachment 188596 [details]
Patch for Landing

Chromium bots look good. Setting cq+.
Comment 5 WebKit Review Bot 2013-02-15 10:52:12 PST
Comment on attachment 188596 [details]
Patch for Landing

Rejecting attachment 188596 [details] from commit-queue.

Failed to run "['/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch', '--status-host=queues.webkit.org', '--bot-id=gce-cq-01', 'validate-changelog', '--non-interactive', 188596, '--port=chromium-xvfb']" exit_code: 1 cwd: /mnt/git/webkit-commit-queue

Last 500 characters of output:
_by_irc_nickname(string_in_lowercase)
  File "/mnt/git/webkit-commit-queue/Tools/Scripts/webkitpy/common/config/committers.py", line 753, in contributor_by_name
    return self._name_to_contributor_map().get(name.lower()) if name else None
  File "/mnt/git/webkit-commit-queue/Tools/Scripts/webkitpy/common/config/committers.py", line 634, in _name_to_contributor_map
    assert(contributor.full_name.lower() not in self._contributors_by_name)  # We should never have duplicate names.
AssertionError

Full output: http://queues.webkit.org/results/16580927
Comment 6 Max Vujovic 2013-02-15 11:27:52 PST
Comment on attachment 188596 [details]
Patch for Landing

Setting cq+ again.

Commit-queue was broken, but it should be fixed now:
http://trac.webkit.org/changeset/143017/trunk/Tools/Scripts/webkitpy/common/config/committers.py
Comment 7 WebKit Review Bot 2013-02-15 11:56:37 PST
Comment on attachment 188596 [details]
Patch for Landing

Clearing flags on attachment: 188596

Committed r143028: <http://trac.webkit.org/changeset/143028>
Comment 8 WebKit Review Bot 2013-02-15 11:56:41 PST
All reviewed patches have been landed.  Closing bug.