Commit Graph

208 Commits

Author SHA1 Message Date
Manish Goregaokar
4c7a50eef7 Bug 1339252: Allow comments in SVG presentation attributes; r=bz
MozReview-Commit-ID: AfxWHvC5Byw
2017-02-13 16:02:46 -08:00
Iris Hsiao
70851fa9ed Backed out changeset 8379a33c1790 (bug 1339252) for valgrind test failure 2017-02-14 12:40:40 +08:00
Manish Goregaokar
ae4415b8a6 Bug 1339252: Allow comments in SVG presentation attributes; r=bz
MozReview-Commit-ID: AfxWHvC5Byw
2017-02-13 16:02:46 -08:00
Daniel Holbert
c4fc8bad5f Bug 1321495 part 2: Add needed "using namespace" declarations to several .cpp files in layout/style, to preemptively fix unified-build bustage. r=TYLin
MozReview-Commit-ID: 5p6DhiZ5YFg
2016-12-01 10:37:44 -08:00
Boris Zbarsky
c19f725ca8 Bug 1315368. Back out changeset bf190e326bfd (bug 790997) because what it implements doesn't actually follow the CSS syntax editor's draft and breaks some sites in the process. r=dbaron 2016-11-05 00:23:16 -04:00
Hiroyuki Ikezoe
51ce51e89d Bug 1290994 - Do not multiply 0 by infinity in nsCSSScanner::ScanNumber. r=heycam
Without this patch test cases 1290995-{1,2,3}.html causes an assertion.
1290995-4.html is hit by the assertion in this patch if we don't avoid the
multiplication.

