Changeset 140863 in webkit
- Timestamp:
- Jan 25, 2013 1:54:20 PM (11 years ago)
- Location:
- trunk/Source
- Files:
-
- 1 added
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/CMakeLists.txt
r140804 r140863 2550 2550 ${WEBCORE_DIR}/css/mathml.css 2551 2551 ${WEBCORE_DIR}/css/mediaControls.css 2552 ${WEBCORE_DIR}/css/plugIns.css 2552 2553 ${WEBCORE_DIR}/css/quirks.css 2553 2554 ${WEBCORE_DIR}/css/svg.css -
trunk/Source/WebCore/ChangeLog
r140862 r140863 1 2013-01-25 Dean Jackson <dino@apple.com> 2 3 Add a user agent stylesheet for plugins 4 https://bugs.webkit.org/show_bug.cgi?id=107890 5 6 Reviewed by Alexey Proskuryakov. 7 8 As a step along the way to providing a Shadow DOM for plug-in elements, add a 9 User Agent stylesheet that is loaded when an embed or object element is 10 in the document. At the moment the stylesheet is empty. 11 12 The stylesheet can be overridden by the RenderTheme or the ChromeClient, allowing 13 ports to provide a custom appearance. This involved hooking up some virtual methods 14 on ChromeClient, the stubs of which are already implemented in WK2. 15 As a drive-by, since snapshotted plugins will need some localization I've also 16 exposed the ChromeClient methods to get text labels. 17 18 * CMakeLists.txt: Add plugIns.css. 19 * DerivedSources.make: Ditto. 20 * DerivedSources.pri: Ditto. 21 * GNUmakefile.am: Ditto. 22 * WebCore.gyp/WebCore.gyp: Ditto. 23 * WebCore.vcproj/WebCore.vcproj: Ditto. 24 * WebCore.vcxproj/WebCore.vcxproj: Ditto. 25 * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto. 26 * WebCore.xcodeproj/project.pbxproj: Ditoo. 27 * css/StyleResolver.cpp: 28 (WebCore::ensureDefaultStyleSheetsForElement): Load and inject new plugInsStyleSheet if there is an object or embed element. 29 * css/plugIns.css: Added. Empty for now. 30 * page/ChromeClient.h: New methods for querying the client. 31 (WebCore::ChromeClient::plugInStartLabelTitle): 32 (WebCore::ChromeClient::plugInStartLabelSubtitle): 33 (WebCore::ChromeClient::plugInExtraStyleSheet): 34 * rendering/RenderTheme.h: 35 (WebCore::RenderTheme::extraPlugInsStyleSheet): Allow the theme to provide an extra stylesheet. 36 1 37 2013-01-25 Eric Carlson <eric.carlson@apple.com> 2 38 -
trunk/Source/WebCore/DerivedSources.make
r140604 r140863 802 802 # user agent style sheets 803 803 804 USER_AGENT_STYLE_SHEETS = $(WebCore)/css/html.css $(WebCore)/css/quirks.css $(WebCore)/css/view-source.css $(WebCore)/css/themeWin.css $(WebCore)/css/themeWinQuirks.css 804 USER_AGENT_STYLE_SHEETS = $(WebCore)/css/html.css $(WebCore)/css/quirks.css $(WebCore)/css/view-source.css $(WebCore)/css/themeWin.css $(WebCore)/css/themeWinQuirks.css $(WebCore)/css/plugIns.css 805 805 806 806 ifeq ($(findstring ENABLE_SVG,$(FEATURE_DEFINES)), ENABLE_SVG) -
trunk/Source/WebCore/DerivedSources.pri
r140604 r140863 83 83 $$PWD/css/mediaControlsQt.css \ 84 84 $$PWD/css/mediaControlsQtFullscreen.css \ 85 $$PWD/css/plugIns.css \ 85 86 $$PWD/css/themeQtNoListboxes.css \ 86 87 $$PWD/css/mobileThemeQt.css -
trunk/Source/WebCore/GNUmakefile.am
r140431 r140863 415 415 $(WebCore)/css/mediaControls.css \ 416 416 $(WebCore)/css/mediaControlsGtk.css \ 417 $(WebCore)/css/fullscreen.css 417 $(WebCore)/css/fullscreen.css \ 418 $(WebCore)/css/plugIns.css 418 419 419 420 # new-style JavaScript bindings … … 814 815 Source/WebCore/css/mediaControls.css \ 815 816 Source/WebCore/css/mediaControlsGtk.css \ 817 Source/WebCore/css/plugIns.css \ 816 818 Source/WebCore/css/quirks.css \ 817 819 Source/WebCore/css/svg.css \ -
trunk/Source/WebCore/WebCore.gyp/WebCore.gyp
r140800 r140863 925 925 '../css/mediaControlsChromiumAndroid.css', 926 926 '../css/fullscreen.css', 927 '../css/plugIns.css', 927 928 # Skip fullscreenQuickTime. 928 929 ], -
trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj
r140745 r140863 38271 38271 </File> 38272 38272 <File 38273 RelativePath="..\css\plugIns.css" 38274 > 38275 </File> 38276 <File 38273 38277 RelativePath="..\css\PropertySetCSSStyleDeclaration.cpp" 38274 38278 > -
trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj
r140588 r140863 8404 8404 <None Include="..\css\html.css" /> 8405 8405 <None Include="..\css\mediaControls.css" /> 8406 <None Include="..\css\plugIns.css" /> 8406 8407 <None Include="..\css\quirks.css" /> 8407 8408 <None Include="..\xml\XPathGrammar.y" /> -
trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters
r140588 r140863 14268 14268 <Filter>css</Filter> 14269 14269 </None> 14270 <None Include="..\css\plugIns.css"> 14271 <Filter>css</Filter> 14272 </None> 14270 14273 <None Include="..\css\quirks.css"> 14271 14274 <Filter>css</Filter> -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r140745 r140863 8206 8206 316FE1100E6E1DA700BF6088 /* KeyframeAnimation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = KeyframeAnimation.h; path = animation/KeyframeAnimation.h; sourceTree = "<group>"; }; 8207 8207 31741AAB16635E45008A5B7E /* SimulatedClickOptions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SimulatedClickOptions.h; sourceTree = "<group>"; }; 8208 3189E6DB16B2103500386EA3 /* plugIns.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = plugIns.css; sourceTree = "<group>"; }; 8208 8209 319AE061142D6B24006563A1 /* StyleFilterData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = StyleFilterData.cpp; path = style/StyleFilterData.cpp; sourceTree = "<group>"; }; 8209 8210 319AE062142D6B24006563A1 /* StyleFilterData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StyleFilterData.h; path = style/StyleFilterData.h; sourceTree = "<group>"; }; … … 21808 21809 D3AA10F2123A98AA0092152B /* MediaQueryMatcher.h */, 21809 21810 A80E6CD10A1989CA007FB8C5 /* Pair.h */, 21811 3189E6DB16B2103500386EA3 /* plugIns.css */, 21810 21812 E4BBED0C14F4025D003F0B98 /* PropertySetCSSStyleDeclaration.cpp */, 21811 21813 E4BBED0D14F4025D003F0B98 /* PropertySetCSSStyleDeclaration.h */, -
trunk/Source/WebCore/css/StyleResolver.cpp
r140845 r140863 58 58 #include "CachedImage.h" 59 59 #include "CalculationValue.h" 60 #include "Chrome.h" 61 #include "ChromeClient.h" 60 62 #include "ContentData.h" 61 63 #include "ContextFeatures.h" … … 221 223 static StyleSheetContents* mediaControlsStyleSheet; 222 224 static StyleSheetContents* fullscreenStyleSheet; 225 static StyleSheetContents* plugInsStyleSheet; 223 226 224 227 RenderStyle* StyleResolver::s_styleNotYetAvailable; … … 593 596 } 594 597 #endif 598 599 if (!plugInsStyleSheet && (element->hasTagName(objectTag) || element->hasTagName(embedTag))) { 600 String plugInsRules = String(plugInsUserAgentStyleSheet, sizeof(plugInsUserAgentStyleSheet)) + RenderTheme::themeForPage(element->document()->page())->extraPlugInsStyleSheet() + element->document()->page()->chrome()->client()->plugInExtraStyleSheet(); 601 plugInsStyleSheet = parseUASheet(plugInsRules); 602 defaultStyle->addRulesFromSheet(plugInsStyleSheet, screenEval()); 603 } 595 604 596 605 ASSERT(defaultStyle->features().idsInRules.isEmpty()); -
trunk/Source/WebCore/page/ChromeClient.h
r140286 r140863 375 375 376 376 virtual PassRefPtr<Image> plugInStartLabelImage(RenderSnapshottedPlugIn::LabelSize) const { return 0; } 377 virtual String plugInStartLabelTitle() const { return String(); } 378 virtual String plugInStartLabelSubtitle() const { return String(); } 379 virtual String plugInExtraStyleSheet() const { return String(); } 377 380 378 381 // FIXME: Port should return true using heuristic based on scrollable(RenderBox). -
trunk/Source/WebCore/rendering/RenderTheme.h
r140778 r140863 87 87 88 88 // These methods return the theme's extra style sheets rules, to let each platform 89 // adjust the default CSS rules in html.css, quirks.css, or mediaControls.css89 // adjust the default CSS rules in html.css, quirks.css, mediaControls.css, or plugIns.css 90 90 virtual String extraDefaultStyleSheet() { return String(); } 91 91 virtual String extraQuirksStyleSheet() { return String(); } 92 virtual String extraPlugInsStyleSheet() { return String(); } 92 93 #if ENABLE(VIDEO) 93 virtual String extraMediaControlsStyleSheet() { return String(); } ;94 virtual String extraMediaControlsStyleSheet() { return String(); } 94 95 #endif 95 96 #if ENABLE(FULLSCREEN_API) 96 virtual String extraFullScreenStyleSheet() { return String(); } ;97 virtual String extraFullScreenStyleSheet() { return String(); } 97 98 #endif 98 99 -
trunk/Source/WebKit2/ChangeLog
r140861 r140863 1 2013-01-25 Dean Jackson <dino@apple.com> 2 3 Add a user agent stylesheet for plugins 4 https://bugs.webkit.org/show_bug.cgi?id=107890 5 6 Reviewed by Alexey Proskuryakov. 7 8 * WebProcess/InjectedBundle/API/c/WKBundlePage.h: Rename client callbacks 9 to have a "create" prefix, making it clear that these generate new Strings. 10 * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp: Actually call into 11 the injected bundle to retrieve any custom stylesheet for plugins. 12 (WebKit::InjectedBundlePageUIClient::plugInExtraStyleSheet): 13 * WebProcess/WebCoreSupport/WebChromeClient.h: 14 (WebChromeClient): Add override keyword onto virtual functions now 15 that the base class has implementations. 16 1 17 2013-01-25 Alexey Proskuryakov <ap@apple.com> 2 18 -
trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.h
r140769 r140863 250 250 typedef uint64_t (*WKBundlePageExceededDatabaseQuotaCallback)(WKBundlePageRef page, WKSecurityOriginRef origin, WKStringRef databaseName, WKStringRef databaseDisplayName, uint64_t currentQuotaBytes, uint64_t currentOriginUsageBytes, uint64_t currentDatabaseUsageBytes, uint64_t expectedUsageBytes, const void *clientInfo); 251 251 typedef WKImageRef (*WKBundlePagePlugInStartLabelImageCallback)(WKBundlePageLabelSize size, const void *clientInfo); 252 typedef WKStringRef (*WKBundlePagePlugIn StartLabelTitleCallback)(const void *clientInfo);253 typedef WKStringRef (*WKBundlePagePlugIn StartLabelSubtitleCallback)(const void *clientInfo);254 typedef WKStringRef (*WKBundlePagePlugIn ExtraStyleSheetCallback)(const void *clientInfo);252 typedef WKStringRef (*WKBundlePagePlugInCreateStartLabelTitleCallback)(const void *clientInfo); 253 typedef WKStringRef (*WKBundlePagePlugInCreateStartLabelSubtitleCallback)(const void *clientInfo); 254 typedef WKStringRef (*WKBundlePagePlugInCreateExtraStyleSheetCallback)(const void *clientInfo); 255 255 256 256 struct WKBundlePageUIClient { … … 278 278 WKBundlePageExceededDatabaseQuotaCallback didExceedDatabaseQuota; 279 279 WKBundlePagePlugInStartLabelImageCallback plugInStartLabelImage; 280 WKBundlePagePlugIn StartLabelTitleCallback plugInStartLabelTitle;281 WKBundlePagePlugIn StartLabelSubtitleCallback plugInStartLabelSubtitle;282 WKBundlePagePlugIn ExtraStyleSheetCallback plugInExtraStyleSheet;280 WKBundlePagePlugInCreateStartLabelTitleCallback createPlugInStartLabelTitle; 281 WKBundlePagePlugInCreateStartLabelSubtitleCallback createPlugInStartLabelSubtitle; 282 WKBundlePagePlugInCreateExtraStyleSheetCallback createPlugInExtraStyleSheet; 283 283 }; 284 284 typedef struct WKBundlePageUIClient WKBundlePageUIClient; -
trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp
r140713 r140863 196 196 String InjectedBundlePageUIClient::plugInExtraStyleSheet() const 197 197 { 198 return String(); 198 RefPtr<WebString> styleSheet = adoptRef(toImpl(m_client.createPlugInExtraStyleSheet(m_client.clientInfo))); 199 return styleSheet ? styleSheet->string() : String(); 199 200 } 200 201 -
trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h
r140713 r140863 220 220 221 221 virtual PassRefPtr<WebCore::Image> plugInStartLabelImage(WebCore::RenderSnapshottedPlugIn::LabelSize) const OVERRIDE; 222 virtual String plugInStartLabelTitle() const ;223 virtual String plugInStartLabelSubtitle() const ;224 virtual String plugInExtraStyleSheet() const ;222 virtual String plugInStartLabelTitle() const OVERRIDE; 223 virtual String plugInStartLabelSubtitle() const OVERRIDE; 224 virtual String plugInExtraStyleSheet() const OVERRIDE; 225 225 226 226 String m_cachedToolTip;
Note: See TracChangeset
for help on using the changeset viewer.