Changeset 185731 in webkit
- Timestamp:
- Jun 18, 2015, 6:13:37 PM (11 years ago)
- Location:
- trunk
- Files:
-
- 6 added
- 18 edited
- 4 copied
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/fast/css/named-images-expected.png (added)
-
LayoutTests/fast/css/named-images.html (added)
-
LayoutTests/platform/mac/fast/css/named-images-expected.png (added)
-
LayoutTests/platform/mac/fast/css/named-images-expected.txt (added)
-
Source/WebCore/CMakeLists.txt (modified) (2 diffs)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/WebCore.vcxproj/WebCore.vcxproj (modified) (4 diffs)
-
Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters (modified) (4 diffs)
-
Source/WebCore/WebCore.xcodeproj/project.pbxproj (modified) (13 diffs)
-
Source/WebCore/css/CSSAllInOne.cpp (modified) (1 diff)
-
Source/WebCore/css/CSSImageGeneratorValue.cpp (modified) (5 diffs)
-
Source/WebCore/css/CSSNamedImageValue.cpp (copied) (copied from trunk/Source/WebCore/platform/ios/ThemeIOS.h ) (2 diffs)
-
Source/WebCore/css/CSSNamedImageValue.h (copied) (copied from trunk/Source/WebCore/platform/ios/ThemeIOS.h ) (2 diffs)
-
Source/WebCore/css/CSSParser.cpp (modified) (4 diffs)
-
Source/WebCore/css/CSSParser.h (modified) (1 diff)
-
Source/WebCore/css/CSSValue.cpp (modified) (4 diffs)
-
Source/WebCore/css/CSSValue.h (modified) (2 diffs)
-
Source/WebCore/platform/Theme.cpp (modified) (2 diffs)
-
Source/WebCore/platform/Theme.h (modified) (2 diffs)
-
Source/WebCore/platform/cocoa/ThemeCocoa.cpp (added)
-
Source/WebCore/platform/cocoa/ThemeCocoa.h (copied) (copied from trunk/Source/WebCore/platform/ios/ThemeIOS.h ) (3 diffs)
-
Source/WebCore/platform/graphics/CrossfadeGeneratedImage.h (modified) (1 diff)
-
Source/WebCore/platform/graphics/ImageBuffer.h (modified) (1 diff)
-
Source/WebCore/platform/graphics/NamedImageGeneratedImage.cpp (added)
-
Source/WebCore/platform/graphics/NamedImageGeneratedImage.h (copied) (copied from trunk/Source/WebCore/platform/graphics/CrossfadeGeneratedImage.h ) (3 diffs)
-
Source/WebCore/platform/ios/ThemeIOS.h (modified) (1 diff)
-
Source/WebCore/platform/mac/ThemeMac.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r185729 r185731 1 2015-06-18 Dean Jackson <dino@apple.com> 2 3 Provide a way for web developers to draw a Theme-specific Wireless Playback icon 4 https://bugs.webkit.org/show_bug.cgi?id=146123 5 <rdar://problem/21119287> 6 7 Reviewed by Simon Fraser. 8 9 Test the new -webkit-named-image CSS generator. Only "wireless-playback" 10 is supported for now, and has platform-specific results for Cocoa. 11 12 * fast/css/named-images-expected.png: Added. 13 * fast/css/named-images.html: Added. 14 * platform/mac/fast/css/named-images-expected.png: Added. 15 * platform/mac/fast/css/named-images-expected.txt: Added. 16 1 17 2015-06-18 KyungTae Kim <ktf.kim@samsung.com> and Myles C. Maxfield <mmaxfield@apple.com> 2 18 -
trunk/Source/WebCore/CMakeLists.txt
r185707 r185731 1290 1290 css/CSSLineBoxContainValue.cpp 1291 1291 css/CSSMediaRule.cpp 1292 css/CSSNamedImageValue.cpp 1292 1293 css/CSSOMUtils.cpp 1293 1294 css/CSSPageRule.cpp … … 2164 2165 platform/graphics/MaskImageOperation.cpp 2165 2166 platform/graphics/MediaPlayer.cpp 2167 platform/graphics/NamedImageGeneratedImage.cpp 2166 2168 platform/graphics/Path.cpp 2167 2169 platform/graphics/PathTraversalState.cpp -
trunk/Source/WebCore/ChangeLog
r185729 r185731 1 2015-06-18 Dean Jackson <dino@apple.com> 2 3 Provide a way for web developers to draw a Theme-specific Wireless Playback icon 4 https://bugs.webkit.org/show_bug.cgi?id=146123 5 <rdar://problem/21119287> 6 7 Reviewed by Simon Fraser. 8 9 Implement a -webkit-named-image() CSS <image> generator that allows a site to 10 request artwork by name and get the platform variant. At the moment 11 we only support "wireless-playback" which returns a generic image everywhere 12 but Cocoa platforms, where we render the AirPlay icon. 13 14 In order to do this I added a ThemeCocoa to share any Theme code between 15 Mac and iOS. 16 17 Test: fast/css/named-icons.html 18 19 * WebCore.xcodeproj/project.pbxproj: Add new files CSSNamedImageValue, NamedImageGeneratedImage and ThemeCocoa. 20 21 * css/CSSImageGeneratorValue.cpp: Handle the new NamedImageClass in the switch statements for downcasting. 22 (WebCore::CSSImageGeneratorValue::image): 23 (WebCore::CSSImageGeneratorValue::isFixedSize): 24 (WebCore::CSSImageGeneratorValue::isPending): 25 (WebCore::CSSImageGeneratorValue::knownToBeOpaque): 26 27 * css/CSSNamedImageValue.cpp: New class. Just holds a name String. 28 (WebCore::CSSNamedImageValue::customCSSText): 29 (WebCore::CSSNamedImageValue::image): 30 (WebCore::CSSNamedImageValue::equals): 31 * css/CSSNamedImageValue.h: 32 (WebCore::CSSNamedImageValue::create): 33 (WebCore::CSSNamedImageValue::isFixedSize): 34 (WebCore::CSSNamedImageValue::isPending): 35 (WebCore::CSSNamedImageValue::CSSNamedImageValue): 36 37 * css/CSSParser.cpp: 38 (WebCore::CSSParser::isGeneratedImageValue): Allow "-webkit-named-image(". 39 (WebCore::CSSParser::parseGeneratedImage): Call parseNamedImage if we hit named-icon. 40 (WebCore::CSSParser::parseNamedImage): Parse the function looking for a CSS ident. 41 * css/CSSParser.h: 42 43 * css/CSSValue.cpp: Handle NamedImageClass in the various switch statements. 44 (WebCore::CSSValue::equals): 45 (WebCore::CSSValue::cssText): 46 (WebCore::CSSValue::destroy): 47 * css/CSSValue.h: 48 (WebCore::CSSValue::isNamedImageValue): Helper to detect the correct CSSValue subclass. 49 50 * platform/Theme.cpp: 51 (WebCore::Theme::drawNamedImage): Draw a generic wireless playback icon. 52 * platform/Theme.h: Add drawNamedImage. 53 54 * platform/cocoa/ThemeCocoa.cpp: New shared base class for ThemeMac and ThemeIOS. 55 (WebCore::fitContextToBox): 56 (WebCore::ThemeCocoa::drawNamedImage): Draw an AirPlay icon for wireless playback. 57 * platform/cocoa/ThemeCocoa.h: 58 59 * platform/graphics/CrossfadeGeneratedImage.h: Drive-by removal of unnecessary forward class definition. 60 61 * platform/graphics/ImageBuffer.h: Add NamedImageGeneratedImage as a friend class. 62 63 * platform/graphics/NamedImageGeneratedImage.cpp: New class. Calls into the Theme to render the artwork. 64 (WebCore::NamedImageGeneratedImage::NamedImageGeneratedImage): 65 (WebCore::NamedImageGeneratedImage::draw): 66 (WebCore::NamedImageGeneratedImage::drawPattern): 67 * platform/graphics/NamedImageGeneratedImage.h: 68 69 * platform/ios/ThemeIOS.h: Inherit from ThemeCocoa. 70 * platform/mac/ThemeMac.h: Ditto. 71 1 72 2015-06-18 KyungTae Kim <ktf.kim@samsung.com> and Myles C. Maxfield <mmaxfield@apple.com> 2 73 -
trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj
r185459 r185731 8204 8204 <ClCompile Include="..\platform\graphics\LayoutRect.cpp" /> 8205 8205 <ClCompile Include="..\platform\graphics\MediaPlayer.cpp" /> 8206 <ClCompile Include="..\platform\graphics\NamedImageGeneratedImage.cpp" /> 8206 8207 <ClCompile Include="..\platform\graphics\Path.cpp" /> 8207 8208 <ClCompile Include="..\platform\graphics\PathTraversalState.cpp" /> … … 9622 9623 </ClCompile> 9623 9624 <ClCompile Include="..\css\CSSMediaRule.cpp"> 9625 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> 9626 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> 9627 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|Win32'">true</ExcludedFromBuild> 9628 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|x64'">true</ExcludedFromBuild> 9629 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|Win32'">true</ExcludedFromBuild> 9630 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|x64'">true</ExcludedFromBuild> 9631 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> 9632 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> 9633 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|Win32'">true</ExcludedFromBuild> 9634 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|x64'">true</ExcludedFromBuild> 9635 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild> 9636 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild> 9637 </ClCompile> 9638 <ClCompile Include="..\css\CSSNamedImageValue.cpp"> 9624 9639 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> 9625 9640 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> … … 20000 20015 <ClInclude Include="..\platform\graphics\LayoutSize.h" /> 20001 20016 <ClInclude Include="..\platform\graphics\MediaPlayer.h" /> 20017 <ClInclude Include="..\platform\graphics\NamedImageGeneratedImage.h" /> 20002 20018 <ClInclude Include="..\platform\graphics\NativeImagePtr.h" /> 20003 20019 <ClInclude Include="..\platform\graphics\Path.h" /> … … 20505 20521 <ClInclude Include="..\css\CSSLineBoxContainValue.h" /> 20506 20522 <ClInclude Include="..\css\CSSMediaRule.h" /> 20523 <ClInclude Include="..\css\CSSNamedImageValue.h" /> 20507 20524 <ClInclude Include="..\css\CSSOMUtils.h" /> 20508 20525 <ClInclude Include="..\css\CSSPageRule.h" /> -
trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters
r185459 r185731 1378 1378 <Filter>platform\graphics</Filter> 1379 1379 </ClCompile> 1380 <ClCompile Include="..\platform\graphics\NamedImageGeneratedImage.cpp"> 1381 <Filter>platform\graphics</Filter> 1382 </ClCompile> 1380 1383 <ClCompile Include="..\platform\graphics\Path.cpp"> 1381 1384 <Filter>platform\graphics</Filter> … … 2147 2150 </ClCompile> 2148 2151 <ClCompile Include="..\css\CSSMediaRule.cpp"> 2152 <Filter>css</Filter> 2153 </ClCompile> 2154 <ClCompile Include="..\css\CSSNamedImageValue.cpp"> 2149 2155 <Filter>css</Filter> 2150 2156 </ClCompile> … … 8503 8509 <Filter>platform\graphics</Filter> 8504 8510 </ClInclude> 8511 <ClInclude Include="..\platform\graphics\NamedImageGeneratedImage.h"> 8512 <Filter>platform\graphics</Filter> 8513 </ClInclude> 8505 8514 <ClInclude Include="..\platform\graphics\NativeImagePtr.h"> 8506 8515 <Filter>platform\graphics</Filter> … … 9125 9134 </ClInclude> 9126 9135 <ClInclude Include="..\css\CSSMediaRule.h"> 9136 <Filter>css</Filter> 9137 </ClInclude> 9138 <ClInclude Include="..\css\CSSNamedImageValue.h"> 9127 9139 <Filter>css</Filter> 9128 9140 </ClInclude> -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r185679 r185731 1225 1225 31078CC91880AAC9008099DC /* JSOESTextureHalfFloatLinear.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31078CC51880AAAA008099DC /* JSOESTextureHalfFloatLinear.cpp */; }; 1226 1226 31078CCA1880AACE008099DC /* JSOESTextureHalfFloatLinear.h in Headers */ = {isa = PBXBuildFile; fileRef = 31078CC61880AAAA008099DC /* JSOESTextureHalfFloatLinear.h */; }; 1227 310D71951B335C9D009C7B73 /* ThemeCocoa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 310D71931B335C9D009C7B73 /* ThemeCocoa.cpp */; }; 1228 310D71961B335C9E009C7B73 /* ThemeCocoa.h in Headers */ = {isa = PBXBuildFile; fileRef = 310D71941B335C9D009C7B73 /* ThemeCocoa.h */; }; 1227 1229 311C08BD18EB7CAF00B65615 /* mediaControlsApple.css in Resources */ = {isa = PBXBuildFile; fileRef = CDC1DD4117CC2C48008CB55D /* mediaControlsApple.css */; }; 1228 1230 311C08BE18EB7CAF00B65615 /* mediaControlsApple.js in Resources */ = {isa = PBXBuildFile; fileRef = CDE6560E17CA6E7600526BA7 /* mediaControlsApple.js */; }; … … 1247 1249 3146FE7418442370001A937C /* JSOESTextureFloatLinear.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3146FE7018442367001A937C /* JSOESTextureFloatLinear.cpp */; }; 1248 1250 3146FE7518442370001A937C /* JSOESTextureFloatLinear.h in Headers */ = {isa = PBXBuildFile; fileRef = 3146FE7118442367001A937C /* JSOESTextureFloatLinear.h */; }; 1251 314BE3A11B30F6B700141982 /* CSSNamedImageValue.h in Headers */ = {isa = PBXBuildFile; fileRef = 314BE3A01B30F6B700141982 /* CSSNamedImageValue.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1252 314BE3A31B30F6D100141982 /* CSSNamedImageValue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 314BE3A21B30F6D100141982 /* CSSNamedImageValue.cpp */; }; 1253 314BE3A61B3103FB00141982 /* NamedImageGeneratedImage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 314BE3A41B3103FB00141982 /* NamedImageGeneratedImage.cpp */; }; 1254 314BE3A71B3103FB00141982 /* NamedImageGeneratedImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 314BE3A51B3103FB00141982 /* NamedImageGeneratedImage.h */; }; 1249 1255 316023F01532C40C00D50FF4 /* Dictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 316023EF1532C40C00D50FF4 /* Dictionary.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1250 1256 31611E5A0E1C4DE000F6A579 /* JSWebKitCSSTransformValue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31611E580E1C4DE000F6A579 /* JSWebKitCSSTransformValue.cpp */; }; … … 8384 8390 31078CC51880AAAA008099DC /* JSOESTextureHalfFloatLinear.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSOESTextureHalfFloatLinear.cpp; sourceTree = "<group>"; }; 8385 8391 31078CC61880AAAA008099DC /* JSOESTextureHalfFloatLinear.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSOESTextureHalfFloatLinear.h; sourceTree = "<group>"; }; 8392 310D71931B335C9D009C7B73 /* ThemeCocoa.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ThemeCocoa.cpp; sourceTree = "<group>"; }; 8393 310D71941B335C9D009C7B73 /* ThemeCocoa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ThemeCocoa.h; sourceTree = "<group>"; }; 8386 8394 311C08BC18E35D6800B65615 /* ControlStates.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ControlStates.h; sourceTree = "<group>"; }; 8387 8395 31288E6E0E3005D6003619AE /* CSSKeyframeRule.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CSSKeyframeRule.cpp; sourceTree = "<group>"; }; … … 8403 8411 3146FE7018442367001A937C /* JSOESTextureFloatLinear.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSOESTextureFloatLinear.cpp; sourceTree = "<group>"; }; 8404 8412 3146FE7118442367001A937C /* JSOESTextureFloatLinear.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSOESTextureFloatLinear.h; sourceTree = "<group>"; }; 8413 314BE3A01B30F6B700141982 /* CSSNamedImageValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = CSSNamedImageValue.h; sourceTree = "<group>"; }; 8414 314BE3A21B30F6D100141982 /* CSSNamedImageValue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; path = CSSNamedImageValue.cpp; sourceTree = "<group>"; }; 8415 314BE3A41B3103FB00141982 /* NamedImageGeneratedImage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NamedImageGeneratedImage.cpp; sourceTree = "<group>"; }; 8416 314BE3A51B3103FB00141982 /* NamedImageGeneratedImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NamedImageGeneratedImage.h; sourceTree = "<group>"; }; 8405 8417 316023EF1532C40C00D50FF4 /* Dictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Dictionary.h; sourceTree = "<group>"; }; 8406 8418 31611E540E1C4D4A00F6A579 /* WebKitCSSTransformValue.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebKitCSSTransformValue.idl; sourceTree = "<group>"; }; … … 18995 19007 5D5975B219635F1100D00878 /* SystemVersion.mm */, 18996 19008 7CC564B918BAC720001B9652 /* TelephoneNumberDetectorCocoa.cpp */, 19009 310D71931B335C9D009C7B73 /* ThemeCocoa.cpp */, 19010 310D71941B335C9D009C7B73 /* ThemeCocoa.h */, 18997 19011 46DB7D561B20FE3C005651B2 /* VNodeTrackerCocoa.cpp */, 18998 19012 ); … … 20957 20971 CD641EB11818F5ED00EE4C41 /* MediaSourcePrivate.h */, 20958 20972 CDDC1E7918A952F30027A9D4 /* MediaSourcePrivateClient.h */, 20973 314BE3A41B3103FB00141982 /* NamedImageGeneratedImage.cpp */, 20974 314BE3A51B3103FB00141982 /* NamedImageGeneratedImage.h */, 20959 20975 6B3480920EEF50D400AC1B41 /* NativeImagePtr.h */, 20960 20976 B27535520B053814002CE64F /* Path.cpp */, … … 22497 22513 A80E6CD90A1989CA007FB8C5 /* CSSMediaRule.h */, 22498 22514 85C56CA20AA89C1000D95755 /* CSSMediaRule.idl */, 22515 314BE3A01B30F6B700141982 /* CSSNamedImageValue.h */, 22516 314BE3A21B30F6D100141982 /* CSSNamedImageValue.cpp */, 22499 22517 F98FFF4211A2676200F548E8 /* CSSOMUtils.cpp */, 22500 22518 F98FFF4311A2676200F548E8 /* CSSOMUtils.h */, … … 24124 24142 E125F82C1822CFEC00D84CD9 /* CryptoAlgorithmSHA1.h in Headers */, 24125 24143 E19AC3EF1824DC7900349426 /* CryptoAlgorithmSHA224.h in Headers */, 24144 314BE3A11B30F6B700141982 /* CSSNamedImageValue.h in Headers */, 24126 24145 E19AC3F11824DC7900349426 /* CryptoAlgorithmSHA256.h in Headers */, 24127 24146 E19AC3F31824DC7900349426 /* CryptoAlgorithmSHA384.h in Headers */, … … 25361 25380 1AE2AE5C0A1D26F200B42B25 /* JSHTMLMenuElement.h in Headers */, 25362 25381 A80E7A180A19C3D6007FB8C5 /* JSHTMLMetaElement.h in Headers */, 25382 314BE3A71B3103FB00141982 /* NamedImageGeneratedImage.h in Headers */, 25363 25383 A7BBE26711AFB3F20005EA03 /* JSHTMLMeterElement.h in Headers */, 25364 25384 1AE2AB2A0A1CE63B00B42B25 /* JSHTMLModElement.h in Headers */, … … 26775 26795 08F859D51463F9CD0067D933 /* SVGImageCache.h in Headers */, 26776 26796 B2227A2D0D00BF220071B782 /* SVGImageElement.h in Headers */, 26797 310D71961B335C9E009C7B73 /* ThemeCocoa.h in Headers */, 26777 26798 08F859D51463F9CD0067D934 /* SVGImageForContainer.h in Headers */, 26778 26799 B28C6A2A0D00C44800334AA4 /* SVGImageLoader.h in Headers */, … … 28476 28497 93309DE5099E64920056E581 /* HTMLInterchange.cpp in Sources */, 28477 28498 A81369E5097374F600D74463 /* HTMLKeygenElement.cpp in Sources */, 28499 314BE3A61B3103FB00141982 /* NamedImageGeneratedImage.cpp in Sources */, 28478 28500 A81369E3097374F600D74463 /* HTMLLabelElement.cpp in Sources */, 28479 28501 A81369E1097374F600D74463 /* HTMLLegendElement.cpp in Sources */, … … 28518 28540 536D5A21193E18EE00CE4CAB /* HTMLSrcsetParser.cpp in Sources */, 28519 28541 A871DC260A15205700B12A68 /* HTMLStyleElement.cpp in Sources */, 28542 310D71951B335C9D009C7B73 /* ThemeCocoa.cpp in Sources */, 28520 28543 D3D4E972130C7CFE007BA540 /* HTMLSummaryElement.cpp in Sources */, 28521 28544 A871DB320A150BD600B12A68 /* HTMLTableCaptionElement.cpp in Sources */, … … 29898 29921 A84D82C211D3474800972990 /* ScriptableDocumentParser.cpp in Sources */, 29899 29922 41F1D2200EF35C2A00DA8753 /* ScriptCachedFrameData.cpp in Sources */, 29923 314BE3A31B30F6D100141982 /* CSSNamedImageValue.cpp in Sources */, 29900 29924 93B70D6F09EB0C7C009D8468 /* ScriptController.cpp in Sources */, 29901 29925 A83E1C740E49042C00140B9C /* ScriptControllerMac.mm in Sources */, -
trunk/Source/WebCore/css/CSSAllInOne.cpp
r183748 r185731 58 58 #include "CSSLineBoxContainValue.cpp" 59 59 #include "CSSMediaRule.cpp" 60 #include "CSSNamedImageValue.cpp" 60 61 #include "CSSOMUtils.cpp" 61 62 #include "CSSPageRule.cpp" -
trunk/Source/WebCore/css/CSSImageGeneratorValue.cpp
r179242 r185731 33 33 #include "CSSGradientValue.h" 34 34 #include "CSSImageValue.h" 35 #include "CSSNamedImageValue.h" 35 36 #include "GeneratedImage.h" 36 37 #include "RenderElement.h" … … 111 112 case CanvasClass: 112 113 return downcast<CSSCanvasValue>(*this).image(renderer, size); 114 case NamedImageClass: 115 return downcast<CSSNamedImageValue>(*this).image(renderer, size); 113 116 case CrossfadeClass: 114 117 return downcast<CSSCrossfadeValue>(*this).image(renderer, size); … … 130 133 case CanvasClass: 131 134 return downcast<CSSCanvasValue>(*this).isFixedSize(); 135 case NamedImageClass: 136 return downcast<CSSNamedImageValue>(*this).isFixedSize(); 132 137 case CrossfadeClass: 133 138 return downcast<CSSCrossfadeValue>(*this).isFixedSize(); … … 170 175 case CanvasClass: 171 176 return downcast<CSSCanvasValue>(*this).isPending(); 177 case NamedImageClass: 178 return downcast<CSSNamedImageValue>(*this).isPending(); 172 179 case FilterImageClass: 173 180 return downcast<CSSFilterImageValue>(*this).isPending(); … … 188 195 return downcast<CSSCrossfadeValue>(*this).knownToBeOpaque(renderer); 189 196 case CanvasClass: 197 return false; 198 case NamedImageClass: 190 199 return false; 191 200 case FilterImageClass: -
trunk/Source/WebCore/css/CSSNamedImageValue.cpp
r185729 r185731 1 1 /* 2 * Copyright (C) 20 08 Apple Inc. All Rights Reserved.2 * Copyright (C) 2015 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 21 21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 24 */ 25 25 26 #i fndef ThemeIOS_h27 # define ThemeIOS_h26 #include "config.h" 27 #include "CSSNamedImageValue.h" 28 28 29 #include "Theme.h" 29 #include "ImageBuffer.h" 30 #include "NamedImageGeneratedImage.h" 30 31 31 32 namespace WebCore { 32 33 33 class ThemeIOS : public Theme { 34 public: 35 ThemeIOS() { } 36 virtual ~ThemeIOS() { } 37 }; 34 String CSSNamedImageValue::customCSSText() const 35 { 36 return makeString("-webkit-named-image(", m_name, ')'); 37 } 38 39 PassRefPtr<Image> CSSNamedImageValue::image(RenderElement*, const FloatSize& size) 40 { 41 if (size.isEmpty()) 42 return nullptr; 43 44 m_generatedImage = NamedImageGeneratedImage::create(m_name, size); 45 46 return m_generatedImage.release(); 47 } 48 49 bool CSSNamedImageValue::equals(const CSSNamedImageValue& other) const 50 { 51 return m_name == other.m_name; 52 } 38 53 39 54 } // namespace WebCore 40 41 #endif // ThemeIOS_h -
trunk/Source/WebCore/css/CSSNamedImageValue.h
r185729 r185731 1 1 /* 2 * Copyright (C) 20 08 Apple Inc. All Rights Reserved.2 * Copyright (C) 2015 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 21 21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 24 */ 25 25 26 #ifndef ThemeIOS_h27 #define ThemeIOS_h26 #ifndef CSSNamedImageValue_h 27 #define CSSNamedImageValue_h 28 28 29 #include "Theme.h" 29 #include "CSSImageGeneratorValue.h" 30 31 #include "Image.h" 30 32 31 33 namespace WebCore { 32 34 33 class ThemeIOS : public Theme { 35 class Document; 36 37 class CSSNamedImageValue : public CSSImageGeneratorValue { 34 38 public: 35 ThemeIOS() { } 36 virtual ~ThemeIOS() { } 39 static Ref<CSSNamedImageValue> create(const String& name) 40 { 41 return adoptRef(*new CSSNamedImageValue(name)); 42 } 43 44 String customCSSText() const; 45 46 bool isFixedSize() const { return false; } 47 bool isPending() const { return false; } 48 49 PassRefPtr<Image> image(RenderElement*, const FloatSize&); 50 51 bool equals(const CSSNamedImageValue&) const; 52 53 private: 54 explicit CSSNamedImageValue(const String& name) 55 : CSSImageGeneratorValue(NamedImageClass) 56 , m_name(name) 57 { 58 } 59 60 String m_name; 61 RefPtr<Image> m_generatedImage; 37 62 }; 38 63 39 64 } // namespace WebCore 40 65 41 #endif // ThemeIOS_h 66 SPECIALIZE_TYPE_TRAITS_CSS_VALUE(CSSNamedImageValue, isNamedImageValue()) 67 68 #endif // CSSNamedImageValue_h -
trunk/Source/WebCore/css/CSSParser.cpp
r185729 r185731 51 51 #include "CSSLineBoxContainValue.h" 52 52 #include "CSSMediaRule.h" 53 #include "CSSNamedImageValue.h" 53 54 #include "CSSPageRule.h" 54 55 #include "CSSPrimitiveValue.h" … … 9153 9154 || equalIgnoringCase(value.function->name, "-webkit-canvas(") 9154 9155 || equalIgnoringCase(value.function->name, "-webkit-cross-fade(") 9155 || equalIgnoringCase(value.function->name, "-webkit-filter("); 9156 || equalIgnoringCase(value.function->name, "-webkit-filter(") 9157 || equalIgnoringCase(value.function->name, "-webkit-named-image("); 9156 9158 } 9157 9159 … … 9198 9200 if (equalIgnoringCase(parserValue.function->name, "-webkit-filter(")) 9199 9201 return parseFilterImage(valueList, value); 9202 9203 if (equalIgnoringCase(parserValue.function->name, "-webkit-named-image(")) 9204 return parseNamedImage(valueList, value); 9200 9205 9201 9206 return false; … … 9308 9313 9309 9314 canvas = CSSCanvasValue::create(value->string); 9315 return true; 9316 } 9317 9318 bool CSSParser::parseNamedImage(CSSParserValueList& valueList, RefPtr<CSSValue>& namedImage) 9319 { 9320 CSSParserValueList* args = valueList.current()->function->args.get(); 9321 if (!args || args->size() != 1) 9322 return false; 9323 9324 // The only argument is the image name. 9325 CSSParserValue* value = args->current(); 9326 if (!value || value->unit != CSSPrimitiveValue::CSS_IDENT) 9327 return false; 9328 9329 namedImage = CSSNamedImageValue::create(value->string); 9310 9330 return true; 9311 9331 } -
trunk/Source/WebCore/css/CSSParser.h
r185238 r185731 291 291 // Image generators 292 292 bool parseCanvas(CSSParserValueList&, RefPtr<CSSValue>&); 293 bool parseNamedImage(CSSParserValueList&, RefPtr<CSSValue>&); 293 294 294 295 bool parseDeprecatedGradient(CSSParserValueList&, RefPtr<CSSValue>&); -
trunk/Source/WebCore/css/CSSValue.cpp
r184315 r185731 48 48 #include "CSSInitialValue.h" 49 49 #include "CSSLineBoxContainValue.h" 50 #include "CSSNamedImageValue.h" 50 51 #include "CSSPrimitiveValue.h" 51 52 #include "CSSReflectValue.h" … … 169 170 case CanvasClass: 170 171 return compareCSSValues<CSSCanvasValue>(*this, other); 172 case NamedImageClass: 173 return compareCSSValues<CSSNamedImageValue>(*this, other); 171 174 case CursorImageClass: 172 175 return compareCSSValues<CSSCursorImageValue>(*this, other); … … 261 264 case CanvasClass: 262 265 return downcast<CSSCanvasValue>(*this).customCSSText(); 266 case NamedImageClass: 267 return downcast<CSSNamedImageValue>(*this).customCSSText(); 263 268 case CursorImageClass: 264 269 return downcast<CSSCursorImageValue>(*this).customCSSText(); … … 353 358 delete downcast<CSSCanvasValue>(this); 354 359 return; 360 case NamedImageClass: 361 delete downcast<CSSNamedImageValue>(this); 362 return; 355 363 case CursorImageClass: 356 364 delete downcast<CSSCursorImageValue>(this); -
trunk/Source/WebCore/css/CSSValue.h
r184315 r185731 80 80 bool isImageGeneratorValue() const { return m_classType >= CanvasClass && m_classType <= RadialGradientClass; } 81 81 bool isGradientValue() const { return m_classType >= LinearGradientClass && m_classType <= RadialGradientClass; } 82 bool isNamedImageValue() const { return m_classType == NamedImageClass; } 82 83 #if ENABLE(CSS_IMAGE_SET) 83 84 bool isImageSetValue() const { return m_classType == ImageSetClass; } … … 140 141 // Image generator classes. 141 142 CanvasClass, 143 NamedImageClass, 142 144 CrossfadeClass, 143 145 FilterImageClass, -
trunk/Source/WebCore/platform/Theme.cpp
r178510 r185731 26 26 #include "config.h" 27 27 #include "Theme.h" 28 29 #include "GraphicsContext.h" 28 30 29 31 namespace WebCore { … … 56 58 } 57 59 60 void Theme::drawNamedImage(const String& name, GraphicsContext* context, const FloatRect& rect) const 61 { 62 // We only handle one icon at the moment. 63 if (name != "wireless-playback") 64 return; 65 66 GraphicsContextStateSaver stateSaver(*context); 67 context->setFillColor(Color::black, ColorSpaceDeviceRGB); 68 69 // Draw a generic Wireless Playback icon. 70 71 context->scale(FloatSize(rect.size().width() / 100, rect.size().height() / 100)); 72 context->translate(8, 1); 73 74 Path outline; 75 outline.moveTo(FloatPoint(59, 58.7)); 76 outline.addBezierCurveTo(FloatPoint(58.1, 58.7), FloatPoint(57.2, 58.4), FloatPoint(56.4, 57.7)); 77 outline.addLineTo(FloatPoint(42, 45.5)); 78 outline.addLineTo(FloatPoint(27.6, 57.8)); 79 outline.addBezierCurveTo(FloatPoint(25.9, 59.2), FloatPoint(23.4, 59), FloatPoint(22, 57.3)); 80 outline.addBezierCurveTo(FloatPoint(20.6, 55.6), FloatPoint(20.8, 53.1), FloatPoint(22.5, 51.7)); 81 outline.addLineTo(FloatPoint(39.5, 37.3)); 82 outline.addBezierCurveTo(FloatPoint(41, 36), FloatPoint(43.2, 36), FloatPoint(44.7, 37.3)); 83 outline.addLineTo(FloatPoint(61.7, 51.7)); 84 outline.addBezierCurveTo(FloatPoint(63.4, 53.1), FloatPoint(63.6, 55.7), FloatPoint(62.2, 57.3)); 85 outline.addBezierCurveTo(FloatPoint(61.3, 58.2), FloatPoint(60.1, 58.7), FloatPoint(59, 58.7)); 86 outline.addLineTo(FloatPoint(59, 58.7)); 87 outline.closeSubpath(); 88 89 outline.moveTo(FloatPoint(42, 98)); 90 outline.addBezierCurveTo(FloatPoint(39.8, 98), FloatPoint(38, 96.3), FloatPoint(38, 94.2)); 91 outline.addLineTo(FloatPoint(38, 43.6)); 92 outline.addBezierCurveTo(FloatPoint(38, 41.5), FloatPoint(39.8, 39.8), FloatPoint(42, 39.8)); 93 outline.addBezierCurveTo(FloatPoint(44.2, 39.8), FloatPoint(46, 41.5), FloatPoint(46, 43.6)); 94 outline.addLineTo(FloatPoint(46, 94.2)); 95 outline.addBezierCurveTo(FloatPoint(46, 96.3), FloatPoint(44.2, 98), FloatPoint(42, 98)); 96 outline.addLineTo(FloatPoint(42, 98)); 97 outline.closeSubpath(); 98 99 outline.moveTo(FloatPoint(83.6, 41.6)); 100 outline.addBezierCurveTo(FloatPoint(83.6, 18.6), FloatPoint(65, 0), FloatPoint(42, 0)); 101 outline.addBezierCurveTo(FloatPoint(19, 0), FloatPoint(0.4, 18.6), FloatPoint(0.4, 41.6)); 102 outline.addBezierCurveTo(FloatPoint(0.4, 62.2), FloatPoint(15, 79.2), FloatPoint(35, 82.6)); 103 outline.addLineTo(FloatPoint(35, 74.5)); 104 outline.addBezierCurveTo(FloatPoint(20, 71.2), FloatPoint(8.4, 57.7), FloatPoint(8.4, 41.6)); 105 outline.addBezierCurveTo(FloatPoint(8.4, 23.1), FloatPoint(23.5, 8), FloatPoint(42, 8)); 106 outline.addBezierCurveTo(FloatPoint(60.5, 8), FloatPoint(75.5, 23.1), FloatPoint(75.5, 41.6)); 107 outline.addBezierCurveTo(FloatPoint(75.6, 57.7), FloatPoint(64, 71.2), FloatPoint(49, 74.5)); 108 outline.addLineTo(FloatPoint(49, 82.6)); 109 outline.addBezierCurveTo(FloatPoint(69, 79.3), FloatPoint(83.6, 62.2), FloatPoint(83.6, 41.6)); 110 outline.addLineTo(FloatPoint(83.6, 41.6)); 111 outline.closeSubpath(); 112 113 context->fillPath(outline); 58 114 } 115 116 } -
trunk/Source/WebCore/platform/Theme.h
r183366 r185731 30 30 #include "ControlStates.h" 31 31 #include "FontCascade.h" 32 #include "GraphicsTypes.h" 32 33 #include "IntRect.h" 33 34 #include "LengthBox.h" … … 107 108 // amount is also scaled by the zoomFactor. 108 109 virtual void inflateControlPaintRect(ControlPart, const ControlStates*, FloatRect& /*zoomedRect*/, float /*zoomFactor*/) const { } 109 110 111 virtual void drawNamedImage(const String&, GraphicsContext*, const FloatRect&) const; 112 110 113 // This method is called once, from RenderTheme::adjustDefaultStyleSheet(), to let each platform adjust 111 114 // the default CSS rules in html.css. -
trunk/Source/WebCore/platform/cocoa/ThemeCocoa.h
r185729 r185731 1 1 /* 2 * Copyright (C) 20 08Apple Inc. All Rights Reserved.2 * Copyright (C) 2015 Apple Inc. All Rights Reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 21 21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 24 */ 25 25 26 #ifndef Theme IOS_h27 #define Theme IOS_h26 #ifndef ThemeCocoa_h 27 #define ThemeCocoa_h 28 28 29 29 #include "Theme.h" … … 31 31 namespace WebCore { 32 32 33 class Theme IOS: public Theme {33 class ThemeCocoa : public Theme { 34 34 public: 35 ThemeIOS() { } 36 virtual ~ThemeIOS() { } 35 ThemeCocoa() { } 36 virtual ~ThemeCocoa() { } 37 38 virtual void drawNamedImage(const String&, GraphicsContext*, const FloatRect&) const override; 37 39 }; 38 40 39 41 } // namespace WebCore 40 42 41 #endif // Theme IOS_h43 #endif // ThemeCocoa_h -
trunk/Source/WebCore/platform/graphics/CrossfadeGeneratedImage.h
r177733 r185731 35 35 namespace WebCore { 36 36 37 class CSSCrossfadeValue;38 39 37 class CrossfadeGeneratedImage final : public GeneratedImage { 40 38 public: -
trunk/Source/WebCore/platform/graphics/ImageBuffer.h
r183960 r185731 150 150 friend class GeneratedImage; 151 151 friend class CrossfadeGeneratedImage; 152 friend class NamedImageGeneratedImage; 152 153 friend class GradientImage; 153 154 -
trunk/Source/WebCore/platform/graphics/NamedImageGeneratedImage.h
r185729 r185731 1 1 /* 2 * Copyright (C) 201 1Apple Inc. All rights reserved.2 * Copyright (C) 2015 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 24 24 */ 25 25 26 #ifndef CrossfadeGeneratedImage_h27 #define CrossfadeGeneratedImage_h26 #ifndef NamedImageGeneratedImage_h 27 #define NamedImageGeneratedImage_h 28 28 29 29 #include "FloatSize.h" 30 30 #include "GeneratedImage.h" 31 31 #include "Image.h" 32 #include "ImageObserver.h"33 32 #include <wtf/RefPtr.h> 34 33 35 34 namespace WebCore { 36 35 37 class CSSCrossfadeValue; 38 39 class CrossfadeGeneratedImage final : public GeneratedImage { 36 class NamedImageGeneratedImage final : public GeneratedImage { 40 37 public: 41 static Ref< CrossfadeGeneratedImage> create(Image* fromImage, Image* toImage, float percentage, const FloatSize& crossfadeSize, const FloatSize& size)38 static Ref<NamedImageGeneratedImage> create(String name, const FloatSize& size) 42 39 { 43 return adoptRef(*new CrossfadeGeneratedImage(fromImage, toImage, percentage, crossfadeSize, size));40 return adoptRef(*new NamedImageGeneratedImage(name, size)); 44 41 } 45 46 virtual void setContainerSize(const FloatSize&) override { }47 virtual bool usesContainerSize() const override { return false; }48 virtual bool hasRelativeWidth() const override { return false; }49 virtual bool hasRelativeHeight() const override { return false; }50 51 virtual FloatSize size() const override { return m_crossfadeSize; }52 42 53 43 protected: … … 55 45 virtual void drawPattern(GraphicsContext*, const FloatRect& srcRect, const AffineTransform& patternTransform, const FloatPoint& phase, ColorSpace styleColorSpace, CompositeOperator, const FloatRect& dstRect, BlendMode) override; 56 46 57 CrossfadeGeneratedImage(Image* fromImage, Image* toImage, float percentage, const FloatSize& crossfadeSize, const FloatSize&);47 NamedImageGeneratedImage(String name, const FloatSize&); 58 48 59 49 private: 60 void drawCrossfade(GraphicsContext*); 61 62 Image* m_fromImage; 63 Image* m_toImage; 64 65 float m_percentage; 66 FloatSize m_crossfadeSize; 50 String m_name; 67 51 }; 68 52 -
trunk/Source/WebCore/platform/ios/ThemeIOS.h
r161589 r185731 27 27 #define ThemeIOS_h 28 28 29 #include "Theme .h"29 #include "ThemeCocoa.h" 30 30 31 31 namespace WebCore { 32 32 33 class ThemeIOS : public Theme {33 class ThemeIOS : public ThemeCocoa { 34 34 public: 35 35 ThemeIOS() { } -
trunk/Source/WebCore/platform/mac/ThemeMac.h
r185272 r185731 27 27 #define ThemeMac_h 28 28 29 #include "Theme .h"29 #include "ThemeCocoa.h" 30 30 31 31 @interface NSFont(WebCoreTheme) … … 35 35 namespace WebCore { 36 36 37 class ThemeMac : public Theme {37 class ThemeMac : public ThemeCocoa { 38 38 WTF_MAKE_FAST_ALLOCATED; 39 39 public:
Note:
See TracChangeset
for help on using the changeset viewer.