Title: [238894] trunk/Source
Revision
238894
Author
wenson_hs...@apple.com
Date
2018-12-05 09:51:03 -0800 (Wed, 05 Dec 2018)

Log Message

Turn WritingDirection into an enum class
https://bugs.webkit.org/show_bug.cgi?id=192401
Work towards <rdar://problem/42075638>

Reviewed by Dan Bernstein.

Change WritingDirection from an enum to an enum class. No change in behavior.

Source/WebCore:

* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::splitAncestorsWithUnicodeBidi):
(WebCore::ApplyStyleCommand::applyInlineStyle):
* editing/EditingStyle.cpp:
(WebCore::EditingStyle::textDirection const):
(WebCore::EditingStyle::textDirectionForSelection):
* editing/Editor.cpp:
(WebCore::Editor::setBaseWritingDirection):
(WebCore::Editor::baseWritingDirectionForSelectionStart const):
* editing/EditorCommand.cpp:
(WebCore::stateTextWritingDirectionLeftToRight):
(WebCore::stateTextWritingDirectionNatural):
(WebCore::stateTextWritingDirectionRightToLeft):
* editing/WritingDirection.h:

Additionally wrap this enum in `namespace WebCore`, and update the copyright year.

* editing/ios/EditorIOS.mm:
(WebCore::Editor::setTextAlignmentForChangedBaseWritingDirection):
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::contextMenuItemSelected):
* testing/Internals.cpp:
(WebCore::Internals::setBaseWritingDirection):

Source/WebKit:

* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::setTextDirection):

Source/WebKitLegacy/ios:

* WebCoreSupport/WebFrameIOS.mm:
(-[WebFrame selectionBaseWritingDirection]):
(-[WebFrame setBaseWritingDirection:]):

Source/WebKitLegacy/mac:

* WebView/WebHTMLView.mm:
(-[WebHTMLView toggleBaseWritingDirection:]):
(-[WebHTMLView changeBaseWritingDirection:]):
(-[WebHTMLView _changeBaseWritingDirectionTo:]):

Source/WebKitLegacy/win:

* WebFrame.cpp:
(WebFrame::setTextDirection):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (238893 => 238894)


--- trunk/Source/WebCore/ChangeLog	2018-12-05 16:05:58 UTC (rev 238893)
+++ trunk/Source/WebCore/ChangeLog	2018-12-05 17:51:03 UTC (rev 238894)
@@ -1,3 +1,37 @@
+2018-12-05  Wenson Hsieh  <wenson_hs...@apple.com>
+
+        Turn WritingDirection into an enum class
+        https://bugs.webkit.org/show_bug.cgi?id=192401
+        Work towards <rdar://problem/42075638>
+
+        Reviewed by Dan Bernstein.
+
+        Change WritingDirection from an enum to an enum class. No change in behavior.
+
+        * editing/ApplyStyleCommand.cpp:
+        (WebCore::ApplyStyleCommand::splitAncestorsWithUnicodeBidi):
+        (WebCore::ApplyStyleCommand::applyInlineStyle):
+        * editing/EditingStyle.cpp:
+        (WebCore::EditingStyle::textDirection const):
+        (WebCore::EditingStyle::textDirectionForSelection):
+        * editing/Editor.cpp:
+        (WebCore::Editor::setBaseWritingDirection):
+        (WebCore::Editor::baseWritingDirectionForSelectionStart const):
+        * editing/EditorCommand.cpp:
+        (WebCore::stateTextWritingDirectionLeftToRight):
+        (WebCore::stateTextWritingDirectionNatural):
+        (WebCore::stateTextWritingDirectionRightToLeft):
+        * editing/WritingDirection.h:
+
+        Additionally wrap this enum in `namespace WebCore`, and update the copyright year.
+
+        * editing/ios/EditorIOS.mm:
+        (WebCore::Editor::setTextAlignmentForChangedBaseWritingDirection):
+        * page/ContextMenuController.cpp:
+        (WebCore::ContextMenuController::contextMenuItemSelected):
+        * testing/Internals.cpp:
+        (WebCore::Internals::setBaseWritingDirection):
+
 2018-12-05  Alicia Boya GarcĂ­a  <ab...@igalia.com>
 
         [MSE][GStreamer] Remove the AppendPipeline state machine

