WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch V2
bug-65903-20110810150339.patch (text/plain), 22.74 KB, created by
Kenichi Ishibashi
on 2011-08-09 23:03:40 PDT
(
hide
)
Description:
Patch V2
Filename:
MIME Type:
Creator:
Kenichi Ishibashi
Created:
2011-08-09 23:03:40 PDT
Size:
22.74 KB
patch
obsolete
>Subversion Revision: 92744 >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index db60f06439af53e7c5415398b421af973f856844..627186595dad9e070f0374ebde110efe77b83940 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,24 @@ >+2011-08-09 Kenichi Ishibashi <bashi@chromium.org> >+ >+ [Chromium] Implement text shaping with font-feature-settings on Linux >+ https://bugs.webkit.org/show_bug.cgi?id=65903 >+ >+ Adds a rendering test for -webkit-font-feature-settings. >+ This tests disabled for now expect for chromium-linux port. >+ FeatureTest.ttf is created from scratch by using FontForge. >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * css3/font-feature-settings-rendering.html: Added. >+ * css3/resources/FeatureTest.ttf: Added. >+ * platform/chromium-linux/css3/font-feature-settings-rendering-expected.png: Added. >+ * platform/chromium-linux/css3/font-feature-settings-rendering-expected.txt: Added. >+ * platform/chromium/test_expectations.txt: Skips css3/font-feature-settings-rendering.html. >+ * platform/gtk/Skipped: Ditto. >+ * platform/mac/Skipped: Ditto. >+ * platform/qt/Skipped: Ditto. >+ * platform/win/Skipped: Ditto. >+ > 2011-08-09 Abhishek Arya <inferno@chromium.org> > > Fix functional bug where style change was not getting propogated to before, after >diff --git a/LayoutTests/css3/font-feature-settings-rendering.html b/LayoutTests/css3/font-feature-settings-rendering.html >new file mode 100644 >index 0000000000000000000000000000000000000000..43e26d4b0043abfff5a6b1a30c86dc4fd2d53051 >--- /dev/null >+++ b/LayoutTests/css3/font-feature-settings-rendering.html >@@ -0,0 +1,40 @@ >+<head> >+<style> >+@font-face { >+ /* FeatureTest.ttf is a small font for testing OpenType features. >+ * It contains: >+ * - The black box glyph which is associated with 'W', 'e', 'b', 'K', 'i' and 't'. >+ * - A discretionary ligature glyph of 'WebKit'. >+ */ >+ font-family: 'test'; >+ src: url(resources/FeatureTest.ttf); >+} >+.dligOn { >+ font-family: 'test'; >+ -webkit-font-feature-settings: 'dlig'; >+} >+.dligOff { >+ font-family: 'test'; >+ -webkit-font-feature-settings: 'dlig' 0; >+} >+.dligNone { >+ font-family: 'test'; >+} >+</style> >+<script> >+if (window.layoutTestController) >+ window.layoutTestController.waitUntilDone(); >+ >+function test() { >+ document.body.offsetTop; >+ if (window.layoutTestController) >+ layoutTestController.notifyDone(); >+} >+</script> >+</head> >+<body onload="setTimeout(test, 300)"> >+<p>Test for font-feature-settings property. The first word of the following three words should be displayed like "WebKit", while others should be displayed as black boxes.</p> >+<div class="dligOn">WebKit</div> >+<div class="dligOff">WebKit</div> >+<div class="dligNone">WebKit</div> >+</body> >diff --git a/LayoutTests/css3/resources/FeatureTest.ttf b/LayoutTests/css3/resources/FeatureTest.ttf >new file mode 100644 >index 0000000000000000000000000000000000000000..f1b90018a3699909939d9707a2275c47daaade89 >GIT binary patch >literal 2380 >zcmd5;S!`5Q82<meb-K{8Oeh6wxkDK!OQ+MBgtAnGc9@E6O=#i42Qzf;EHIs^Ged<) >z;zq<oVlW|Ei55X05Tyx~m{M^~Y~14lAsVBG#0L}62Qfk^cl^$sJ1s;Wc++#|-1G0} >zJO4TNKSNAJci^QEg+g5$??0M5M^x&Aw6-I-HbiYSgUFEtKfj}M^OlkPhzUJd@^x(K >zZkzkbT?5b`0>5MPmL`AX<<uw<KLvhkPj9$S+dFLzk>r4EM^ArFr=VIzB<G-4V&QCG >zK2I|IBj6pe<eupHcOG^@e-J*kaU&d&Up+hvz7^0fjYClV-LyvVLGbh9y}8}NZ-9{a >zXYdWlbWd1n<$dtq4ZgZJyt|LO2{gyS>#1<BvDm3xAX48z{A^!3n`@r+Z8N6Up>HFR >z3-r!kj(q%pv-K}32W+%YqsJSHW8O5Q&QUE2-a(R(qQOUtno$~YuFRYH$DE^9q=K&S >zF0&+M)KN&C<;j+8HF+%)b`W1Cl^kk7eE}is3Zs01qSADrB@KD9o4`5QI-_eNw3^ma >zu7E*{@?j`#8|gO^xgzO=0DS8%P(vl+i(YH{M!<<EwKyC1Vyv`QtYM~Yw4Dq}P!79C >zH}m<C{K@<)`J?&4{GlQS*w~G=Nnpexd&LY+8Wf4!8mBU1o!_F5itPYhQsfJ(p5p#< >z%K8RqiS?{NZnsi|GV~}{0+}TCONyx7$bJcVPcb#M4woo&$$v^ye`p<+C6IJV7GhP1 >zhf6e`XdOm6FZlyi?kbPF${mz+a~=<vakYE=^`P<v;$kPwr~~Iz>@m#T4!Q#Fib%%) >zNmq(5=rq2tMO02sa#0=4rG>PVR#FH+TjUm3%ghCGy{p6{2g=!X53?)a;+9fgpki>c >z>~g!BSoQ?&Wbu>h%ekJN>{;Ma+2v7Po*6Se)As+WJ*&N`4b{F@_qq8NkEwqz9;>+a >zz50^M(SEZ{;!Wlp_4=828}@zW<_8}i7_PZ8cI?=JC%X<DfA8F?r-u~ha|(B>XU+ZQ >zhi+cX%WJOx`4KzhLFRVV9H}^>O<b0zYn>B=a)kGq<8?psrmGj(G^G=g#DV^wq@inz >zDh4FwkMZ@~IqHyyBI9o>Ph5LO^<KRwH%)vkeXw(<bEkRt?>t+odgOWYvx-A!PhzJk >zX=w7R3Q*jp8M!)b(<l`5rA^B;pX+T}p>p1C(<&<dL7UbfKO??$MHF>W*9tUKHN9xl >z5>?RqHZ9WzI&aeoRr7r|t&+|uo7NydO6`=UKH7tmouC-7=18Xo>cMX6<R>3B<IzzO >z(|BT(L`BhQ9i?F51+@l}B*rQ4ti>6Wg=L2N@s5bv*`Ds(lS#zlIlZB0q3-uJH|rhg >zbS!D;>ry>leN8f{Tk5QyF|tOc--y5|1n)2q?Ls7jy3n)WC}f0lyD~<Xkp;8Snjrz3 >zUNA-^u?u4eU{f#^V+ODVXg^^1Fs?wqb>M<-IW^KU^y1<vluqSB=}gSf{a&BGLcd{p >zaLXH)HHzij9@?#dlEEqx7C;?<M1}=0@#wgYjZ8L?PU${hv)AYIL2_%XHz%Q3p;73? >z+4y%WgNR|}#q!spmTjPIER{c$&P2T1jP2_a;--fMZVJgdaiYf6SuzO{8FvcfPAmnj >zKw7vD7*rWhuOcZJ+R#On$#5=3vn>lkB%v49MVceYM9jM0godFLTDD@(wnqhXXn0i2 >qSz>8~ov;#fEdl-;=c<{EKQ$8!ttLEZ?3@?3wD@l@IJYn!ulWbhY>ce{ > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/platform/chromium-linux/css3/font-feature-settings-rendering-expected.png b/LayoutTests/platform/chromium-linux/css3/font-feature-settings-rendering-expected.png >new file mode 100644 >index 0000000000000000000000000000000000000000..da358eb2a2c7fe812a0c076475a2cd70cdc83172 >GIT binary patch >literal 10280 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 >V;mF(Y(LaRg*^A$nedF@uzXG1&fD-@! > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/platform/chromium-linux/css3/font-feature-settings-rendering-expected.txt b/LayoutTests/platform/chromium-linux/css3/font-feature-settings-rendering-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..795e1db257808843c79f88abf0ffa332ed15ff6e >--- /dev/null >+++ b/LayoutTests/platform/chromium-linux/css3/font-feature-settings-rendering-expected.txt >@@ -0,0 +1,19 @@ >+layer at (0,0) size 800x600 >+ RenderView at (0,0) size 800x600 >+layer at (0,0) size 800x600 >+ RenderBlock {HTML} at (0,0) size 800x600 >+ RenderBody {BODY} at (8,8) size 784x584 >+ RenderBlock {P} at (0,0) size 784x40 >+ RenderText {#text} at (0,0) size 783x39 >+ text run at (0,0) width 235: "Test for font-feature-settings property. " >+ text run at (235,0) width 548: "The first word of the following three words should be displayed like \"WebKit\", while others" >+ text run at (0,20) width 217: "should be displayed as black boxes." >+ RenderBlock {DIV} at (0,56) size 784x18 >+ RenderText {#text} at (0,0) size 96x17 >+ text run at (0,0) width 96: "WebKit" >+ RenderBlock {DIV} at (0,74) size 784x18 >+ RenderText {#text} at (0,0) size 96x17 >+ text run at (0,0) width 96: "WebKit" >+ RenderBlock {DIV} at (0,92) size 784x18 >+ RenderText {#text} at (0,0) size 96x17 >+ text run at (0,0) width 96: "WebKit" >diff --git a/LayoutTests/platform/chromium/test_expectations.txt b/LayoutTests/platform/chromium/test_expectations.txt >index 15d4d6d066ba7afc93674e963f3d8b59b207a2d1..10f6922e639f4ce9348c02a584fd0676a9b94947 100644 >--- a/LayoutTests/platform/chromium/test_expectations.txt >+++ b/LayoutTests/platform/chromium/test_expectations.txt >@@ -3709,3 +3709,5 @@ BUGWK65874 : fast/js/preventExtensions.html = TEXT > // Caused by r92704 > BUGWK65951 WIN DEBUG : webaudio/audiobuffersource.html = CRASH > BUGWK65951 WIN DEBUG : webaudio/mixing.html = CRASH >+ >+BUGWK63796 MAC WIN : css3/font-feature-settings-rendering.html = FAIL >diff --git a/LayoutTests/platform/gtk/Skipped b/LayoutTests/platform/gtk/Skipped >index c5b742a5f71f9b0d0dd72750dd5f8995b7c40c22..2b3b6d7619fc56b81190c64d8a5ea6a6176d1b85 100644 >--- a/LayoutTests/platform/gtk/Skipped >+++ b/LayoutTests/platform/gtk/Skipped >@@ -1608,3 +1608,6 @@ webaudio/ > # Text shadow extents are calculated incorrectly > # https://bugs.webkit.org/show_bug.cgi?id=65035 > fast/canvas/fillText-shadow.html >+ >+# Font feature settings is not implemented. >+css3/font-feature-settings-rendering.html >diff --git a/LayoutTests/platform/mac/Skipped b/LayoutTests/platform/mac/Skipped >index e3b85f6da1ebd7249639320da3bf7a1f79be0e30..5c20fc968c665cd611f86a584d84a78e7b0375a7 100644 >--- a/LayoutTests/platform/mac/Skipped >+++ b/LayoutTests/platform/mac/Skipped >@@ -411,3 +411,6 @@ media/track/ > # REGRESSION (r91547): scrollbars/scrollbar-drag-thumb-with-large-content.html failing on SnowLeopard Intel Release (Tests) > # https://bugs.webkit.org/show_bug.cgi?id=65434 > scrollbars/scrollbar-drag-thumb-with-large-content.html >+ >+# Font feature settings is not implemented. >+css3/font-feature-settings-rendering.html >diff --git a/LayoutTests/platform/qt/Skipped b/LayoutTests/platform/qt/Skipped >index b98ee74e9e495acc645a5c325301fc6f63d8e2d5..1aa010f4b2ae56351ec1a2c0877728e1a1c915f7 100644 >--- a/LayoutTests/platform/qt/Skipped >+++ b/LayoutTests/platform/qt/Skipped >@@ -199,6 +199,9 @@ fast/repaint/scale-page-shrink.html > # https://bugs.webkit.org/show_bug.cgi?id=43668 > media/track/ > >+# Font feature settings is not implemented. >+css3/font-feature-settings-rendering.html >+ > # =========================================================================== # > # Drag and Drop Support in DRT. # > # =========================================================================== # >diff --git a/LayoutTests/platform/win/Skipped b/LayoutTests/platform/win/Skipped >index a1ae3a7c87ebb2f0ad146baffe1b3208d222a7b7..34179d9273ea7ffa44d04c684edd0f1547750a4b 100644 >--- a/LayoutTests/platform/win/Skipped >+++ b/LayoutTests/platform/win/Skipped >@@ -1374,3 +1374,6 @@ webaudio/ > # Tests for WebVTT parser for <track>. Feature is not yet functional. > # https://bugs.webkit.org/show_bug.cgi?id=43668 > media/track/ >+ >+# Font feature settings is not implemented. >+css3/font-feature-settings-rendering.html >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 441e04fbbce383e00bdfa9582f8b690a86f6f5f6..ce8c6c6efb251b265f815ed50e4432cc83e26cb1 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,21 @@ >+2011-08-09 Kenichi Ishibashi <bashi@chromium.org> >+ >+ [Chromium] Implement text shaping with font-feature-settings on Linux >+ https://bugs.webkit.org/show_bug.cgi?id=65903 >+ >+ - Modifies Font::codePath() to return Complex when there is font feature settings CSS property. >+ - Implements OpenType advanced typography feature using Harfbuzz on Chromium Linux port. >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Test: css3/font-feature-settings-rendering.html >+ >+ * platform/graphics/Font.cpp: >+ (WebCore::Font::codePath): Returns Complex when fontFeatureSettings exists. >+ * platform/graphics/chromium/ComplexTextControllerLinux.cpp: >+ (WebCore::setupFontFeatures): Added. >+ (WebCore::ComplexTextController::setupFontForScriptRun): Calls setupFontFeatures(). >+ > 2011-08-09 Abhishek Arya <inferno@chromium.org> > > Style change not propagating for before, after content >diff --git a/Source/WebCore/platform/graphics/Font.cpp b/Source/WebCore/platform/graphics/Font.cpp >index 724765ae1844417269bc37e6787e56ea345548fb..06d35a478aa3efcbd98ce7928e89e712f558be12 100644 >--- a/Source/WebCore/platform/graphics/Font.cpp >+++ b/Source/WebCore/platform/graphics/Font.cpp >@@ -270,6 +270,9 @@ Font::CodePath Font::codePath(const TextRun& run) const > return Complex; > #endif > >+ if (m_fontDescription.featureSettings() && m_fontDescription.featureSettings()->size() > 0) >+ return Complex; >+ > CodePath result = Simple; > > // Start from 0 since drawing and highlighting also measure the characters before run->from >diff --git a/Source/WebCore/platform/graphics/chromium/ComplexTextControllerLinux.cpp b/Source/WebCore/platform/graphics/chromium/ComplexTextControllerLinux.cpp >index dd0b1ac881afcb4f405b9f94407e4ec55f52c690..2663106fdd76892d68cc9500ab9b4f3c73495393 100644 >--- a/Source/WebCore/platform/graphics/chromium/ComplexTextControllerLinux.cpp >+++ b/Source/WebCore/platform/graphics/chromium/ComplexTextControllerLinux.cpp >@@ -203,6 +203,32 @@ float ComplexTextController::widthOfFullRun() > return widthSum; > } > >+static void setupFontFeatures(const FontFeatureSettings* settings, HB_FaceRec_* hbFace) >+{ >+ if (!settings) >+ return; >+ >+ if (hbFace->gsub) >+ HB_GSUB_Clear_Features(hbFace->gsub); >+ if (hbFace->gpos) >+ HB_GPOS_Clear_Features(hbFace->gpos); >+ >+ HB_UShort scriptIndex; >+ HB_GSUB_Select_Script(hbFace->gsub, HB_MAKE_TAG('D', 'F', 'L', 'T'), &scriptIndex); >+ size_t numFeatures = settings->size(); >+ for (size_t i = 0; i < numFeatures; ++i) { >+ if (!settings->at(i).value()) >+ continue; >+ HB_UShort featureIndex; >+ const UChar* tag = settings->at(i).tag().characters(); >+ HB_UInt feature = HB_MAKE_TAG(tag[0], tag[1], tag[2], tag[3]); >+ if (hbFace->gsub && HB_GSUB_Select_Feature(hbFace->gsub, feature, scriptIndex, 0xffff, &featureIndex) == HB_Err_Ok) >+ HB_GSUB_Add_Feature(hbFace->gsub, featureIndex, settings->at(i).value()); >+ else if (hbFace->gpos && HB_GPOS_Select_Feature(hbFace->gpos, feature, scriptIndex, 0xffff, &featureIndex) == HB_Err_Ok) >+ HB_GPOS_Add_Feature(hbFace->gpos, featureIndex, settings->at(i).value()); >+ } >+} >+ > void ComplexTextController::setupFontForScriptRun() > { > FontDataVariant fontDataVariant = AutoVariant; >@@ -220,6 +246,9 @@ void ComplexTextController::setupFontForScriptRun() > const FontData* fontData = m_font->glyphDataForCharacter(m_item.string[m_item.item.pos], false, fontDataVariant).fontData; > const FontPlatformData& platformData = fontData->fontDataForCharacter(' ')->platformData(); > m_item.face = platformData.harfbuzzFace()->face(); >+ // We only need to setup font features at the beginning of the run. >+ if (!m_item.item.pos) >+ setupFontFeatures(m_font->fontDescription().featureSettings(), m_item.face); > void* opaquePlatformData = const_cast<FontPlatformData*>(&platformData); > m_item.font->userData = opaquePlatformData; >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 65903
:
103342
|
103343
| 103444