2007-02-06 Mark Rowe <mrowe@apple.com>
authorbdash <bdash@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 6 Feb 2007 02:27:17 +0000 (02:27 +0000)
committerbdash <bdash@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 6 Feb 2007 02:27:17 +0000 (02:27 +0000)
        Roll out incomplete support for font-stretch (r19350) at Dave Hyatt's request.
        See http://bugs.webkit.org/show_bug.cgi?id=12530#c9 for more info.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::):
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/cssparser.cpp:
        (WebCore::CSSParser::parseValue):
        * css/cssstyleselector.cpp:
        (WebCore::CSSStyleSelector::applyDeclarations):
        (WebCore::CSSStyleSelector::applyProperty):
        * platform/FontCache.cpp:
        (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey):
        (WebCore::FontPlatformDataCacheKey::operator==):
        (WebCore::computeHash):
        (WebCore::FontPlatformDataCacheKeyTraits::deletedValue):
        (WebCore::FontPlatformDataCacheKeyTraits::emptyValue):
        (WebCore::FontCache::getCachedFontPlatformData):
        * platform/FontDescription.h:
        (WebCore::FontDescription::FontDescription):
        (WebCore::FontDescription::weight):
        (WebCore::FontDescription::setWeight):
        (WebCore::FontDescription::operator==):
        * platform/mac/FontCacheMac.mm:
        (WebCore::FontCache::createFontPlatformData):
        * platform/mac/WebFontCache.mm:
        (acceptableChoice):
        (betterChoice):
        (+[WebFontCache fontWithFamily:traits:size:]):

2007-02-06  Mark Rowe  <mrowe@apple.com>

        Roll out incomplete support for font-stretch (r19350) at Dave Hyatt's request.
        See http://bugs.webkit.org/show_bug.cgi?id=12530#c9 for more info.

        * WebInspector/webInspector/inspector.js:
        * WebView/WebHTMLView.mm:
        (-[WebHTMLView _addToStyle:fontA:fontB:]):

2007-02-06  Mark Rowe  <mrowe@apple.com>

        Roll out incomplete support for font-stretch (r19350) at Dave Hyatt's request.
        See http://bugs.webkit.org/show_bug.cgi?id=12530#c9 for more info.

        * fast/css/computed-style-expected.txt:
        * fast/css/font-stretch-expected.checksum: Removed.
        * fast/css/font-stretch-expected.png: Removed.
        * fast/css/font-stretch-expected.txt: Removed.
        * fast/css/font-stretch.html: Removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@19421 268f45cc-cd09-0410-ab3c-d52691b4dbfc

17 files changed:
LayoutTests/ChangeLog
LayoutTests/fast/css/computed-style-expected.txt
LayoutTests/fast/css/font-stretch-expected.checksum [deleted file]
LayoutTests/fast/css/font-stretch-expected.png [deleted file]
LayoutTests/fast/css/font-stretch-expected.txt [deleted file]
LayoutTests/fast/css/font-stretch.html [deleted file]
WebCore/ChangeLog
WebCore/css/CSSComputedStyleDeclaration.cpp
WebCore/css/cssparser.cpp
WebCore/css/cssstyleselector.cpp
WebCore/platform/FontCache.cpp
WebCore/platform/FontDescription.h
WebCore/platform/mac/FontCacheMac.mm
WebCore/platform/mac/WebFontCache.mm
WebKit/ChangeLog
WebKit/WebInspector/webInspector/inspector.js
WebKit/WebView/WebHTMLView.mm

index 7ce59c7..789022e 100644 (file)
@@ -1,3 +1,14 @@
+2007-02-06  Mark Rowe  <mrowe@apple.com>
+
+        Roll out incomplete support for font-stretch (r19350) at Dave Hyatt's request.
+        See http://bugs.webkit.org/show_bug.cgi?id=12530#c9 for more info.
+
+        * fast/css/computed-style-expected.txt:
+        * fast/css/font-stretch-expected.checksum: Removed.
+        * fast/css/font-stretch-expected.png: Removed.
+        * fast/css/font-stretch-expected.txt: Removed.
+        * fast/css/font-stretch.html: Removed.
+
 2007-02-05  Justin Garcia  <justin.garcia@apple.com>
 
         Reviewed by harrison
index 439912b..128b631 100644 (file)
@@ -31,7 +31,6 @@ empty-cells: show;
 float: none;
 font-family: Times;
 font-size: 16px;
-font-stretch: normal;
 font-style: normal;
 font-variant: normal;
 font-weight: normal;
