Remove PLATFORM(IOS) from WebCore/editing (Part 3).
authorenrica@apple.com <enrica@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 5 Sep 2014 23:30:30 +0000 (23:30 +0000)
committerenrica@apple.com <enrica@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 5 Sep 2014 23:30:30 +0000 (23:30 +0000)
https://bugs.webkit.org/show_bug.cgi?id=136474

Reviewed by Benjamin Poulain.

This patch removes the use of PLATFORM(IOS) from TextAffinity.h
and removes the assumption that EAffinity values match NSSelectionAffinity
values. It also removes the includes in TextAffinity.h, creating the need to
include explicitly the files when necessary. It also removes the unnecessary
use of platform specific types, replacing them with WebCore types.

Source/WebCore:

* editing/TextAffinity.h:
(kit): Deleted.
(core): Deleted.
* editing/cocoa/HTMLConverter.mm:
* page/mac/WebCoreFrameView.h:
* platform/ios/ScrollViewIOS.mm:
(WebCore::ScrollView::platformSetScrollPosition):
(WebCore::ScrollView::platformSetScrollOrigin):
* platform/ios/wak/WAKScrollView.mm:
(-[WAKScrollView setScrollOrigin:updatePositionAtAll:immediately:]):
(-[WAKScrollView scrollOrigin]):

Source/WebKit/mac:

* WebCoreSupport/WebEditorClient.h: Added kit and core for EAffinity.
* WebView/WebFrameView.mm:
(-[WebFrameView _scrollToBeginningOfDocument]):
(-[WebFrameView _scrollToEndOfDocument]):

Source/WebKit2:

* WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm:
* WebProcess/WebPage/WKAccessibilityWebPageObjectIOS.mm:
(-[WKAccessibilityWebPageObject accessibilityHitTest:]):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@173340 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 files changed:
Source/WebCore/ChangeLog
Source/WebCore/editing/TextAffinity.h
Source/WebCore/editing/cocoa/HTMLConverter.mm
Source/WebCore/page/mac/WebCoreFrameView.h
Source/WebCore/platform/ios/ScrollViewIOS.mm
Source/WebCore/platform/ios/wak/WAKScrollView.mm
Source/WebCore/platform/mac/ScrollViewMac.mm
Source/WebKit/mac/ChangeLog
Source/WebKit/mac/WebCoreSupport/WebEditorClient.h
Source/WebKit/mac/WebView/WebFrameView.mm
Source/WebKit2/ChangeLog
Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm
Source/WebKit2/WebProcess/WebPage/WKAccessibilityWebPageObjectIOS.mm

index 37c0a15..d883169 100644 (file)
@@ -1,3 +1,28 @@
+2014-09-05  Enrica Casucci  <enrica@apple.com>
+
+        Remove PLATFORM(IOS) from WebCore/editing (Part 3).
+        https://bugs.webkit.org/show_bug.cgi?id=136474
+
+        Reviewed by Benjamin Poulain.
+
+        This patch removes the use of PLATFORM(IOS) from TextAffinity.h
+        and removes the assumption that EAffinity values match NSSelectionAffinity
+        values. It also removes the includes in TextAffinity.h, creating the need to
+        include explicitly the files when necessary. It also removes the unnecessary
+        use of platform specific types, replacing them with WebCore types.
+
+        * editing/TextAffinity.h:
+        (kit): Deleted.
+        (core): Deleted.
+        * editing/cocoa/HTMLConverter.mm:
+        * page/mac/WebCoreFrameView.h:
+        * platform/ios/ScrollViewIOS.mm:
+        (WebCore::ScrollView::platformSetScrollPosition):
+        (WebCore::ScrollView::platformSetScrollOrigin):
+        * platform/ios/wak/WAKScrollView.mm:
+        (-[WAKScrollView setScrollOrigin:updatePositionAtAll:immediately:]):
+        (-[WAKScrollView scrollOrigin]):
+
 2014-09-05  Jer Noble  <jer.noble@apple.com>
 
         Unreviewed GTK build fix; include StringPrintStream to pull in toString().
index 5d22691..2e3c1e1 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2004 Apple Inc.  All rights reserved.
+ * Copyright (C) 2004-2014 Apple Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
 #ifndef TextAffinity_h
 #define TextAffinity_h
 
