Diff
Modified: trunk/Source/WebCore/ChangeLog (284629 => 284630)
--- trunk/Source/WebCore/ChangeLog 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebCore/ChangeLog 2021-10-21 18:25:04 UTC (rev 284630)
@@ -1,3 +1,116 @@
+2021-10-19 Darin Adler <da...@apple.com>
+
+ [Cocoa] Merge and simplify the nsColor family of functions
+ https://bugs.webkit.org/show_bug.cgi?id=231992
+
+ Reviewed by Anders Carlsson.
+
+ - Added a CocoaColor type that is NS/UIColor.
+ - Renamed platformColor to cocoaColor to be less vague.
+ - Removed nsColor.
+ - Added cocoaColorOrNil.
+ - Merged colorFromNSColor and colorFromUIColor into a single
+ colorFromCocoaColor function.
+
+ * WebCore.xcodeproj/project.pbxproj: Removed ColorIOS.h.
+
+ * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
+ (AXAttributeStringSetStyle): Use cocoaColor instead of nsColor.
+
+ * editing/cocoa/FontAttributesCocoa.mm:
+ (WebCore::FontAttributes::createDictionary const): Use cocoaColor
+ instead of platformColor.
+ * editing/cocoa/FontShadowCocoa.mm:
+ (WebCore::FontShadow::createShadow const): Ditto.
+
+ * editing/cocoa/HTMLConverter.mm:
+ (HTMLConverter::_colorForElement): Use cocoaColor instead of
+ platformColor.
+ (WebCore::editingAttributedString): Use cocoaColor instead of
+ nsColor.
+
+ * platform/cocoa/DragImageCocoa.mm:
+ (WebCore::createDragImageForLink): Use colorFromCocoaColor
+ instead of colorFromNSColor.
+ (WebCore::createDragImageForColor): Use cocoaColor instead of
+ nsColor.
+
+ * platform/graphics/cocoa/ColorCocoa.h: Added an include of
+ "Color.h" so this functions as an addition to that header
+ instead of something independent. Added a WebCore::CocoaColor
+ type, like the one we already have in WebKit, to cut down on
+ the need to do #if and #else so much. Renamed the
+ platformColor function to cocoaColor, added a
+ cocoaColorOrNil function, and renamed both colorFromNSColor
+ and colorFromUIColor to colorFromCocoaColor and moved here.
+
+ * platform/graphics/cocoa/ColorCocoa.mm:
+ (WebCore::cocoaColor): Renamed the iOS platformColor to this.
+ (WebCore::cocoaColorOrNil): Added.
+
+ * platform/graphics/mac/ColorMac.h: Include of "ColorCocoa.h"
+ instead of "Color.h" here. Moved colorFromNSColor and nsColor.
+
+ * platform/graphics/mac/ColorMac.mm:
+ (WebCore::colorFromCocoaColor): Renamed from colorFromNSColor.
+ (WebCore::cocoaColor): Renamed from nsColor.
+
+ * platform/ios/ColorIOS.h: Removed.
+
+ * platform/ios/ColorIOS.mm:
+ (WebCore::colorFromCocoaColor): Renamed from colorFromUIColor.
+
+ * platform/ios/PlatformPasteboardIOS.mm:
+ (WebCore::PlatformPasteboard::setColor): Use cocoaColor instead
+ of +[UIColor colorWithCGColor:] and cachedCGColor.
+
+ * platform/mac/LocalDefaultSystemAppearance.mm:
+ (WebCore::LocalDefaultSystemAppearance::LocalDefaultSystemAppearance):
+ Use cocoaColor instead of nsColor.
+
+ * platform/mac/PlatformPasteboardMac.mm:
+ (WebCore::PlatformPasteboard::color): Use colorFromCocoaColor
+ instead of colorFromNSColor.
+ (WebCore::PlatformPasteboard::setColor): Use cocoaColor instead
+ of nsColor.
+
+ * platform/mac/ThemeMac.mm:
+ (WebCore::drawCellFocusRingWithFrameAtTime): Use colorFromCocoaColor
+ instead of colorFromNSColor.
+ * platform/mac/WebCoreNSFontManagerExtras.mm:
+ (WebCore::computedFontAttributeChanges): DItto.
+
+ * rendering/RenderThemeIOS.mm:
+ (WebCore::RenderThemeIOS::systemFocusRingColor): Use
+ colorFromCocoaColor instead of colorFromUIColor.
+ (WebCore::attachmentActionColor): Use cocoaColor instead of
+ +[UIColor colorWithCGColor:] and cachedCGColor and return a
+ RetainPtr to avoid autorelease.
+ (WebCore::RenderAttachmentInfo::RenderAttachmentInfo): Update for
+ the user of the RetainPtr.
+
+ * rendering/RenderThemeMac.mm:
+ (WebCore::RenderThemeMac::platformActiveSelectionBackgroundColor const):
+ Use colorFromCocoaColor instead of colorFromNSColor.
+ (WebCore::RenderThemeMac::platformInactiveSelectionBackgroundColor const): Ditto.
+ (WebCore::RenderThemeMac::platformActiveSelectionForegroundColor const): Ditto.
+ (WebCore::RenderThemeMac::platformInactiveSelectionForegroundColor const): Ditto.
+ (WebCore::RenderThemeMac::platformActiveListBoxSelectionBackgroundColor const): Ditto.
+ (WebCore::RenderThemeMac::platformInactiveListBoxSelectionBackgroundColor const): Ditto.
+ (WebCore::RenderThemeMac::platformActiveListBoxSelectionForegroundColor const): Ditto.
+ (WebCore::RenderThemeMac::platformInactiveListBoxSelectionForegroundColor const): Ditto.
+ (WebCore::RenderThemeMac::platformFocusRingColor const): Ditto.
+ (WebCore::RenderThemeMac::platformTextSearchHighlightColor const): Ditto.
+ (WebCore::RenderThemeMac::platformDefaultButtonTextColor const): Ditto.
+ (WebCore::titleTextColorForAttachment): Ditto.
+ (WebCore::AttachmentLayout::layOutTitle): Removed incorrect cast that said it
+ was casting a CGColorRef to an NSColor *, which are not toll-free bridged. This
+ code just needs a CGColorRef in a dictionary, so we just need to cast to id,
+ not to a NSColor *.
+ (WebCore::AttachmentLayout::layOutSubtitle): Ditto.
+ (WebCore::paintAttachmentTitleBackground): Use colorFromCocoaColor instead of
+ colorFromNSColor.
+
2021-10-21 Devin Rousso <drou...@apple.com>
[css-values-4] Support small (sv*), large (lv*) and dynamic (dv*) viewport units
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (284629 => 284630)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2021-10-21 18:25:04 UTC (rev 284630)
@@ -4603,7 +4603,6 @@
CE212158240DBEB9006ED443 /* TextPlaceholderElement.h in Headers */ = {isa = PBXBuildFile; fileRef = CE212153240DBD30006ED443 /* TextPlaceholderElement.h */; settings = {ATTRIBUTES = (Private, ); }; };
CE2849871CA360DF00B4A57F /* ContentSecurityPolicyDirectiveNames.h in Headers */ = {isa = PBXBuildFile; fileRef = CE2849861CA360DF00B4A57F /* ContentSecurityPolicyDirectiveNames.h */; };
CE45946F24123C960078019F /* AlternativeTextContextController.h in Headers */ = {isa = PBXBuildFile; fileRef = CE45946424121A050078019F /* AlternativeTextContextController.h */; settings = {ATTRIBUTES = (Private, ); }; };
- CE5169E721F1B84700EA4F78 /* ColorIOS.h in Headers */ = {isa = PBXBuildFile; fileRef = CE5169E521F1B84700EA4F78 /* ColorIOS.h */; settings = {ATTRIBUTES = (Private, ); }; };
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 */; };
@@ -15556,7 +15555,6 @@
CE2849881CA3614600B4A57F /* ContentSecurityPolicyDirectiveNames.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ContentSecurityPolicyDirectiveNames.cpp; path = csp/ContentSecurityPolicyDirectiveNames.cpp; sourceTree = "<group>"; };
CE45946424121A050078019F /* AlternativeTextContextController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AlternativeTextContextController.h; sourceTree = "<group>"; };
CE45946524121A050078019F /* AlternativeTextContextController.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = AlternativeTextContextController.mm; 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>"; };
@@ -25032,7 +25030,6 @@
children = (
A148328B187F506800DA63A6 /* wak */,
F48223121E386E240066FC79 /* AbstractPasteboard.h */,
- CE5169E521F1B84700EA4F78 /* ColorIOS.h */,
CE5169E621F1B84700EA4F78 /* ColorIOS.mm */,
A1ED778A1BE3293F00DC1791 /* Device.cpp */,
A1ED778B1BE3294000DC1791 /* Device.h */,
@@ -32096,7 +32093,6 @@
CD3EEF3C25799FAB006563BB /* ColorGamut.h in Headers */,
3103B7DF1DB01567008BB890 /* ColorHash.h in Headers */,
F55B3DB41251F12D003EF269 /* ColorInputType.h in Headers */,
- CE5169E721F1B84700EA4F78 /* ColorIOS.h in Headers */,
BC4A23EC25EC160200AAC630 /* ColorLuminance.h in Headers */,
EDE3A5000C7A430600956A37 /* ColorMac.h in Headers */,
7CAC6AE9247F082F00E61D59 /* ColorMatrix.h in Headers */,
Modified: trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm (284629 => 284630)
--- trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -855,8 +855,8 @@
AXAttributeStringSetFont(attrString, NSAccessibilityFontTextAttribute, style.fontCascade().primaryFont().getCTFont(), range);
// set basic colors
- AXAttributeStringSetColor(attrString, NSAccessibilityForegroundColorTextAttribute, nsColor(style.visitedDependentColor(CSSPropertyColor)).get(), range);
- AXAttributeStringSetColor(attrString, NSAccessibilityBackgroundColorTextAttribute, nsColor(style.visitedDependentColor(CSSPropertyBackgroundColor)).get(), range);
+ AXAttributeStringSetColor(attrString, NSAccessibilityForegroundColorTextAttribute, cocoaColor(style.visitedDependentColor(CSSPropertyColor)).get(), range);
+ AXAttributeStringSetColor(attrString, NSAccessibilityBackgroundColorTextAttribute, cocoaColor(style.visitedDependentColor(CSSPropertyBackgroundColor)).get(), range);
// set super/sub scripting
VerticalAlign alignment = style.verticalAlign();
@@ -891,12 +891,12 @@
if (decor & TextDecoration::Underline) {
AXAttributeStringSetNumber(attrString, NSAccessibilityUnderlineTextAttribute, @YES, range);
- AXAttributeStringSetColor(attrString, NSAccessibilityUnderlineColorTextAttribute, nsColor(decorationStyles.underlineColor).get(), range);
+ AXAttributeStringSetColor(attrString, NSAccessibilityUnderlineColorTextAttribute, cocoaColor(decorationStyles.underlineColor).get(), range);
}
if (decor & TextDecoration::LineThrough) {
AXAttributeStringSetNumber(attrString, NSAccessibilityStrikethroughTextAttribute, @YES, range);
- AXAttributeStringSetColor(attrString, NSAccessibilityStrikethroughColorTextAttribute, nsColor(decorationStyles.linethroughColor).get(), range);
+ AXAttributeStringSetColor(attrString, NSAccessibilityStrikethroughColorTextAttribute, cocoaColor(decorationStyles.linethroughColor).get(), range);
}
}
Modified: trunk/Source/WebCore/editing/cocoa/FontAttributesCocoa.mm (284629 => 284630)
--- trunk/Source/WebCore/editing/cocoa/FontAttributesCocoa.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebCore/editing/cocoa/FontAttributesCocoa.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -91,10 +91,10 @@
attributes[NSFontAttributeName] = font.get();
if (foregroundColor.isValid())
- attributes[NSForegroundColorAttributeName] = platformColor(foregroundColor).get();
+ attributes[NSForegroundColorAttributeName] = cocoaColor(foregroundColor).get();
if (backgroundColor.isValid())
- attributes[NSBackgroundColorAttributeName] = platformColor(backgroundColor).get();
+ attributes[NSBackgroundColorAttributeName] = cocoaColor(backgroundColor).get();
if (fontShadow.color.isValid() && (!fontShadow.offset.isZero() || fontShadow.blurRadius))
attributes[NSShadowAttributeName] = fontShadow.createShadow().get();
Modified: trunk/Source/WebCore/editing/cocoa/FontShadowCocoa.mm (284629 => 284630)
--- trunk/Source/WebCore/editing/cocoa/FontShadowCocoa.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebCore/editing/cocoa/FontShadowCocoa.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -42,7 +42,7 @@
#elif PLATFORM(IOS_FAMILY)
auto shadow = adoptNS([PAL::getNSShadowClass() new]);
#endif
- [shadow setShadowColor:platformColor(color).get()];
+ [shadow setShadowColor:cocoaColor(color).get()];
[shadow setShadowOffset:offset];
[shadow setShadowBlurRadius:blurRadius];
return shadow;
Modified: trunk/Source/WebCore/editing/cocoa/HTMLConverter.mm (284629 => 284630)
--- trunk/Source/WebCore/editing/cocoa/HTMLConverter.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebCore/editing/cocoa/HTMLConverter.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -910,7 +910,7 @@
Color result = _caches->colorPropertyValueForNode(element, propertyId);
if (!result.isValid())
return nil;
- auto platformResult = platformColor(result);
+ auto platformResult = cocoaColor(result);
if ([[PlatformColorClass clearColor] isEqual:platformResult.get()] || ([platformResult alphaComponent] == 0.0))
return nil;
return platformResult;
@@ -2426,13 +2426,13 @@
Color foregroundColor = style.visitedDependentColorWithColorFilter(CSSPropertyColor);
if (foregroundColor.isVisible())
- [attrs setObject:nsColor(foregroundColor).get() forKey:NSForegroundColorAttributeName];
+ [attrs setObject:cocoaColor(foregroundColor).get() forKey:NSForegroundColorAttributeName];
else
[attrs removeObjectForKey:NSForegroundColorAttributeName];
Color backgroundColor = style.visitedDependentColorWithColorFilter(CSSPropertyBackgroundColor);
if (backgroundColor.isVisible())
- [attrs setObject:nsColor(backgroundColor).get() forKey:NSBackgroundColorAttributeName];
+ [attrs setObject:cocoaColor(backgroundColor).get() forKey:NSBackgroundColorAttributeName];
else
[attrs removeObjectForKey:NSBackgroundColorAttributeName];
Modified: trunk/Source/WebCore/platform/cocoa/DragImageCocoa.mm (284629 => 284630)
--- trunk/Source/WebCore/platform/cocoa/DragImageCocoa.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebCore/platform/cocoa/DragImageCocoa.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -302,7 +302,7 @@
GraphicsContextCG context([NSGraphicsContext currentContext].CGContext);
- context.fillRoundedRect(FloatRoundedRect(layout.boundingRect, FloatRoundedRect::Radii(linkImageCornerRadius)), colorFromNSColor([NSColor controlBackgroundColor]));
+ context.fillRoundedRect(FloatRoundedRect(layout.boundingRect, FloatRoundedRect::Radii(linkImageCornerRadius)), colorFromCocoaColor([NSColor controlBackgroundColor]));
for (const auto& label : layout.labels) {
GraphicsContextStateSaver saver(context);
@@ -324,7 +324,7 @@
NSBezierPath *path = [NSBezierPath bezierPathWithRoundedRect:NSMakeRect(0, 0, ColorSwatchWidth, ColorSwatchWidth) xRadius:ColorSwatchCornerRadius yRadius:ColorSwatchCornerRadius];
[path setLineWidth:ColorSwatchStrokeSize];
- [nsColor(color) setFill];
+ [cocoaColor(color) setFill];
[path fill];
[[NSColor quaternaryLabelColor] setStroke];
Modified: trunk/Source/WebCore/platform/graphics/cocoa/ColorCocoa.h (284629 => 284630)
--- trunk/Source/WebCore/platform/graphics/cocoa/ColorCocoa.h 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebCore/platform/graphics/cocoa/ColorCocoa.h 2021-10-21 18:25:04 UTC (rev 284630)
@@ -25,8 +25,15 @@
#pragma once
+#import "Color.h"
+
+#if USE(APPKIT)
OBJC_CLASS NSColor;
+#endif
+
+#if PLATFORM(IOS_FAMILY)
OBJC_CLASS UIColor;
+#endif
namespace WebCore {
@@ -33,11 +40,15 @@
class Color;
#if USE(APPKIT)
-WEBCORE_EXPORT RetainPtr<NSColor> platformColor(const Color&);
+using CocoaColor = NSColor;
#endif
#if PLATFORM(IOS_FAMILY)
-WEBCORE_EXPORT RetainPtr<UIColor> platformColor(const Color&);
+using CocoaColor = UIColor;
#endif
+WEBCORE_EXPORT RetainPtr<CocoaColor> cocoaColor(const Color&);
+WEBCORE_EXPORT RetainPtr<CocoaColor> cocoaColorOrNil(const Color&); // Returns nil if the color is invalid.
+WEBCORE_EXPORT Color colorFromCocoaColor(CocoaColor *);
+
} // namespace WebCore
Modified: trunk/Source/WebCore/platform/graphics/cocoa/ColorCocoa.mm (284629 => 284630)
--- trunk/Source/WebCore/platform/graphics/cocoa/ColorCocoa.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebCore/platform/graphics/cocoa/ColorCocoa.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -26,8 +26,6 @@
#import "config.h"
#import "ColorCocoa.h"
-#import "ColorMac.h"
-
#if PLATFORM(IOS_FAMILY)
#import <pal/ios/UIKitSoftLink.h>
#import <pal/spi/ios/UIKitSPI.h>
@@ -35,22 +33,18 @@
namespace WebCore {
-#if USE(APPKIT)
+#if PLATFORM(IOS_FAMILY)
-RetainPtr<NSColor> platformColor(const Color& color)
+RetainPtr<UIColor> cocoaColor(const Color& color)
{
- return nsColor(color);
+ return [PAL::getUIColorClass() _disambiguated_due_to_CIImage_colorWithCGColor:cachedCGColor(color).get()];
}
#endif
-#if PLATFORM(IOS_FAMILY)
-
-RetainPtr<UIColor> platformColor(const Color& color)
+RetainPtr<CocoaColor> cocoaColorOrNil(const Color& color)
{
- return [PAL::getUIColorClass() _disambiguated_due_to_CIImage_colorWithCGColor:cachedCGColor(color).get()];
+ return color.isValid() ? cocoaColor(color) : nil;
}
-#endif
-
} // namespace WebCore
Modified: trunk/Source/WebCore/platform/graphics/mac/ColorMac.h (284629 => 284630)
--- trunk/Source/WebCore/platform/graphics/mac/ColorMac.h 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebCore/platform/graphics/mac/ColorMac.h 2021-10-21 18:25:04 UTC (rev 284630)
@@ -28,17 +28,13 @@
#pragma once
-#include "Color.h"
+#include "ColorCocoa.h"
#if USE(APPKIT)
-OBJC_CLASS NSColor;
-
namespace WebCore {
-WEBCORE_EXPORT Color colorFromNSColor(NSColor *);
Color semanticColorFromNSColor(NSColor *);
-WEBCORE_EXPORT RetainPtr<NSColor> nsColor(const Color&);
WEBCORE_EXPORT bool usesTestModeFocusRingColor();
WEBCORE_EXPORT void setUsesTestModeFocusRingColor(bool);
Modified: trunk/Source/WebCore/platform/graphics/mac/ColorMac.mm (284629 => 284630)
--- trunk/Source/WebCore/platform/graphics/mac/ColorMac.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebCore/platform/graphics/mac/ColorMac.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -103,7 +103,7 @@
return convertColor<SRGBA<uint8_t>>(SRGBA<float> { static_cast<float>(redComponent), static_cast<float>(greenComponent), static_cast<float>(blueComponent), static_cast<float>(alpha) });
}
-Color colorFromNSColor(NSColor *color)
+Color colorFromCocoaColor(NSColor *color)
{
return makeSimpleColorFromNSColor(color);
}
@@ -113,7 +113,7 @@
return Color(makeSimpleColorFromNSColor(color), Color::Flags::Semantic);
}
-RetainPtr<NSColor> nsColor(const Color& color)
+RetainPtr<NSColor> cocoaColor(const Color& color)
{
if (auto srgb = color.tryGetAsSRGBABytes()) {
switch (PackedColor::RGBA { *srgb }.value) {
Deleted: trunk/Source/WebCore/platform/ios/ColorIOS.h (284629 => 284630)
--- trunk/Source/WebCore/platform/ios/ColorIOS.h 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebCore/platform/ios/ColorIOS.h 2021-10-21 18:25:04 UTC (rev 284630)
@@ -1,40 +0,0 @@
-/*
- * 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 {
-
-WEBCORE_EXPORT Color colorFromUIColor(UIColor *);
-
-} // namespace WebCore
-
-#endif
Modified: trunk/Source/WebCore/platform/ios/ColorIOS.mm (284629 => 284630)
--- trunk/Source/WebCore/platform/ios/ColorIOS.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebCore/platform/ios/ColorIOS.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -24,7 +24,7 @@
*/
#import "config.h"
-#import "ColorIOS.h"
+#import "ColorCocoa.h"
#if PLATFORM(IOS_FAMILY)
@@ -32,7 +32,7 @@
namespace WebCore {
-Color colorFromUIColor(UIColor *color)
+Color colorFromCocoaColor(UIColor *color)
{
if (!color)
return { };
Modified: trunk/Source/WebCore/platform/ios/PlatformPasteboardIOS.mm (284629 => 284630)
--- trunk/Source/WebCore/platform/ios/PlatformPasteboardIOS.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebCore/platform/ios/PlatformPasteboardIOS.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -28,7 +28,7 @@
#if PLATFORM(IOS_FAMILY)
-#import "Color.h"
+#import "ColorCocoa.h"
#import "Image.h"
#import "Pasteboard.h"
#import "RuntimeApplicationChecks.h"
@@ -421,8 +421,7 @@
int64_t PlatformPasteboard::setColor(const Color& color)
{
auto representationsToRegister = adoptNS([[WebItemProviderRegistrationInfoList alloc] init]);
- UIColor *uiColor = [PAL::getUIColorClass() colorWithCGColor:cachedCGColor(color).get()];
- [representationsToRegister addData:[NSKeyedArchiver archivedDataWithRootObject:uiColor requiringSecureCoding:NO error:nil] forType:UIColorPboardType];
+ [representationsToRegister addData:[NSKeyedArchiver archivedDataWithRootObject:cocoaColor(color).get() requiringSecureCoding:NO error:nil] forType:UIColorPboardType];
registerItemToPasteboard(representationsToRegister.get(), m_pasteboard.get());
return 0;
}
Modified: trunk/Source/WebCore/platform/mac/LocalDefaultSystemAppearance.mm (284629 => 284630)
--- trunk/Source/WebCore/platform/mac/LocalDefaultSystemAppearance.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebCore/platform/mac/LocalDefaultSystemAppearance.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -46,7 +46,7 @@
NSAppearance *appearance = [NSAppearance appearanceNamed:m_usingDarkAppearance ? NSAppearanceNameDarkAqua : NSAppearanceNameAqua];
if (tintColor.isValid())
- appearance = [appearance appearanceByApplyingTintColor:nsColor(tintColor).get()];
+ appearance = [appearance appearanceByApplyingTintColor:cocoaColor(tintColor).get()];
[NSAppearance setCurrentAppearance:appearance];
ALLOW_DEPRECATED_DECLARATIONS_END
Modified: trunk/Source/WebCore/platform/mac/PlatformPasteboardMac.mm (284629 => 284630)
--- trunk/Source/WebCore/platform/mac/PlatformPasteboardMac.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebCore/platform/mac/PlatformPasteboardMac.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -305,7 +305,7 @@
Color PlatformPasteboard::color()
{
- return colorFromNSColor([NSColor colorFromPasteboard:m_pasteboard.get()]);
+ return colorFromCocoaColor([NSColor colorFromPasteboard:m_pasteboard.get()]);
}
URL PlatformPasteboard::url()
@@ -369,8 +369,7 @@
int64_t PlatformPasteboard::setColor(const Color& color)
{
- auto pasteboardColor = nsColor(color);
- [pasteboardColor writeToPasteboard:m_pasteboard.get()];
+ [cocoaColor(color) writeToPasteboard:m_pasteboard.get()];
return changeCount();
}
Modified: trunk/Source/WebCore/platform/mac/ThemeMac.mm (284629 => 284630)
--- trunk/Source/WebCore/platform/mac/ThemeMac.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebCore/platform/mac/ThemeMac.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -381,7 +381,7 @@
// FIXME: This color should be shared with RenderThemeMac. For now just use the same NSColor color.
// The color is expected to be opaque, since CoreGraphics will apply opacity when drawing (because opacity is normally animated).
- auto color = colorFromNSColor([NSColor keyboardFocusIndicatorColor]).opaqueColor();
+ auto color = colorFromCocoaColor([NSColor keyboardFocusIndicatorColor]).opaqueColor();
auto style = adoptCF(CGStyleCreateFocusRingWithColor(&focusRingStyle, cachedCGColor(color).get()));
CGContextSetStyle(cgContext, style.get());
Modified: trunk/Source/WebCore/platform/mac/WebCoreNSFontManagerExtras.mm (284629 => 284630)
--- trunk/Source/WebCore/platform/mac/WebCoreNSFontManagerExtras.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebCore/platform/mac/WebCoreNSFontManagerExtras.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -127,18 +127,18 @@
NSColor *convertedBackgroundColorA = [convertedAttributesA objectForKey:NSBackgroundColorAttributeName];
if (convertedBackgroundColorA == [convertedAttributesB objectForKey:NSBackgroundColorAttributeName])
- changes.setBackgroundColor(colorFromNSColor(convertedBackgroundColorA ?: NSColor.clearColor));
+ changes.setBackgroundColor(colorFromCocoaColor(convertedBackgroundColorA ?: NSColor.clearColor));
changes.setFontChanges(computedFontChanges(fontManager, originalFontA, [convertedAttributesA objectForKey:NSFontAttributeName], [convertedAttributesB objectForKey:NSFontAttributeName]));
NSColor *convertedForegroundColorA = [convertedAttributesA objectForKey:NSForegroundColorAttributeName];
if (convertedForegroundColorA == [convertedAttributesB objectForKey:NSForegroundColorAttributeName])
- changes.setForegroundColor(colorFromNSColor(convertedForegroundColorA ?: NSColor.blackColor));
+ changes.setForegroundColor(colorFromCocoaColor(convertedForegroundColorA ?: NSColor.blackColor));
NSShadow *convertedShadow = [convertedAttributesA objectForKey:NSShadowAttributeName];
if (convertedShadow) {
FloatSize offset { LayoutUnit::fromFloatRound(static_cast<float>(convertedShadow.shadowOffset.width)).toFloat(), LayoutUnit::fromFloatRound(static_cast<float>(convertedShadow.shadowOffset.height)).toFloat() };
- changes.setShadow({ colorFromNSColor(convertedShadow.shadowColor ?: NSColor.blackColor), offset, convertedShadow.shadowBlurRadius });
+ changes.setShadow({ colorFromCocoaColor(convertedShadow.shadowColor ?: NSColor.blackColor), offset, convertedShadow.shadowBlurRadius });
} else if (![convertedAttributesB objectForKey:NSShadowAttributeName])
changes.setShadow({ });
Modified: trunk/Source/WebCore/rendering/RenderThemeIOS.mm (284629 => 284630)
--- trunk/Source/WebCore/rendering/RenderThemeIOS.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebCore/rendering/RenderThemeIOS.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -34,7 +34,7 @@
#import "CSSValueKey.h"
#import "CSSValueKeywords.h"
#import "ColorBlending.h"
-#import "ColorIOS.h"
+#import "ColorCocoa.h"
#import "DateComponents.h"
#import "Document.h"
#import "DrawGlyphsRecorder.h"
@@ -1392,7 +1392,7 @@
{
if (!cachedFocusRingColor().has_value()) {
// FIXME: Should be using -keyboardFocusIndicatorColor. For now, work around <rdar://problem/50838886>.
- cachedFocusRingColor() = colorFromUIColor([PAL::getUIColorClass() systemBlueColor]);
+ cachedFocusRingColor() = colorFromCocoaColor([PAL::getUIColorClass() systemBlueColor]);
}
return *cachedFocusRingColor();
}
@@ -1630,9 +1630,9 @@
return adoptCF(CTFontCreateWithFontDescriptor(emphasizedFontDescriptor.get(), 0, nullptr));
}
-static UIColor *attachmentActionColor(const RenderAttachment& attachment)
+static RetainPtr<UIColor> attachmentActionColor(const RenderAttachment& attachment)
{
- return [PAL::getUIColorClass() colorWithCGColor:cachedCGColor(attachment.style().visitedDependentColor(CSSPropertyColor)).get()];
+ return cocoaColor(attachment.style().visitedDependentColor(CSSPropertyColor));
}
static RetainPtr<CTFontRef> attachmentTitleFont()
@@ -1870,7 +1870,7 @@
yOffset += iconRect.height() + attachmentItemMargin;
}
} else
- buildWrappedLines(action, attachmentActionFont().get(), attachmentActionColor(attachment), attachmentWrappingTextMaximumLineCount);
+ buildWrappedLines(action, attachmentActionFont().get(), attachmentActionColor(attachment).get(), attachmentWrappingTextMaximumLineCount);
bool forceSingleLineTitle = !action.isEmpty() || !subtitle.isEmpty() || hasProgress;
buildWrappedLines(title, attachmentTitleFont().get(), attachmentTitleColor(), forceSingleLineTitle ? 1 : attachmentWrappingTextMaximumLineCount);
Modified: trunk/Source/WebCore/rendering/RenderThemeMac.mm (284629 => 284630)
--- trunk/Source/WebCore/rendering/RenderThemeMac.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebCore/rendering/RenderThemeMac.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -287,7 +287,7 @@
Color RenderThemeMac::platformActiveSelectionBackgroundColor(OptionSet<StyleColorOptions> options) const
{
LocalDefaultSystemAppearance localAppearance(options.contains(StyleColorOptions::UseDarkAppearance));
- return colorFromNSColor([NSColor selectedTextBackgroundColor]);
+ return colorFromCocoaColor([NSColor selectedTextBackgroundColor]);
}
Color RenderThemeMac::platformInactiveSelectionBackgroundColor(OptionSet<StyleColorOptions> options) const
@@ -294,10 +294,10 @@
{
#if HAVE(OS_DARK_MODE_SUPPORT)
LocalDefaultSystemAppearance localAppearance(options.contains(StyleColorOptions::UseDarkAppearance));
- return colorFromNSColor([NSColor unemphasizedSelectedTextBackgroundColor]);
+ return colorFromCocoaColor([NSColor unemphasizedSelectedTextBackgroundColor]);
#else
UNUSED_PARAM(options);
- return colorFromNSColor([NSColor unemphasizedSelectedContentBackgroundColor]);
+ return colorFromCocoaColor([NSColor unemphasizedSelectedContentBackgroundColor]);
#endif
}
@@ -323,7 +323,7 @@
{
LocalDefaultSystemAppearance localAppearance(options.contains(StyleColorOptions::UseDarkAppearance));
if (localAppearance.usingDarkAppearance())
- return colorFromNSColor([NSColor selectedTextColor]);
+ return colorFromCocoaColor([NSColor selectedTextColor]);
return { };
}
@@ -332,7 +332,7 @@
#if HAVE(OS_DARK_MODE_SUPPORT)
LocalDefaultSystemAppearance localAppearance(options.contains(StyleColorOptions::UseDarkAppearance));
if (localAppearance.usingDarkAppearance())
- return colorFromNSColor([NSColor unemphasizedSelectedTextColor]);
+ return colorFromCocoaColor([NSColor unemphasizedSelectedTextColor]);
return { };
#else
UNUSED_PARAM(options);
@@ -344,11 +344,11 @@
{
#if HAVE(OS_DARK_MODE_SUPPORT)
LocalDefaultSystemAppearance localAppearance(options.contains(StyleColorOptions::UseDarkAppearance));
- return colorFromNSColor([NSColor selectedContentBackgroundColor]);
+ return colorFromCocoaColor([NSColor selectedContentBackgroundColor]);
#else
UNUSED_PARAM(options);
ALLOW_DEPRECATED_DECLARATIONS_BEGIN
- return colorFromNSColor([NSColor alternateSelectedControlColor]);
+ return colorFromCocoaColor([NSColor alternateSelectedControlColor]);
ALLOW_DEPRECATED_DECLARATIONS_END
#endif
}
@@ -360,7 +360,7 @@
#else
UNUSED_PARAM(options);
#endif
- return colorFromNSColor([NSColor unemphasizedSelectedContentBackgroundColor]);
+ return colorFromCocoaColor([NSColor unemphasizedSelectedContentBackgroundColor]);
}
@@ -367,7 +367,7 @@
Color RenderThemeMac::platformActiveListBoxSelectionForegroundColor(OptionSet<StyleColorOptions> options) const
{
LocalDefaultSystemAppearance localAppearance(options.contains(StyleColorOptions::UseDarkAppearance));
- return colorFromNSColor([NSColor alternateSelectedControlTextColor]);
+ return colorFromCocoaColor([NSColor alternateSelectedControlTextColor]);
}
Color RenderThemeMac::platformInactiveListBoxSelectionForegroundColor(OptionSet<StyleColorOptions> options) const
@@ -374,10 +374,10 @@
{
#if HAVE(OS_DARK_MODE_SUPPORT)
LocalDefaultSystemAppearance localAppearance(options.contains(StyleColorOptions::UseDarkAppearance));
- return colorFromNSColor([NSColor unemphasizedSelectedTextColor]);
+ return colorFromCocoaColor([NSColor unemphasizedSelectedTextColor]);
#else
UNUSED_PARAM(options);
- return colorFromNSColor([NSColor selectedControlTextColor]);
+ return colorFromCocoaColor([NSColor selectedControlTextColor]);
#endif
}
@@ -387,13 +387,13 @@
return oldAquaFocusRingColor();
LocalDefaultSystemAppearance localAppearance(options.contains(StyleColorOptions::UseDarkAppearance));
// The color is expected to be opaque, since CoreGraphics will apply opacity when drawing (because opacity is normally animated).
- return colorFromNSColor([NSColor keyboardFocusIndicatorColor]).opaqueColor();
+ return colorFromCocoaColor([NSColor keyboardFocusIndicatorColor]).opaqueColor();
}
Color RenderThemeMac::platformTextSearchHighlightColor(OptionSet<StyleColorOptions> options) const
{
LocalDefaultSystemAppearance localAppearance(options.contains(StyleColorOptions::UseDarkAppearance));
- return colorFromNSColor([NSColor findHighlightColor]);
+ return colorFromCocoaColor([NSColor findHighlightColor]);
}
#if ENABLE(APP_HIGHLIGHTS)
@@ -407,7 +407,7 @@
Color RenderThemeMac::platformDefaultButtonTextColor(OptionSet<StyleColorOptions> options) const
{
LocalDefaultSystemAppearance localAppearance(options.contains(StyleColorOptions::UseDarkAppearance));
- return colorFromNSColor([NSColor alternateSelectedControlTextColor]);
+ return colorFromCocoaColor([NSColor alternateSelectedControlTextColor]);
}
static Color activeButtonTextColor()
@@ -2357,7 +2357,7 @@
if (style == AttachmentLayoutStyle::Selected) {
if (attachment.frame().selection().isFocusedAndActive())
- result = colorFromNSColor([NSColor alternateSelectedControlTextColor]);
+ result = colorFromCocoaColor([NSColor alternateSelectedControlTextColor]);
else
result = attachmentTitleInactiveTextColor;
}
@@ -2411,7 +2411,7 @@
NSDictionary *textAttributes = @{
(__bridge id)kCTFontAttributeName: (__bridge id)font.get(),
- (__bridge id)kCTForegroundColorAttributeName: (__bridge NSColor *)cachedCGColor(titleTextColorForAttachment(attachment, style)).get()
+ (__bridge id)kCTForegroundColorAttributeName: (__bridge id)cachedCGColor(titleTextColorForAttachment(attachment, style)).get()
};
RetainPtr<NSAttributedString> attributedTitle = adoptNS([[NSAttributedString alloc] initWithString:title attributes:textAttributes]);
RetainPtr<CTFramesetterRef> titleFramesetter = adoptCF(CTFramesetterCreateWithAttributedString((CFAttributedStringRef)attributedTitle.get()));
@@ -2470,7 +2470,7 @@
auto font = adoptCF(CTFontCreateUIFontForLanguage(kCTFontUIFontSystem, attachmentSubtitleFontSize, language));
NSDictionary *textAttributes = @{
(__bridge id)kCTFontAttributeName: (__bridge id)font.get(),
- (__bridge id)kCTForegroundColorAttributeName: (__bridge NSColor *)cachedCGColor(subtitleColor).get()
+ (__bridge id)kCTForegroundColorAttributeName: (__bridge id)cachedCGColor(subtitleColor).get()
};
RetainPtr<NSAttributedString> attributedSubtitleText = adoptNS([[NSAttributedString alloc] initWithString:subtitleText attributes:textAttributes]);
subtitleLine = adoptCF(CTLineCreateWithAttributedString((CFAttributedStringRef)attributedSubtitleText.get()));
@@ -2659,7 +2659,7 @@
Color backgroundColor;
if (attachment.frame().selection().isFocusedAndActive()) {
ALLOW_DEPRECATED_DECLARATIONS_BEGIN
- backgroundColor = colorFromNSColor([NSColor alternateSelectedControlColor]);
+ backgroundColor = colorFromCocoaColor([NSColor alternateSelectedControlColor]);
ALLOW_DEPRECATED_DECLARATIONS_END
} else
backgroundColor = attachmentTitleInactiveBackgroundColor;
Modified: trunk/Source/WebKit/ChangeLog (284629 => 284630)
--- trunk/Source/WebKit/ChangeLog 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebKit/ChangeLog 2021-10-21 18:25:04 UTC (rev 284630)
@@ -1,3 +1,94 @@
+2021-10-19 Darin Adler <da...@apple.com>
+
+ [Cocoa] Merge and simplify the nsColor family of functions
+ https://bugs.webkit.org/show_bug.cgi?id=231992
+
+ Reviewed by Anders Carlsson.
+
+ * Shared/Cocoa/ArgumentCodersCocoa.mm:
+ (IPC::encodeColorInternal): Merged the NSColor and UIColor
+ implementations into a single one that uses CocoaColor.
+ (IPC::decodeColorInternal): Ditto.
+
+ * UIProcess/API/Cocoa/WKWebView.mm:
+ (-[WKWebView themeColor]): Use cocoaColorOrNil instead
+ of isValid and platformColor.
+ (-[WKWebView underPageBackgroundColor]): Use cocoaColor
+ instead of platformColor.
+ (-[WKWebView _pageExtendedBackgroundColor]): Use cocoaColorOrNil
+ instead of isValid and platformColor.
+ (-[WKWebView _sampledPageTopColor]): Ditto.
+
+ * UIProcess/API/Cocoa/_WKApplicationManifest.mm:
+ (-[_WKApplicationManifest themeColor]): Use cocoaColor instead
+ of platformColor.
+
+ * UIProcess/API/ios/WKWebViewIOS.mm:
+ (-[WKWebView _updateScrollViewBackground]): Use cocoaColor instead
+ of -[UIColor initWithCGColor:] and cachedCGColor.
+
+ * UIProcess/API/ios/WKWebViewTestingIOS.mm:
+ (-[WKWebView _serializedSelectionCaretBackgroundColorForTesting]):
+ Use colorFromCocoaColor instead of colorFromUIColor.
+
+ * UIProcess/Cocoa/WebViewImpl.mm:
+ (-[WKTextTouchBarItemController _wkChangeColor:]): Use cocoaColor
+ instead of nsColor.
+ (WebKit::WebViewImpl::updateTextTouchBar): Use colorFromCocoaColor
+ instead of colorFromNSColor.
+ (WebKit::WebViewImpl::setUnderlayColor): Use cocoaColorOrNil instead
+ of isValid and nsColor.
+ (WebKit::WebViewImpl::underlayColor const): Ditto.
+ (WebKit::WebViewImpl::pageExtendedBackgroundColor const): Ditto.
+ (WebKit::WebViewImpl::changeFontColorFromSender): Ditto.
+ (WebKit::extractUnderlines): Use colorFromCocoaColor instead of
+ colorFromNSColor.
+
+ * UIProcess/ios/DragDropInteractionState.mm:
+ (WebKit::DragDropInteractionState::deliverDelayedDropPreview): Use
+ cocoaColor instead of +[UIColor colorWithCGColor:] and cachedCGColor.
+ (WebKit::DragDropInteractionState::previewForDragItem const): Ditto.
+
+ * UIProcess/ios/ViewGestureControllerIOS.mm:
+ (WebKit::ViewGestureController::beginSwipeGesture): Use cocoaColor
+ instead of -[UIColor initWithCGColor:] and cachedCGColor.
+
+ * UIProcess/ios/WKContentViewInteraction.mm:
+ (-[WKContentView _updateTapHighlight]): Use cocoaColor instead of
+ -[UIColor initWithCGColor:] and cachedCGColor.
+ (-[WKContentView _cascadeInteractionTintColor]): Use cocoaColor
+ instead of +[UIColor colorWithCGColor:] and cachedCGColor.
+ (compositionHighlights): Use colorFromCocoaColor instead of
+ colorFromUIColor.
+ (-[WKContentView _createTargetedContextMenuHintPreviewIfPossible]): Use
+ cocoaColor instead of +[UIColor colorWithCGColor:] and cachedCGColor.
+
+ * UIProcess/ios/forms/WKFormColorControl.mm:
+ (-[WKColorPicker focusedElementSuggestedColors]): Use createNSArray
+ and cocoaColor instead of +[NSMutableArray array], a for loop,
+ -[NSMutableArray addObject:], +[UIColor colorWithCGColor:], and cachedCGColor
+ (-[WKColorPicker updateColorPickerState]): Use cocoaColor instead of
+ +[UIColor colorWithCGColor:] and cachedCGColor.
+
+ * UIProcess/mac/PageClientImplMac.mm:
+ (WebKit::PageClientImpl::accentColor): Use cocoaColor instead of nsColor.
+
+ * UIProcess/mac/WebColorPickerMac.mm:
+ (WebKit::WebColorPickerMac::setSelectedColor): Use cocoaColor instead of nsColor.
+ (WebKit::WebColorPickerMac::showColorPicker): Ditto.
+ (-[WKColorPopoverMac setAndShowPicker:withColor:suggestions:]): Ditto.
+ (-[WKColorPopoverMac didChooseColor:]): Ditto.
+
+ * WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm:
+ (WebKit::PDFPluginChoiceAnnotation::createAnnotationElement): Use
+ colorFromCocoaColor instead of colorFromNSColor
+ * WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm:
+ (WebKit::PDFPluginTextAnnotation::createAnnotationElement): Ditto.
+
+ * WebProcess/WebPage/mac/WebPageMac.mm:
+ (WebKit::WebPage::setAccentColor): Use cocoaColorOrNil instead of
+ isValid and nsColor.
+
2021-10-21 Devin Rousso <drou...@apple.com>
[css-values-4] Support small (sv*), large (lv*) and dynamic (dv*) viewport units
Modified: trunk/Source/WebKit/Shared/Cocoa/ArgumentCodersCocoa.mm (284629 => 284630)
--- trunk/Source/WebKit/Shared/Cocoa/ArgumentCodersCocoa.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebKit/Shared/Cocoa/ArgumentCodersCocoa.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -34,6 +34,7 @@
#import "CoreTextHelpers.h"
#import <CoreText/CTFont.h>
#import <CoreText/CTFontDescriptor.h>
+#import <WebCore/ColorCocoa.h>
#import <wtf/BlockObjCExceptions.h>
#import <wtf/HashSet.h>
#import <wtf/cf/CFURLExtras.h>
@@ -40,12 +41,6 @@
#import <wtf/cocoa/NSURLExtras.h>
#import <wtf/cocoa/TypeCastsCocoa.h>
-#if USE(APPKIT)
-#import <WebCore/ColorMac.h>
-#else
-#import <WebCore/ColorIOS.h>
-#endif
-
#if PLATFORM(IOS_FAMILY)
#import <UIKit/UIColor.h>
#import <UIKit/UIFont.h>
@@ -267,10 +262,9 @@
#pragma mark - NSColor / UIColor
-#if USE(APPKIT)
-static inline void encodeColorInternal(Encoder& encoder, NSColor *color)
+static inline void encodeColorInternal(Encoder& encoder, CocoaColor *color)
{
- encoder << colorFromNSColor(color);
+ encoder << colorFromCocoaColor(color);
}
static inline std::optional<RetainPtr<id>> decodeColorInternal(Decoder& decoder)
@@ -278,23 +272,9 @@
Color color;
if (!decoder.decode(color))
return std::nullopt;
- return { nsColor(color) };
+ return { cocoaColor(color) };
}
-#else
-static inline void encodeColorInternal(Encoder& encoder, UIColor *color)
-{
- encoder << colorFromUIColor(color);
-}
-static inline std::optional<RetainPtr<id>> decodeColorInternal(Decoder& decoder)
-{
- Color color;
- if (!decoder.decode(color))
- return std::nullopt;
- return { adoptNS([[UIColor alloc] initWithCGColor:cachedCGColor(color).get()]) };
-}
-#endif
-
#pragma mark - NSData
static inline void encodeDataInternal(Encoder& encoder, NSData *data)
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm (284629 => 284630)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -1768,15 +1768,12 @@
- (CocoaColor *)themeColor
{
- auto themeColor = _page->themeColor();
- if (!themeColor.isValid())
- return nil;
- return WebCore::platformColor(themeColor).autorelease();
+ return cocoaColorOrNil(_page->themeColor()).autorelease();
}
- (CocoaColor *)underPageBackgroundColor
{
- return WebCore::platformColor(_page->underPageBackgroundColor()).autorelease();
+ return cocoaColor(_page->underPageBackgroundColor()).autorelease();
}
- (void)setUnderPageBackgroundColor:(CocoaColor *)underPageBackgroundColorOverride
@@ -3270,18 +3267,12 @@
// FIXME: Remove old `-[WKWebView _pageExtendedBackgroundColor]` SPI <rdar://77789732>
- (CocoaColor *)_pageExtendedBackgroundColor
{
- auto pageExtendedBackgroundColor = _page->pageExtendedBackgroundColor();
- if (!pageExtendedBackgroundColor.isValid())
- return nil;
- return WebCore::platformColor(pageExtendedBackgroundColor).autorelease();
+ return cocoaColorOrNil(_page->pageExtendedBackgroundColor()).autorelease();
}
- (CocoaColor *)_sampledPageTopColor
{
- auto sampledPageTopColor = _page->sampledPageTopColor();
- if (!sampledPageTopColor.isValid())
- return nil;
- return WebCore::platformColor(sampledPageTopColor).autorelease();
+ return cocoaColorOrNil(_page->sampledPageTopColor()).autorelease();
}
- (id <_WKInputDelegate>)_inputDelegate
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKApplicationManifest.mm (284629 => 284630)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKApplicationManifest.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKApplicationManifest.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -139,7 +139,7 @@
- (CocoaColor *)themeColor
{
- return WebCore::platformColor(_applicationManifest->applicationManifest().themeColor).autorelease();
+ return cocoaColor(_applicationManifest->applicationManifest().themeColor).autorelease();
}
- (_WKApplicationManifestDisplayMode)displayMode
Modified: trunk/Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm (284629 => 284630)
--- trunk/Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -53,6 +53,7 @@
#import "WebIOSEventFactory.h"
#import "WebPageProxy.h"
#import "_WKActivatedElementInfoInternal.h"
+#import <WebCore/ColorCocoa.h>
#import <WebCore/GraphicsContextCG.h>
#import <WebCore/IOSurface.h>
#import <WebCore/LocalCurrentTraitCollection.h>
@@ -535,9 +536,7 @@
auto newScrollViewBackgroundColor = scrollViewBackgroundColor(self, AllowPageBackgroundColorOverride::Yes);
if (_scrollViewBackgroundColor != newScrollViewBackgroundColor) {
_scrollViewBackgroundColor = newScrollViewBackgroundColor;
-
- auto uiBackgroundColor = adoptNS([[UIColor alloc] initWithCGColor:cachedCGColor(newScrollViewBackgroundColor).get()]);
- [_scrollView setBackgroundColor:uiBackgroundColor.get()];
+ [_scrollView setBackgroundColor:cocoaColor(newScrollViewBackgroundColor).get()];
}
// Update the indicator style based on the lightness/darkness of the background color.
Modified: trunk/Source/WebKit/UIProcess/API/ios/WKWebViewTestingIOS.mm (284629 => 284630)
--- trunk/Source/WebKit/UIProcess/API/ios/WKWebViewTestingIOS.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebKit/UIProcess/API/ios/WKWebViewTestingIOS.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -38,7 +38,7 @@
#import "WebPageProxy.h"
#import "_WKActivatedElementInfoInternal.h"
#import "_WKTextInputContextInternal.h"
-#import <WebCore/ColorIOS.h>
+#import <WebCore/ColorCocoa.h>
#import <WebCore/ColorSerialization.h>
#import <WebCore/ElementContext.h>
#import <wtf/SortedArrayMap.h>
@@ -478,7 +478,7 @@
if (!backgroundColor)
return nil;
- return WebCore::serializationForCSS(WebCore::colorFromUIColor(backgroundColor));
+ return serializationForCSS(WebCore::colorFromCocoaColor(backgroundColor));
}
@end
Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm (284629 => 284630)
--- trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -949,7 +949,7 @@
return;
_textColor = self.colorPickerItem.color;
- _webViewImpl->page().executeEditCommand("ForeColor", WebCore::serializationForHTML(WebCore::colorFromNSColor(_textColor.get())));
+ _webViewImpl->page().executeEditCommand("ForeColor", WebCore::serializationForHTML(WebCore::colorFromCocoaColor(_textColor.get())));
}
- (NSViewController *)textListViewController
@@ -1315,7 +1315,7 @@
[m_textTouchBarItemController setTextIsBold:(bool)(m_page->editorState().postLayoutData().typingAttributes & AttributeBold)];
[m_textTouchBarItemController setTextIsItalic:(bool)(m_page->editorState().postLayoutData().typingAttributes & AttributeItalics)];
[m_textTouchBarItemController setTextIsUnderlined:(bool)(m_page->editorState().postLayoutData().typingAttributes & AttributeUnderline)];
- [m_textTouchBarItemController setTextColor:nsColor(editorState.postLayoutData().textColor).get()];
+ [m_textTouchBarItemController setTextColor:cocoaColor(editorState.postLayoutData().textColor).get()];
[[m_textTouchBarItemController textListTouchBarViewController] setCurrentListType:(ListType)m_page->editorState().postLayoutData().enclosingListType];
[m_textTouchBarItemController setCurrentTextAlignment:nsTextAlignmentFromTextAlignment((TextAlignment)editorState.postLayoutData().textAlignment)];
}
@@ -2622,25 +2622,17 @@
void WebViewImpl::setUnderlayColor(NSColor *underlayColor)
{
- m_page->setUnderlayColor(WebCore::colorFromNSColor(underlayColor));
+ m_page->setUnderlayColor(WebCore::colorFromCocoaColor(underlayColor));
}
RetainPtr<NSColor> WebViewImpl::underlayColor() const
{
- WebCore::Color webColor = m_page->underlayColor();
- if (!webColor.isValid())
- return nil;
-
- return WebCore::nsColor(webColor);
+ return cocoaColorOrNil(m_page->underlayColor()).autorelease();
}
RetainPtr<NSColor> WebViewImpl::pageExtendedBackgroundColor() const
{
- WebCore::Color color = m_page->pageExtendedBackgroundColor();
- if (!color.isValid())
- return nil;
-
- return WebCore::nsColor(color);
+ return cocoaColorOrNil(m_page->pageExtendedBackgroundColor()).autorelease();
}
void WebViewImpl::setOverlayScrollbarStyle(std::optional<WebCore::ScrollbarOverlayStyle> scrollbarStyle)
@@ -3182,7 +3174,7 @@
return;
WebCore::FontAttributeChanges changes;
- changes.setForegroundColor(WebCore::colorFromNSColor((NSColor *)color));
+ changes.setForegroundColor(WebCore::colorFromCocoaColor((NSColor *)color));
m_page->changeFontAttributes(WTFMove(changes));
}
@@ -5015,8 +5007,8 @@
if (NSNumber *style = [attrs objectForKey:NSUnderlineStyleAttributeName]) {
WebCore::Color color = WebCore::Color::black;
WebCore::CompositionUnderlineColor compositionUnderlineColor = WebCore::CompositionUnderlineColor::TextColor;
- if (NSColor *colorAttr = [attrs objectForKey:NSUnderlineColorAttributeName]) {
- color = WebCore::colorFromNSColor(colorAttr);
+ if (NSColor *colorAttribute = [attrs objectForKey:NSUnderlineColorAttributeName]) {
+ color = WebCore::colorFromCocoaColor(colorAttribute);
compositionUnderlineColor = WebCore::CompositionUnderlineColor::GivenColor;
}
result.append(WebCore::CompositionUnderline(range.location, NSMaxRange(range), compositionUnderlineColor, color, style.intValue > 1));
Modified: trunk/Source/WebKit/UIProcess/ios/DragDropInteractionState.mm (284629 => 284630)
--- trunk/Source/WebKit/UIProcess/ios/DragDropInteractionState.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebKit/UIProcess/ios/DragDropInteractionState.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -29,6 +29,7 @@
#if PLATFORM(IOS_FAMILY) && ENABLE(DRAG_SUPPORT)
#import "Logging.h"
+#import <WebCore/ColorCocoa.h>
#import <WebCore/DragItem.h>
#import <WebCore/Image.h>
#import <wtf/cocoa/VectorCocoa.h>
@@ -226,7 +227,7 @@
return;
auto textIndicatorImage = uiImageForImage(indicator.contentImage.get());
- auto preview = createTargetedDragPreview(textIndicatorImage.get(), contentView, previewContainer, indicator.textBoundingRectInRootViewCoordinates, indicator.textRectsInBoundingRectCoordinates, [UIColor colorWithCGColor:cachedCGColor(indicator.estimatedBackgroundColor).get()], nil);
+ auto preview = createTargetedDragPreview(textIndicatorImage.get(), contentView, previewContainer, indicator.textBoundingRectInRootViewCoordinates, indicator.textRectsInBoundingRectCoordinates, cocoaColor(indicator.estimatedBackgroundColor).get(), nil);
for (auto& itemAndPreviewProvider : m_delayedItemPreviewProviders)
itemAndPreviewProvider.provider(preview.get());
m_delayedItemPreviewProviders.clear();
@@ -313,7 +314,7 @@
if (shouldUseTextIndicatorToCreatePreviewForDragSource(source)) {
auto indicator = source.indicatorData.value();
auto textIndicatorImage = uiImageForImage(indicator.contentImage.get());
- return createTargetedDragPreview(textIndicatorImage.get(), contentView, previewContainer, indicator.textBoundingRectInRootViewCoordinates, indicator.textRectsInBoundingRectCoordinates, [UIColor colorWithCGColor:cachedCGColor(indicator.estimatedBackgroundColor).get()], nil).autorelease();
+ return createTargetedDragPreview(textIndicatorImage.get(), contentView, previewContainer, indicator.textBoundingRectInRootViewCoordinates, indicator.textRectsInBoundingRectCoordinates, cocoaColor(indicator.estimatedBackgroundColor).get(), nil).autorelease();
}
return nil;
Modified: trunk/Source/WebKit/UIProcess/ios/ViewGestureControllerIOS.mm (284629 => 284630)
--- trunk/Source/WebKit/UIProcess/ios/ViewGestureControllerIOS.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebKit/UIProcess/ios/ViewGestureControllerIOS.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -42,6 +42,7 @@
#import "WebPageProxy.h"
#import "WebProcessProxy.h"
#import <UIKit/UIScreenEdgePanGestureRecognizer.h>
+#import <WebCore/ColorCocoa.h>
#import <WebCore/IOSurface.h>
#import <pal/spi/cocoa/QuartzCoreSPI.h>
#import <wtf/WeakObjCPtr.h>
@@ -225,7 +226,7 @@
[m_snapshotView layer].contents = snapshot->asLayerContents();
WebCore::Color coreColor = snapshot->backgroundColor();
if (coreColor.isValid())
- backgroundColor = adoptNS([[UIColor alloc] initWithCGColor:WebCore::cachedCGColor(coreColor).get()]);
+ backgroundColor = cocoaColor(coreColor);
}
[m_snapshotView setBackgroundColor:backgroundColor.get()];
Modified: trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm (284629 => 284630)
--- trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -99,8 +99,7 @@
#import <MobileCoreServices/UTCoreTypes.h>
#import <UniformTypeIdentifiers/UTCoreTypes.h>
#import <WebCore/AppHighlight.h>
-#import <WebCore/Color.h>
-#import <WebCore/ColorIOS.h>
+#import <WebCore/ColorCocoa.h>
#import <WebCore/ColorSerialization.h>
#import <WebCore/CompositionHighlight.h>
#import <WebCore/DOMPasteAccess.h>
@@ -2012,7 +2011,7 @@
if (![_highlightView superview])
return;
- [_highlightView setColor:adoptNS([[UIColor alloc] initWithCGColor:cachedCGColor(_tapHighlightInformation.color).get()]).get()];
+ [_highlightView setColor:cocoaColor(_tapHighlightInformation.color).get()];
auto& highlightedQuads = _tapHighlightInformation.quads;
bool allRectilinear = true;
@@ -3689,10 +3688,10 @@
return [UIColor clearColor];
if (!_page->editorState().isMissingPostLayoutData) {
- WebCore::Color caretColor = _page->editorState().postLayoutData().caretColor;
- if (caretColor.isValid())
- return [UIColor colorWithCGColor:cachedCGColor(caretColor).get()];
+ if (auto caretColor = _page->editorState().postLayoutData().caretColor; caretColor.isValid())
+ return cocoaColor(caretColor).autorelease();
}
+
return [self _inheritedInteractionTintColor];
}
@@ -5115,7 +5114,7 @@
WebCore::Color highlightColor { WebCore::CompositionHighlight::defaultCompositionFillColor };
if (UIColor *uiColor = attributes[NSBackgroundColorAttributeName])
- highlightColor = WebCore::colorFromUIColor(uiColor);
+ highlightColor = WebCore::colorFromCocoaColor(uiColor);
highlights.append({ static_cast<unsigned>(range.location), static_cast<unsigned>(NSMaxRange(range)), highlightColor });
}];
@@ -8597,7 +8596,7 @@
if (_positionInformation.isLink && _positionInformation.linkIndicator.contentImage) {
auto indicator = _positionInformation.linkIndicator;
auto textIndicatorImage = uiImageForImage(indicator.contentImage.get());
- targetedPreview = createTargetedPreview(textIndicatorImage.get(), self, self.containerForContextMenuHintPreviews, indicator.textBoundingRectInRootViewCoordinates, indicator.textRectsInBoundingRectCoordinates, [UIColor colorWithCGColor:cachedCGColor(indicator.estimatedBackgroundColor).get()]);
+ targetedPreview = createTargetedPreview(textIndicatorImage.get(), self, self.containerForContextMenuHintPreviews, indicator.textBoundingRectInRootViewCoordinates, indicator.textRectsInBoundingRectCoordinates, cocoaColor(indicator.estimatedBackgroundColor).get());
} else if ((_positionInformation.isAttachment || _positionInformation.isImage) && _positionInformation.image) {
auto cgImage = _positionInformation.image->makeCGImageCopy();
auto image = adoptNS([[UIImage alloc] initWithCGImage:cgImage.get()]);
Modified: trunk/Source/WebKit/UIProcess/ios/forms/WKFormColorControl.mm (284629 => 284630)
--- trunk/Source/WebKit/UIProcess/ios/forms/WKFormColorControl.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebKit/UIProcess/ios/forms/WKFormColorControl.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -33,7 +33,8 @@
#import "UserInterfaceIdiom.h"
#import "WKContentViewInteraction.h"
#import "WebPageProxy.h"
-#import <WebCore/Color.h>
+#import <WebCore/ColorCocoa.h>
+#import <wtf/cocoa/VectorCocoa.h>
#pragma mark - WKColorPicker
@@ -73,21 +74,20 @@
#if ENABLE(DATALIST_ELEMENT)
- (NSArray<UIColor *> *)focusedElementSuggestedColors
{
- size_t numColorSuggestions = _view.focusedElementInformation.suggestedColors.size();
- if (!numColorSuggestions)
+ auto& colors = _view.focusedElementInformation.suggestedColors;
+
+ if (colors.isEmpty())
return nil;
- NSMutableArray<UIColor *> *colors = [NSMutableArray array];
- for (const WebCore::Color& color : _view.focusedElementInformation.suggestedColors)
- [colors addObject:[UIColor colorWithCGColor:cachedCGColor(color).get()]];
-
- return colors;
+ return createNSArray(colors, [] (auto& color) {
+ return cocoaColor(color);
+ }).autorelease();
}
#endif
- (void)updateColorPickerState
{
- [_colorPickerViewController setSelectedColor:[UIColor colorWithCGColor:cachedCGColor(_view.focusedElementInformation.colorValue).get()]];
+ [_colorPickerViewController setSelectedColor:cocoaColor(_view.focusedElementInformation.colorValue).get()];
#if ENABLE(DATALIST_ELEMENT)
if ([_colorPickerViewController respondsToSelector:@selector(_setSuggestedColors:)])
[_colorPickerViewController _setSuggestedColors:[self focusedElementSuggestedColors]];
Modified: trunk/Source/WebKit/UIProcess/mac/PageClientImplMac.mm (284629 => 284630)
--- trunk/Source/WebKit/UIProcess/mac/PageClientImplMac.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebKit/UIProcess/mac/PageClientImplMac.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -1019,7 +1019,7 @@
#if HAVE(APP_ACCENT_COLORS)
WebCore::Color PageClientImpl::accentColor()
{
- return WebCore::colorFromNSColor([NSApp _effectiveAccentColor]);
+ return WebCore::colorFromCocoaColor([NSApp _effectiveAccentColor]);
}
#endif
Modified: trunk/Source/WebKit/UIProcess/mac/WebColorPickerMac.mm (284629 => 284630)
--- trunk/Source/WebKit/UIProcess/mac/WebColorPickerMac.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebKit/UIProcess/mac/WebColorPickerMac.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -107,7 +107,7 @@
if (!m_client || !m_colorPickerUI)
return;
- [m_colorPickerUI setColor:nsColor(color).get()];
+ [m_colorPickerUI setColor:cocoaColor(color).get()];
}
void WebColorPickerMac::didChooseColor(const WebCore::Color& color)
@@ -123,7 +123,7 @@
if (!m_client)
return;
- [m_colorPickerUI setAndShowPicker:this withColor:nsColor(color).get() suggestions:WTFMove(m_suggestions)];
+ [m_colorPickerUI setAndShowPicker:this withColor:cocoaColor(color).get() suggestions:WTFMove(m_suggestions)];
}
} // namespace WebKit
@@ -237,7 +237,7 @@
if (suggestions.size()) {
suggestedColors = adoptNS([[NSColorList alloc] init]);
for (size_t i = 0; i < std::min(suggestions.size(), maxColorSuggestions); i++)
- [suggestedColors insertColor:nsColor(suggestions.at(i)).get() key:@(i).stringValue atIndex:i];
+ [suggestedColors insertColor:cocoaColor(suggestions.at(i)).get() key:@(i).stringValue atIndex:i];
}
[_popoverWell setSuggestedColors:suggestedColors.get()];
@@ -287,7 +287,7 @@
return;
}
- _picker->didChooseColor(WebCore::colorFromNSColor([_popoverWell color]));
+ _picker->didChooseColor(WebCore::colorFromCocoaColor([_popoverWell color]));
}
- (void)setColor:(NSColor *)color
Modified: trunk/Source/WebKit/WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm (284629 => 284630)
--- trunk/Source/WebKit/WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebKit/WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -76,7 +76,7 @@
auto& styledElement = downcast<StyledElement>(element.get());
// FIXME: Match font weight and style as well?
- styledElement.setInlineStyleProperty(CSSPropertyColor, serializationForHTML(colorFromNSColor(choiceAnnotation.fontColor)));
+ styledElement.setInlineStyleProperty(CSSPropertyColor, serializationForHTML(colorFromCocoaColor(choiceAnnotation.fontColor)));
styledElement.setInlineStyleProperty(CSSPropertyFontFamily, choiceAnnotation.font.familyName);
NSArray *choices = choiceAnnotation.choices;
Modified: trunk/Source/WebKit/WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm (284629 => 284630)
--- trunk/Source/WebKit/WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebKit/WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -95,7 +95,7 @@
return element;
// FIXME: Match font weight and style as well?
- styledElement.setInlineStyleProperty(CSSPropertyColor, serializationForHTML(colorFromNSColor(textAnnotation.fontColor)));
+ styledElement.setInlineStyleProperty(CSSPropertyColor, serializationForHTML(colorFromCocoaColor(textAnnotation.fontColor)));
styledElement.setInlineStyleProperty(CSSPropertyFontFamily, textAnnotation.font.familyName);
styledElement.setInlineStyleProperty(CSSPropertyTextAlign, cssAlignmentValueForNSTextAlignment(textAnnotation.alignment));
Modified: trunk/Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm (284629 => 284630)
--- trunk/Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -1103,7 +1103,7 @@
void WebPage::setAccentColor(WebCore::Color color)
{
- [NSApp _setAccentColor:color.isValid() ? WebCore::nsColor(color).get() : nil];
+ [NSApp _setAccentColor:cocoaColorOrNil(color).get()];
}
#endif // HAVE(APP_ACCENT_COLORS)
Modified: trunk/Source/WebKitLegacy/mac/ChangeLog (284629 => 284630)
--- trunk/Source/WebKitLegacy/mac/ChangeLog 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebKitLegacy/mac/ChangeLog 2021-10-21 18:25:04 UTC (rev 284630)
@@ -1,3 +1,34 @@
+2021-10-19 Darin Adler <da...@apple.com>
+
+ [Cocoa] Merge and simplify the nsColor family of functions
+ https://bugs.webkit.org/show_bug.cgi?id=231992
+
+ Reviewed by Anders Carlsson.
+
+ * DOM/DOMRGBColor.mm:
+ (-[DOMRGBColor color]): Use cocoaColor instead of nsColor.
+
+ * Misc/WebKitNSStringExtras.mm:
+ (-[NSString _web_drawAtPoint:font:textColor:]): Use colorFromCocoaColor
+ instead of colorFromNSColor.
+
+ * WebView/WebFrame.mm:
+ (-[WebFrame _updateBackgroundAndUpdatesWhileOffscreen]): Use
+ colorFromCocoaColor instead of colorFromNSColor.
+ (-[WebFrame _bodyBackgroundColor]): Use cocoaColor instead of
+ nsColor.
+
+ * WebView/WebHTMLView.mm:
+ (extractUnderlines): Use colorFromCocoaColor instead of
+ colorFromNSColor.
+
+ * WebView/WebView.mm:
+ (-[WebUITextIndicatorData initWithImage:textIndicatorData:scale:]):
+ Use cocoaColor instead of -[UIColor initWithCGColor:] and cachedCGColor.
+ (-[WebTextTouchBarItemController _webChangeColor:]): Use colorFromCocoaColor
+ instead of colorFromNSColor.
+ (-[WebView updateTextTouchBar]): Use cocoaColor instead of nsColor.
+
2021-10-19 Chris Dumez <cdu...@apple.com>
cachedCGColor() and nsColor() should return smart pointers
Modified: trunk/Source/WebKitLegacy/mac/DOM/DOMRGBColor.mm (284629 => 284630)
--- trunk/Source/WebKitLegacy/mac/DOM/DOMRGBColor.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebKitLegacy/mac/DOM/DOMRGBColor.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -29,6 +29,7 @@
#import "DOMInternal.h"
#import "DOMNodeInternal.h"
#import "ExceptionHandlers.h"
+#import <WebCore/ColorCocoa.h>
#import <WebCore/DeprecatedCSSOMPrimitiveValue.h>
#import <WebCore/DeprecatedCSSOMRGBColor.h>
#import <WebCore/JSExecState.h>
@@ -85,7 +86,7 @@
- (NSColor *)color
{
WebCore::JSMainThreadNullState state;
- return WebCore::nsColor(IMPL->color()).autorelease();
+ return cocoaColor(IMPL->color()).autorelease();
}
#else
- (CGColorRef)color
Modified: trunk/Source/WebKitLegacy/mac/Misc/WebKitNSStringExtras.mm (284629 => 284630)
--- trunk/Source/WebKitLegacy/mac/Misc/WebKitNSStringExtras.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebKitLegacy/mac/Misc/WebKitNSStringExtras.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -85,7 +85,7 @@
if (!flipped)
CGContextScaleCTM(cgContext, 1, -1);
- graphicsContext.setFillColor(colorFromNSColor(textColor));
+ graphicsContext.setFillColor(colorFromCocoaColor(textColor));
webCoreFont.drawText(graphicsContext, run, FloatPoint(point.x, flipped ? point.y : -point.y));
if (!flipped)
Modified: trunk/Source/WebKitLegacy/mac/WebView/WebFrame.mm (284629 => 284630)
--- trunk/Source/WebKitLegacy/mac/WebView/WebFrame.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebFrame.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -440,7 +440,7 @@
view->setTransparent(!drawsBackground);
#if !PLATFORM(IOS_FAMILY)
ALLOW_DEPRECATED_DECLARATIONS_BEGIN
- WebCore::Color color = WebCore::colorFromNSColor([backgroundColor colorUsingColorSpaceName:NSDeviceRGBColorSpace]);
+ auto color = WebCore::colorFromCocoaColor([backgroundColor colorUsingColorSpaceName:NSDeviceRGBColorSpace]);
ALLOW_DEPRECATED_DECLARATIONS_END
#else
WebCore::Color color(WebCore::roundAndClampToSRGBALossy(backgroundColor));
@@ -1014,7 +1014,7 @@
if (!color.isValid())
return nil;
#if !PLATFORM(IOS_FAMILY)
- return nsColor(color).autorelease();
+ return cocoaColor(color).autorelease();
#else
return cachedCGColor(color).autorelease();
#endif
Modified: trunk/Source/WebKitLegacy/mac/WebView/WebHTMLView.mm (284629 => 284630)
--- trunk/Source/WebKitLegacy/mac/WebView/WebHTMLView.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebHTMLView.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -6491,7 +6491,7 @@
WebCore::Color color = WebCore::Color::black;
auto compositionUnderlineColor = WebCore::CompositionUnderlineColor::TextColor;
if (NSColor *colorAttr = [attrs objectForKey:NSUnderlineColorAttributeName]) {
- color = WebCore::colorFromNSColor(colorAttr);
+ color = WebCore::colorFromCocoaColor(colorAttr);
compositionUnderlineColor = WebCore::CompositionUnderlineColor::GivenColor;
}
result.append(WebCore::CompositionUnderline(range.location, NSMaxRange(range), compositionUnderlineColor, color, [style intValue] > 1));
Modified: trunk/Source/WebKitLegacy/mac/WebView/WebView.mm (284629 => 284630)
--- trunk/Source/WebKitLegacy/mac/WebView/WebView.mm 2021-10-21 18:22:37 UTC (rev 284629)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebView.mm 2021-10-21 18:25:04 UTC (rev 284630)
@@ -882,7 +882,7 @@
}
if (indicatorData.options.contains(WebCore::TextIndicatorOption::ComputeEstimatedBackgroundColor))
- _estimatedBackgroundColor = [PAL::allocUIColorInstance() initWithCGColor:cachedCGColor(indicatorData.estimatedBackgroundColor).get()];
+ _estimatedBackgroundColor = cocoaColor(indicatorData.estimatedBackgroundColor).leakRef();
return self;
}
@@ -1246,7 +1246,7 @@
- (void)_webChangeColor:(id)sender
{
_textColor = self.colorPickerItem.color;
- [_webView _executeCoreCommandByName:@"ForeColor" value: WebCore::serializationForHTML(WebCore::colorFromNSColor(_textColor.get()))];
+ [_webView _executeCoreCommandByName:@"ForeColor" value:WebCore::serializationForHTML(WebCore::colorFromCocoaColor(_textColor.get()))];
}
- (NSViewController *)textListViewController
@@ -9510,7 +9510,7 @@
Color textColor = style->visitedDependentColor(CSSPropertyColor);
if (textColor.isValid())
- [_private->_textTouchBarItemController setTextColor:nsColor(textColor).get()];
+ [_private->_textTouchBarItemController setTextColor:cocoaColor(textColor).get()];
[_private->_textTouchBarItemController setCurrentTextAlignment:nsTextAlignmentFromRenderStyle(style)];