Diff
Modified: trunk/Source/WebCore/ChangeLog (240173 => 240174)
--- trunk/Source/WebCore/ChangeLog 2019-01-18 22:21:02 UTC (rev 240173)
+++ trunk/Source/WebCore/ChangeLog 2019-01-18 22:26:37 UTC (rev 240174)
@@ -1,3 +1,45 @@
+2019-01-18 Daniel Bates <daba...@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 <ddkil...@apple.com>
Follow-up: Switch remaining UIKit soft-linking in WebCore, WebKitLegacy over to UIKitSoftLink.{cpp,h}
Modified: trunk/Source/WebCore/PAL/ChangeLog (240173 => 240174)
--- trunk/Source/WebCore/PAL/ChangeLog 2019-01-18 22:21:02 UTC (rev 240173)
+++ trunk/Source/WebCore/PAL/ChangeLog 2019-01-18 22:26:37 UTC (rev 240174)
@@ -1,3 +1,15 @@
+2019-01-18 Daniel Bates <daba...@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 <ddkil...@apple.com>
Switch remaining UIKit soft-linking in WebCore, WebKitLegacy over to UIKitSoftLink.{cpp,h}
Modified: trunk/Source/WebCore/PAL/pal/spi/ios/UIKitSPI.h (240173 => 240174)
--- trunk/Source/WebCore/PAL/pal/spi/ios/UIKitSPI.h 2019-01-18 22:21:02 UTC (rev 240173)
+++ trunk/Source/WebCore/PAL/pal/spi/ios/UIKitSPI.h 2019-01-18 22:26:37 UTC (rev 240174)
@@ -142,6 +142,12 @@
@end
#endif
+#endif // USE(APPLE_INTERNAL_SDK)
+
+#if ENABLE(FULL_KEYBOARD_ACCESS)
+@interface UIColor (IPI)
++ (UIColor *)keyboardFocusIndicatorColor;
+@end
#endif
#endif // PLATFORM(IOS_FAMILY)
Modified: trunk/Source/WebCore/SourcesCocoa.txt (240173 => 240174)
--- trunk/Source/WebCore/SourcesCocoa.txt 2019-01-18 22:21:02 UTC (rev 240173)
+++ trunk/Source/WebCore/SourcesCocoa.txt 2019-01-18 22:26:37 UTC (rev 240174)
@@ -389,6 +389,7 @@
platform/graphics/opentype/OpenTypeCG.cpp
+platform/ios/ColorIOS.mm
platform/ios/CursorIOS.cpp
platform/ios/Device.cpp
platform/ios/DeviceMotionClientIOS.mm
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (240173 => 240174)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2019-01-18 22:21:02 UTC (rev 240173)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2019-01-18 22:26:37 UTC (rev 240174)
@@ -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 */,
Modified: trunk/Source/WebCore/platform/graphics/GraphicsContext.h (240173 => 240174)
--- trunk/Source/WebCore/platform/graphics/GraphicsContext.h 2019-01-18 22:21:02 UTC (rev 240173)
+++ trunk/Source/WebCore/platform/graphics/GraphicsContext.h 2019-01-18 22:26:37 UTC (rev 240174)
@@ -446,7 +446,9 @@
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
Modified: trunk/Source/WebCore/platform/graphics/cocoa/GraphicsContextCocoa.mm (240173 => 240174)
--- trunk/Source/WebCore/platform/graphics/cocoa/GraphicsContextCocoa.mm 2019-01-18 22:21:02 UTC (rev 240173)
+++ trunk/Source/WebCore/platform/graphics/cocoa/GraphicsContextCocoa.mm 2019-01-18 22:26:37 UTC (rev 240174)
@@ -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,13 +59,27 @@
// 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
// -1. According to CoreGraphics, the reasoning for this behavior has been
@@ -101,11 +115,11 @@
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 @@
#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 @@
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;
Added: trunk/Source/WebCore/platform/ios/ColorIOS.h (0 => 240174)
--- trunk/Source/WebCore/platform/ios/ColorIOS.h (rev 0)
+++ trunk/Source/WebCore/platform/ios/ColorIOS.h 2019-01-18 22:26:37 UTC (rev 240174)
@@ -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
Added: trunk/Source/WebCore/platform/ios/ColorIOS.mm (0 => 240174)
--- trunk/Source/WebCore/platform/ios/ColorIOS.mm (rev 0)
+++ trunk/Source/WebCore/platform/ios/ColorIOS.mm 2019-01-18 22:26:37 UTC (rev 240174)
@@ -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
Modified: trunk/Source/WebCore/rendering/RenderElement.cpp (240173 => 240174)
--- trunk/Source/WebCore/rendering/RenderElement.cpp 2019-01-18 22:21:02 UTC (rev 240173)
+++ trunk/Source/WebCore/rendering/RenderElement.cpp 2019-01-18 22:26:37 UTC (rev 240174)
@@ -1819,7 +1819,8 @@
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(),
Modified: trunk/Source/WebCore/rendering/RenderImage.cpp (240173 => 240174)
--- trunk/Source/WebCore/rendering/RenderImage.cpp 2019-01-18 22:21:02 UTC (rev 240173)
+++ trunk/Source/WebCore/rendering/RenderImage.cpp 2019-01-18 22:26:37 UTC (rev 240174)
@@ -550,10 +550,7 @@
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 @@
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)
Modified: trunk/Source/WebCore/rendering/RenderThemeIOS.h (240173 => 240174)
--- trunk/Source/WebCore/rendering/RenderThemeIOS.h 2019-01-18 22:21:02 UTC (rev 240173)
+++ trunk/Source/WebCore/rendering/RenderThemeIOS.h 2019-01-18 22:26:37 UTC (rev 240174)
@@ -109,8 +109,11 @@
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; }
Modified: trunk/Source/WebCore/rendering/RenderThemeIOS.mm (240173 => 240174)
--- trunk/Source/WebCore/rendering/RenderThemeIOS.mm 2019-01-18 22:21:02 UTC (rev 240173)
+++ trunk/Source/WebCore/rendering/RenderThemeIOS.mm 2019-01-18 22:26:37 UTC (rev 240174)
@@ -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 @@
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;