MozReview-Commit-ID: AtPVyPtd0r8
2016-08-03 19:09:58 +09:00
Boris Zbarsky
54e2099111 Bug 790997. Align our tokenization of CSS bad-url-token with the CSS Syntax Level 3 CR. r=heycam,tromey
The main change is that once we discover we have a bad-url-token we consume
everything up to, but not including, the next ')' character.  While we do this
we can cross line boundaries and don't bother about matching braces or quotes.
We just keep going until we find the ')' or hit EOF.
2016-07-13 22:54:20 -04:00
Boris Zbarsky
31e0f946ee Bug 1175192. Consistently allow identifiers to start with -- in the CSS parser. r=heycam 2015-06-24 10:17:05 -07:00
Kyle Zentner
a87dc7d2d7 Bug 1164918 - Allow multiple '.' per cell in grid-template-areas. r=dholbert 2015-05-21 15:28:00 -04:00
Tom Tromey
7bc3d42c4e Bug 1152033 - Expose CSS lexer to js. r=heycam, r=bz 2015-05-04 10:28:00 -04:00
Alexandros Chronopoulos
0e7ff1722d Bug 751939 - make url( followed by EOF valid. r=dbaron 2014-07-23 00:14:16 +03:00
Cameron McCormack
d626db095c Bug 985838 - Change custom property name prefix from "var-" to "--" and allow identifiers to begin with "--". r=dbaron 2014-04-02 14:32:16 +11:00
Simon Sapin
c0f201d73c Bug 976787 part 2: Add the grid-template-areas property to the style system. r=dholbert 2014-03-10 15:54:14 -07:00
L. David Baron
eccc6c3bd1 Bug 976350 patch 1: Move the contents of nsTraceRefcnt.h into nsISupportsImpl.h. r=bsmedberg
This makes sense since the file no longer contains anything with the
nsTraceRefcnt name in it, and it will allow renaming nsTraceRefcntImpl
back to nsTraceRefcnt.
2014-02-26 13:36:35 -08:00
L. David Baron
ac36e3c1b4 Bug 964529: Support scientific (exponential) notation for CSS <number> values, including percentages and dimensions (but not <integer> values). r=SimonSapin
Resolved for <number> on 2012-08-15:
http://lists.w3.org/Archives/Public/www-style/2012Aug/0900.html

Resolved for percentages and dimensions in CSS teleconference 2013-04-17:
http://lists.w3.org/Archives/Public/www-style/2013Apr/0428.html
2014-01-31 16:06:46 -08:00
Ryan VanderMeulen
382f263cff Backed out changeset 699811c420a2 (bug 964529) for crashtest asserts.
CLOSED TREE
2014-01-31 16:39:27 -05:00
L. David Baron
ac87fa7378 Bug 964529: Support scientific (exponential) notation for CSS <number> values, including percentages and dimensions (but not <integer> values). r=SimonSapin
Resolved for <number> on 2012-08-15:
http://lists.w3.org/Archives/Public/www-style/2012Aug/0900.html

Resolved for percentages and dimensions in CSS teleconference 2013-04-17:
http://lists.w3.org/Archives/Public/www-style/2013Apr/0428.html
2014-01-31 12:27:59 -08:00
Ehsan Akhgari
68bfe70f09 Bug 927728 - Part 1: Replace PRUnichar with char16_t; r=roc
This patch was automatically generated by the following script:

#!/bin/bash
# Command to convert PRUnichar to char16_t

function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
       ! -wholename "*security/nss*" \
       ! -wholename "*modules/libmar*" \
       ! -wholename "*/.hg*" \
       ! -wholename "obj-ff-dbg*" \
       ! -name prtypes.h \
       ! -name Char16.h \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert PRUnichar char16_t
2014-01-04 10:02:17 -05:00
Cameron McCormack
080e6b03a6 Bug 773296 - Part 11: Give nsCSSParser and nsCSSScanner the ability to save/restore their current input state. r=dbaron
This adds functions to nsCSSParser and nsCSSScanner that let us save the
current input position (and corresponding information like line/column
number) and parser pushback, and be able to restore it later.  We'll use
this when rewinding the scanner after we first encounter a property with
a variable reference and go back to reparse it as a token stream.
2013-12-12 13:09:42 +11:00
Cameron McCormack
cdecc9a820 Bug 773296 - Part 9: Give nsCSSScanner the ability to remember when it encounters a "var(" token. r=dbaron
This is the first part of handling variable references in regular
properties.  We have the scanner set a flag whenever it returns a "var("
token, so that when we come to the end of parsing a property that
failed, we know that it is because of a variable reference.
2013-12-12 13:09:42 +11:00
Cameron McCormack
e817a6052c Bug 773296 - Part 8: Resolve and compute CSS variables. r=dbaron
We add a new class CSSVariableResolver whose job is to take the
inherited computed variables and the specified variable declarations and
to perform cycle removal and resolution of the variables, storing the
result in the CSSVariableValues object on an nsStyleVariables.  We use
CSSVariableResolver in nsRuleNode::ComputeVariablesData.

The variable resolver does this:

  1. Asks the CSSVariableValues and CSSVariableDeclarations objects
     to add their variables to it.
  2. Calls in to a new nsCSSParser function
     EnumerateVariableReferences that informs the resolver which
     other variables a given variable references, and by doing so,
     builds a graph of variable dependencies.
  3. Removes variables involved in cyclic references using Tarjan's
     strongly connected component algorithm, setting those variables
     to have an invalid value.
  4. Calls in to a new nsCSSParser function ResolveVariableValue
     to resolve the remaining valid variables by substituting variable
     references.

We extend nsCSSParser::ParseValueWithVariables to take a callback
function to be invoked when encountering a variable reference.  This
lets EnumerateVariableReferences re-use ParseValueWithVariables.

CSSParserImpl::ResolveValueWithVariableReferences needs different
error handling behaviour from ParseValueWithVariables, so we don't
re-use it.

CSSParserImpl::AppendImpliedEOFCharacters is used to take the
value returned from nsCSSScanner::GetImpliedEOFCharacters while
resolving variable references that were declared using custom
properties that encountered EOF before being closed properly.

The SeparatorRequiredBetweenTokens helper function in nsCSSParser.cpp
implements the serialization rules in CSS Syntax Module Level 3:

https://dvcs.w3.org/hg/csswg/raw-file/3479cdefc59a/css-syntax/Overview.html#serialization
2013-12-12 13:09:41 +11:00
Birunthan Mohanathas
88a0348924 Bug 713082 - Part 2: Rename Util.h to ArrayUtils.h. r=Waldo 2013-12-08 21:52:54 -05:00
Birunthan Mohanathas
c04d0ff563 Bug 713082 - Part 1: Remove unnecessary Util.h includes. r=Waldo 2013-12-08 21:52:33 -05:00
Cameron McCormack
21b40329e1 Bug 914072 - Have nsCSSScanner store any implied characters at EOF needed for correct serialization. r=dbaron 2013-12-07 12:25:07 +11:00
Ehsan Akhgari
1089e71462 Bug 916610 - Minimize the #includes in layout/style; r=roc 2013-09-15 21:06:52 -04:00
Ehsan Akhgari
1ab9c7bcb4 Bug 895322 - Part 1: Replace the usages of MOZ_STATIC_ASSERT with C++11 static_assert; r=Waldo
This patch was mostly generated by running the following scripts on the codebase, with some
manual changes made afterwards:

# static_assert.sh
#!/bin/bash
# Command to convert an NSPR integer type to the equivalent standard integer type

function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
       ! -wholename "*security/nss*" \
       ! -wholename "*/.hg*" \
       ! -wholename "obj-ff-dbg*" \
       ! -name nsXPCOMCID.h \
       ! -name prtypes.h \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.cc" \
         -o -iname "*.mm" \) | \
    xargs -n 1 `dirname $0`/assert_replacer.py #sed -i -e "s/\b$1\b/$2/g"
}