Modified: trunk/Source/WebCore/editing/ApplyStyleCommand.cpp (238893 => 238894)


--- trunk/Source/WebCore/editing/ApplyStyleCommand.cpp	2018-12-05 16:05:58 UTC (rev 238893)
+++ trunk/Source/WebCore/editing/ApplyStyleCommand.cpp	2018-12-05 17:51:03 UTC (rev 238894)
@@ -484,7 +484,7 @@
     HTMLElement* unsplitAncestor = nullptr;
 
     WritingDirection highestAncestorDirection;
-    if (allowedDirection != NaturalWritingDirection
+    if (allowedDirection != WritingDirection::Natural
         && highestAncestorUnicodeBidi != CSSValueBidiOverride
         && is<HTMLElement>(*highestAncestorWithUnicodeBidi)
         && EditingStyle::create(highestAncestorWithUnicodeBidi, EditingStyle::AllProperties)->textDirection(highestAncestorDirection)
@@ -614,7 +614,7 @@
     // and prevent us from adding redundant ones, as described in:
     // <rdar://problem/3724344> Bolding and unbolding creates extraneous tags
     Position removeStart = start.upstream();
-    WritingDirection textDirection = NaturalWritingDirection;
+    WritingDirection textDirection = WritingDirection::Natural;
     bool hasTextDirection = style.textDirection(textDirection);
     RefPtr<EditingStyle> styleWithoutEmbedding;
     RefPtr<EditingStyle> embeddingStyle;

Modified: trunk/Source/WebCore/editing/EditingStyle.cpp (238893 => 238894)


--- trunk/Source/WebCore/editing/EditingStyle.cpp	2018-12-05 16:05:58 UTC (rev 238893)
+++ trunk/Source/WebCore/editing/EditingStyle.cpp	2018-12-05 17:51:03 UTC (rev 238894)
@@ -567,13 +567,13 @@
         if (!is<CSSPrimitiveValue>(direction))
             return false;
 
-        writingDirection = downcast<CSSPrimitiveValue>(*direction).valueID() == CSSValueLtr ? LeftToRightWritingDirection : RightToLeftWritingDirection;
+        writingDirection = downcast<CSSPrimitiveValue>(*direction).valueID() == CSSValueLtr ? WritingDirection::LeftToRight : WritingDirection::RightToLeft;
 
         return true;
     }
 
     if (unicodeBidiValue == CSSValueNormal) {
-        writingDirection = NaturalWritingDirection;
+        writingDirection = WritingDirection::Natural;
         return true;
     }
 
@@ -1468,13 +1468,13 @@
     hasNestedOrMultipleEmbeddings = true;
 
     if (selection.isNone())
-        return NaturalWritingDirection;
+        return WritingDirection::Natural;
 
     Position position = selection.start().downstream();
 
     Node* node = position.deprecatedNode();
     if (!node)
-        return NaturalWritingDirection;
+        return WritingDirection::Natural;
 
     Position end;
     if (selection.isRange()) {
@@ -1491,7 +1491,7 @@
 
             CSSValueID unicodeBidiValue = downcast<CSSPrimitiveValue>(*unicodeBidi).valueID();
             if (unicodeBidiValue == CSSValueEmbed || unicodeBidiValue == CSSValueBidiOverride)
-                return NaturalWritingDirection;
+                return WritingDirection::Natural;
         }
     }
 
@@ -1507,7 +1507,7 @@
     // The selection is either a caret with no typing attributes or a range in which no embedding is added, so just use the start position
     // to decide.
     Node* block = enclosingBlock(node);
