WebKit Bugzilla
Attachment 359539 Details for
Bug 193583
: CSS auto focus-ring outlines don't render on iOS
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
To Land
bug-193583-20190118142542.patch (text/plain), 20.45 KB, created by
Daniel Bates
on 2019-01-18 14:25:43 PST
(
hide
)
Description:
To Land
Filename:
MIME Type:
Creator:
Daniel Bates
Created:
2019-01-18 14:25:43 PST
Size:
20.45 KB
patch
obsolete
>Subversion Revision: 240171 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 924e421ef40b8f6643928072f8e5e73fa4e122ab..d7f847638bfb767ae534378a0b1652f36ba6df6e 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,45 @@ >+2019-01-18 Daniel Bates <dabates@apple.com> >+ >+ CSS auto focus-ring outlines don't render on iOS >+ https://bugs.webkit.org/show_bug.cgi?id=193583 >+ <rdar://problem/6508697> >+ >+ Reviewed by Simon Fraser. >+ >+ Implement support for drawing focus rings on iOS when built with ENABLE(FULL_KEYBOARD_ACCESS) >+ enabled. >+ >+ For now the focus ring drawing for iOS is tangled up into the Mac-specific code to draw >+ animated focus rings. I will fix this in <https://bugs.webkit.org/show_bug.cgi?id=193591>. >+ >+ * SourcesCocoa.txt: Add file ColorIOS.mm. >+ * WebCore.xcodeproj/project.pbxproj: Add files ColorIOS.{h, mm}. >+ >+ * platform/graphics/GraphicsContext.h: >+ * platform/graphics/cocoa/GraphicsContextCocoa.mm: >+ (WebCore::drawFocusRingAtTime): >+ (WebCore::GraphicsContext::drawFocusRing): >+ Compile focus ring drawing code when building with ENABLE(FULL_KEYBOARD_ACCESS) enabled. >+ This is always enabled on Mac. >+ >+ * platform/ios/ColorIOS.h: Added. >+ * platform/ios/ColorIOS.mm: Added. >+ (WebCore::colorFromUIColor): Convert a UIColor to a WebCore::Color. >+ >+ * rendering/RenderElement.cpp: >+ (WebCore::RenderElement::paintFocusRing): >+ * rendering/RenderImage.cpp: >+ (WebCore::RenderImage::paintAreaElementFocusRing): >+ Compile focus ring drawing code when building with ENABLE(FULL_KEYBOARD_ACCESS) enabled. >+ This is always enabled on Mac. >+ >+ * rendering/RenderThemeIOS.h: >+ * rendering/RenderThemeIOS.mm: >+ (WebCore::RenderThemeIOS::platformFocusRingColor const): Implement this override for iOS. >+ (WebCore::RenderThemeIOS::supportsFocusRing const): Implement this override for iOS to always >+ return false - the iOS theme code does not support painting focus rings. By returning false we >+ will use the platform-independent, non-theme code path to draw focus rings. >+ > 2019-01-18 David Kilzer <ddkilzer@apple.com> > > Follow-up: Switch remaining UIKit soft-linking in WebCore, WebKitLegacy over to UIKitSoftLink.{cpp,h} >diff --git a/Source/WebCore/PAL/ChangeLog b/Source/WebCore/PAL/ChangeLog >index d45d8ba058d296f431ffc859870e619feb21cf92..2d8584bf0aa33c828c555bb98e7757e3534ab1d8 100644 >--- a/Source/WebCore/PAL/ChangeLog >+++ b/Source/WebCore/PAL/ChangeLog >@@ -1,3 +1,15 @@ >+2019-01-18 Daniel Bates <dabates@apple.com> >+ >+ CSS auto focus-ring outlines don't render on iOS >+ https://bugs.webkit.org/show_bug.cgi?id=193583 >+ <rdar://problem/6508697> >+ >+ Reviewed by Simon Fraser. >+ >+ Forward declare some IPI. >+ >+ * pal/spi/ios/UIKitSPI.h: >+ > 2019-01-18 David Kilzer <ddkilzer@apple.com> > > Switch remaining UIKit soft-linking in WebCore, WebKitLegacy over to UIKitSoftLink.{cpp,h} >diff --git a/Source/WebCore/PAL/pal/spi/ios/UIKitSPI.h b/Source/WebCore/PAL/pal/spi/ios/UIKitSPI.h >index 7f3165a778962de305f8b80625bae3b52b86b58c..e1d46ac955352a4037784cc12c871e61a0737cb7 100644 >--- a/Source/WebCore/PAL/pal/spi/ios/UIKitSPI.h >+++ b/Source/WebCore/PAL/pal/spi/ios/UIKitSPI.h >@@ -142,6 +142,12 @@ NS_ASSUME_NONNULL_END > @end > #endif > >+#endif // USE(APPLE_INTERNAL_SDK) >+ >+#if ENABLE(FULL_KEYBOARD_ACCESS) >+@interface UIColor (IPI) >++ (UIColor *)keyboardFocusIndicatorColor; >+@end > #endif > > #endif // PLATFORM(IOS_FAMILY) >diff --git a/Source/WebCore/SourcesCocoa.txt b/Source/WebCore/SourcesCocoa.txt >index f08b3c872143d55105e4dfa426d4cc60871012ed..27d93a4005fb9b21a374545d4bf187a5f44c75cc 100644 >--- a/Source/WebCore/SourcesCocoa.txt >+++ b/Source/WebCore/SourcesCocoa.txt >@@ -389,6 +389,7 @@ platform/graphics/opengl/TemporaryOpenGLSetting.cpp > > platform/graphics/opentype/OpenTypeCG.cpp > >+platform/ios/ColorIOS.mm > platform/ios/CursorIOS.cpp > platform/ios/Device.cpp > platform/ios/DeviceMotionClientIOS.mm >diff --git a/Source/WebCore/WebCore.xcodeproj/project.pbxproj b/Source/WebCore/WebCore.xcodeproj/project.pbxproj >index dfc2db4aff90e98271f736755137d4f550badef3..dfaec5c875a9895291c73d8fc333019e20ec3ed1 100644 >--- a/Source/WebCore/WebCore.xcodeproj/project.pbxproj >+++ b/Source/WebCore/WebCore.xcodeproj/project.pbxproj >@@ -4200,6 +4200,7 @@ > CE08C3D2152B599A0021B8C2 /* AlternativeTextController.h in Headers */ = {isa = PBXBuildFile; fileRef = CE08C3D0152B599A0021B8C2 /* AlternativeTextController.h */; settings = {ATTRIBUTES = (); }; }; > CE1866451F72E5B400A0CAB6 /* MarkedText.h in Headers */ = {isa = PBXBuildFile; fileRef = CE1866431F72E5B400A0CAB6 /* MarkedText.h */; settings = {ATTRIBUTES = (Private, ); }; }; > CE2849871CA360DF00B4A57F /* ContentSecurityPolicyDirectiveNames.h in Headers */ = {isa = PBXBuildFile; fileRef = CE2849861CA360DF00B4A57F /* ContentSecurityPolicyDirectiveNames.h */; }; >+ CE5169E721F1B84700EA4F78 /* ColorIOS.h in Headers */ = {isa = PBXBuildFile; fileRef = CE5169E521F1B84700EA4F78 /* ColorIOS.h */; }; > CE5FA255209E48C50051D700 /* ContentSecurityPolicyClient.h in Headers */ = {isa = PBXBuildFile; fileRef = CE5FA253209E48C50051D700 /* ContentSecurityPolicyClient.h */; settings = {ATTRIBUTES = (Private, ); }; }; > CE6DADFA1C591E6A003F6A88 /* ContentSecurityPolicyResponseHeaders.h in Headers */ = {isa = PBXBuildFile; fileRef = CE6DADF81C591E6A003F6A88 /* ContentSecurityPolicyResponseHeaders.h */; settings = {ATTRIBUTES = (Private, ); }; }; > CE799F981C6A46BC0097B518 /* ContentSecurityPolicySourceList.h in Headers */ = {isa = PBXBuildFile; fileRef = CE799F961C6A46BC0097B518 /* ContentSecurityPolicySourceList.h */; }; >@@ -13834,6 +13835,8 @@ > CE1866431F72E5B400A0CAB6 /* MarkedText.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MarkedText.h; sourceTree = "<group>"; }; > CE2849861CA360DF00B4A57F /* ContentSecurityPolicyDirectiveNames.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ContentSecurityPolicyDirectiveNames.h; path = csp/ContentSecurityPolicyDirectiveNames.h; sourceTree = "<group>"; }; > CE2849881CA3614600B4A57F /* ContentSecurityPolicyDirectiveNames.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ContentSecurityPolicyDirectiveNames.cpp; path = csp/ContentSecurityPolicyDirectiveNames.cpp; sourceTree = "<group>"; }; >+ CE5169E521F1B84700EA4F78 /* ColorIOS.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ColorIOS.h; sourceTree = "<group>"; }; >+ CE5169E621F1B84700EA4F78 /* ColorIOS.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = ColorIOS.mm; sourceTree = "<group>"; }; > CE5CB1B314EDAB6F00BB2795 /* EventSender.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EventSender.h; sourceTree = "<group>"; }; > CE5FA253209E48C50051D700 /* ContentSecurityPolicyClient.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ContentSecurityPolicyClient.h; path = csp/ContentSecurityPolicyClient.h; sourceTree = "<group>"; }; > CE68C8FF21924EE5001230B3 /* PlatformKeyboardEvent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = PlatformKeyboardEvent.cpp; sourceTree = "<group>"; }; >@@ -22265,6 +22268,8 @@ > children = ( > A148328B187F506800DA63A6 /* wak */, > F48223121E386E240066FC79 /* AbstractPasteboard.h */, >+ CE5169E521F1B84700EA4F78 /* ColorIOS.h */, >+ CE5169E621F1B84700EA4F78 /* ColorIOS.mm */, > 2655414B1489AA2B000DFC5D /* CursorIOS.cpp */, > A1ED778A1BE3293F00DC1791 /* Device.cpp */, > A1ED778B1BE3294000DC1791 /* Device.h */, >@@ -28539,6 +28544,7 @@ > F48D2AA52159740D00C6752B /* ColorCocoa.h in Headers */, > 3103B7DF1DB01567008BB890 /* ColorHash.h in Headers */, > F55B3DB41251F12D003EF269 /* ColorInputType.h in Headers */, >+ CE5169E721F1B84700EA4F78 /* ColorIOS.h in Headers */, > EDE3A5000C7A430600956A37 /* ColorMac.h in Headers */, > 9382DF5810A8D5C900925652 /* ColorSpace.h in Headers */, > BCDD454E1236C95C009A7985 /* ColumnInfo.h in Headers */, >diff --git a/Source/WebCore/platform/graphics/GraphicsContext.h b/Source/WebCore/platform/graphics/GraphicsContext.h >index 1c366d51cbd74d0bcedec5790df2ed71aacc7a96..816caea7b1b007fb03296d3cecb5d76888de9df7 100644 >--- a/Source/WebCore/platform/graphics/GraphicsContext.h >+++ b/Source/WebCore/platform/graphics/GraphicsContext.h >@@ -446,7 +446,9 @@ public: > > void drawFocusRing(const Vector<FloatRect>&, float width, float offset, const Color&); > void drawFocusRing(const Path&, float width, float offset, const Color&); >-#if PLATFORM(MAC) >+ >+ // FIXME: The following functions should only be compiled for Mac. See <https://bugs.webkit.org/show_bug.cgi?id=193591>. >+#if PLATFORM(COCOA) > void drawFocusRing(const Path&, double timeOffset, bool& needsRedraw, const Color&); > void drawFocusRing(const Vector<FloatRect>&, double timeOffset, bool& needsRedraw, const Color&); > #endif >diff --git a/Source/WebCore/platform/graphics/cocoa/GraphicsContextCocoa.mm b/Source/WebCore/platform/graphics/cocoa/GraphicsContextCocoa.mm >index 068aefa0ab5ad98301a0c1ec4cd14b13571e179e..702d6c53a4a8b382de5307be407d68fa57bbe845 100644 >--- a/Source/WebCore/platform/graphics/cocoa/GraphicsContextCocoa.mm >+++ b/Source/WebCore/platform/graphics/cocoa/GraphicsContextCocoa.mm >@@ -1,5 +1,5 @@ > /* >- * Copyright (C) 2003-2017 Apple Inc. All rights reserved. >+ * Copyright (C) 2003-2019 Apple Inc. All rights reserved. > * > * Redistribution and use in source and binary forms, with or without > * modification, are permitted provided that the following conditions >@@ -59,12 +59,26 @@ namespace WebCore { > // NSColor, NSBezierPath, and NSGraphicsContext calls do not raise exceptions > // so we don't block exceptions. > >-#if PLATFORM(MAC) >+#if ENABLE(FULL_KEYBOARD_ACCESS) > > static bool drawFocusRingAtTime(CGContextRef context, NSTimeInterval timeOffset, const Color& color) > { >+#if USE(APPKIT) > CGFocusRingStyle focusRingStyle; > BOOL needsRepaint = NSInitializeCGFocusRingStyleForTime(NSFocusRingOnly, &focusRingStyle, timeOffset); >+#else >+ BOOL needsRepaint = NO; >+ UNUSED_PARAM(timeOffset); >+ >+ CGFocusRingStyle focusRingStyle; >+ focusRingStyle.version = 0; >+ focusRingStyle.tint = kCGFocusRingTintBlue; >+ focusRingStyle.ordering = kCGFocusRingOrderingNone; >+ focusRingStyle.alpha = kCGFocusRingAlphaDefault; >+ focusRingStyle.radius = kCGFocusRingRadiusDefault; >+ focusRingStyle.threshold = kCGFocusRingThresholdDefault; >+ focusRingStyle.bounds = CGRectZero; >+#endif > > // We want to respect the CGContext clipping and also not overpaint any > // existing focus ring. The way to do this is set accumulate to >@@ -101,11 +115,11 @@ static bool drawFocusRingToContextAtTime(CGContextRef context, CGPathRef focusRi > return drawFocusRingAtTime(context, std::numeric_limits<double>::max(), color); > } > >-#endif // PLATFORM(MAC) >+#endif // ENABLE(FULL_KEYBOARD_ACCESS) > > void GraphicsContext::drawFocusRing(const Path& path, float width, float offset, const Color& color) > { >-#if PLATFORM(MAC) >+#if ENABLE(FULL_KEYBOARD_ACCESS) > if (paintingDisabled() || path.isNull()) > return; > >@@ -123,7 +137,9 @@ void GraphicsContext::drawFocusRing(const Path& path, float width, float offset, > #endif > } > >-#if PLATFORM(MAC) >+// FIXME: The following functions should only be compiled for Mac. See <https://bugs.webkit.org/show_bug.cgi?id=193591>. >+#if ENABLE(FULL_KEYBOARD_ACCESS) >+ > void GraphicsContext::drawFocusRing(const Path& path, double timeOffset, bool& needsRedraw, const Color& color) > { > if (paintingDisabled() || path.isNull()) >@@ -149,11 +165,12 @@ void GraphicsContext::drawFocusRing(const Vector<FloatRect>& rects, double timeO > > needsRedraw = drawFocusRingToContextAtTime(platformContext(), focusRingPath.get(), timeOffset, color); > } >+ > #endif > > void GraphicsContext::drawFocusRing(const Vector<FloatRect>& rects, float width, float offset, const Color& color) > { >-#if PLATFORM(MAC) >+#if ENABLE(FULL_KEYBOARD_ACCESS) > if (paintingDisabled()) > return; > >diff --git a/Source/WebCore/platform/ios/ColorIOS.h b/Source/WebCore/platform/ios/ColorIOS.h >new file mode 100644 >index 0000000000000000000000000000000000000000..ef0778538cb010a14079864af89a5c282a8a8bc8 >--- /dev/null >+++ b/Source/WebCore/platform/ios/ColorIOS.h >@@ -0,0 +1,40 @@ >+/* >+ * Copyright (C) 2019 Apple Inc. All rights reserved. >+ * >+ * Redistribution and use in source and binary forms, with or without >+ * modification, are permitted provided that the following conditions >+ * are met: >+ * 1. Redistributions of source code must retain the above copyright >+ * notice, this list of conditions and the following disclaimer. >+ * 2. Redistributions in binary form must reproduce the above copyright >+ * notice, this list of conditions and the following disclaimer in the >+ * documentation and/or other materials provided with the distribution. >+ * >+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' >+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, >+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS >+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR >+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF >+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS >+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN >+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) >+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF >+ * THE POSSIBILITY OF SUCH DAMAGE. >+ */ >+ >+#pragma once >+ >+#include "Color.h" >+ >+#if PLATFORM(IOS_FAMILY) >+ >+OBJC_CLASS UIColor; >+ >+namespace WebCore { >+ >+Color colorFromUIColor(UIColor *); >+ >+} // namespace WebCore >+ >+#endif >diff --git a/Source/WebCore/platform/ios/ColorIOS.mm b/Source/WebCore/platform/ios/ColorIOS.mm >new file mode 100644 >index 0000000000000000000000000000000000000000..2f89a46638aebe87c740e6cce3389eda13a7c128 >--- /dev/null >+++ b/Source/WebCore/platform/ios/ColorIOS.mm >@@ -0,0 +1,51 @@ >+/* >+ * Copyright (C) 2019 Apple Inc. All rights reserved. >+ * >+ * Redistribution and use in source and binary forms, with or without >+ * modification, are permitted provided that the following conditions >+ * are met: >+ * 1. Redistributions of source code must retain the above copyright >+ * notice, this list of conditions and the following disclaimer. >+ * 2. Redistributions in binary form must reproduce the above copyright >+ * notice, this list of conditions and the following disclaimer in the >+ * documentation and/or other materials provided with the distribution. >+ * >+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' >+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, >+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS >+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR >+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF >+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS >+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN >+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) >+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF >+ * THE POSSIBILITY OF SUCH DAMAGE. >+ */ >+ >+#import "config.h" >+#import "ColorIOS.h" >+ >+#if PLATFORM(IOS_FAMILY) >+ >+#import <UIKit/UIKit.h> >+ >+namespace WebCore { >+ >+Color colorFromUIColor(UIColor *color) >+{ >+ // FIXME: Make this work for a UIColor that was created from a pattern or a DispayP3 color. >+ CGFloat redComponent; >+ CGFloat greenComponent; >+ CGFloat blueComponent; >+ CGFloat alpha; >+ >+ [color getRed:&redComponent green:&greenComponent blue:&blueComponent alpha:&alpha]; >+ >+ static const double scaleFactor = nextafter(256.0, 0.0); >+ return makeRGBA(scaleFactor * redComponent, scaleFactor * greenComponent, scaleFactor * blueComponent, scaleFactor * alpha); >+} >+ >+} // namespace WebCore >+ >+#endif >diff --git a/Source/WebCore/rendering/RenderElement.cpp b/Source/WebCore/rendering/RenderElement.cpp >index 3954452586b54ee92e8c530421902a974c94a15d..15c9a35287b3f9d306b67ef5aed0a72035f5e930 100644 >--- a/Source/WebCore/rendering/RenderElement.cpp >+++ b/Source/WebCore/rendering/RenderElement.cpp >@@ -1819,7 +1819,8 @@ void RenderElement::paintFocusRing(PaintInfo& paintInfo, const RenderStyle& styl > rect.inflate(outlineOffset); > pixelSnappedFocusRingRects.append(snapRectToDevicePixels(rect, deviceScaleFactor)); > } >-#if PLATFORM(MAC) >+ // FIXME: The following code should only be compiled for Mac. See <https://bugs.webkit.org/show_bug.cgi?id=193591>. >+#if PLATFORM(COCOA) > bool needsRepaint; > if (style.hasBorderRadius()) { > Path path = PathUtilities::pathWithShrinkWrappedRectsForOutline(pixelSnappedFocusRingRects, style.border(), outlineOffset, style.direction(), style.writingMode(), >diff --git a/Source/WebCore/rendering/RenderImage.cpp b/Source/WebCore/rendering/RenderImage.cpp >index 76441ead18d486ef55819cd16c61d18a956fa541..183a9341948cb2df06c8d3bbbb346255754fb157 100644 >--- a/Source/WebCore/rendering/RenderImage.cpp >+++ b/Source/WebCore/rendering/RenderImage.cpp >@@ -550,10 +550,7 @@ void RenderImage::paint(PaintInfo& paintInfo, const LayoutPoint& paintOffset) > > void RenderImage::paintAreaElementFocusRing(PaintInfo& paintInfo, const LayoutPoint& paintOffset) > { >-#if PLATFORM(IOS_FAMILY) >- UNUSED_PARAM(paintInfo); >- UNUSED_PARAM(paintOffset); >-#else >+#if ENABLE(FULL_KEYBOARD_ACCESS) > if (document().printing() || !frame().selection().isFocusedAndActive()) > return; > >@@ -597,8 +594,11 @@ void RenderImage::paintAreaElementFocusRing(PaintInfo& paintInfo, const LayoutPo > page().focusController().setFocusedElementNeedsRepaint(); > #else > paintInfo.context().drawFocusRing(path, outlineWidth, areaElementStyle->outlineOffset(), areaElementStyle->visitedDependentColorWithColorFilter(CSSPropertyOutlineColor)); >-#endif >-#endif >+#endif // PLATFORM(MAC) >+#else >+ UNUSED_PARAM(paintInfo); >+ UNUSED_PARAM(paintOffset); >+#endif // ENABLE(FULL_KEYBOARD_ACCESS) > } > > void RenderImage::areaElementFocusChanged(HTMLAreaElement* element) >diff --git a/Source/WebCore/rendering/RenderThemeIOS.h b/Source/WebCore/rendering/RenderThemeIOS.h >index a5a30ac2a941bb2c358f44a7a6ff7c6bf5f20048..39346c145d89c279d0ad2512db50cfe8d52e5164 100644 >--- a/Source/WebCore/rendering/RenderThemeIOS.h >+++ b/Source/WebCore/rendering/RenderThemeIOS.h >@@ -109,8 +109,11 @@ protected: > void adjustSearchFieldStyle(StyleResolver&, RenderStyle&, const Element*) const override; > bool paintSearchFieldDecorations(const RenderObject&, const PaintInfo&, const IntRect&) override; > >+ bool supportsFocusRing(const RenderStyle&) const final; >+ > Color platformActiveSelectionBackgroundColor(OptionSet<StyleColor::Options>) const override; > Color platformInactiveSelectionBackgroundColor(OptionSet<StyleColor::Options>) const override; >+ Color platformFocusRingColor(OptionSet<StyleColor::Options>) const final; > > #if ENABLE(TOUCH_EVENTS) > Color platformTapHighlightColor() const override { return 0x4D1A1A1A; } >diff --git a/Source/WebCore/rendering/RenderThemeIOS.mm b/Source/WebCore/rendering/RenderThemeIOS.mm >index 60949916b3881c4c8852a83712752c2426fd43e4..7c6c77e0905be18c4326701422bb3198703ed03f 100644 >--- a/Source/WebCore/rendering/RenderThemeIOS.mm >+++ b/Source/WebCore/rendering/RenderThemeIOS.mm >@@ -32,6 +32,7 @@ > #import "CSSPrimitiveValue.h" > #import "CSSToLengthConversionData.h" > #import "CSSValueKeywords.h" >+#import "ColorIOS.h" > #import "DateComponents.h" > #import "Document.h" > #import "File.h" >@@ -1122,11 +1123,21 @@ Color RenderThemeIOS::platformInactiveSelectionBackgroundColor(OptionSet<StyleCo > return Color::transparent; > } > >+Color RenderThemeIOS::platformFocusRingColor(OptionSet<StyleColor::Options>) const >+{ >+ return colorFromUIColor([getUIColorClass() keyboardFocusIndicatorColor]); >+} >+ > bool RenderThemeIOS::shouldHaveSpinButton(const HTMLInputElement&) const > { > return false; > } > >+bool RenderThemeIOS::supportsFocusRing(const RenderStyle&) const >+{ >+ return false; >+} >+ > FontCascadeDescription& RenderThemeIOS::cachedSystemFontDescription(CSSValueID valueID) const > { > static NeverDestroyed<FontCascadeDescription> systemFont;
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 193583
:
359520
|
359522
| 359539