convert MOZ_STATIC_ASSERT static_assert
hg rev --no-backup mfbt/Assertions.h \
                   media/webrtc/signaling/src/sipcc/core/includes/ccapi.h \
                   modules/libmar/src/mar_private.h \
                   modules/libmar/src/mar.h


# assert_replacer.py
#!/usr/bin/python

import sys
import re

pattern = re.compile(r"\bMOZ_STATIC_ASSERT\b")

def replaceInPlace(fname):
  print fname
  f = open(fname, "rw+")
  lines = f.readlines()
  for i in range(0, len(lines)):
    while True:
      index = re.search(pattern, lines[i])
      if index != None:
        index = index.start()
        lines[i] = lines[i][0:index] + "static_assert" + lines[i][index+len("MOZ_STATIC_ASSERT"):]
        for j in range(i + 1, len(lines)):
          if lines[j].find("                 ", index) == index:
            lines[j] = lines[j][0:index] + lines[j][index+4:]
          else:
            break
      else:
        break
  f.seek(0, 0)
  f.truncate()
  f.write("".join(lines))
  f.close()

argc = len(sys.argv)
for i in range(1, argc):
  replaceInPlace(sys.argv[i])
2013-07-18 13:59:53 -04:00
Corey Ford
5d5747376e Bug 883987 - Don't allow BAD_STRING or BAD_URL tokens in @supports conditions. r=dbaron 2013-06-27 17:03:33 -07:00
Corey Ford
23c635c6a3 Bug 829816 - Treat \0 and U+0000 in CSS style sheets as U+FFFD. r=dbaron 2013-06-26 15:17:14 -07:00
Cameron McCormack
61e646d67c Bug 880150 - Treat \<EOF> as U+FFFD outside a string, and drop it inside a string. r=dbaron 2013-06-10 17:04:27 +10:00
David Zbarsky
1c27c4d045 [Bug 847110] Fix up includes in layout/style r=dbaron 2013-03-02 19:31:48 -05:00
Zack Weinberg
2c03623c0c Bug 842134: fix serialization of unquoted url() in CSS. r=heycam 2013-02-17 22:03:55 -05:00
Zack Weinberg
5de88ede7c Bug 543151, part A4: unify the inner text-scanning loops used by GatherIdent, ScanString, NextURL. r=heycam 2013-02-16 18:27:53 -05:00
Zack Weinberg
ed67db9c92 Bug 543151, part A3: convert the scanner to use peek/advance. r=heycam 2013-02-16 18:27:53 -05:00
Zack Weinberg
cf1949601c Bug 543151, part A2: Introduce the new peek/advance API and reimplement the old read/pushback API on top of it. r=heycam 2013-02-16 18:27:53 -05:00
Zack Weinberg
c0a3db961e Bug 543151, part A1: Preliminary cleanups to the scanner/parser interface and the organization of nsCSSScanner.cpp. r=heycam 2013-02-16 18:27:53 -05:00
L. David Baron
c47f1a2a95 Bug 836530: Make all non-ASCII characters be CSS identifier characters. r=bzbarsky
This is as was proposed in
http://lists.w3.org/Archives/Public/www-style/2013Jan/0394.html
and resolved in the CSS Working Group's teleconference on 2013-01-30.