-    WritingDirection foundDirection = NaturalWritingDirection;
+    auto foundDirection = WritingDirection::Natural;
 
     for (; node != block; node = node->parentNode()) {
         if (!node->isStyledElement())
@@ -1523,7 +1523,7 @@
             continue;
 
         if (unicodeBidiValue == CSSValueBidiOverride)
-            return NaturalWritingDirection;
+            return WritingDirection::Natural;
 
         ASSERT(unicodeBidiValue == CSSValueEmbed);
         RefPtr<CSSValue> direction = computedStyle.propertyValue(CSSPropertyDirection);
@@ -1534,14 +1534,14 @@
         if (directionValue != CSSValueLtr && directionValue != CSSValueRtl)
             continue;
 
-        if (foundDirection != NaturalWritingDirection)
-            return NaturalWritingDirection;
+        if (foundDirection != WritingDirection::Natural)
+            return WritingDirection::Natural;
 
         // In the range case, make sure that the embedding element persists until the end of the range.
         if (selection.isRange() && !end.deprecatedNode()->isDescendantOf(*node))
-            return NaturalWritingDirection;
+            return WritingDirection::Natural;
         
-        foundDirection = directionValue == CSSValueLtr ? LeftToRightWritingDirection : RightToLeftWritingDirection;
+        foundDirection = directionValue == CSSValueLtr ? WritingDirection::LeftToRight : WritingDirection::RightToLeft;
     }
     hasNestedOrMultipleEmbeddings = false;
     return foundDirection;

Modified: trunk/Source/WebCore/editing/Editor.cpp (238893 => 238894)


--- trunk/Source/WebCore/editing/Editor.cpp	2018-12-05 16:05:58 UTC (rev 238893)
+++ trunk/Source/WebCore/editing/Editor.cpp	2018-12-05 17:51:03 UTC (rev 238894)
@@ -1780,11 +1780,11 @@
         
     Element* focusedElement = document().focusedElement();
     if (focusedElement && focusedElement->isTextField()) {
-        if (direction == NaturalWritingDirection)
+        if (direction == WritingDirection::Natural)
             return;
 
         auto& focusedFormElement = downcast<HTMLTextFormControlElement>(*focusedElement);
-        auto directionValue = direction == LeftToRightWritingDirection ? "ltr" : "rtl";
+        auto directionValue = direction == WritingDirection::LeftToRight ? "ltr" : "rtl";
         auto writingDirectionInputTypeName = inputTypeNameForEditingAction(EditAction::SetWritingDirection);
         if (!dispatchBeforeInputEvent(focusedFormElement, writingDirectionInputTypeName, directionValue))
             return;
@@ -1796,13 +1796,13 @@
     }
 
     RefPtr<MutableStyleProperties> style = MutableStyleProperties::create();