-#ifdef __OBJC__
-#if !PLATFORM(IOS)
-#include <AppKit/NSTextView.h>
-#else
-#include "WAKAppKitStubs.h"
-#endif // !PLATFORM(IOS)
-#endif
-
 namespace WebCore {
 
-// These match the AppKit values for these concepts.
-// From NSTextView.h:
-// NSSelectionAffinityUpstream = 0
-// NSSelectionAffinityDownstream = 1
 enum EAffinity { UPSTREAM = 0, DOWNSTREAM = 1 };
 
 } // namespace WebCore
 
-#ifdef __OBJC__
-
-inline NSSelectionAffinity kit(WebCore::EAffinity affinity)
-{
-    return static_cast<NSSelectionAffinity>(affinity);
-}
-
-inline WebCore::EAffinity core(NSSelectionAffinity affinity)
-{
-    return static_cast<WebCore::EAffinity>(affinity);
-}
-
-#endif
-
 #endif // TextAffinity_h
index 6d4d68e..518e4fa 100644 (file)
@@ -62,6 +62,8 @@
 
 #if PLATFORM(IOS)
 
+#import "WAKAppKitStubs.h"
+
 SOFT_LINK_FRAMEWORK(UIKit)
 SOFT_LINK_CLASS(UIKit, UIColor)
 
index fffef8f..dec55bf 100644 (file)
@@ -28,7 +28,8 @@
 // WTF_PLATFORM_IOS
 #ifdef __cplusplus
 namespace WebCore {
-    class Frame;
+class Frame;
+class IntPoint;
 }
 #endif
 