This removes a difference between Gecko and other browsers.
2013-01-31 20:09:47 -08:00
Mats Palmgren
7532b4e736 Bug 786533 - Replace NS_MIN/NS_MAX with std::min/std::max and #include <algorithm> where needed. r=ehsan 2013-01-15 13:22:03 +01:00
Zack Weinberg
92eae2fea1 Bug 413958: report the text of the offending line in CSS error messages. r=dbaron 2013-01-11 12:27:43 -05:00
Zack Weinberg
1f6375c862 Bug 229827: escape unprintable characters in CSS parser diagnostics. r=dbaron 2012-11-16 21:53:38 -05:00
Ryan VanderMeulen
59c93fcd27 Backed out changesets b242651c3c1b (bug 229827), b36eaac9ecf8, and 40f38a8aa660 (bug 663291) for mochitest-3/4 failures.
CLOSED TREE
2012-11-16 16:59:38 -05:00
Zack Weinberg
627ac26ca3 Bug 229827: escape unprintable characters in CSS parser diagnostics. r=dbaron 2012-11-16 15:29:21 -05:00
Zack Weinberg
811234489f Bug 455839: simplify the CSS error reporting API. r=dbaron 2012-11-15 11:36:15 -05:00
Zack Weinberg
24e58411e8 Bug 516091: Split CSS error reporting to its own file and class. Allows CSS scanner to become a stack object. r=dbaron 2012-11-15 11:36:15 -05:00
Jacek Szpot
09f9b9a1c3 Bug 792180 - Replace NS_{UN,}LIKELY with MOZ_{UN,}LIKELY; r=ehsan 2012-10-26 15:32:10 +02:00
Seth Fowler
e9855f8ec6 Bug 786108 - Cache UTF-16 version of URI to prevent repeated conversions in the CSS scanner, and free the cache after a short time. r=bz 2012-10-03 15:28:57 -07:00
Ed Morley
2d3b6dd679 Backout ec0dcd401a3f (bug 786108) for crashes 2012-09-28 22:04:56 +01:00
Seth Fowler
72ea7d3cdd Bug 786108 - Cache UTF-16 version of URI to prevent repeated conversions in the CSS scanner, and free the cache after a short time. r=bz 2012-09-28 09:56:47 -07:00
Isaac Aggrey
990e90e88a Bug 791906: Replace NSPR integer limit constants with stdint ones; r=ehsan 2012-09-28 01:57:33 -05:00
Mats Palmgren
2c882ee046 Bug 788836 - Simplify @-keyword parsing by letting ParseAtKeyword deal with everthing after the @. Make it pass the first char to GatherIdent so that it returns false for a bad escape sequence at the start. r=dbaron 2012-09-12 00:20:52 +02:00
Daniel Holbert
3306142184 Bug 789382: Change nsIScriptError methods init() and initWithWindowID() to take nsAString, rather than wchar / PRUnichar*. r=bz sr=bsmedberg 2012-09-09 16:29:12 -07:00