Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7d9c042f3a2b131e83b2fed0647f75c5aff524e5
      
https://github.com/WebKit/WebKit/commit/7d9c042f3a2b131e83b2fed0647f75c5aff524e5
  Author: Myles C. Maxfield <mmaxfi...@apple.com>
  Date:   2023-05-30 (Tue, 30 May 2023)

  Changed paths:
    M Source/WTF/WTF.xcodeproj/project.pbxproj
    M Source/WTF/wtf/text/NullTextBreakIterator.h
    M Source/WTF/wtf/text/TextBreakIterator.h
    M Source/WTF/wtf/text/cf/TextBreakIteratorCF.h
    M Source/WTF/wtf/text/cf/TextBreakIteratorCFCharacterCluster.h
    M Source/WTF/wtf/text/cf/TextBreakIteratorCFStringTokenizer.h
    A Source/WTF/wtf/text/cocoa/ContextualizedCFString.h
    A Source/WTF/wtf/text/cocoa/ContextualizedCFString.mm
    M Source/WTF/wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp
    M Source/WTF/wtf/text/icu/TextBreakIteratorICU.h
    M Tools/TestWebKitAPI/Tests/WTF/TextBreakIterator.cpp
    M Tools/TestWebKitAPI/Tests/WTF/cocoa/ContextualizedNSString.mm

  Log Message:
  -----------
  [Cocoa] Hook "prior context" infrastructure up to TextBreakIteratorCF
https://bugs.webkit.org/show_bug.cgi?id=257467
rdar://109983296

Reviewed by Alan Baradlay.

This patch is the next step to being able to use platform text iterators to 
break lines.
Previously, I implemented ContextualizedNSString, which is a subclass of 
NSString whose
backing store is 2 StringViews: one for the prior context of the string at 
hand, and one
for the string at hand itself. This patch hooks up ContextualizedNSString to our
TextBreakIteratorCF class, to allow TextBreakIteratorCF to work with prior 
context. This
is necessary because our line breaking code requires this prior context to work 
correctly,
and TextBreakIterator is the object which has a Core Foundation backend. If we 
want to be
able to do line breaking using Core Foundation, this patch is necessary.

The next patch will do something similar for TextBreakIteratorICU (which we 
luckily
already have UText support for). Once that's done, we should be able to migrate 
entirely
from LazyLineBreakIterator to TextBreakIterator.

* Source/WTF/WTF.xcodeproj/project.pbxproj:
* Source/WTF/wtf/text/TextBreakIterator.h:
(WTF::TextBreakIterator::setText):
* Source/WTF/wtf/text/cf/TextBreakIteratorCF.h:
(WTF::TextBreakIteratorCF::TextBreakIteratorCF):
(WTF::TextBreakIteratorCF::setText):
(WTF::TextBreakIteratorCF::mapModeToBackingIterator):
* Source/WTF/wtf/text/cf/TextBreakIteratorCFCharacterCluster.h:
(WTF::TextBreakIteratorCFCharacterCluster::TextBreakIteratorCFCharacterCluster):
(WTF::TextBreakIteratorCFCharacterCluster::setText):
(WTF::TextBreakIteratorCFCharacterCluster::preceding const):
(WTF::TextBreakIteratorCFCharacterCluster::following const):
(WTF::TextBreakIteratorCFCharacterCluster::isBoundary const):
* Source/WTF/wtf/text/cf/TextBreakIteratorCFStringTokenizer.h:
(WTF::TextBreakIteratorCFStringTokenizer::TextBreakIteratorCFStringTokenizer):
(WTF::TextBreakIteratorCFStringTokenizer::setText):
(WTF::TextBreakIteratorCFStringTokenizer::preceding const):
(WTF::TextBreakIteratorCFStringTokenizer::following const):
(WTF::TextBreakIteratorCFStringTokenizer::isBoundary const):
* Source/WTF/wtf/text/cocoa/ContextualizedCFString.h: Added.
* Source/WTF/wtf/text/cocoa/ContextualizedCFString.mm: Added.
(WTF::createContextualizedCFString):
* Source/WTF/wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp:
(WTF::TextBreakIterator::mapModeToBackingIterator):
* Source/WTF/wtf/text/icu/TextBreakIteratorICU.h:
(WTF::TextBreakIteratorICU::setText):
* Tools/TestWebKitAPI/Tests/WTF/TextBreakIterator.cpp:
(TestWebKitAPI::TEST):
* Tools/TestWebKitAPI/Tests/WTF/cocoa/ContextualizedNSString.mm:
(TEST):

Canonical link: https://commits.webkit.org/264714@main


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to