diff --git a/Source/WebKit/fuchsia/WebView.cpp b/Source/WebKit/fuchsia/WebView.cpp
index 4266059..4a7dba9 100644
--- a/Source/WebKit/fuchsia/WebView.cpp
+++ b/Source/WebKit/fuchsia/WebView.cpp
@@ -38,6 +38,7 @@
 #include <WebCore/PageConfiguration.h>
 #include <WebCore/PlatformCookieJar.h>
 #include <WebCore/PlatformKeyboardEvent.h>
+#include <WebCore/PlatformTouchEvent.h>
 #include <WebCore/ResourceRequest.h>
 #include <WebCore/Settings.h>
 #include <WebCore/URLParser.h>
@@ -293,6 +294,32 @@
     }
 }
 
+void WebView::handleTouchEvent(uint32_t touchId, int x, int y, TouchEventKind eventType)
+{
+#if ENABLE(TOUCH_EVENTS)
+    auto& mainFrame = m_page->mainFrame();
+    IntPoint touchPosition(x, y);
+    auto now = std::chrono::steady_clock::now().time_since_epoch();
+    auto timeSinceEpoch = std::chrono::duration_cast<std::chrono::milliseconds>(now).count();
+    if (eventType == kTouchDown) {
+        WebCore::PlatformTouchEvent mouseEvent(touchPosition, touchPosition,
+            WebCore::MouseButton::LeftButton, PlatformEvent::MousePressed,
+            1, false, false, false, false, timeSinceEpoch, 0, SyntheticClickType::NoTap);
+        mainFrame.eventHandler().handleMousePressEvent(mouseEvent);
+    } else if (eventType == kTouchUp) {
+        WebCore::PlatformTouchEvent mouseEvent(touchPosition, touchPosition,
+            WebCore::MouseButton::LeftButton, PlatformEvent::MouseReleased,
+            1, false, false, false, false, timeSinceEpoch, 0, SyntheticClickType::NoTap);
+        mainFrame.eventHandler().handleMouseReleaseEvent(mouseEvent);
+    } else {
+        WebCore::PlatformTouchEvent mouseEvent(touchPosition, touchPosition,
+            WebCore::MouseButton::NoButton, PlatformEvent::MouseMoved,
+            0, false, false, false, false, timeSinceEpoch, 0, SyntheticClickType::NoTap);
+        mainFrame.eventHandler().mouseMoved(mouseEvent);
+    }
+#endif
+}
+
 bool WebView::handleKeyEvent(uint8_t keycode, uint8_t charValue, bool pressed, bool repeat)
 {
     string identifier;
diff --git a/Source/WebKit/fuchsia/WebView.h b/Source/WebKit/fuchsia/WebView.h
index f5363df..e93e05b 100644
--- a/Source/WebKit/fuchsia/WebView.h
+++ b/Source/WebKit/fuchsia/WebView.h
@@ -50,6 +50,9 @@
     enum MouseEventKind { kMouseDown,
         kMouseMoved,
         kMouseUp };
+    enum TouchEventKind { kTouchDown,
+        kTouchMoved,
+        kTouchUp };
     ~WebView();
 
     bool setup(unsigned char* pixelBuffer, int pixelFormat, size_t targetWidth, size_t targetHeight, size_t rowbytes);
@@ -73,6 +76,7 @@
     void setPageAndTextZoomFactors(float pageZoomFactor, float textZoomFactor);
 
     void handleMouseEvent(int x, int y, MouseEventKind eventType);
+    void handleTouchEvent(uint32_t touchId, int x, int y, TouchEventKind eventType);
     bool handleKeyEvent(uint8_t keycode, uint8_t charValue, bool pressed, bool repeat);
 
     void setWebRequestDelegate(WebRequestDelegate delegate);
diff --git a/Tools/fuchsia/build_webkit.sh b/Tools/fuchsia/build_webkit.sh
index 5842487..73f1608 100755
--- a/Tools/fuchsia/build_webkit.sh
+++ b/Tools/fuchsia/build_webkit.sh
@@ -82,7 +82,7 @@
     --no-jit \
     --no-web-sockets \
     --no-3d-rendering \
-    --no-css-compositing \
+    --touch-events \
     --video \
     --video-track \
     --cmakeargs="-DCMAKE_TOOLCHAIN_FILE=$script_dir/FuchsiaClangToolchain.txt -DENABLE_XSLT=OFF -DENABLE_DRAG_SUPPORT=OFF -DENABLE_STATIC_JSC=ON"