@@ -37,13 +38,13 @@ namespace WebCore {
 #ifdef __cplusplus
 - (void)setScrollingModes:(WebCore::ScrollbarMode)hMode vertical:(WebCore::ScrollbarMode)vMode andLock:(BOOL)lock;
 - (void)scrollingModes:(WebCore::ScrollbarMode*)hMode vertical:(WebCore::ScrollbarMode*)vMode;
+- (void)setScrollOrigin:(WebCore::IntPoint)origin updatePositionAtAll:(BOOL)updatePositionAtAll immediately:(BOOL)updatePositionImmediately;
+- (WebCore::IntPoint)scrollOrigin;
 #else
 - (void)setScrollingModes:(int)hMode vertical:(int)vMode andLock:(BOOL)lock;
 - (void)scrollingModes:(int*)hMode vertical:(int*)vMode;
 #endif
 - (void)setScrollBarsSuppressed:(BOOL)suppressed repaintOnUnsuppress:(BOOL)repaint;
-- (void)setScrollOrigin:(NSPoint)origin updatePositionAtAll:(BOOL)updatePositionAtAll immediately:(BOOL)updatePositionImmediately;
-- (NSPoint)scrollOrigin;
 @end
 
 @protocol WebCoreFrameView
index 5ee90bb..43b8824 100644 (file)
@@ -243,9 +243,7 @@ void ScrollView::platformSetScrollbarsSuppressed(bool repaintOnUnsuppress)
 void ScrollView::platformSetScrollPosition(const IntPoint& scrollPoint)
 {
     BEGIN_BLOCK_OBJC_EXCEPTIONS;
-    NSPoint floatPoint = scrollPoint;
-    NSPoint tempPoint = { max(-[scrollView() scrollOrigin].x, floatPoint.x), max(-[scrollView() scrollOrigin].y, floatPoint.y) };  // Don't use NSMakePoint to work around 4213314.
-    [documentView() scrollPoint:tempPoint];
+    [documentView() scrollPoint:NSMakePoint(max(-[scrollView() scrollOrigin].x(), scrollPoint.x()), max(-[scrollView() scrollOrigin].y(), scrollPoint.y()))];
     END_BLOCK_OBJC_EXCEPTIONS;
 }
 
@@ -307,7 +305,7 @@ void ScrollView::platformSetScrollbarOverlayStyle(ScrollbarOverlayStyle)
 void ScrollView::platformSetScrollOrigin(const IntPoint& origin, bool updatePositionAll, bool updatePositionSynchronously)
 {
     BEGIN_BLOCK_OBJC_EXCEPTIONS;
-    [scrollView() setScrollOrigin:static_cast<CGPoint>(origin) updatePositionAtAll:updatePositionAll immediately:updatePositionSynchronously];
+    [scrollView() setScrollOrigin:origin updatePositionAtAll:updatePositionAll immediately:updatePositionSynchronously];
     END_BLOCK_OBJC_EXCEPTIONS;
 }
 
index 78e6132..41dc879 100644 (file)
@@ -28,6 +28,7 @@
 
 #if PLATFORM(IOS)
 
+#import "IntPoint.h"
 #import "WAKAppKitStubs.h"
 #import "WAKClipView.h"
 #import "WAKViewInternal.h"
@@ -232,7 +233,7 @@ static void _notificationCallback(WKViewRef v, WKViewNotificationType type, void
     UNUSED_PARAM(repaint);
 }
 
-- (void)setScrollOrigin:(NSPoint)scrollOrigin updatePositionAtAll:(BOOL)updatePositionAtAll immediately:(BOOL)updatePositionImmediately
+- (void)setScrollOrigin:(WebCore::IntPoint)scrollOrigin updatePositionAtAll:(BOOL)updatePositionAtAll immediately:(BOOL)updatePositionImmediately
 {
     UNUSED_PARAM(updatePositionAtAll);
     UNUSED_PARAM(updatePositionImmediately);
@@ -241,12 +242,12 @@ static void _notificationCallback(WKViewRef v, WKViewNotificationType type, void
     // so we don't have to check for equivalence here.
     _scrollOrigin = scrollOrigin;
 
-    [_documentView setBoundsOrigin:NSMakePoint(-scrollOrigin.x, -scrollOrigin.y)];
+    [_documentView setBoundsOrigin:NSMakePoint(-scrollOrigin.x(), -scrollOrigin.y())];
 }
 
-- (NSPoint)scrollOrigin
+- (WebCore::IntPoint)scrollOrigin
 {
-    return _scrollOrigin;
+    return WebCore::IntPoint(_scrollOrigin);
 }
 
 #pragma mark -
index ee29934..a737c94 100644 (file)
@@ -201,8 +201,7 @@ void ScrollView::platformSetScrollbarsSuppressed(bool repaintOnUnsuppress)
 void ScrollView::platformSetScrollPosition(const IntPoint& scrollPoint)
 {
     BEGIN_BLOCK_OBJC_EXCEPTIONS;
-    NSPoint floatPoint = scrollPoint;
-    NSPoint tempPoint = { std::max(-[scrollView() scrollOrigin].x, floatPoint.x), std::max(-[scrollView() scrollOrigin].y, floatPoint.y) };  // Don't use NSMakePoint to work around 4213314.
+    NSPoint tempPoint = NSMakePoint(std::max(-[scrollView() scrollOrigin].x(), scrollPoint.x()), std::max(-[scrollView() scrollOrigin].y(), scrollPoint.y()));
 
 #if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101000
     // AppKit has the inset factored into all of its scroll positions. In WebCore, we use positions that ignore
index 042b8aa..2d4a995 100644 (file)
@@ -1,3 +1,21 @@
+2014-09-05  Enrica Casucci  <enrica@apple.com>
+
+        Remove PLATFORM(IOS) from WebCore/editing (Part 3).
+        https://bugs.webkit.org/show_bug.cgi?id=136474
+
+        Reviewed by Benjamin Poulain.
+
+        This patch removes the use of PLATFORM(IOS) from TextAffinity.h
+        and removes the assumption that EAffinity values match NSSelectionAffinity
+        values. It also removes the includes in TextAffinity.h, creating the need to
+        include explicitly the files when necessary. It also removes the unnecessary
+        use of platform specific types, replacing them with WebCore types.
+
+        * WebCoreSupport/WebEditorClient.h: Added kit and core for EAffinity.
+        * WebView/WebFrameView.mm:
+        (-[WebFrameView _scrollToBeginningOfDocument]):
+        (-[WebFrameView _scrollToEndOfDocument]):
+
 2014-09-05  Daniel Bates  <dabates@apple.com>
 
         [iOS] Another attempt to fix the iOS build after <http://trac.webkit.org/changeset/173309>
index 2fc2b9c..4dd8915 100644 (file)
 #import <wtf/Vector.h>
 #import <wtf/text/StringView.h>
 
+#if PLATFORM(IOS)
+#import <WebCore/WAKAppKitStubs.h>
+#endif
+
 @class WebView;
 @class WebEditorUndoTarget;
 
@@ -176,6 +180,28 @@ private:
 #endif
 };
 
+#if PLATFORM(COCOA)
+inline NSSelectionAffinity kit(WebCore::EAffinity affinity)
+{
+    switch (affinity) {
+    case WebCore::EAffinity::UPSTREAM:
+        return NSSelectionAffinityUpstream;
+    case WebCore::EAffinity::DOWNSTREAM:
+        return NSSelectionAffinityDownstream;
+    }
+}
+
+inline WebCore::EAffinity core(NSSelectionAffinity affinity)
+{
+    switch (affinity) {
+    case NSSelectionAffinityUpstream:
+        return WebCore::EAffinity::UPSTREAM;
+    case NSSelectionAffinityDownstream:
+        return WebCore::EAffinity::DOWNSTREAM;
+    }
+}
+#endif
+
 #if PLATFORM(IOS)
 
 inline bool WebEditorClient::isGrammarCheckingEnabled()
index 653a77e..bb8f279 100644 (file)
@@ -669,8 +669,8 @@ static inline void addTypesFromClass(NSMutableDictionary *allTypes, Class objCCl
     if (![self _isScrollable])
         return NO;
     NSPoint point = [(NSView *)[[self _scrollView] documentView] frame].origin;
-    point.x += [[self _scrollView] scrollOrigin].x;
-    point.y += [[self _scrollView] scrollOrigin].y;
+    point.x += [[self _scrollView] scrollOrigin].x();
+    point.y += [[self _scrollView] scrollOrigin].y();
     return [[self _contentView] _scrollTo:&point animate:YES];
 }
 
@@ -700,9 +700,9 @@ static inline void addTypesFromClass(NSMutableDictionary *allTypes, Class objCCl
     
     // Reset the position opposite to the block progression direction.
     if (isVertical)
-        point.x += [[self _scrollView] scrollOrigin].x;
+        point.x += [[self _scrollView] scrollOrigin].x();
     else
-        point.y += [[self _scrollView] scrollOrigin].y;
+        point.y += [[self _scrollView] scrollOrigin].y();
     return [[self _contentView] _scrollTo:&point animate:YES];
 }
 
index c9bdcc1..2a8ad81 100644 (file)
@@ -1,3 +1,20 @@
+2014-09-05  Enrica Casucci  <enrica@apple.com>
+
+        Remove PLATFORM(IOS) from WebCore/editing (Part 3).
+        https://bugs.webkit.org/show_bug.cgi?id=136474
+
+        Reviewed by Benjamin Poulain.
+
+        This patch removes the use of PLATFORM(IOS) from TextAffinity.h
+        and removes the assumption that EAffinity values match NSSelectionAffinity
+        values. It also removes the includes in TextAffinity.h, creating the need to
+        include explicitly the files when necessary. It also removes the unnecessary
+        use of platform specific types, replacing them with WebCore types.
+
+        * WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm:
+        * WebProcess/WebPage/WKAccessibilityWebPageObjectIOS.mm:
+        (-[WKAccessibilityWebPageObject accessibilityHitTest:]):
+
 2014-09-05  David Kilzer  <ddkilzer@apple.com>
 
         JavaScriptCore should build with newer clang
index 20a5e1c..511861b 100644 (file)
 #import "WKDOMDocument.h"
 #import "WKDOMText.h"
 
+#if PLATFORM(IOS)
+#import <WebCore/WAKAppKitStubs.h>
+#endif
+
 namespace WebKit {
 
 template<typename WebCoreType, typename WKDOMType>
index ddcf1b2..9e436cb 100644 (file)
     return m_page->pageScaleFactor();
 }
 
-- (id)accessibilityHitTest:(NSPoint)point
+- (id)accessibilityHitTest:(WebCore::IntPoint)point
 {
     if (!m_page)
         return nil;
     
-    WebCore::IntPoint convertedPoint = m_page->accessibilityScreenToRootView(WebCore::IntPoint(point));
+    WebCore::IntPoint convertedPoint = m_page->accessibilityScreenToRootView(point);
     return [[self accessibilityRootObjectWrapper] accessibilityHitTest:convertedPoint];
 }