Changeset 223012 in webkit
- Timestamp:
- Oct 6, 2017 5:09:48 PM (7 years ago)
- Location:
- trunk
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r223007 r223012 1 2017-10-06 Aishwarya Nirmal <anirmal@apple.com> 2 3 [iOS] Respect the "caret-color" CSS property when editing 4 https://bugs.webkit.org/show_bug.cgi?id=177489 5 <rdar://problem/34600419> 6 7 Reviewed by Tim Horton. 8 9 This change adds support for the caret-color property on iOS. 10 11 * Shared/EditorState.cpp: 12 (WebKit::EditorState::PostLayoutData::encode const): 13 (WebKit::EditorState::PostLayoutData::decode): 14 * Shared/EditorState.h: 15 * UIProcess/ios/WKContentViewInteraction.mm: 16 (-[WKContentView insertionPointColor]): 17 * WebProcess/WebPage/ios/WebPageIOS.mm: 18 (WebKit::WebPage::platformEditorState const): 19 1 20 2017-10-06 Brian Burg <bburg@apple.com> 2 21 -
trunk/Source/WebKit/Shared/EditorState.cpp
r222654 r223012 129 129 encoder << insideFixedPosition; 130 130 encoder << hasPlainText; 131 encoder << caretColor; 131 132 #endif 132 133 #if PLATFORM(MAC) … … 180 181 if (!decoder.decode(result.hasPlainText)) 181 182 return false; 183 if (!decoder.decode(result.caretColor)) 184 return false; 182 185 #endif 183 186 #if PLATFORM(MAC) -
trunk/Source/WebKit/Shared/EditorState.h
r222654 r223012 103 103 bool insideFixedPosition { false }; 104 104 bool hasPlainText { false }; 105 WebCore::Color caretColor; 105 106 #endif 106 107 #if PLATFORM(MAC) -
trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm
r222991 r223012 2026 2026 - (UIColor *)insertionPointColor 2027 2027 { 2028 if (!_page->editorState().isMissingPostLayoutData) { 2029 WebCore::Color caretColor = _page->editorState().postLayoutData().caretColor; 2030 if (caretColor.isValid()) 2031 return [UIColor colorWithCGColor:cachedCGColor(caretColor)]; 2032 } 2028 2033 return [UIColor insertionPointColor]; 2029 2034 } -
trunk/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm
r222896 r223012 229 229 postLayoutData.insideFixedPosition = startNodeIsInsideFixedPosition || endNodeIsInsideFixedPosition; 230 230 if (!selection.isNone()) { 231 if (m_assistedNode && m_assistedNode->renderer()) 231 if (m_assistedNode && m_assistedNode->renderer()) { 232 232 postLayoutData.selectionClipRect = view->contentsToRootView(m_assistedNode->renderer()->absoluteBoundingBoxRect()); 233 postLayoutData.caretColor = m_assistedNode->renderer()->style().caretColor(); 234 } 233 235 computeEditableRootHasContentAndPlainText(selection, postLayoutData); 234 236 } -
trunk/Tools/ChangeLog
r223001 r223012 1 2017-10-06 Aishwarya Nirmal <anirmal@apple.com> 2 3 [iOS] Respect the "caret-color" CSS property when editing 4 https://bugs.webkit.org/show_bug.cgi?id=177489 5 <rdar://problem/34600419> 6 7 Reviewed by Tim Horton. 8 9 Adds test for iOS caret color support. 10 11 * TestWebKitAPI/Tests/WebKitCocoa/EditorStateTests.mm: 12 (TestWebKitAPI::TEST): 13 * TestWebKitAPI/ios/UIKitSPI.h: 14 1 15 2017-10-06 Alex Christensen <achristensen@webkit.org> 2 16 -
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/EditorStateTests.mm
r222654 r223012 34 34 35 35 #if PLATFORM(IOS) 36 #import "UIKitSPI.h" 36 37 #import <UIKit/UIKit.h> 37 38 #endif … … 299 300 } 300 301 302 TEST(EditorStateTests, CaretColorInContentEditable) 303 { 304 auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 500)]); 305 [webView synchronouslyLoadHTMLString:@"<body style=\"caret-color: red;\" contenteditable=\"true\"></body>"]; 306 [webView stringByEvaluatingJavaScript:@"document.body.focus()"]; 307 UIView<UITextInputTraits_Private> *textInput = (UIView<UITextInputTraits_Private> *) [webView textInputContentView]; 308 UIColor *insertionPointColor = textInput.insertionPointColor; 309 UIColor *redColor = [UIColor redColor]; 310 auto colorSpace = adoptCF(CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB)); 311 auto cgInsertionPointColor = adoptCF(CGColorCreateCopyByMatchingToColorSpace(colorSpace.get(), kCGRenderingIntentDefault, insertionPointColor.CGColor, NULL)); 312 auto cgRedColor = adoptCF(CGColorCreateCopyByMatchingToColorSpace(colorSpace.get(), kCGRenderingIntentDefault, redColor.CGColor, NULL)); 313 EXPECT_TRUE(CGColorEqualToColor(cgInsertionPointColor.get(), cgRedColor.get())); 314 } 301 315 #endif 302 316 -
trunk/Tools/TestWebKitAPI/ios/UIKitSPI.h
r222991 r223012 57 57 58 58 @protocol UITextInputTraits_Private <NSObject, UITextInputTraits> 59 @property (nonatomic, readonly) UIColor *insertionPointColor; 59 60 @end 60 61
Note: See TracChangeset
for help on using the changeset viewer.