WebKit Bugzilla
Attachment 359520 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]
Patch
bug-193583-20190118121645.patch (text/plain), 20.81 KB, created by
Daniel Bates
on 2019-01-18 12:16:46 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Daniel Bates
Created:
2019-01-18 12:16:46 PST
Size:
20.81 KB
patch
obsolete
>Subversion Revision: 240041 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 0662f99be5d1c20ca38e31fa60b115f7f7799207..2f04454dbc5b258168af6ac128507ac1b72daa49 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 NOBODY (OOPS!). >+ >+ 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. We will need to fix <https://bugs.webkit.org/show_bug.cgi?id=193581> >+ to be in a positionm to untangle this. >+ >+ * 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-15 Daniel Bates <dabates@apple.com> > > [iOS] Make Window virtual key code computation match Mac >diff --git a/Source/WebCore/PAL/ChangeLog b/Source/WebCore/PAL/ChangeLog >index 5d73df4d6c03ccd140b64b86a830ab6dc753c4fc..8eea952485651fdbfb19a06f40d057c7332d513a 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 NOBODY (OOPS!). >+ >+ Forward declare some IPI. >+ >+ * pal/spi/ios/UIKitSPI.h: >+ > 2019-01-11 Daniel Bates <dabates@apple.com> > > [iOS] Keyups for non-modifier keys identified as "Dead" when not focused in a content-editable element >diff --git a/Source/WebCore/PAL/pal/spi/ios/UIKitSPI.h b/Source/WebCore/PAL/pal/spi/ios/UIKitSPI.h >index c4b8dcc86911a3746585765dee56beda759f6e46..566cdeaec4678f624cff79e6f4a7456fee224368 100644 >--- a/Source/WebCore/PAL/pal/spi/ios/UIKitSPI.h >+++ b/Source/WebCore/PAL/pal/spi/ios/UIKitSPI.h >@@ -116,4 +116,10 @@ NS_ASSUME_NONNULL_END > @end > #endif > >+#endif // USE(APPLE_INTERNAL_SDK) >+ >+#if ENABLE(FULL_KEYBOARD_ACCESS) >+@interface UIColor (IPI) >++ (UIColor *)keyboardFocusIndicatorColor; >+@end > #endif >diff --git a/Source/WebCore/WebCore.xcodeproj/project.pbxproj b/Source/WebCore/WebCore.xcodeproj/project.pbxproj >index ce49fdf3e41997091612168be35d51b8cbcf3b6e..41c9a50f68e89ae80ead3b6043a0c5a96458a232 100644 >--- a/Source/WebCore/WebCore.xcodeproj/project.pbxproj >+++ b/Source/WebCore/WebCore.xcodeproj/project.pbxproj >@@ -4203,6 +4203,8 @@ > 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 */; }; > CE4ECCD6215AA81200558C41 /* WebEvent.mm in Sources */ = {isa = PBXBuildFile; fileRef = FE0D84EA1048436E001A179E /* WebEvent.mm */; }; >+ CE5169E721F1B84700EA4F78 /* ColorIOS.h in Headers */ = {isa = PBXBuildFile; fileRef = CE5169E521F1B84700EA4F78 /* ColorIOS.h */; }; >+ CE5169EA21F1BCFB00EA4F78 /* ColorIOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = CE5169E621F1B84700EA4F78 /* ColorIOS.mm */; }; > 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 */; }; >@@ -13828,6 +13830,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>"; }; >@@ -22256,6 +22260,8 @@ > children = ( > A148328B187F506800DA63A6 /* wak */, > F48223121E386E240066FC79 /* AbstractPasteboard.h */, >+ CE5169E521F1B84700EA4F78 /* ColorIOS.h */, >+ CE5169E621F1B84700EA4F78 /* ColorIOS.mm */, > 2655414B1489AA2B000DFC5D /* CursorIOS.cpp */, > A1ED778A1BE3293F00DC1791 /* Device.cpp */, > A1ED778B1BE3294000DC1791 /* Device.h */, >@@ -28525,6 +28531,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 */, >@@ -32703,6 +32710,7 @@ > CDDE02ED18B3ED6D00CF7FF1 /* CDMSessionAVFoundationObjC.mm in Sources */, > CDDE02F018B5651300CF7FF1 /* CDMSessionAVStreamSession.mm in Sources */, > CDE5959D1BF2757100A1CBE8 /* CDMSessionMediaSourceAVFObjC.mm in Sources */, >+ CE5169EA21F1BCFB00EA4F78 /* ColorIOS.mm in Sources */, > A14090FB1AA51E1D0091191A /* ContentFilterUnblockHandlerCocoa.mm in Sources */, > 07AFF4231EFB144900B545B3 /* CoreAudioCaptureSourceIOS.mm in Sources */, > 46C696CC1E7205FC00597937 /* CPUMonitor.cpp in Sources */, >diff --git a/Source/WebCore/platform/graphics/GraphicsContext.h b/Source/WebCore/platform/graphics/GraphicsContext.h >index 1c366d51cbd74d0bcedec5790df2ed71aacc7a96..9592143500def675b6e53149749f6fc3905c34ab 100644 >--- a/Source/WebCore/platform/graphics/GraphicsContext.h >+++ b/Source/WebCore/platform/graphics/GraphicsContext.h >@@ -446,7 +446,10 @@ 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. Once we fix <https://bugs.webkit.org/show_bug.cgi?id=193581> >+ // we will be in a position to only call these functions for Mac. >+#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..69860ee9d3feccbf7275cfcd39ff8dfbcd93a0f4 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,10 @@ void GraphicsContext::drawFocusRing(const Path& path, float width, float offset, > #endif > } > >-#if PLATFORM(MAC) >+// FIXME: The following functions should only be compiled for Mac. Once we fix <https://bugs.webkit.org/show_bug.cgi?id=193581> >+// we will be in a position to only call these functions for Mac. >+#if ENABLE(FULL_KEYBOARD_ACCESS) >+ > void GraphicsContext::drawFocusRing(const Path& path, double timeOffset, bool& needsRedraw, const Color& color) > { > if (paintingDisabled() || path.isNull()) >@@ -149,11 +166,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..c11fded6a9454bb61b9d557cb66b3ab31803653d >--- /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. >+ 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..3641dd9ae2dd7ba986d5c115024f9f591e498c12 100644 >--- a/Source/WebCore/rendering/RenderElement.cpp >+++ b/Source/WebCore/rendering/RenderElement.cpp >@@ -1819,7 +1819,10 @@ 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. Once we fix <https://bugs.webkit.org/show_bug.cgi?id=193581> >+ // we can extract the platform-independent shrink-wrapping logic and only guard the calls to the repaint-aware drawFocusRing() >+ // variants in PLATFORM(MAC). >+#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 ee1e226831cf6497c04df3b5077ad7579885e889..8f3e4c6b079233d27df549df7a1b60dcbac3d514 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" >@@ -1130,11 +1131,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