From c34a139b296fb1767036039162c7e20ce65cd54b Mon Sep 17 00:00:00 2001 From: Yi Xu Date: Thu, 2 Apr 2020 01:34:48 -0400 Subject: [PATCH 01/15] merge to masteer branch --- source | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source b/source index e890e004aed..aac304cb830 100644 --- a/source +++ b/source @@ -23577,12 +23577,12 @@ document.body.appendChild(wbr);
  1. If the initiator browsing context's sandboxing flags has the sandboxed downloads - browsing context flag set, then return false.

  2. + data-x="concept-bc-sandboxing-flags">sandboxing flags has the sandboxed downloads + browsing context flag set, then return false.

  3. If the instantiator browsing context is non-null, and its sandboxing flags has the sandboxed downloads - browsing context flag set, then return false.

  4. + data-x="concept-bc-sandboxing-flags">sandboxing flags has the sandboxed downloads + browsing context flag set, then return false.

  5. Optionally, the user agent may return false, if it believes doing so would safeguard the user from a potentially hostile download.

  6. From 22635576b68c0694423d2e83bb947b83ae9e7670 Mon Sep 17 00:00:00 2001 From: Yi Xu Date: Wed, 17 Mar 2021 01:00:13 +0000 Subject: [PATCH 02/15] small fix --- source | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source b/source index aac304cb830..7c94bbcb7d4 100644 --- a/source +++ b/source @@ -23577,12 +23577,12 @@ document.body.appendChild(wbr);
    1. If the initiator browsing context's sandboxing flags has the sandboxed downloads - browsing context flag set, then return false.

    2. + data-x="concept-bc-sandboxing-flags">sandboxing flagshas the sandboxed downloads + browsing context flagset, then return false.

    3. If the instantiator browsing context is non-null, and its sandboxing flags has the sandboxed downloads - browsing context flag set, then return false.

    4. + data-x="concept-bc-sandboxing-flags">sandboxing flagshas the sandboxed downloads + browsing context flagset, then return false.

    5. Optionally, the user agent may return false, if it believes doing so would safeguard the user from a potentially hostile download.

    6. From 27a4c5cd8a5cf8888fcb0c34ad1ce32853ab9cd9 Mon Sep 17 00:00:00 2001 From: Yi Xu Date: Tue, 6 Apr 2021 20:29:37 +0000 Subject: [PATCH 03/15] changes --- source | 227 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 226 insertions(+), 1 deletion(-) diff --git a/source b/source index 7c94bbcb7d4..c2b98349bba 100644 --- a/source +++ b/source @@ -3444,9 +3444,22 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
    7. The 'font-weight' property
    8. The 'font-size' property
    9. The 'font' property
    10. +
    11. The small caps property
    12. +
    13. The all small caps property
    14. +
    15. The petite caps property
    16. +
    17. The all petite caps property
    18. +
    19. The titling caps property
    20. +
    21. The ultra condensed property
    22. +
    23. The extra condensed property
    24. +
    25. The condensed property
    26. +
    27. The semi condensed property
    28. +
    29. The semi expanded property
    30. +
    31. The expanded property
    32. +
    33. The extra expanded property
    34. +
    35. The ultra expanded property
    36. -

      The following features are defined in CSS Grid Layout:

      +

      The following features are defined in CSS Grid Layout:

      • The 'grid-auto-columns' property
      • @@ -3961,6 +3974,7 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
      • SVG svg element
      • SVG title element
      • SVG use element
      • +
      • SVG text-rendering property
      @@ -60227,6 +60241,10 @@ enum CanvasLineJoin { "round", "bevel", "miter" }; enum CanvasTextAlign { "start", "end", "left", "right", "center" }; enum CanvasTextBaseline { "top", "hanging", "middle", "alphabetic", "ideographic", "bottom" }; enum CanvasDirection { "ltr", "rtl", "inherit" }; +enum CanvasFontKerning {"auto", "normal", "none"} +enum CanvasFontStretch {"ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded"} +enum CanvasFontVariantCaps {"normal", "small-caps", "all-small-caps", "petite-caps", "all-petite-caps", "unicase", "titling-caps"} +enum CanvasTextRendering {"auto", "optimizeSpeed", "optimizeLegibility", "geometricPrecision"} interface mixin CanvasPathDrawingStyles { // line caps/joins @@ -60247,6 +60265,12 @@ interface mixin CanvasTextDrawingStyles { attribute CanvasTextAlign textAlign; // (default: "start") attribute CanvasTextBaseline textBaseline; // (default: "alphabetic") attribute CanvasDirection direction; // (default: "inherit") + attribute unrestricted double textLetterSpacing; // (default: 0) + attribute unrestricted double textWordSpacing; // (default: 0) + attribute CanvasFontKerning fontKerning; // (default: "auto") + attribute CanvasFontStretch fontStretch; // (default: "normal") + attribute CanvasFontVariantCaps fontVariantCaps; // (default: "normal") + attribute CanvasTextRendering textRendering; // (default: "normal") }; interface mixin CanvasPath { @@ -60634,6 +60658,12 @@ context.fillRect(100,0,50,50); // only this square remains data-x="dom-context-2d-textAlign">textAlign, textBaseline, direction, textLetterSpacing, textWordSpacing, fontKerning, fontStretch, fontVariantCaps, textRendering, imageSmoothingEnabled, imageSmoothingQuality.
    37. The current dash list.
    38. @@ -61166,6 +61196,70 @@ transform. ack Shaun Morris. --> below. Other values are ignored. The default is "inherit".

      + +
      context . textLetterSpacing [ = value ]
      +
      styles . textLetterSpacing [ = value ]
      + +
      +

      Returns the current spacing between characters in the text.

      + +

      Can be set, to change spacing between characters. Postive values spreads characters further + apart, while negative valuevalues brings them closer together. The default is 0.

      +
      + +
      context . textWordSpacing [ = value ]
      +
      styles . textWordSpacing [ = value ]
      + +
      +

      Returns the current spacing between words in the text.

      + +

      Can be set, to change spacing between words. Postive values spreads words further + apart, while negative valuevalues brings them closer together. The default is 0.

      +
      + +
      context . fontKerning [ = value ]
      +
      styles . fontKerning [ = value ]
      + +
      +

      Returns the current font kerning settings.

      + +

      Can be set, to change the font kerning. The possible values and their meanings are given + below. Other values are ignored. The default is "auto".

      +
      + +
      context . fontStretch [ = value ]
      +
      styles . fontStretch [ = value ]
      + +
      +

      Returns the current font stretch settings.

      + +

      Can be set, to change the font stretch. The possible values and their meanings are given + below. Other values are ignored. The default is "normal".

      +
      + +
      context . fontVariantCaps [ = value ]
      +
      styles . fontVariantCaps [ = value ]
      + +
      +

      Returns the current font variant caps settings.

      + +

      Can be set, to change the font variant caps. The possible values and their meanings are + given below. Other values are ignored. The default is "normal".

      +
      + +
      context . textRendering [ = value ]
      +
      styles . textRendering [ = value ]
      + +
      +

      Returns the current text rendering settings.

      + +

      Can be set, to change the text rendering. The possible values and their meanings are given + below. Other values are ignored. The default is "auto".

      +
      @@ -61317,6 +61411,47 @@ worker.postMessage(offscreenCanvas, [offscreenCanvas]); data-x="dom-context-2d-direction">direction attribute must initially have the value "inherit".

      +

      The textLetterSpacing IDL attribute, on + getting, must return the current value. On setting, the current value must be changed to the new + value. When the object implementing the CanvasTextDrawingStyles interface is created, + the textLetterSpacing attribute must + initially have the value 0.

      + +

      The textWordSpacing IDL attribute, on + getting, must return the current value. On setting, the current value must be changed to the new + value. When the object implementing the CanvasTextDrawingStyles interface is created, + the textWordSpacing attribute must + initially have the value 0.

      + +

      The fontKerning IDL attribute, on + getting, must return the current value. On setting, the current value must be changed to the new + value. When the object implementing the CanvasTextDrawingStyles interface is created, + the fontKerning attribute must + initially have the value "auto".

      + +

      The fontStretch IDL attribute, on + getting, must return the current value. On setting, the current value must be changed to the new + value. When the object implementing the CanvasTextDrawingStyles interface is created, + the fontStretch attribute must + initially have the value "normal".

      + +

      The fontVariantCaps IDL attribute, on + getting, must return the current value. On setting, the current value must be changed to the new + value. When the object implementing the CanvasTextDrawingStyles interface is created, + the fontVariantCaps attribute must + initially have the value "normal".

      + +

      The textRendering IDL attribute, on + getting, must return the current value. On setting, the current value must be changed to the new + value. When the object implementing the CanvasTextDrawingStyles interface is created, + the textRendering attribute must + initially have the value "auto".

      The textAlign attribute's allowed keywords are @@ -61393,6 +61528,96 @@ worker.postMessage(offscreenCanvas, [offscreenCanvas]); as appropriate.

      +

      The fontKerning attribute's allowed keywords are + as follows:

      + +
      +
      auto +

      Kerning is applied at the discretion of the user agent.

      + +
      normal +

      Kerning is applied

      + +
      none +

      Kerning is not applied

      +
      + +

      The fontStretch attribute's allowed keywords are + as follows:

      + +
      +
      ultra-condensed +

      Same as CSS font-stretch ultra condensed setting.

      + +
      extra-condensed +

      Same as CSS font-stretch extra condensed setting.

      + +
      condensed +

      Same as CSS font-stretch condensed setting.

      + +
      semi-condensed +

      Same as CSS font-stretch semi condensed setting.

      + +
      normal +

      The default setting, where width of the glyphs is at 100%.

      + +
      semi-expanded +

      Same as CSS font-stretch semi expanded setting.

      + +
      expanded +

      Same as CSS font-stretch expanded setting.

      + +
      extra-expanded +

      Same as CSS font-stretch extra expanded setting.

      + +
      ultra-expanded +

      Same as CSS font-stretch ultra expanded setting.

      +
      + +

      The fontVariantCaps attribute's allowed keywords are + as follows:

      + +
      +
      normal +

      None of the features listed below are enabled.

      + +
      small-caps +

      Enable display small caps character set.

      + +
      all-small-caps +

      Enable display all small caps character set.

      + +
      petite-caps +

      Enable display petite caps character set.

      + +
      all-petite-caps +

      Enable display all petite caps character set.

      + +
      unicase +

      Enables display a mixture of small caps for uppercase letters and normal for lowercase letters

      + +
      titling-caps +

      Enable display titling caps character set.

      +
      + +

      The textRendering attribute's allowed keywords are + as follows:

      + +
      +
      auto +

      The user agent makes balance between speed, legibility and geometric precision. + Priority is given to speed and geometric precision.

      + +
      optimizeSpeed +

      Same as SVG text-rendering setting, emphasize on speed.

      + +
      optimizeLegibility +

      Same as SVG text-rendering setting, emphasize on legibility.

      + +
      geometricPrecision +

      Same as SVG text-rendering setting, emphasize on rendering geometric precision.

      +
      +

      The text preparation algorithm is as follows. It takes as input a string text, a CanvasTextDrawingStyles object target, and an optional length maxWidth. It returns an array of glyph shapes, each positioned on a common coordinate From c4646525218a8c8c2d31e8f4f2d07bb0b706b30e Mon Sep 17 00:00:00 2001 From: Yi Xu Date: Thu, 2 Apr 2020 01:34:48 -0400 Subject: [PATCH 04/15] Add more text modifier properties --- source | 233 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 229 insertions(+), 4 deletions(-) diff --git a/source b/source index e890e004aed..a5489f833f2 100644 --- a/source +++ b/source @@ -3444,6 +3444,19 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute

    39. The 'font-weight' property
    40. The 'font-size' property
    41. The 'font' property
    42. +
    43. The small caps property
    44. +
    45. The all small caps property
    46. +
    47. The petite caps property
    48. +
    49. The all petite caps property
    50. +
    51. The titling caps property
    52. +
    53. The ultra condensed property
    54. +
    55. The extra condensed property
    56. +
    57. The condensed property
    58. +
    59. The semi condensed property
    60. +
    61. The semi expanded property
    62. +
    63. The expanded property
    64. +
    65. The extra expanded property
    66. +
    67. The ultra expanded property
    68. The following features are defined in CSS Grid Layout:

      @@ -3961,6 +3974,7 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
    69. SVG svg element
    70. SVG title element
    71. SVG use element
    72. +
    73. SVG text-rendering property
    74. @@ -23577,12 +23591,12 @@ document.body.appendChild(wbr);
      1. If the initiator browsing context's sandboxing flags has the sandboxed downloads - browsing context flag set, then return false.

      2. + data-x="concept-bc-sandboxing-flags">sandboxing flags has the sandboxed downloads + browsing context flag set, then return false.

      3. If the instantiator browsing context is non-null, and its sandboxing flags has the sandboxed downloads - browsing context flag set, then return false.

      4. + data-x="concept-bc-sandboxing-flags">sandboxing flags has the sandboxed downloads + browsing context flag set, then return false.

      5. Optionally, the user agent may return false, if it believes doing so would safeguard the user from a potentially hostile download.

      6. @@ -60227,6 +60241,10 @@ enum CanvasLineJoin { "round", "bevel", "miter" }; enum CanvasTextAlign { "start", "end", "left", "right", "center" }; enum CanvasTextBaseline { "top", "hanging", "middle", "alphabetic", "ideographic", "bottom" }; enum CanvasDirection { "ltr", "rtl", "inherit" }; +enum CanvasFontKerning {"auto", "normal", "none"} +enum CanvasFontStretch {"ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded"} +enum CanvasFontVariantCaps {"normal", "small-caps", "all-small-caps", "petite-caps", "all-petite-caps", "unicase", "titling-caps"} +enum CanvasTextRendering {"auto", "optimizeSpeed", "optimizeLegibility", "geometricPrecision"} interface mixin CanvasPathDrawingStyles { // line caps/joins @@ -60247,6 +60265,12 @@ interface mixin CanvasTextDrawingStyles { attribute CanvasTextAlign textAlign; // (default: "start") attribute CanvasTextBaseline textBaseline; // (default: "alphabetic") attribute CanvasDirection direction; // (default: "inherit") + attribute unrestricted double textLetterSpacing; // (default: 0) + attribute unrestricted double textWordSpacing; // (default: 0) + attribute CanvasFontKerning fontKerning; // (default: "auto") + attribute CanvasFontStretch fontStretch; // (default: "normal") + attribute CanvasFontVariantCaps fontVariantCaps; // (default: "normal") + attribute CanvasTextRendering textRendering; // (default: "normal") }; interface mixin CanvasPath { @@ -60634,6 +60658,12 @@ context.fillRect(100,0,50,50); // only this square remains data-x="dom-context-2d-textAlign">textAlign, textBaseline, direction, textLetterSpacing, textWordSpacing, fontKerning, fontStretch, fontVariantCaps, textRendering, imageSmoothingEnabled, imageSmoothingQuality.
      7. The current dash list.
      8. @@ -61166,6 +61196,70 @@ transform. ack Shaun Morris. --> below. Other values are ignored. The default is "inherit".

        + +
        context . textLetterSpacing [ = value ]
        +
        styles . textLetterSpacing [ = value ]
        + +
        +

        Returns the current spacing between characters in the text.

        + +

        Can be set, to change spacing between characters. Postive values spreads characters further + apart, while negative valuevalues brings them closer together. The default is 0.

        +
        + +
        context . textWordSpacing [ = value ]
        +
        styles . textWordSpacing [ = value ]
        + +
        +

        Returns the current spacing between words in the text.

        + +

        Can be set, to change spacing between words. Postive values spreads words further + apart, while negative valuevalues brings them closer together. The default is 0.

        +
        + +
        context . fontKerning [ = value ]
        +
        styles . fontKerning [ = value ]
        + +
        +

        Returns the current font kerning settings.

        + +

        Can be set, to change the font kerning. The possible values and their meanings are given + below. Other values are ignored. The default is "auto".

        +
        + +
        context . fontStretch [ = value ]
        +
        styles . fontStretch [ = value ]
        + +
        +

        Returns the current font stretch settings.

        + +

        Can be set, to change the font stretch. The possible values and their meanings are given + below. Other values are ignored. The default is "normal".

        +
        + +
        context . fontVariantCaps [ = value ]
        +
        styles . fontVariantCaps [ = value ]
        + +
        +

        Returns the current font variant caps settings.

        + +

        Can be set, to change the font variant caps. The possible values and their meanings are + given below. Other values are ignored. The default is "normal".

        +
        + +
        context . textRendering [ = value ]
        +
        styles . textRendering [ = value ]
        + +
        +

        Returns the current text rendering settings.

        + +

        Can be set, to change the text rendering. The possible values and their meanings are given + below. Other values are ignored. The default is "auto".

        +
        @@ -61317,6 +61411,47 @@ worker.postMessage(offscreenCanvas, [offscreenCanvas]); data-x="dom-context-2d-direction">direction attribute must initially have the value "inherit".

        +

        The textLetterSpacing IDL attribute, on + getting, must return the current value. On setting, the current value must be changed to the new + value. When the object implementing the CanvasTextDrawingStyles interface is created, + the textLetterSpacing attribute must + initially have the value 0.

        + +

        The textWordSpacing IDL attribute, on + getting, must return the current value. On setting, the current value must be changed to the new + value. When the object implementing the CanvasTextDrawingStyles interface is created, + the textWordSpacing attribute must + initially have the value 0.

        + +

        The fontKerning IDL attribute, on + getting, must return the current value. On setting, the current value must be changed to the new + value. When the object implementing the CanvasTextDrawingStyles interface is created, + the fontKerning attribute must + initially have the value "auto".

        + +

        The fontStretch IDL attribute, on + getting, must return the current value. On setting, the current value must be changed to the new + value. When the object implementing the CanvasTextDrawingStyles interface is created, + the fontStretch attribute must + initially have the value "normal".

        + +

        The fontVariantCaps IDL attribute, on + getting, must return the current value. On setting, the current value must be changed to the new + value. When the object implementing the CanvasTextDrawingStyles interface is created, + the fontVariantCaps attribute must + initially have the value "normal".

        + +

        The textRendering IDL attribute, on + getting, must return the current value. On setting, the current value must be changed to the new + value. When the object implementing the CanvasTextDrawingStyles interface is created, + the textRendering attribute must + initially have the value "auto".

        The textAlign attribute's allowed keywords are @@ -61393,6 +61528,96 @@ worker.postMessage(offscreenCanvas, [offscreenCanvas]); as appropriate.

        +

        The fontKerning attribute's allowed keywords are + as follows:

        + +
        +
        auto +

        Kerning is applied at the discretion of the user agent.

        + +
        normal +

        Kerning is applied

        + +
        none +

        Kerning is not applied

        +
        + +

        The fontStretch attribute's allowed keywords are + as follows:

        + +
        +
        ultra-condensed +

        Same as CSS font-stretch ultra condensed setting.

        + +
        extra-condensed +

        Same as CSS font-stretch extra condensed setting.

        + +
        condensed +

        Same as CSS font-stretch condensed setting.

        + +
        semi-condensed +

        Same as CSS font-stretch semi condensed setting.

        + +
        normal +

        The default setting, where width of the glyphs is at 100%.

        + +
        semi-expanded +

        Same as CSS font-stretch semi expanded setting.

        + +
        expanded +

        Same as CSS font-stretch expanded setting.

        + +
        extra-expanded +

        Same as CSS font-stretch extra expanded setting.

        + +
        ultra-expanded +

        Same as CSS font-stretch ultra expanded setting.

        +
        + +

        The fontVariantCaps attribute's allowed keywords are + as follows:

        + +
        +
        normal +

        None of the features listed below are enabled.

        + +
        small-caps +

        Enable display small caps character set.

        + +
        all-small-caps +

        Enable display all small caps character set.

        + +
        petite-caps +

        Enable display petite caps character set.

        + +
        all-petite-caps +

        Enable display all petite caps character set.

        + +
        unicase +

        Enables display a mixture of small caps for uppercase letters and normal for lowercase letters

        + +
        titling-caps +

        Enable display titling caps character set.

        +
        + +

        The textRendering attribute's allowed keywords are + as follows:

        + +
        +
        auto +

        The user agent makes balance between speed, legibility and geometric precision. + Priority is given to speed and geometric precision.

        + +
        optimizeSpeed +

        Same as SVG text-rendering setting, emphasize on speed.

        + +
        optimizeLegibility +

        Same as SVG text-rendering setting, emphasize on legibility.

        + +
        geometricPrecision +

        Same as SVG text-rendering setting, emphasize on rendering geometric precision.

        +
        +

        The text preparation algorithm is as follows. It takes as input a string text, a CanvasTextDrawingStyles object target, and an optional length maxWidth. It returns an array of glyph shapes, each positioned on a common coordinate From 7429bc0a9a2df34f57deafaf2330acd76259c8f8 Mon Sep 17 00:00:00 2001 From: Yi Xu Date: Thu, 8 Apr 2021 23:57:22 +0000 Subject: [PATCH 05/15] address comments --- source | 100 ++++++++++++++++++++++++++++++--------------------------- 1 file changed, 52 insertions(+), 48 deletions(-) diff --git a/source b/source index 7c96b647dbc..a3701ac009e 100644 --- a/source +++ b/source @@ -3444,22 +3444,25 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute

      9. The 'font-weight' property
      10. The 'font-size' property
      11. The 'font' property
      12. -
      13. The small caps property
      14. -
      15. The all small caps property
      16. -
      17. The petite caps property
      18. -
      19. The all petite caps property
      20. -
      21. The titling caps property
      22. -
      23. The ultra condensed property
      24. -
      25. The extra condensed property
      26. -
      27. The condensed property
      28. -
      29. The semi condensed property
      30. -
      31. The semi expanded property
      32. -
      33. The expanded property
      34. -
      35. The extra expanded property
      36. -
      37. The ultra expanded property
      38. +
      39. The 'font-stretch' property
      40. +
      41. The 'font-variant-caps' property
      42. +
      43. The 'small-caps' value
      44. +
      45. The 'all-small-caps' value
      46. +
      47. The 'petite-caps' value
      48. +
      49. The 'all-petite-caps' value
      50. +
      51. The 'unicase' value
      52. +
      53. The 'titling-caps' value
      54. +
      55. The 'ultra-condensed' value
      56. +
      57. The 'extra-condensed' value
      58. +
      59. The 'condensed' value
      60. +
      61. The 'semi-condensed' value
      62. +
      63. The 'semi-expanded' value
      64. +
      65. The 'expanded' value
      66. +
      67. The 'extra-expanded' value
      68. +
      69. The 'ultra-expanded' value
      70. -

        The following features are defined in CSS Grid Layout:

        +

        The following features are defined in CSS Grid Layout:

        • The 'grid-auto-columns' property
        • @@ -23591,12 +23594,12 @@ document.body.appendChild(wbr);
          1. If the initiator browsing context's sandboxing flags has the sandboxed downloads - browsing context flag set, then return false.

          2. + data-x="concept-bc-sandboxing-flags">sandboxing flagshas the sandboxed downloads + browsing context flagset, then return false.

          3. If the instantiator browsing context is non-null, and its sandboxing flags has the sandboxed downloads - browsing context flag set, then return false.

          4. + data-x="concept-bc-sandboxing-flags">sandboxing flagshas the sandboxed downloads + browsing context flagset, then return false.

          5. Optionally, the user agent may return false, if it believes doing so would safeguard the user from a potentially hostile download.

          6. @@ -60241,10 +60244,10 @@ enum CanvasLineJoin { "round", "bevel", "miter" }; enum CanvasTextAlign { "start", "end", "left", "right", "center" }; enum CanvasTextBaseline { "top", "hanging", "middle", "alphabetic", "ideographic", "bottom" }; enum CanvasDirection { "ltr", "rtl", "inherit" }; -enum CanvasFontKerning {"auto", "normal", "none"} -enum CanvasFontStretch {"ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded"} -enum CanvasFontVariantCaps {"normal", "small-caps", "all-small-caps", "petite-caps", "all-petite-caps", "unicase", "titling-caps"} -enum CanvasTextRendering {"auto", "optimizeSpeed", "optimizeLegibility", "geometricPrecision"} +enum CanvasFontKerning { "auto", "normal", "none" }; +enum CanvasFontStretch { "ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded" }; +enum CanvasFontVariantCaps { "normal", "small-caps", "all-small-caps", "petite-caps", "all-petite-caps", "unicase", "titling-caps" }; +enum CanvasTextRendering { "auto", "optimizeSpeed", "optimizeLegibility", "geometricPrecision" }; interface mixin CanvasPathDrawingStyles { // line caps/joins @@ -60265,8 +60268,8 @@ interface mixin CanvasTextDrawingStyles { attribute CanvasTextAlign textAlign; // (default: "start") attribute CanvasTextBaseline textBaseline; // (default: "alphabetic") attribute CanvasDirection direction; // (default: "inherit") - attribute unrestricted double textLetterSpacing; // (default: 0) - attribute unrestricted double textWordSpacing; // (default: 0) + attribute double textLetterSpacing; // (default: 0) + attribute double textWordSpacing; // (default: 0) attribute CanvasFontKerning fontKerning; // (default: "auto") attribute CanvasFontStretch fontStretch; // (default: "normal") attribute CanvasFontVariantCaps fontVariantCaps; // (default: "normal") @@ -61204,7 +61207,7 @@ transform. ack Shaun Morris. -->

            Returns the current spacing between characters in the text.

            Can be set, to change spacing between characters. Postive values spreads characters further - apart, while negative valuevalues brings them closer together. The default is 0.

            + apart, while negative values brings them closer together. The default is 0.

            context . textWordSpacing [ = value ]
            @@ -61414,14 +61417,16 @@ worker.postMessage(offscreenCanvas, [offscreenCanvas]);

            The textLetterSpacing IDL attribute, on getting, must return the current value. On setting, the current value must be changed to the new - value. When the object implementing the CanvasTextDrawingStyles interface is created, + value, where values may be positive or negative. When the object implementing the + CanvasTextDrawingStyles interface is created, the textLetterSpacing attribute must initially have the value 0.

            The textWordSpacing IDL attribute, on getting, must return the current value. On setting, the current value must be changed to the new - value. When the object implementing the CanvasTextDrawingStyles interface is created, + value, where values may be positive or negative. When the object implementing the + CanvasTextDrawingStyles interface is created, the textWordSpacing attribute must initially have the value 0.

            @@ -61536,10 +61541,10 @@ worker.postMessage(offscreenCanvas, [offscreenCanvas]);

            Kerning is applied at the discretion of the user agent.

            normal -

            Kerning is applied

            +

            Kerning is applied.

            none -

            Kerning is not applied

            +

            Kerning is not applied.

            The fontStretch attribute's allowed keywords are @@ -61547,31 +61552,31 @@ worker.postMessage(offscreenCanvas, [offscreenCanvas]);

            ultra-condensed -

            Same as CSS font-stretch ultra condensed setting.

            +

            Same as CSS 'font-stretch' 'ultra-condensed' setting.

            extra-condensed -

            Same as CSS font-stretch extra condensed setting.

            +

            Same as CSS 'font-stretch' 'extra-condensed' setting.

            condensed -

            Same as CSS font-stretch condensed setting.

            +

            Same as CSS 'font-stretch' 'condensed' setting.

            semi-condensed -

            Same as CSS font-stretch semi condensed setting.

            +

            Same as CSS 'font-stretch' 'semi-condensed' setting.

            normal

            The default setting, where width of the glyphs is at 100%.

            semi-expanded -

            Same as CSS font-stretch semi expanded setting.

            +

            Same as CSS 'font-stretch' 'semi-expanded' setting.

            expanded -

            Same as CSS font-stretch expanded setting.

            +

            Same as CSS 'font-stretch' 'expanded' setting.

            extra-expanded -

            Same as CSS font-stretch extra expanded setting.

            +

            Same as CSS 'font-stretch' 'extra-expanded' setting.

            ultra-expanded -

            Same as CSS font-stretch ultra expanded setting.

            +

            Same as CSS 'font-stretch' 'ultra-expanded' setting.

            The fontVariantCaps attribute's allowed keywords are @@ -61582,22 +61587,22 @@ worker.postMessage(offscreenCanvas, [offscreenCanvas]);

            None of the features listed below are enabled.

            small-caps -

            Enable display small caps character set.

            +

            Same as CSS 'font-variant-caps' 'small-caps' setting.

            all-small-caps -

            Enable display all small caps character set.

            +

            Same as CSS 'font-variant-caps' 'all-small-caps' setting.

            petite-caps -

            Enable display petite caps character set.

            +

            Same as CSS 'font-variant-caps' 'petite-caps' setting.

            all-petite-caps -

            Enable display all petite caps character set.

            +

            Same as CSS 'font-variant-caps' 'all-petite-caps' setting.

            unicase -

            Enables display a mixture of small caps for uppercase letters and normal for lowercase letters

            +

            Same as CSS 'font-variant-caps' 'unicase' setting.

            titling-caps -

            Enable display titling caps character set.

            +

            Same as CSS 'font-variant-caps' 'titling-caps' setting.

            The textRendering attribute's allowed keywords are @@ -61605,17 +61610,16 @@ worker.postMessage(offscreenCanvas, [offscreenCanvas]);

            auto -

            The user agent makes balance between speed, legibility and geometric precision. - Priority is given to speed and geometric precision.

            +

            Same as 'auto' in SVG text-rendering setting, emphasize on speed.

            optimizeSpeed -

            Same as SVG text-rendering setting, emphasize on speed.

            +

            Same as 'optimizeSpeed' in SVG text-rendering property.

            optimizeLegibility -

            Same as SVG text-rendering setting, emphasize on legibility.

            +

            Same as 'optimizeLegibility' in SVG text-rendering propeerty.

            geometricPrecision -

            Same as SVG text-rendering setting, emphasize on rendering geometric precision.

            +

            Same as 'geometricPrecision' in SVG text-rendering property.

            The text preparation algorithm is as follows. It takes as input a string text, From 44daadaed71da54c87e44107228c74553c8d1fae Mon Sep 17 00:00:00 2001 From: Yi Xu Date: Wed, 14 Apr 2021 18:56:07 +0000 Subject: [PATCH 06/15] address comments --- source | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/source b/source index a3701ac009e..374f4625c3a 100644 --- a/source +++ b/source @@ -61217,7 +61217,7 @@ transform. ack Shaun Morris. -->

            Returns the current spacing between words in the text.

            Can be set, to change spacing between words. Postive values spreads words further - apart, while negative valuevalues brings them closer together. The default is 0.

            + apart, while negative values brings them closer together. The default is 0.

            context . fontKerning [ = value ]
            @@ -61610,7 +61610,7 @@ worker.postMessage(offscreenCanvas, [offscreenCanvas]);
            auto -

            Same as 'auto' in SVG text-rendering setting, emphasize on speed.

            +

            Same as 'auto' in SVG text-rendering property.

            optimizeSpeed

            Same as 'optimizeSpeed' in SVG text-rendering property.

            @@ -61639,6 +61639,15 @@ worker.postMessage(offscreenCanvas, [offscreenCanvas]);
          7. Let font be the current font of target, as given by that object's font attribute.

          8. +
          9. Update the following properties of the target, as given by + that object's textLetterSpacing + attribute, textWordSpacing + attribute, fontKerning + attribute, fontStetch + attribute, fontVariantCaps + attribute, textRendering + attribute.

          10. +
          11. Apply the appropriate step from the following list to determine the value of direction:

            From b44ec37519f217a9c5406ebaace4213480de5b11 Mon Sep 17 00:00:00 2001 From: Yi Xu Date: Thu, 15 Apr 2021 23:15:25 +0000 Subject: [PATCH 07/15] update text preparation algorithm --- source | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/source b/source index 374f4625c3a..56c4ead713b 100644 --- a/source +++ b/source @@ -3444,6 +3444,7 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
          12. The 'font-weight' property
          13. The 'font-size' property
          14. The 'font' property
          15. +
          16. The 'font-kerning' property
          17. The 'font-stretch' property
          18. The 'font-variant-caps' property
          19. The 'small-caps' value
          20. @@ -3547,6 +3548,7 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
          21. The 'white-space' property
          22. The 'text-align' property
          23. The 'letter-spacing' property
          24. +
          25. The 'word-spacing'property

        The following features are defined in CSS Writing Modes:

        @@ -61693,11 +61695,16 @@ worker.postMessage(offscreenCanvas, [offscreenCanvas]);
      71. Form a hypothetical infinitely-wide CSS line box containing a single - inline box containing the text text, with all the properties at their - initial values except the 'font' property of the inline box set to - font, the 'direction' property of the inline box set to - direction, and the 'white-space' property set to 'pre'.

      72. + inline box containing the text text, with the 'font' + property of the inline box set to font, the 'letter-spacing' + property of the inline box set to textLetterSpacing, 'word-spacing' + property of the inline box set to textWordSpacing, 'font-kerning' + property of the inline box set to fontKerning, 'font-stretch' + property of the inline box set to fontStretch, 'font-variant-caps' + property of the inline box set to fontVariantCaps, SVG text-rendering + property of the inline box set to textRendering, the 'direction' + property of the inline box set to direction, the 'white-space' + property set to 'pre', and other properties are at their initial values

        From be3c905c307a703cef493b5c95df87f248ce9099 Mon Sep 17 00:00:00 2001 From: Yi Xu Date: Wed, 21 Apr 2021 03:20:06 +0000 Subject: [PATCH 08/15] update text preparation algorithm --- source | 71 +++++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 51 insertions(+), 20 deletions(-) diff --git a/source b/source index 17ca6d27b73..d98c5748fa1 100644 --- a/source +++ b/source @@ -61783,15 +61783,6 @@ worker.postMessage(offscreenCanvas, [offscreenCanvas]);
      73. Let font be the current font of target, as given by that object's font attribute.

      74. -
      75. Update the following properties of the target, as given by - that object's textLetterSpacing - attribute, textWordSpacing - attribute, fontKerning - attribute, fontStetch - attribute, fontVariantCaps - attribute, textRendering - attribute.

      76. -
      77. Apply the appropriate step from the following list to determine the value of direction:

        @@ -61836,17 +61827,57 @@ worker.postMessage(offscreenCanvas, [offscreenCanvas]);
      78. -
      79. Form a hypothetical infinitely-wide CSS line box containing a single - inline box containing the text text, with the 'font' - property of the inline box set to font, the 'letter-spacing' - property of the inline box set to textLetterSpacing, 'word-spacing' - property of the inline box set to textWordSpacing, 'font-kerning' - property of the inline box set to fontKerning, 'font-stretch' - property of the inline box set to fontStretch, 'font-variant-caps' - property of the inline box set to fontVariantCaps, SVG text-rendering - property of the inline box set to textRendering, the 'direction' - property of the inline box set to direction, the 'white-space' - property set to 'pre', and other properties are at their initial values

      80. +
      81. +

        Form a hypothetical infinitely-wide CSS line box containing a single + inline box containing the text text, with its CSS properties set as follows:

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        PropertySource
        'direction'direction
        'font'font
        'font-kerning'target's fontKerning
        'font-stretch'target's fontStretch
        'font-variant-caps'target's fontVariantCaps
        'letter-spacing'target's textLetterSpacing
        SVG text-renderingtarget's textRendering
        'white-space''pre'
        'word-spacing'target's textWordSpacing
        +

        and with all other properties set to their initial values.

        +
      82. From aad64f09ff8c7e1341d85f6889db91e6de7ce4eb Mon Sep 17 00:00:00 2001 From: Anne van Kesteren Date: Mon, 26 Apr 2021 13:01:11 +0200 Subject: [PATCH 09/15] formatting nits --- source | 220 +++++++++++++++++++++++++++------------------------------ 1 file changed, 106 insertions(+), 114 deletions(-) diff --git a/source b/source index d98c5748fa1..e452bb09a62 100644 --- a/source +++ b/source @@ -61298,10 +61298,8 @@ transform. ack Shaun Morris. -->
        Text styles
        -
        context . font [ = value ]
        styles . font [ = value ]
        -

        Returns the current font settings.

        @@ -61314,7 +61312,6 @@ transform. ack Shaun Morris. -->
        context . textAlign [ = value ]
        styles . textAlign [ = value ]
        -

        Returns the current text alignment settings.

        @@ -61324,7 +61321,6 @@ transform. ack Shaun Morris. -->
        context . textBaseline [ = value ]
        styles . textBaseline [ = value ]
        -

        Returns the current baseline alignment settings.

        @@ -61335,7 +61331,6 @@ transform. ack Shaun Morris. -->
        context . direction [ = value ]
        styles . direction [ = value ]
        -

        Returns the current directionality.

        @@ -61346,7 +61341,6 @@ transform. ack Shaun Morris. -->
        context . textLetterSpacing [ = value ]
        styles . textLetterSpacing [ = value ]
        -

        Returns the current spacing between characters in the text.

        @@ -61356,7 +61350,6 @@ transform. ack Shaun Morris. -->
        context . textWordSpacing [ = value ]
        styles . textWordSpacing [ = value ]
        -

        Returns the current spacing between words in the text.

        @@ -61366,46 +61359,42 @@ transform. ack Shaun Morris. -->
        context . fontKerning [ = value ]
        styles . fontKerning [ = value ]
        +
        +

        Returns the current font kerning settings.

        -
        -

        Returns the current font kerning settings.

        - -

        Can be set, to change the font kerning. The possible values and their meanings are given - below. Other values are ignored. The default is "auto".

        +

        Can be set, to change the font kerning. The possible values and their meanings are given + below. Other values are ignored. The default is "auto".

        context . fontStretch [ = value ]
        styles . fontStretch [ = value ]
        -
        -

        Returns the current font stretch settings.

        +

        Returns the current font stretch settings.

        -

        Can be set, to change the font stretch. The possible values and their meanings are given - below. Other values are ignored. The default is "normal".

        +

        Can be set, to change the font stretch. The possible values and their meanings are given + below. Other values are ignored. The default is "normal".

        context . fontVariantCaps [ = value ]
        styles . fontVariantCaps [ = value ]
        -
        -

        Returns the current font variant caps settings.

        +

        Returns the current font variant caps settings.

        -

        Can be set, to change the font variant caps. The possible values and their meanings are - given below. Other values are ignored. The default is "normal".

        +

        Can be set, to change the font variant caps. The possible values and their meanings are + given below. Other values are ignored. The default is "normal".

        context . textRendering [ = value ]
        styles . textRendering [ = value ]
        -
        -

        Returns the current text rendering settings.

        +

        Returns the current text rendering settings.

        -

        Can be set, to change the text rendering. The possible values and their meanings are given - below. Other values are ignored. The default is "auto".

        +

        Can be set, to change the text rendering. The possible values and their meanings are given + below. Other values are ignored. The default is "auto".

        @@ -61677,80 +61666,80 @@ worker.postMessage(offscreenCanvas, [offscreenCanvas]); as appropriate.

        -

        The fontKerning attribute's allowed keywords are - as follows:

        +

        The fontKerning attribute's allowed keywords + are as follows:

        -
        auto -

        Kerning is applied at the discretion of the user agent.

        +
        auto +

        Kerning is applied at the discretion of the user agent.

        -
        normal -

        Kerning is applied.

        +
        normal +

        Kerning is applied.

        -
        none -

        Kerning is not applied.

        +
        none +

        Kerning is not applied.

        -

        The fontStretch attribute's allowed keywords are - as follows:

        +

        The fontStretch attribute's allowed keywords + are as follows:

        -
        ultra-condensed -

        Same as CSS 'font-stretch' 'ultra-condensed' setting.

        +
        ultra-condensed +

        Same as CSS 'font-stretch' 'ultra-condensed' setting.

        -
        extra-condensed -

        Same as CSS 'font-stretch' 'extra-condensed' setting.

        +
        extra-condensed +

        Same as CSS 'font-stretch' 'extra-condensed' setting.

        -
        condensed -

        Same as CSS 'font-stretch' 'condensed' setting.

        +
        condensed +

        Same as CSS 'font-stretch' 'condensed' setting.

        -
        semi-condensed -

        Same as CSS 'font-stretch' 'semi-condensed' setting.

        +
        semi-condensed +

        Same as CSS 'font-stretch' 'semi-condensed' setting.

        -
        normal -

        The default setting, where width of the glyphs is at 100%.

        +
        normal +

        The default setting, where width of the glyphs is at 100%.

        -
        semi-expanded -

        Same as CSS 'font-stretch' 'semi-expanded' setting.

        +
        semi-expanded +

        Same as CSS 'font-stretch' 'semi-expanded' setting.

        -
        expanded -

        Same as CSS 'font-stretch' 'expanded' setting.

        +
        expanded +

        Same as CSS 'font-stretch' 'expanded' setting.

        -
        extra-expanded -

        Same as CSS 'font-stretch' 'extra-expanded' setting.

        +
        extra-expanded +

        Same as CSS 'font-stretch' 'extra-expanded' setting.

        -
        ultra-expanded -

        Same as CSS 'font-stretch' 'ultra-expanded' setting.

        +
        ultra-expanded +

        Same as CSS 'font-stretch' 'ultra-expanded' setting.

        -

        The fontVariantCaps attribute's allowed keywords are - as follows:

        +

        The fontVariantCaps attribute's allowed + keywords are as follows:

        -
        normal -

        None of the features listed below are enabled.

        +
        normal +

        None of the features listed below are enabled.

        -
        small-caps -

        Same as CSS 'font-variant-caps' 'small-caps' setting.

        +
        small-caps +

        Same as CSS 'font-variant-caps' 'small-caps' setting.

        -
        all-small-caps -

        Same as CSS 'font-variant-caps' 'all-small-caps' setting.

        +
        all-small-caps +

        Same as CSS 'font-variant-caps' 'all-small-caps' setting.

        -
        petite-caps -

        Same as CSS 'font-variant-caps' 'petite-caps' setting.

        +
        petite-caps +

        Same as CSS 'font-variant-caps' 'petite-caps' setting.

        -
        all-petite-caps -

        Same as CSS 'font-variant-caps' 'all-petite-caps' setting.

        +
        all-petite-caps +

        Same as CSS 'font-variant-caps' 'all-petite-caps' setting.

        -
        unicase -

        Same as CSS 'font-variant-caps' 'unicase' setting.

        +
        unicase +

        Same as CSS 'font-variant-caps' 'unicase' setting.

        -
        titling-caps -

        Same as CSS 'font-variant-caps' 'titling-caps' setting.

        +
        titling-caps +

        Same as CSS 'font-variant-caps' 'titling-caps' setting.

        -

        The textRendering attribute's allowed keywords are - as follows:

        +

        The textRendering attribute's allowed + keywords are as follows:

        auto @@ -61829,53 +61818,56 @@ worker.postMessage(offscreenCanvas, [offscreenCanvas]);
      83. Form a hypothetical infinitely-wide CSS line box containing a single - inline box containing the text text, with its CSS properties set as follows:

        + inline box containing the text text, with its CSS properties set as + follows:

        + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + + + - - + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        PropertySource
        'direction'direction
        'font'font
        'font-kerning'target's fontKerning
        'font-stretch'target's fontStretch
        'font-variant-caps'target's fontVariantCaps
        'letter-spacing'target's textLetterSpacing
        SVG text-renderingtarget's textRenderingPropertySource
        'white-space''pre''direction'direction
        'word-spacing'target's textWordSpacing
        'font'font
        'font-kerning'target's fontKerning
        'font-stretch'target's fontStretch
        'font-variant-caps'target's fontVariantCaps
        'letter-spacing'target's textLetterSpacing
        SVG text-renderingtarget's textRendering
        'white-space''pre'
        'word-spacing'target's textWordSpacing
        +

        and with all other properties set to their initial values.

      84. From 68eb67d413c4df469adf7bac0e739d20431b7bf8 Mon Sep 17 00:00:00 2001 From: Yi Xu Date: Fri, 7 May 2021 05:55:54 +0000 Subject: [PATCH 10/15] add conic gradient --- source | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/source b/source index 82d29604dcc..22ba6c4770d 100644 --- a/source +++ b/source @@ -3388,6 +3388,7 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
      85. intrinsic height
      86. intrinsic width
      87. The 'image-orientation' property
      88. +
      89. conic-gradient
      90. The 'object-fit' property
      91. @@ -60353,6 +60354,7 @@ interface mixin CanvasFillStrokeStyles { attribute (DOMString or CanvasGradient or CanvasPattern) fillStyle; // (default black) CanvasGradient createLinearGradient(double x0, double y0, double x1, double y1); CanvasGradient createRadialGradient(double x0, double y0, double r0, double x1, double y1, double r1); + CanvasGradient createConicFradient(double startAngle, double x, double y); CanvasPattern? createPattern(CanvasImageSource image, [LegacyNullToEmptyString] DOMString repetition);