-    style->setProperty(CSSPropertyDirection, direction == LeftToRightWritingDirection ? "ltr" : direction == RightToLeftWritingDirection ? "rtl" : "inherit", false);
+    style->setProperty(CSSPropertyDirection, direction == WritingDirection::LeftToRight ? "ltr" : direction == WritingDirection::RightToLeft ? "rtl" : "inherit", false);
     applyParagraphStyleToSelection(style.get(), EditAction::SetWritingDirection);
 }
 
 WritingDirection Editor::baseWritingDirectionForSelectionStart() const
 {
-    WritingDirection result = LeftToRightWritingDirection;
+    auto result = WritingDirection::LeftToRight;
 
     Position pos = m_frame.selection().selection().visibleStart().deepEquivalent();
     Node* node = pos.deprecatedNode();
@@ -1821,9 +1821,9 @@
 
     switch (renderer->style().direction()) {
     case TextDirection::LTR:
-        return LeftToRightWritingDirection;
+        return WritingDirection::LeftToRight;
     case TextDirection::RTL:
-        return RightToLeftWritingDirection;
+        return WritingDirection::RightToLeft;
     }
     
     return result;

Modified: trunk/Source/WebCore/editing/EditorCommand.cpp (238893 => 238894)


--- trunk/Source/WebCore/editing/EditorCommand.cpp	2018-12-05 16:05:58 UTC (rev 238893)
+++ trunk/Source/WebCore/editing/EditorCommand.cpp	2018-12-05 17:51:03 UTC (rev 238894)
@@ -1430,17 +1430,17 @@
 
 static TriState stateTextWritingDirectionLeftToRight(Frame& frame, Event*)
 {
-    return stateTextWritingDirection(frame, LeftToRightWritingDirection);
+    return stateTextWritingDirection(frame, WritingDirection::LeftToRight);
 }
 
 static TriState stateTextWritingDirectionNatural(Frame& frame, Event*)
 {
-    return stateTextWritingDirection(frame, NaturalWritingDirection);
+    return stateTextWritingDirection(frame, WritingDirection::Natural);
 }
 
 static TriState stateTextWritingDirectionRightToLeft(Frame& frame, Event*)
 {
-    return stateTextWritingDirection(frame, RightToLeftWritingDirection);
+    return stateTextWritingDirection(frame, WritingDirection::RightToLeft);
 }
 
 static TriState stateUnderline(Frame& frame, Event*)

Modified: trunk/Source/WebCore/editing/WritingDirection.h (238893 => 238894)


--- trunk/Source/WebCore/editing/WritingDirection.h	2018-12-05 16:05:58 UTC (rev 238893)
+++ trunk/Source/WebCore/editing/WritingDirection.h	2018-12-05 17:51:03 UTC (rev 238894)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2008-2018 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -23,9 +23,29 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
 
-#ifndef WritingDirection_h
-#define WritingDirection_h
+#pragma once
 
-enum WritingDirection { NaturalWritingDirection, LeftToRightWritingDirection, RightToLeftWritingDirection };
+#include <wtf/Forward.h>
 
-#endif
+namespace WebCore {
+
+enum class WritingDirection : uint8_t {
+    Natural,
+    LeftToRight,
+    RightToLeft
+};
+
+} // namespace WebCore
+
+namespace WTF {
+
+template<> struct EnumTraits<WebCore::WritingDirection> {
+    using values = EnumValues<
+        WebCore::WritingDirection,
+        WebCore::WritingDirection::Natural,
+        WebCore::WritingDirection::LeftToRight,
+        WebCore::WritingDirection::RightToLeft
+    >;
+};
+
+} // namespace WTF

Modified: trunk/Source/WebCore/editing/ios/EditorIOS.mm (238893 => 238894)


--- trunk/Source/WebCore/editing/ios/EditorIOS.mm	2018-12-05 16:05:58 UTC (rev 238893)
+++ trunk/Source/WebCore/editing/ios/EditorIOS.mm	2018-12-05 17:51:03 UTC (rev 238894)
@@ -97,13 +97,13 @@
     case TextAlignMode::Start:
     case TextAlignMode::End: {
         switch (direction) {
-        case NaturalWritingDirection:
+        case WritingDirection::Natural:
             // no-op
             break;
-        case LeftToRightWritingDirection:
+        case WritingDirection::LeftToRight:
             newValue = "left";
             break;
-        case RightToLeftWritingDirection:
+        case WritingDirection::RightToLeft:
             newValue = "right";
             break;
         }
@@ -131,7 +131,7 @@
     if (focusedElement && (is<HTMLTextAreaElement>(*focusedElement) || (is<HTMLInputElement>(*focusedElement)
         && (downcast<HTMLInputElement>(*focusedElement).isTextField()
             || downcast<HTMLInputElement>(*focusedElement).isSearchField())))) {
-        if (direction == NaturalWritingDirection)
+        if (direction == WritingDirection::Natural)
             return;
         downcast<HTMLElement>(*focusedElement).setAttributeWithoutSynchronization(alignAttr, newValue);
         m_frame.document()->updateStyleIfNeeded();

Modified: trunk/Source/WebCore/page/ContextMenuController.cpp (238893 => 238894)


--- trunk/Source/WebCore/page/ContextMenuController.cpp	2018-12-05 16:05:58 UTC (rev 238893)
+++ trunk/Source/WebCore/page/ContextMenuController.cpp	2018-12-05 17:51:03 UTC (rev 238894)
@@ -429,13 +429,13 @@
         m_client.stopSpeaking();
         break;
     case ContextMenuItemTagDefaultDirection:
-        frame->editor().setBaseWritingDirection(NaturalWritingDirection);
+        frame->editor().setBaseWritingDirection(WritingDirection::Natural);
         break;
     case ContextMenuItemTagLeftToRight:
-        frame->editor().setBaseWritingDirection(LeftToRightWritingDirection);
+        frame->editor().setBaseWritingDirection(WritingDirection::LeftToRight);
         break;
     case ContextMenuItemTagRightToLeft:
-        frame->editor().setBaseWritingDirection(RightToLeftWritingDirection);
+        frame->editor().setBaseWritingDirection(WritingDirection::RightToLeft);
         break;
     case ContextMenuItemTagTextDirectionDefault:
         frame->editor().command("MakeTextWritingDirectionNatural").execute();

Modified: trunk/Source/WebCore/testing/Internals.cpp (238893 => 238894)


--- trunk/Source/WebCore/testing/Internals.cpp	2018-12-05 16:05:58 UTC (rev 238893)
+++ trunk/Source/WebCore/testing/Internals.cpp	2018-12-05 17:51:03 UTC (rev 238894)
@@ -4354,13 +4354,13 @@
         if (auto* frame = document->frame()) {
             switch (direction) {
             case BaseWritingDirection::Ltr:
-                frame->editor().setBaseWritingDirection(LeftToRightWritingDirection);
+                frame->editor().setBaseWritingDirection(WritingDirection::LeftToRight);
                 break;
             case BaseWritingDirection::Rtl:
-                frame->editor().setBaseWritingDirection(RightToLeftWritingDirection);
+                frame->editor().setBaseWritingDirection(WritingDirection::RightToLeft);
                 break;
             case BaseWritingDirection::Natural:
-                frame->editor().setBaseWritingDirection(NaturalWritingDirection);
+                frame->editor().setBaseWritingDirection(WritingDirection::Natural);
                 break;
             }
         }

Modified: trunk/Source/WebKit/ChangeLog (238893 => 238894)


--- trunk/Source/WebKit/ChangeLog	2018-12-05 16:05:58 UTC (rev 238893)
+++ trunk/Source/WebKit/ChangeLog	2018-12-05 17:51:03 UTC (rev 238894)
@@ -1,3 +1,16 @@
+2018-12-05  Wenson Hsieh  <wenson_hs...@apple.com>
+
+        Turn WritingDirection into an enum class
+        https://bugs.webkit.org/show_bug.cgi?id=192401
+        Work towards <rdar://problem/42075638>
+
+        Reviewed by Dan Bernstein.
+
+        Change WritingDirection from an enum to an enum class. No change in behavior.
+
+        * WebProcess/WebPage/WebFrame.cpp:
+        (WebKit::WebFrame::setTextDirection):
+
 2018-12-05  Rob Buis  <rb...@igalia.com>
 
         [Mac] HEAD requests changed to GET after 301, 302, and 303 redirections (http/tests/xmlhttprequest/head-redirection.html)

Modified: trunk/Source/WebKit/WebProcess/WebPage/WebFrame.cpp (238893 => 238894)


--- trunk/Source/WebKit/WebProcess/WebPage/WebFrame.cpp	2018-12-05 16:05:58 UTC (rev 238893)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebFrame.cpp	2018-12-05 17:51:03 UTC (rev 238894)
@@ -802,11 +802,11 @@
         return;
 
     if (direction == "auto")
-        m_coreFrame->editor().setBaseWritingDirection(NaturalWritingDirection);
+        m_coreFrame->editor().setBaseWritingDirection(WritingDirection::Natural);
     else if (direction == "ltr")
-        m_coreFrame->editor().setBaseWritingDirection(LeftToRightWritingDirection);
+        m_coreFrame->editor().setBaseWritingDirection(WritingDirection::LeftToRight);
     else if (direction == "rtl")
-        m_coreFrame->editor().setBaseWritingDirection(RightToLeftWritingDirection);
+        m_coreFrame->editor().setBaseWritingDirection(WritingDirection::RightToLeft);
 }
 
 void WebFrame::documentLoaderDetached(uint64_t navigationID)

Modified: trunk/Source/WebKitLegacy/ios/ChangeLog (238893 => 238894)


--- trunk/Source/WebKitLegacy/ios/ChangeLog	2018-12-05 16:05:58 UTC (rev 238893)
+++ trunk/Source/WebKitLegacy/ios/ChangeLog	2018-12-05 17:51:03 UTC (rev 238894)
@@ -1,3 +1,17 @@
+2018-12-05  Wenson Hsieh  <wenson_hs...@apple.com>
+
+        Turn WritingDirection into an enum class
+        https://bugs.webkit.org/show_bug.cgi?id=192401
+        Work towards <rdar://problem/42075638>
+
+        Reviewed by Dan Bernstein.
+
+        Change WritingDirection from an enum to an enum class. No change in behavior.
+
+        * WebCoreSupport/WebFrameIOS.mm:
+        (-[WebFrame selectionBaseWritingDirection]):
+        (-[WebFrame setBaseWritingDirection:]):
+
 2018-12-03  Daniel Bates  <daba...@apple.com>
 
         [iOS] Do not handle key events that are key commands

Modified: trunk/Source/WebKitLegacy/ios/WebCoreSupport/WebFrameIOS.mm (238893 => 238894)


--- trunk/Source/WebKitLegacy/ios/WebCoreSupport/WebFrameIOS.mm	2018-12-05 16:05:58 UTC (rev 238893)
+++ trunk/Source/WebKitLegacy/ios/WebCoreSupport/WebFrameIOS.mm	2018-12-05 17:51:03 UTC (rev 238894)
@@ -533,10 +533,10 @@
 {
     Frame *frame = [self coreFrame];
     switch (frame->editor().baseWritingDirectionForSelectionStart()) {
-    case LeftToRightWritingDirection:
+    case WritingDirection::LeftToRight:
         return WKWritingDirectionLeftToRight;
 
-    case RightToLeftWritingDirection:
+    case WritingDirection::RightToLeft:
         return WKWritingDirectionRightToLeft;
 
     default:
@@ -573,16 +573,16 @@
     if (!frame->selection().selection().isContentEditable())
         return;
     
-    WritingDirection wcDirection = LeftToRightWritingDirection;
+    auto wcDirection = WritingDirection::LeftToRight;
     switch (direction) {
         case WKWritingDirectionNatural:
-            wcDirection = NaturalWritingDirection;
+            wcDirection = WritingDirection::Natural;
             break;
         case WKWritingDirectionLeftToRight:
-            wcDirection = LeftToRightWritingDirection;
+            wcDirection = WritingDirection::LeftToRight;
             break;
         case WKWritingDirectionRightToLeft:
-            wcDirection = RightToLeftWritingDirection;
+            wcDirection = WritingDirection::RightToLeft;
             break;
         default:
             ASSERT_NOT_REACHED();

Modified: trunk/Source/WebKitLegacy/mac/ChangeLog (238893 => 238894)


--- trunk/Source/WebKitLegacy/mac/ChangeLog	2018-12-05 16:05:58 UTC (rev 238893)
+++ trunk/Source/WebKitLegacy/mac/ChangeLog	2018-12-05 17:51:03 UTC (rev 238894)
@@ -1,3 +1,18 @@
+2018-12-05  Wenson Hsieh  <wenson_hs...@apple.com>
+
+        Turn WritingDirection into an enum class
+        https://bugs.webkit.org/show_bug.cgi?id=192401
+        Work towards <rdar://problem/42075638>
+
+        Reviewed by Dan Bernstein.
+
+        Change WritingDirection from an enum to an enum class. No change in behavior.
+
+        * WebView/WebHTMLView.mm:
+        (-[WebHTMLView toggleBaseWritingDirection:]):
+        (-[WebHTMLView changeBaseWritingDirection:]):
+        (-[WebHTMLView _changeBaseWritingDirectionTo:]):
+
 2018-12-03  Alex Christensen  <achristen...@webkit.org>
 
         Add WKWebProcessPlugInLoadDelegate SPI willStartProvisionalLoadForFrame with a completion handler

Modified: trunk/Source/WebKitLegacy/mac/WebView/WebHTMLView.mm (238893 => 238894)


--- trunk/Source/WebKitLegacy/mac/WebView/WebHTMLView.mm	2018-12-05 16:05:58 UTC (rev 238893)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebHTMLView.mm	2018-12-05 17:51:03 UTC (rev 238894)
@@ -5520,18 +5520,18 @@
     if (!coreFrame)
         return;
 
-    WritingDirection direction = RightToLeftWritingDirection;
+    auto direction = WritingDirection::RightToLeft;
     switch (coreFrame->editor().baseWritingDirectionForSelectionStart()) {
-        case LeftToRightWritingDirection:
-            break;
-        case RightToLeftWritingDirection:
-            direction = LeftToRightWritingDirection;
-            break;
-        // The writingDirectionForSelectionStart method will never return "natural". It
-        // will always return a concrete direction. So, keep the compiler happy, and assert not reached.
-        case NaturalWritingDirection:
-            ASSERT_NOT_REACHED();
-            break;
+    case WritingDirection::LeftToRight:
+        break;
+    case WritingDirection::RightToLeft:
+        direction = WritingDirection::LeftToRight;
+        break;
+    // The writingDirectionForSelectionStart method will never return "natural". It
+    // will always return a concrete direction. So, keep the compiler happy, and assert not reached.
+    case WritingDirection::Natural:
+        ASSERT_NOT_REACHED();
+        break;
     }
 
     if (Frame* coreFrame = core([self _frame]))
@@ -5552,7 +5552,7 @@
     ASSERT(writingDirection != NSWritingDirectionNatural);
 
     if (Frame* coreFrame = core([self _frame]))
-        coreFrame->editor().setBaseWritingDirection(writingDirection == NSWritingDirectionLeftToRight ? LeftToRightWritingDirection : RightToLeftWritingDirection);
+        coreFrame->editor().setBaseWritingDirection(writingDirection == NSWritingDirectionLeftToRight ? WritingDirection::LeftToRight : WritingDirection::RightToLeft);
 }
 
 static BOOL writingDirectionKeyBindingsEnabled()
@@ -5573,7 +5573,7 @@
     }
 
     if (Frame* coreFrame = core([self _frame]))
-        coreFrame->editor().setBaseWritingDirection(direction == NSWritingDirectionLeftToRight ? LeftToRightWritingDirection : RightToLeftWritingDirection);
+        coreFrame->editor().setBaseWritingDirection(direction == NSWritingDirectionLeftToRight ? WritingDirection::LeftToRight : WritingDirection::RightToLeft);
 }
 
 - (void)makeBaseWritingDirectionLeftToRight:(id)sender

Modified: trunk/Source/WebKitLegacy/win/ChangeLog (238893 => 238894)


--- trunk/Source/WebKitLegacy/win/ChangeLog	2018-12-05 16:05:58 UTC (rev 238893)
+++ trunk/Source/WebKitLegacy/win/ChangeLog	2018-12-05 17:51:03 UTC (rev 238894)
@@ -1,3 +1,16 @@
+2018-12-05  Wenson Hsieh  <wenson_hs...@apple.com>
+
+        Turn WritingDirection into an enum class
+        https://bugs.webkit.org/show_bug.cgi?id=192401
+        Work towards <rdar://problem/42075638>
+
+        Reviewed by Dan Bernstein.
+
+        Change WritingDirection from an enum to an enum class. No change in behavior.
+
+        * WebFrame.cpp:
+        (WebFrame::setTextDirection):
+
 2018-12-03  Yusuke Suzuki  <yusukesuz...@slowstart.org>
 
         Use WallTime for file time

Modified: trunk/Source/WebKitLegacy/win/WebFrame.cpp (238893 => 238894)


--- trunk/Source/WebKitLegacy/win/WebFrame.cpp	2018-12-05 16:05:58 UTC (rev 238893)
+++ trunk/Source/WebKitLegacy/win/WebFrame.cpp	2018-12-05 17:51:03 UTC (rev 238894)
@@ -979,11 +979,11 @@
 
     String directionString(direction, SysStringLen(direction));
     if (directionString == "auto")
-        coreFrame->editor().setBaseWritingDirection(NaturalWritingDirection);
+        coreFrame->editor().setBaseWritingDirection(WritingDirection::Natural);
     else if (directionString == "ltr")
-        coreFrame->editor().setBaseWritingDirection(LeftToRightWritingDirection);
+        coreFrame->editor().setBaseWritingDirection(WritingDirection::LeftToRight);
     else if (directionString == "rtl")
-        coreFrame->editor().setBaseWritingDirection(RightToLeftWritingDirection);
+        coreFrame->editor().setBaseWritingDirection(WritingDirection::RightToLeft);
     return S_OK;
 }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to