diff --git a/LayoutTests/fast/css/font-stretch-expected.checksum b/LayoutTests/fast/css/font-stretch-expected.checksum
deleted file mode 100644 (file)
index 2afcd3c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-57dba86b1e9e2e48140179d5db15f379
\ No newline at end of file
diff --git a/LayoutTests/fast/css/font-stretch-expected.png b/LayoutTests/fast/css/font-stretch-expected.png
deleted file mode 100644 (file)
index a357c60..0000000
Binary files a/LayoutTests/fast/css/font-stretch-expected.png and /dev/null differ
diff --git a/LayoutTests/fast/css/font-stretch-expected.txt b/LayoutTests/fast/css/font-stretch-expected.txt
deleted file mode 100644 (file)
index c146ea1..0000000
+++ /dev/null
@@ -1,290 +0,0 @@
-layer at (0,0) size 785x880
-  RenderView at (0,0) size 785x600
-layer at (0,0) size 785x880
-  RenderBlock {HTML} at (0,0) size 785x880
-    RenderBody {BODY} at (8,8) size 769x864
-      RenderTable {TABLE} at (0,0) size 583x864
-        RenderTableSection {TBODY} at (0,0) size 583x864
-          RenderTableRow {TR} at (0,16) size 583x20
-            RenderTableCell {TH} at (16,16) size 262x20 [r=0 c=0 rs=1 cs=1]
-              RenderText {#text} at (99,1) size 63x18
-                text run at (99,1) width 63: "Expected"
-            RenderTableCell {TH} at (294,16) size 273x20 [r=0 c=1 rs=1 cs=1]
-              RenderText {#text} at (114,1) size 45x18
-                text run at (114,1) width 45: "Actual"
-          RenderTableRow {TR} at (0,52) size 583x182
-            RenderTableCell {TD} at (16,52) size 262x182 [r=1 c=0 rs=1 cs=1]
-              RenderBlock {P} at (1,1) size 260x18
-                RenderText {#text} at (0,0) size 165x18
-                  text run at (0,0) width 165: "American Typewriter"
-              RenderBlock {DIV} at (1,19) size 260x54
-                RenderBlock {P} at (0,0) size 260x18
-                  RenderText {#text} at (0,0) size 227x18
-                    text run at (0,0) width 227: "American Typewriter Normal"
-                RenderBlock {P} at (0,18) size 260x18
-                  RenderText {#text} at (0,0) size 201x18
-                    text run at (0,0) width 201: "\x{BB} American Typewriter Narrower"
-                RenderBlock {P} at (0,36) size 260x18
-                  RenderText {#text} at (0,0) size 225x18
-                    text run at (0,0) width 225: "\x{BB} American Typewriter Wider"
-              RenderBlock {DIV} at (1,73) size 260x54
-                RenderBlock {P} at (0,0) size 260x18
-                  RenderText {#text} at (0,0) size 200x18
-                    text run at (0,0) width 200: "American Typewriter Condensed"
-                RenderBlock {P} at (0,18) size 260x18
-                  RenderText {#text} at (0,0) size 201x18
-                    text run at (0,0) width 201: "\x{BB} American Typewriter Narrower"
-                RenderBlock {P} at (0,36) size 260x18
-                  RenderText {#text} at (0,0) size 225x18
-                    text run at (0,0) width 225: "\x{BB} American Typewriter Wider"
-              RenderBlock {DIV} at (1,127) size 260x54
-                RenderBlock {P} at (0,0) size 260x18
-                  RenderText {#text} at (0,0) size 247x18
-                    text run at (0,0) width 247: "American Typewriter Expanded"
-                RenderBlock {P} at (0,18) size 260x18
-                  RenderText {#text} at (0,0) size 201x18
-                    text run at (0,0) width 201: "\x{BB} American Typewriter Narrower"
-                RenderBlock {P} at (0,36) size 260x18
-                  RenderText {#text} at (0,0) size 225x18
-                    text run at (0,0) width 225: "\x{BB} American Typewriter Wider"
-            RenderTableCell {TD} at (294,52) size 273x182 [r=1 c=1 rs=1 cs=1]
-              RenderBlock {P} at (1,1) size 271x18
-                RenderText {#text} at (0,0) size 165x18
-                  text run at (0,0) width 165: "American Typewriter"
-              RenderBlock {DIV} at (1,19) size 271x54
-                RenderBlock {P} at (0,0) size 271x18
-                  RenderText {#text} at (0,0) size 227x18
-                    text run at (0,0) width 227: "American Typewriter Normal"
-                RenderBlock {P} at (0,18) size 271x18
-                  RenderText {#text} at (0,0) size 201x18
-                    text run at (0,0) width 201: "\x{BB} American Typewriter Narrower"
-                RenderBlock {P} at (0,36) size 271x18
-                  RenderText {#text} at (0,0) size 225x18
-                    text run at (0,0) width 225: "\x{BB} American Typewriter Wider"
-              RenderBlock {DIV} at (1,73) size 271x54
-                RenderBlock {P} at (0,0) size 271x18
-                  RenderText {#text} at (0,0) size 200x18
-                    text run at (0,0) width 200: "American Typewriter Condensed"
-                RenderBlock {P} at (0,18) size 271x18
-                  RenderText {#text} at (0,0) size 201x18
-                    text run at (0,0) width 201: "\x{BB} American Typewriter Narrower"
-                RenderBlock {P} at (0,36) size 271x18
-                  RenderText {#text} at (0,0) size 225x18
-                    text run at (0,0) width 225: "\x{BB} American Typewriter Wider"
-              RenderBlock {DIV} at (1,127) size 271x54
-                RenderBlock {P} at (0,0) size 271x18
-                  RenderText {#text} at (0,0) size 247x18
-                    text run at (0,0) width 247: "American Typewriter Expanded"
-                RenderBlock {P} at (0,18) size 271x18
-                  RenderText {#text} at (0,0) size 254x18
-                    text run at (0,0) width 254: "\x{BB} American Typewriter Narrower"
-                RenderBlock {P} at (0,36) size 271x18
-                  RenderText {#text} at (0,0) size 225x18
-                    text run at (0,0) width 225: "\x{BB} American Typewriter Wider"
-          RenderTableRow {TR} at (0,250) size 583x192
-            RenderTableCell {TD} at (16,250) size 262x192 [r=2 c=0 rs=1 cs=1]
-              RenderBlock {P} at (1,1) size 260x19
-                RenderText {#text} at (0,0) size 175x19
-                  text run at (0,0) width 175: "American Typewriter"
-              RenderBlock {DIV} at (1,20) size 260x57
-                RenderBlock {P} at (0,0) size 260x19
-                  RenderText {#text} at (0,0) size 240x19
-                    text run at (0,0) width 240: "American Typewriter Normal"
-                RenderBlock {P} at (0,19) size 260x19
-                  RenderText {#text} at (0,0) size 209x19
-                    text run at (0,0) width 209: "\x{BB} American Typewriter Narrower"
-                RenderBlock {P} at (0,38) size 260x19
-                  RenderText {#text} at (0,0) size 241x19
-                    text run at (0,0) width 241: "\x{BB} American Typewriter Wider"
-              RenderBlock {DIV} at (1,77) size 260x57
-                RenderBlock {P} at (0,0) size 260x19
-                  RenderText {#text} at (0,0) size 206x19
-                    text run at (0,0) width 206: "American Typewriter Condensed"
-                RenderBlock {P} at (0,19) size 260x19
-                  RenderText {#text} at (0,0) size 209x19
-                    text run at (0,0) width 209: "\x{BB} American Typewriter Narrower"
-                RenderBlock {P} at (0,38) size 260x19
-                  RenderText {#text} at (0,0) size 241x19
-                    text run at (0,0) width 241: "\x{BB} American Typewriter Wider"
-              RenderBlock {DIV} at (1,134) size 260x57
-                RenderBlock {P} at (0,0) size 260x19
-                  RenderText {#text} at (0,0) size 260x19
-                    text run at (0,0) width 260: "American Typewriter Expanded"
-                RenderBlock {P} at (0,19) size 260x19
-                  RenderText {#text} at (0,0) size 209x19
-                    text run at (0,0) width 209: "\x{BB} American Typewriter Narrower"
-                RenderBlock {P} at (0,38) size 260x19
-                  RenderText {#text} at (0,0) size 241x19
-                    text run at (0,0) width 241: "\x{BB} American Typewriter Wider"
-            RenderTableCell {TD} at (294,250) size 273x192 [r=2 c=1 rs=1 cs=1]
-              RenderBlock {P} at (1,1) size 271x19
-                RenderText {#text} at (0,0) size 175x19
-                  text run at (0,0) width 175: "American Typewriter"
-              RenderBlock {DIV} at (1,20) size 271x57
-                RenderBlock {P} at (0,0) size 271x19
-                  RenderText {#text} at (0,0) size 240x19
-                    text run at (0,0) width 240: "American Typewriter Normal"
-                RenderBlock {P} at (0,19) size 271x19
-                  RenderText {#text} at (0,0) size 209x19
-                    text run at (0,0) width 209: "\x{BB} American Typewriter Narrower"
-                RenderBlock {P} at (0,38) size 271x19
-                  RenderText {#text} at (0,0) size 241x19
-                    text run at (0,0) width 241: "\x{BB} American Typewriter Wider"
-              RenderBlock {DIV} at (1,77) size 271x57
-                RenderBlock {P} at (0,0) size 271x19
-                  RenderText {#text} at (0,0) size 206x19
-                    text run at (0,0) width 206: "American Typewriter Condensed"
-                RenderBlock {P} at (0,19) size 271x19
-                  RenderText {#text} at (0,0) size 209x19
-                    text run at (0,0) width 209: "\x{BB} American Typewriter Narrower"
-                RenderBlock {P} at (0,38) size 271x19
-                  RenderText {#text} at (0,0) size 241x19
-                    text run at (0,0) width 241: "\x{BB} American Typewriter Wider"
-              RenderBlock {DIV} at (1,134) size 271x57
-                RenderBlock {P} at (0,0) size 271x19
-                  RenderText {#text} at (0,0) size 260x19
-                    text run at (0,0) width 260: "American Typewriter Expanded"
-                RenderBlock {P} at (0,19) size 271x19
-                  RenderText {#text} at (0,0) size 271x19
-                    text run at (0,0) width 271: "\x{BB} American Typewriter Narrower"
-                RenderBlock {P} at (0,38) size 271x19
-                  RenderText {#text} at (0,0) size 241x19
-                    text run at (0,0) width 241: "\x{BB} American Typewriter Wider"
-          RenderTableRow {TR} at (0,458) size 583x182
-            RenderTableCell {TD} at (16,458) size 262x182 [r=3 c=0 rs=1 cs=1]
-              RenderBlock {P} at (1,1) size 260x18
-                RenderText {#text} at (0,0) size 112x18
-                  text run at (0,0) width 112: "Helvetica Neue"
-              RenderBlock {DIV} at (1,19) size 260x54
-                RenderBlock {P} at (0,0) size 260x18
-                  RenderText {#text} at (0,0) size 169x18
-                    text run at (0,0) width 169: "Helvetica Neue Normal"
-                RenderBlock {P} at (0,18) size 260x18
-                  RenderText {#text} at (0,0) size 193x18
-                    text run at (0,0) width 193: "\x{BB} Helvetica Neue Narrower"
-                RenderBlock {P} at (0,36) size 260x18
-                  RenderText {#text} at (0,0) size 169x18
-                    text run at (0,0) width 169: "\x{BB} Helvetica Neue Wider"
-              RenderBlock {DIV} at (1,73) size 260x54
-                RenderBlock {P} at (0,0) size 260x18
-                  RenderText {#text} at (0,0) size 199x18
-                    text run at (0,0) width 199: "Helvetica Neue Condensed"
-                RenderBlock {P} at (0,18) size 260x18
-                  RenderText {#text} at (0,0) size 193x18
-                    text run at (0,0) width 193: "\x{BB} Helvetica Neue Narrower"
-                RenderBlock {P} at (0,36) size 260x18
-                  RenderText {#text} at (0,0) size 169x18
-                    text run at (0,0) width 169: "\x{BB} Helvetica Neue Wider"
-              RenderBlock {DIV} at (1,127) size 260x54
-                RenderBlock {P} at (0,0) size 260x18
-                  RenderText {#text} at (0,0) size 188x18
-                    text run at (0,0) width 188: "Helvetica Neue Expanded"
-                RenderBlock {P} at (0,18) size 260x18
-                  RenderText {#text} at (0,0) size 193x18
-                    text run at (0,0) width 193: "\x{BB} Helvetica Neue Narrower"
-                RenderBlock {P} at (0,36) size 260x18
-                  RenderText {#text} at (0,0) size 169x18
-                    text run at (0,0) width 169: "\x{BB} Helvetica Neue Wider"
-            RenderTableCell {TD} at (294,458) size 273x182 [r=3 c=1 rs=1 cs=1]
-              RenderBlock {P} at (1,1) size 271x18
-                RenderText {#text} at (0,0) size 112x18
-                  text run at (0,0) width 112: "Helvetica Neue"
-              RenderBlock {DIV} at (1,19) size 271x54
-                RenderBlock {P} at (0,0) size 271x18
-                  RenderText {#text} at (0,0) size 169x18
-                    text run at (0,0) width 169: "Helvetica Neue Normal"
-                RenderBlock {P} at (0,18) size 271x18
-                  RenderText {#text} at (0,0) size 193x18
-                    text run at (0,0) width 193: "\x{BB} Helvetica Neue Narrower"
-                RenderBlock {P} at (0,36) size 271x18
-                  RenderText {#text} at (0,0) size 169x18
-                    text run at (0,0) width 169: "\x{BB} Helvetica Neue Wider"
-              RenderBlock {DIV} at (1,73) size 271x54
-                RenderBlock {P} at (0,0) size 271x18
-                  RenderText {#text} at (0,0) size 199x18
-                    text run at (0,0) width 199: "Helvetica Neue Condensed"
-                RenderBlock {P} at (0,18) size 271x18
-                  RenderText {#text} at (0,0) size 193x18
-                    text run at (0,0) width 193: "\x{BB} Helvetica Neue Narrower"
-                RenderBlock {P} at (0,36) size 271x18
-                  RenderText {#text} at (0,0) size 169x18
-                    text run at (0,0) width 169: "\x{BB} Helvetica Neue Wider"
-              RenderBlock {DIV} at (1,127) size 271x54
-                RenderBlock {P} at (0,0) size 271x18
-                  RenderText {#text} at (0,0) size 188x18
-                    text run at (0,0) width 188: "Helvetica Neue Expanded"
-                RenderBlock {P} at (0,18) size 271x18
-                  RenderText {#text} at (0,0) size 193x18
-                    text run at (0,0) width 193: "\x{BB} Helvetica Neue Narrower"
-                RenderBlock {P} at (0,36) size 271x18
-                  RenderText {#text} at (0,0) size 169x18
-                    text run at (0,0) width 169: "\x{BB} Helvetica Neue Wider"
-          RenderTableRow {TR} at (0,656) size 583x192
-            RenderTableCell {TD} at (16,656) size 262x192 [r=4 c=0 rs=1 cs=1]
-              RenderBlock {P} at (1,1) size 260x19
-                RenderText {#text} at (0,0) size 113x19
-                  text run at (0,0) width 113: "Helvetica Neue"
-              RenderBlock {DIV} at (1,20) size 260x57
-                RenderBlock {P} at (0,0) size 260x19
-                  RenderText {#text} at (0,0) size 172x19
-                    text run at (0,0) width 172: "Helvetica Neue Normal"
-                RenderBlock {P} at (0,19) size 260x19
-                  RenderText {#text} at (0,0) size 166x19
-                    text run at (0,0) width 166: "\x{BB} Helvetica Neue Narrower"
-                RenderBlock {P} at (0,38) size 260x19
-                  RenderText {#text} at (0,0) size 172x19
-                    text run at (0,0) width 172: "\x{BB} Helvetica Neue Wider"
-              RenderBlock {DIV} at (1,77) size 260x57
-                RenderBlock {P} at (0,0) size 260x19
-                  RenderText {#text} at (0,0) size 167x19
-                    text run at (0,0) width 167: "Helvetica Neue Condensed"
-                RenderBlock {P} at (0,19) size 260x19
-                  RenderText {#text} at (0,0) size 166x19
-                    text run at (0,0) width 166: "\x{BB} Helvetica Neue Narrower"
-                RenderBlock {P} at (0,38) size 260x19
-                  RenderText {#text} at (0,0) size 172x19
-                    text run at (0,0) width 172: "\x{BB} Helvetica Neue Wider"
-              RenderBlock {DIV} at (1,134) size 260x57
-                RenderBlock {P} at (0,0) size 260x19
-                  RenderText {#text} at (0,0) size 193x19
-                    text run at (0,0) width 193: "Helvetica Neue Expanded"
-                RenderBlock {P} at (0,19) size 260x19
-                  RenderText {#text} at (0,0) size 166x19
-                    text run at (0,0) width 166: "\x{BB} Helvetica Neue Narrower"
-                RenderBlock {P} at (0,38) size 260x19
-                  RenderText {#text} at (0,0) size 172x19
-                    text run at (0,0) width 172: "\x{BB} Helvetica Neue Wider"
-            RenderTableCell {TD} at (294,656) size 273x192 [r=4 c=1 rs=1 cs=1]
-              RenderBlock {P} at (1,1) size 271x19
-                RenderText {#text} at (0,0) size 113x19
-                  text run at (0,0) width 113: "Helvetica Neue"
-              RenderBlock {DIV} at (1,20) size 271x57
-                RenderBlock {P} at (0,0) size 271x19
-                  RenderText {#text} at (0,0) size 172x19
-                    text run at (0,0) width 172: "Helvetica Neue Normal"
-                RenderBlock {P} at (0,19) size 271x19
-                  RenderText {#text} at (0,0) size 166x19
-                    text run at (0,0) width 166: "\x{BB} Helvetica Neue Narrower"
-                RenderBlock {P} at (0,38) size 271x19
-                  RenderText {#text} at (0,0) size 172x19
-                    text run at (0,0) width 172: "\x{BB} Helvetica Neue Wider"
-              RenderBlock {DIV} at (1,77) size 271x57
-                RenderBlock {P} at (0,0) size 271x19
-                  RenderText {#text} at (0,0) size 167x19
-                    text run at (0,0) width 167: "Helvetica Neue Condensed"
-                RenderBlock {P} at (0,19) size 271x19
-                  RenderText {#text} at (0,0) size 166x19
-                    text run at (0,0) width 166: "\x{BB} Helvetica Neue Narrower"
-                RenderBlock {P} at (0,38) size 271x19
-                  RenderText {#text} at (0,0) size 172x19
-                    text run at (0,0) width 172: "\x{BB} Helvetica Neue Wider"
-              RenderBlock {DIV} at (1,134) size 271x57
-                RenderBlock {P} at (0,0) size 271x19
-                  RenderText {#text} at (0,0) size 193x19
-                    text run at (0,0) width 193: "Helvetica Neue Expanded"
-                RenderBlock {P} at (0,19) size 271x19
-                  RenderText {#text} at (0,0) size 199x19
-                    text run at (0,0) width 199: "\x{BB} Helvetica Neue Narrower"
-                RenderBlock {P} at (0,38) size 271x19
-                  RenderText {#text} at (0,0) size 172x19
-                    text run at (0,0) width 172: "\x{BB} Helvetica Neue Wider"
diff --git a/LayoutTests/fast/css/font-stretch.html b/LayoutTests/fast/css/font-stretch.html
deleted file mode 100644 (file)
index 4c193cd..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-<!DOCTYPE HTML>
-<html lang="en">
-    <title>Test case for the CSS font-stretch property</title>
-    <style type="text/css">
-        table { border-spacing: 1em; }
-        td { vertical-align: top; }
-        p { margin: 0; }
-        .at { font-family: 'American Typewriter'; }
-        .hn { font-family: 'Helvetica Neue'; }
-        .bold { font-weight: bold; }
-        .norm { font-stretch: normal; }
-        .cond { font-stretch: condensed; }
-        .expn { font-stretch: expanded; }
-        .narr { font-stretch: narrower; }
-        .wide { font-stretch: wider; }
-    </style>
-
-<table>
-    <tr><th>Expected<th>Actual
-    <tr><td style="font-family: 'AmericanTypewriter';">
-        <p>American Typewriter
-        <div>
-            <p>American Typewriter Normal
-            <p style="font-family: 'AmericanTypewriter-Condensed';">&raquo; American Typewriter Narrower
-            <p>&raquo; American Typewriter Wider
-        </div>
-        <div style="font-family: 'AmericanTypewriter-Condensed';">
-            <p>American Typewriter Condensed
-            <p>&raquo; American Typewriter Narrower
-            <p style="font-family: 'AmericanTypewriter';">&raquo; American Typewriter Wider
-        </div>
-        <div>
-            <p>American Typewriter Expanded
-            <p style="font-family: 'AmericanTypewriter-Condensed';">&raquo; American Typewriter Narrower
-            <p>&raquo; American Typewriter Wider
-        </div>
-    </td><td>
-        <p class="at">American Typewriter
-        <div class="at norm">
-            <p>American Typewriter Normal
-            <p class="narr">&raquo; American Typewriter Narrower
-            <p class="wide">&raquo; American Typewriter Wider
-        </div>
-        <div class="at cond">
-            <p>American Typewriter Condensed
-            <p class="narr">&raquo; American Typewriter Narrower
-            <p class="wide">&raquo; American Typewriter Wider
-        </div>
-        <div class="at expn">
-            <p>American Typewriter Expanded
-            <p class="narr">&raquo; American Typewriter Narrower
-            <p class="wide">&raquo; American Typewriter Wider
-        </div>
-    </td></tr>
-    
-    <tr><td style="font-family: 'AmericanTypewriter-Bold';">
-        <p>American Typewriter
-        <div>
-            <p>American Typewriter Normal
-            <p style="font-family: 'AmericanTypewriter-CondensedBold';">&raquo; American Typewriter Narrower
-            <p>&raquo; American Typewriter Wider
-        </div>
-        <div style="font-family: 'AmericanTypewriter-CondensedBold';">
-            <p>American Typewriter Condensed
-            <p>&raquo; American Typewriter Narrower
-            <p style="font-family: 'AmericanTypewriter-Bold';">&raquo; American Typewriter Wider
-        </div>
-        <div>
-            <p>American Typewriter Expanded
-            <p style="font-family: 'AmericanTypewriter-CondensedBold';">&raquo; American Typewriter Narrower
-            <p>&raquo; American Typewriter Wider
-        </div>
-    </td><td class="at bold">
-        <p>American Typewriter
-        <div class="norm">
-            <p>American Typewriter Normal
-            <p class="narr">&raquo; American Typewriter Narrower
-            <p class="wide">&raquo; American Typewriter Wider
-        </div>
-        <div class="cond">
-            <p>American Typewriter Condensed
-            <p class="narr">&raquo; American Typewriter Narrower
-            <p class="wide">&raquo; American Typewriter Wider
-        </div>
-        <div class="expn">
-            <p>American Typewriter Expanded
-            <p class="narr">&raquo; American Typewriter Narrower
-            <p class="wide">&raquo; American Typewriter Wider
-        </div>
-    </td></tr>
-    
-    <tr><td style="font-family: 'HelveticaNeue';">
-        <p>Helvetica Neue
-        <div>
-            <p>Helvetica Neue Normal
-            <p>&raquo; Helvetica Neue Narrower
-            <p>&raquo; Helvetica Neue Wider
-        </div>
-        <div>
-            <p>Helvetica Neue Condensed
-            <p>&raquo; Helvetica Neue Narrower
-            <p>&raquo; Helvetica Neue Wider
-        </div>
-        <div>
-            <p>Helvetica Neue Expanded
-            <p>&raquo; Helvetica Neue Narrower
-            <p>&raquo; Helvetica Neue Wider
-        </div>
-    </td><td>
-        <p class="hn">Helvetica Neue
-        <div class="hn norm">
-            <p>Helvetica Neue Normal
-            <p class="narr">&raquo; Helvetica Neue Narrower
-            <p class="wide">&raquo; Helvetica Neue Wider
-        </div>
-        <div class="hn cond">
-            <p>Helvetica Neue Condensed
-            <p class="narr">&raquo; Helvetica Neue Narrower
-            <p class="wide">&raquo; Helvetica Neue Wider
-        </div>
-        <div class="hn expn">
-            <p>Helvetica Neue Expanded
-            <p class="narr">&raquo; Helvetica Neue Narrower
-            <p class="wide">&raquo; Helvetica Neue Wider
-        </div>
-    </td></tr>
-    
-    <tr><td style="font-family: 'HelveticaNeue-Bold';">
-        <p>Helvetica Neue
-        <div>
-            <p>Helvetica Neue Normal
-            <p style="font-family: 'HelveticaNeue-CondensedBold';">&raquo; Helvetica Neue Narrower
-            <p>&raquo; Helvetica Neue Wider
-        </div>
-        <div style="font-family: 'HelveticaNeue-CondensedBold';">
-            <p>Helvetica Neue Condensed
-            <p>&raquo; Helvetica Neue Narrower
-            <p style="font-family: 'HelveticaNeue-Bold';">&raquo; Helvetica Neue Wider
-        </div>
-        <div>
-            <p>Helvetica Neue Expanded
-            <p style="font-family: 'HelveticaNeue-CondensedBold';">&raquo; Helvetica Neue Narrower
-            <p>&raquo; Helvetica Neue Wider
-        </div>
-    </td><td class="bold">
-        <p class="hn">Helvetica Neue
-        <div class="hn norm">
-            <p>Helvetica Neue Normal
-            <p class="narr">&raquo; Helvetica Neue Narrower
-            <p class="wide">&raquo; Helvetica Neue Wider
-        </div>
-        <div class="hn cond">
-            <p>Helvetica Neue Condensed
-            <p class="narr">&raquo; Helvetica Neue Narrower
-            <p class="wide">&raquo; Helvetica Neue Wider
-        </div>
-        <div class="hn expn">
-            <p>Helvetica Neue Expanded
-            <p class="narr">&raquo; Helvetica Neue Narrower
-            <p class="wide">&raquo; Helvetica Neue Wider
-        </div>
-    </td></tr>
-</table>
-</html>
index a16c59b..81a3b04 100644 (file)
@@ -1,3 +1,35 @@
+2007-02-06  Mark Rowe  <mrowe@apple.com>
+
+        Roll out incomplete support for font-stretch (r19350) at Dave Hyatt's request.
+        See http://bugs.webkit.org/show_bug.cgi?id=12530#c9 for more info.
+
+        * css/CSSComputedStyleDeclaration.cpp:
+        (WebCore::):
+        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
+        * css/cssparser.cpp:
+        (WebCore::CSSParser::parseValue):
+        * css/cssstyleselector.cpp:
+        (WebCore::CSSStyleSelector::applyDeclarations):
+        (WebCore::CSSStyleSelector::applyProperty):
+        * platform/FontCache.cpp:
+        (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey):
+        (WebCore::FontPlatformDataCacheKey::operator==):
+        (WebCore::computeHash):
+        (WebCore::FontPlatformDataCacheKeyTraits::deletedValue):
+        (WebCore::FontPlatformDataCacheKeyTraits::emptyValue):
+        (WebCore::FontCache::getCachedFontPlatformData):
+        * platform/FontDescription.h:
+        (WebCore::FontDescription::FontDescription):
+        (WebCore::FontDescription::weight):
+        (WebCore::FontDescription::setWeight):
+        (WebCore::FontDescription::operator==):
+        * platform/mac/FontCacheMac.mm:
+        (WebCore::FontCache::createFontPlatformData):
+        * platform/mac/WebFontCache.mm:
+        (acceptableChoice):
+        (betterChoice):
+        (+[WebFontCache fontWithFamily:traits:size:]):
+
 2007-02-05  Adele Peterson  <adele@apple.com>
 
         Reviewed by Darin.
index 881d696..9d92f2e 100644 (file)
@@ -70,7 +70,6 @@ static const int computedProperties[] = {
     CSS_PROP_FLOAT,
     CSS_PROP_FONT_FAMILY,
     CSS_PROP_FONT_SIZE,
-    CSS_PROP_FONT_STRETCH,
     CSS_PROP_FONT_STYLE,
     CSS_PROP_FONT_VARIANT,
     CSS_PROP_FONT_WEIGHT,
@@ -963,12 +962,6 @@ PassRefPtr<CSSValue> CSSComputedStyleDeclaration::getPropertyCSSValue(int proper
             return new CSSPrimitiveValue(style->fontDescription().computedPixelSize(), CSSPrimitiveValue::CSS_PX);
         case CSS_PROP__WEBKIT_BINDING:
             break;
-        case CSS_PROP_FONT_STRETCH:
-            if (style->fontDescription().stretch() == FontStretchCondensed)
-                return new CSSPrimitiveValue(CSS_VAL_CONDENSED);
-            if (style->fontDescription().stretch() == FontStretchExpanded)
-                return new CSSPrimitiveValue(CSS_VAL_EXPANDED);
-            return new CSSPrimitiveValue(CSS_VAL_NORMAL);
         case CSS_PROP_FONT_STYLE:
             if (style->fontDescription().italic())
                 return new CSSPrimitiveValue(CSS_VAL_ITALIC);
@@ -1548,6 +1541,7 @@ PassRefPtr<CSSValue> CSSComputedStyleDeclaration::getPropertyCSSValue(int proper
         case CSS_PROP_COUNTER_INCREMENT:
         case CSS_PROP_COUNTER_RESET:
         case CSS_PROP_FONT:
+        case CSS_PROP_FONT_STRETCH:
         case CSS_PROP_LIST_STYLE:
         case CSS_PROP_MARGIN:
         case CSS_PROP_OUTLINE:
@@ -1659,7 +1653,6 @@ const int inheritableProperties[] = {
     CSS_PROP_COLOR,
     CSS_PROP_FONT_FAMILY,
     CSS_PROP_FONT_SIZE,
-    CSS_PROP_FONT_STRETCH,
     CSS_PROP_FONT_STYLE,
     CSS_PROP_FONT_VARIANT,
     CSS_PROP_FONT_WEIGHT,
index eb7b121..3141701 100644 (file)
@@ -716,11 +716,6 @@ bool CSSParser::parseValue(int propId, bool important)
         }
         break;
 
-    case CSS_PROP_FONT_STRETCH:  // normal | wider | narrower | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded | inherit
-        if (id == CSS_VAL_NORMAL || (id >= CSS_VAL_WIDER && id <= CSS_VAL_ULTRA_EXPANDED))
-            valid_primitive = true;
-        break;
-
     case CSS_PROP_BORDER_SPACING: {
         const int properties[2] = { CSS_PROP__WEBKIT_BORDER_HORIZONTAL_SPACING,
                                     CSS_PROP__WEBKIT_BORDER_VERTICAL_SPACING };
@@ -1476,6 +1471,7 @@ bool CSSParser::parseValue(int propId, bool important)
     }
     case CSS_PROP_INVALID:
         return false;
+    case CSS_PROP_FONT_STRETCH:
     case CSS_PROP_PAGE:
     case CSS_PROP_TEXT_LINE_THROUGH:
     case CSS_PROP_TEXT_OVERLINE:
index 64469ad..5b47c7f 100644 (file)
@@ -1821,9 +1821,8 @@ void CSSStyleSelector::applyDeclarations(bool applyFirst, bool isImportant,
                     case CSS_PROP_FONT_STYLE:
                     case CSS_PROP_FONT_FAMILY:
                     case CSS_PROP_FONT_WEIGHT:
-                    case CSS_PROP_FONT_STRETCH:
-                    case CSS_PROP_FONT_VARIANT:
                     case CSS_PROP__WEBKIT_TEXT_SIZE_ADJUST:
+                    case CSS_PROP_FONT_VARIANT:
                         // these have to be applied first, because other properties use the computed
                         // values of these porperties.
                         first = true;
@@ -2149,46 +2148,6 @@ void CSSStyleSelector::applyProperty(int id, CSSValue *value)
         return;
     }
         
-    case CSS_PROP_FONT_STRETCH: {
-        FontDescription fontDescription = style->fontDescription();
-        if (isInherit)
-            fontDescription.setStretch(parentStyle->fontDescription().stretch());
-        else if (isInitial)
-            fontDescription.setStretch(FontStretchNormal);
-        else {
-            if (!primitiveValue || !primitiveValue->getIdent())
-                return;
-            switch (primitiveValue->getIdent()) {
-                case CSS_VAL_WIDER:
-                    fontDescription.setStretch(fontDescription.widerStretch());
-                    break;
-                case CSS_VAL_NARROWER:
-                    fontDescription.setStretch(fontDescription.narrowerStretch());
-                    break;
-                case CSS_VAL_NORMAL:
-                    fontDescription.setStretch(FontStretchNormal);
-                    break;
-                case CSS_VAL_SEMI_EXPANDED:
-                case CSS_VAL_EXPANDED:
-                case CSS_VAL_EXTRA_EXPANDED:
-                case CSS_VAL_ULTRA_EXPANDED:
-                    fontDescription.setStretch(FontStretchExpanded);
-                    break;
-                case CSS_VAL_ULTRA_CONDENSED:
-                case CSS_VAL_EXTRA_CONDENSED:
-                case CSS_VAL_CONDENSED:
-                case CSS_VAL_SEMI_CONDENSED:
-                    fontDescription.setStretch(FontStretchCondensed);
-                    break;
-                default:
-                    return;
-            }
-        }
-        if (style->setFontDescription(fontDescription))
-            fontDirty = true;
-        return;
-    }
-    
     case CSS_PROP_LIST_STYLE_POSITION:
     {
         HANDLE_INHERIT_AND_INITIAL(listStylePosition, ListStylePosition)
@@ -4412,6 +4371,7 @@ void CSSStyleSelector::applyProperty(int id, CSSValue *value)
     }
     case CSS_PROP_INVALID:
         return;
+    case CSS_PROP_FONT_STRETCH:
     case CSS_PROP_PAGE:
     case CSS_PROP_QUOTES:
     case CSS_PROP_SCROLLBAR_3DLIGHT_COLOR:
index b655d16..fd66a99 100644 (file)
 namespace WebCore {
 
 struct FontPlatformDataCacheKey {
-    FontPlatformDataCacheKey(const AtomicString& family = AtomicString(), unsigned size = 0, bool bold = false, unsigned stretch = 5, bool italic = false)
+    FontPlatformDataCacheKey(const AtomicString& family = AtomicString(), unsigned size = 0, bool bold = false, bool italic = false)
         : m_family(family)
         , m_size(size)
         , m_bold(bold)
-        , m_stretch(stretch)
         , m_italic(italic)
     {
     }
 
     bool operator==(const FontPlatformDataCacheKey& other) const
     {
-        return equalIgnoringCase(m_family, other.m_family) && m_size == other.m_size && m_bold == other.m_bold && m_stretch == other.m_stretch && m_italic == other.m_italic;
+        return equalIgnoringCase(m_family, other.m_family) && m_size == other.m_size && m_bold == other.m_bold && m_italic == other.m_italic;
     }
     
     AtomicString m_family;
     unsigned m_size;
     bool m_bold;
-    unsigned m_stretch;
     bool m_italic;
 };
 
 inline unsigned computeHash(const FontPlatformDataCacheKey& fontKey)
 {
-    unsigned hashCodes[4] = {
+    unsigned hashCodes[3] = {
         CaseInsensitiveHash<String>::hash(fontKey.m_family),
         fontKey.m_size,
-        fontKey.m_stretch,
         static_cast<unsigned>(fontKey.m_bold) << 1 | static_cast<unsigned>(fontKey.m_italic)
     };
-    return StringImpl::computeHash(reinterpret_cast<UChar*>(hashCodes), 4 * sizeof(unsigned) / sizeof(UChar));
+    return StringImpl::computeHash(reinterpret_cast<UChar*>(hashCodes), 3 * sizeof(unsigned) / sizeof(UChar));
 }
 
 struct FontPlatformDataCacheKeyHash {
@@ -87,12 +84,12 @@ struct FontPlatformDataCacheKeyTraits : WTF::GenericHashTraits<FontPlatformDataC
     static const bool needsDestruction = false;
     static const FontPlatformDataCacheKey& deletedValue()
     {
-        static FontPlatformDataCacheKey key(nullAtom, 0xFFFFFFFFU, false, 0, false);
+        static FontPlatformDataCacheKey key(nullAtom, 0xFFFFFFFFU, false, false);
         return key;
     }
     static const FontPlatformDataCacheKey& emptyValue()
     {
-        static FontPlatformDataCacheKey key(nullAtom, 0, false, 0, false);
+        static FontPlatformDataCacheKey key(nullAtom, 0, false, false);
         return key;
     }
 };
@@ -136,7 +133,7 @@ FontPlatformData* FontCache::getCachedFontPlatformData(const FontDescription& fo
         platformInit();
     }
 
-    FontPlatformDataCacheKey key(familyName, fontDescription.computedPixelSize(), fontDescription.bold(), static_cast<unsigned>(fontDescription.stretch()), fontDescription.italic());
+    FontPlatformDataCacheKey key(familyName, fontDescription.computedPixelSize(), fontDescription.bold(), fontDescription.italic());
     FontPlatformData* result = 0;
     bool foundResult;
     FontPlatformDataCache::iterator it = gFontPlatformDataCache->find(key);
index db145ba..6f1a421 100644 (file)
@@ -31,12 +31,6 @@ namespace WebCore {
 const unsigned cNormalWeight = 50;
 const unsigned cBoldWeight = 63;
 
-enum FontStretch {
-    FontStretchCondensed = 3,
-    FontStretchNormal = 5,
-    FontStretchExpanded = 7
-};
-
 class FontDescription {
 public:
     enum GenericFamilyType { NoFamily, StandardFamily, SerifFamily, SansSerifFamily, 
@@ -45,7 +39,7 @@ public:
     FontDescription()
         : m_specifiedSize(0), m_computedSize(0), 
           m_italic(false), m_smallCaps(false), m_isAbsoluteSize(false), m_weight(cNormalWeight), 
-          m_stretch(FontStretchNormal), m_genericFamily(NoFamily), m_usePrinterFont(false), m_keywordSize(0)
+          m_genericFamily(NoFamily), m_usePrinterFont(false), m_keywordSize(0)
           {}
     
     bool operator==(const FontDescription&) const;
@@ -61,9 +55,6 @@ public:
     bool smallCaps() const { return m_smallCaps; }
     bool isAbsoluteSize() const { return m_isAbsoluteSize; }
     unsigned weight() const { return m_weight; }
-    FontStretch stretch() const { return static_cast<FontStretch>(m_stretch); }
-    FontStretch narrowerStretch() const { return (m_stretch == FontStretchExpanded) ? FontStretchNormal : FontStretchCondensed; }
-    FontStretch widerStretch() const { return (m_stretch == FontStretchCondensed) ? FontStretchNormal : FontStretchExpanded; }
     GenericFamilyType genericFamily() const { return static_cast<GenericFamilyType>(m_genericFamily); }
     bool usePrinterFont() const { return m_usePrinterFont; }
     int keywordSize() const { return m_keywordSize; }
@@ -76,7 +67,6 @@ public:
     void setSmallCaps(bool c) { m_smallCaps = c; }
     void setIsAbsoluteSize(bool s) { m_isAbsoluteSize = s; }
     void setWeight(unsigned w) { m_weight = w; }
-    void setStretch(FontStretch s) { m_stretch = s; }
     void setGenericFamily(GenericFamilyType genericFamily) { m_genericFamily = genericFamily; }
     void setUsePrinterFont(bool p) { m_usePrinterFont = p; }
     void setKeywordSize(int s) { m_keywordSize = s; }
@@ -93,7 +83,6 @@ private:
     bool m_isAbsoluteSize : 1;   // Whether or not CSS specified an explicit size
                                  // (logical sizes like "medium" don't count).
     unsigned m_weight : 8;
-    unsigned m_stretch : 4;       // FontStretch
     unsigned m_genericFamily : 3; // GenericFamilyType
     bool m_usePrinterFont : 1;
     
@@ -111,7 +100,6 @@ inline bool FontDescription::operator==(const FontDescription& other) const
         && m_smallCaps == other.m_smallCaps
         && m_isAbsoluteSize == other.m_isAbsoluteSize
         && m_weight == other.m_weight
-        && m_stretch == other.m_stretch
         && m_genericFamily == other.m_genericFamily
         && m_usePrinterFont == other.m_usePrinterFont
         && m_keywordSize == other.m_keywordSize;
index c7debe5..52203f1 100644 (file)
@@ -203,16 +203,6 @@ FontPlatformData* FontCache::createFontPlatformData(const FontDescription& fontD
         traits |= NSItalicFontMask;
     if (fontDescription.bold())
         traits |= NSBoldFontMask;
-    switch (fontDescription.stretch()) {
-        case FontStretchCondensed:
-            traits |= NSFontCondensedTrait;
-            break;
-        case FontStretchExpanded:
-            traits |= NSFontExpandedTrait;
-            break;
-        case FontStretchNormal:
-            break;
-    }
     float size = fontDescription.computedPixelSize();
     
     NSFont* nsFont = [WebFontCache fontWithFamily:family traits:traits size:size];
@@ -220,7 +210,7 @@ FontPlatformData* FontCache::createFontPlatformData(const FontDescription& fontD
         return 0;
 
     NSFontTraitMask actualTraits = 0;
-    if ((traits & NSFontBoldTrait) || (traits & NSFontItalicTrait))
+    if (fontDescription.bold() || fontDescription.italic())
         actualTraits = [[NSFontManager sharedFontManager] traitsOfFont:nsFont];
     
     FontPlatformData* result = new FontPlatformData;
index dd4a04a..6a9ff70 100644 (file)
 
 #import "config.h"
 #import "WebFontCache.h"
-#import "FontDescription.h"
 
 #import <math.h>
 
 #define SYNTHESIZED_FONT_TRAITS (NSBoldFontMask | NSItalicFontMask)
-#define ACCEPTABLE_FONT_TRAITS (NSFontCondensedTrait | NSFontExpandedTrait)
+
 #define IMPORTANT_FONT_TRAITS (0 \
     | NSBoldFontMask \
     | NSCompressedFontMask \
     | NSSmallCapsFontMask \
 )
 
+#define DESIRED_WEIGHT 5
+
 static BOOL acceptableChoice(NSFontTraitMask desiredTraits, int desiredWeight,
     NSFontTraitMask candidateTraits, int candidateWeight)
 {
     desiredTraits &= ~SYNTHESIZED_FONT_TRAITS;
-    desiredTraits &= ~ACCEPTABLE_FONT_TRAITS;
     return (candidateTraits & desiredTraits) == desiredTraits;
 }
 
@@ -57,17 +57,9 @@ static BOOL betterChoice(NSFontTraitMask desiredTraits, int desiredWeight,
     NSFontTraitMask chosenTraits, int chosenWeight,
     NSFontTraitMask candidateTraits, int candidateWeight)
 {
-    if (!acceptableChoice(desiredTraits, desiredWeight, candidateTraits, candidateWeight))
-        return NO;
-    
-    unsigned chosenWeightDelta = abs(chosenWeight - desiredWeight);
-    unsigned candidateWeightDelta = abs(candidateWeight - desiredWeight);
-    
-    // prefer a closer weight regardless of traits
-    if (candidateWeightDelta < chosenWeightDelta)
-        return YES;
-    if (candidateWeightDelta > chosenWeightDelta)
+    if (!acceptableChoice(desiredTraits, desiredWeight, candidateTraits, candidateWeight)) {
         return NO;
+    }
     
     // A list of the traits we care about.
     // The top item in the list is the worst trait to mismatch; if a font has this
@@ -94,13 +86,21 @@ static BOOL betterChoice(NSFontTraitMask desiredTraits, int desiredWeight,
             return NO;
     }
     
+    int chosenWeightDelta = chosenWeight - desiredWeight;
+    int candidateWeightDelta = candidateWeight - desiredWeight;
+    
+    int chosenWeightDeltaMagnitude = abs(chosenWeightDelta);
+    int candidateWeightDeltaMagnitude = abs(candidateWeightDelta);
+    
     // Smaller magnitude wins.
     // If both have same magnitude, tie breaker is that the smaller weight wins.
     // Otherwise, first font in the array wins (should almost never happen).
-    if (candidateWeightDelta < chosenWeightDelta)
+    if (candidateWeightDeltaMagnitude < chosenWeightDeltaMagnitude) {
         return YES;
-    if (candidateWeightDelta == chosenWeightDelta && candidateWeight < chosenWeight)
+    }
+    if (candidateWeightDeltaMagnitude == chosenWeightDeltaMagnitude && candidateWeight < chosenWeight) {
         return YES;
+    }
     
     return NO;
 }
@@ -113,7 +113,6 @@ static BOOL betterChoice(NSFontTraitMask desiredTraits, int desiredWeight,
 + (NSFont *)fontWithFamily:(NSString *)desiredFamily traits:(NSFontTraitMask)desiredTraits size:(float)size
 {
     NSFontManager *fontManager = [NSFontManager sharedFontManager];
-    int desiredWeight = (desiredTraits & NSFontBoldTrait)? 9 : 5;
 
     // Look for an exact match first.
     NSEnumerator *availableFonts = [[fontManager availableFonts] objectEnumerator];
@@ -172,16 +171,16 @@ static BOOL betterChoice(NSFontTraitMask desiredTraits, int desiredWeight,
 
         BOOL newWinner;
         if (!choseFont)
-            newWinner = acceptableChoice(desiredTraits, desiredWeight, fontTraits, fontWeight);
+            newWinner = acceptableChoice(desiredTraits, DESIRED_WEIGHT, fontTraits, fontWeight);
         else
-            newWinner = betterChoice(desiredTraits, desiredWeight, chosenTraits, chosenWeight, fontTraits, fontWeight);
+            newWinner = betterChoice(desiredTraits, DESIRED_WEIGHT, chosenTraits, chosenWeight, fontTraits, fontWeight);
 
         if (newWinner) {
             choseFont = YES;
             chosenWeight = fontWeight;
             chosenTraits = fontTraits;
 
-            if (chosenWeight == desiredWeight && (chosenTraits & IMPORTANT_FONT_TRAITS) == (desiredTraits & IMPORTANT_FONT_TRAITS))
+            if (chosenWeight == DESIRED_WEIGHT && (chosenTraits & IMPORTANT_FONT_TRAITS) == (desiredTraits & IMPORTANT_FONT_TRAITS))
                 break;
         }
     }
index 6236fff..7f4067e 100644 (file)
@@ -1,3 +1,12 @@
+2007-02-06  Mark Rowe  <mrowe@apple.com>
+
+        Roll out incomplete support for font-stretch (r19350) at Dave Hyatt's request.
+        See http://bugs.webkit.org/show_bug.cgi?id=12530#c9 for more info.
+
+        * WebInspector/webInspector/inspector.js:
+        * WebView/WebHTMLView.mm:
+        (-[WebHTMLView _addToStyle:fontA:fontB:]):
+
 2007-02-05  Beth Dakin  <bdakin@apple.com>
 
         Reviewed by Adam.
index 0da62da..e366575 100644 (file)
@@ -106,7 +106,6 @@ var typicalStylePropertyValue = {
     "direction": "ltr",
     "empty-cells": "show",
     "float": "none",
-    "font-stretch": "normal",
     "font-style": "normal",
     "font-variant": "normal",
     "font-weight": "normal",
index e6de6ad..4039eb8 100644 (file)
@@ -3997,8 +3997,8 @@ done:
 
     BOOL aIsBold = aWeight >= MIN_BOLD_WEIGHT;
 
-    unsigned aTraits = [fm traitsOfFont:a];
-    unsigned bTraits = [fm traitsOfFont:b];
+    BOOL aIsItalic = ([fm traitsOfFont:a] & NSItalicFontMask) != 0;
+    BOOL bIsItalic = ([fm traitsOfFont:b] & NSItalicFontMask) != 0;
 
     if ([aFamilyName isEqualToString:bFamilyName]) {
         NSString *familyNameForCSS = aFamilyName;
@@ -4011,9 +4011,8 @@ done:
         NSFontTraitMask traits = 0;
         if (aIsBold)
             traits |= NSBoldFontMask;
-        traits |= (aTraits & NSFontItalicTrait);
-        traits |= (aTraits & NSFontCondensedTrait);
-        traits |= (aTraits & NSFontExpandedTrait);
+        if (aIsItalic)
+            traits |= NSItalicFontMask;
         NSFont *foundFont = WebCoreFindFont(aFamilyName, traits, aPointSize);
 
         // If we don't find a font with the same Postscript name, then we'll have to use the
@@ -4023,7 +4022,7 @@ done:
         }
 
         // FIXME: Need more sophisticated escaping code if we want to handle family names
-        // with characters like apostrophe or backslash in their names.
+        // with characters like single quote or backslash in their names.
         [style setFontFamily:[NSString stringWithFormat:@"'%@'", familyNameForCSS]];
     }
 
@@ -4038,12 +4037,8 @@ done:
     if (aWeight == bWeight)
         [style setFontWeight:aIsBold ? @"bold" : @"normal"];
 
-    if ((aTraits & NSFontItalicTrait) == (bTraits & NSFontItalicTrait))
-        [style setFontStyle:(aTraits & NSFontItalicTrait) ? @"italic" :  @"normal"];
-    if ((aTraits & NSFontCondensedTrait) == (bTraits & NSFontCondensedTrait))
-        [style setFontStretch:(aTraits & NSFontCondensedTrait) ? @"condensed" :  @"normal"];
-    else if ((aTraits & NSFontExpandedTrait) == (bTraits & NSFontExpandedTrait))
-        [style setFontStretch:(aTraits & NSFontExpandedTrait) ? @"extended" :  @"normal"];
+    if (aIsItalic == bIsItalic)
+        [style setFontStyle:aIsItalic ? @"italic" :  @"normal"];
 }
 
 - (DOMCSSStyleDeclaration *)_styleFromFontManagerOperation