diff --git a/third_party/WebKit/LayoutTests/NeverFixTests b/third_party/WebKit/LayoutTests/NeverFixTests
index bd38a71c..85de59e 100644
--- a/third_party/WebKit/LayoutTests/NeverFixTests
+++ b/third_party/WebKit/LayoutTests/NeverFixTests
@@ -216,7 +216,6 @@
 external/wpt/css-values [ WontFix ]
 external/wpt/gyroscope [ WontFix ]
 external/wpt/magnetometer [ WontFix ]
-external/wpt/preload [ WontFix ]
 external/wpt/upgrade-insecure-requests [ WontFix ]
 
 # WPT manual tests without automation
diff --git a/third_party/WebKit/LayoutTests/TestExpectations b/third_party/WebKit/LayoutTests/TestExpectations
index 0c8b8db..a778bf0 100644
--- a/third_party/WebKit/LayoutTests/TestExpectations
+++ b/third_party/WebKit/LayoutTests/TestExpectations
@@ -2504,3 +2504,6 @@
 
 crbug.com/697342 http/tests/push_messaging/permission-state-granted-in-document.html [ Pass Failure ]
 crbug.com/697342 virtual/mojo-loading/http/tests/push_messaging/permission-state-granted-in-document.html [ Pass Failure ]
+
+crbug.com/698520 external/wpt/preload/fetch-destination.https.html [ Failure Pass ]
+crbug.com/698521 external/wpt/preload/preload-with-type.html [ Failure Pass ]
diff --git a/third_party/WebKit/LayoutTests/external/wpt/media/CanvasTest.ttf b/third_party/WebKit/LayoutTests/external/wpt/media/CanvasTest.ttf
new file mode 100644
index 0000000..9023592
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/media/CanvasTest.ttf
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/external/wpt/preload/download-resources.html b/third_party/WebKit/LayoutTests/external/wpt/preload/download-resources.html
index 390487a..c1c72f1a 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/preload/download-resources.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/preload/download-resources.html
@@ -8,7 +8,7 @@
 <link rel=preload href="resources/dummy.js" as=script>
 <link rel=preload href="resources/dummy.css" as=style>
 <link rel=preload href="resources/square.png" as=image>
-<link rel=preload href="/fonts/CanvasTest.ttf" as=font crossorigin>
+<link rel=preload href="/media/CanvasTest.ttf" as=font crossorigin>
 <link rel=preload href="/media/white.mp4" as=media>
 <link rel=preload href="/media/sound_5.oga" as=media>
 <link rel=preload href="/media/foo.vtt" as=media>
@@ -21,7 +21,7 @@
         verifyPreloadAndRTSupport()
         verifyNumberOfDownloads("resources/dummy.js", 1);
         verifyNumberOfDownloads("resources/dummy.css", 1);
-        verifyNumberOfDownloads("/fonts/CanvasTest.ttf", 1);
+        verifyNumberOfDownloads("/media/CanvasTest.ttf", 1);
         verifyNumberOfDownloads("/media/white.mp4", 1);
         verifyNumberOfDownloads("/media/sound_5.oga", 1);
         verifyNumberOfDownloads("/media/foo.vtt", 1);
diff --git a/third_party/WebKit/LayoutTests/external/wpt/preload/onload-event.html b/third_party/WebKit/LayoutTests/external/wpt/preload/onload-event.html
index 5a1a6010..3d4ac368 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/preload/onload-event.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/preload/onload-event.html
@@ -18,7 +18,7 @@
 <link rel=preload href="resources/dummy.js" as=script onload="scriptLoaded = true;">
 <link rel=preload href="resources/dummy.css" as=style onload="styleLoaded = true;">
 <link rel=preload href="resources/square.png" as=image onload="imageLoaded = true;">
-<link rel=preload href="/fonts/CanvasTest.ttf" as=font crossorigin onload="fontLoaded = true;">
+<link rel=preload href="/media/CanvasTest.ttf" as=font crossorigin onload="fontLoaded = true;">
 <link rel=preload href="/media/white.mp4" as=media onload="videoLoaded = true;">
 <link rel=preload href="/media/sound_5.oga" as=media onload="audioLoaded = true;">
 <link rel=preload href="/media/foo.vtt" as=media onload="trackLoaded = true;">
diff --git a/third_party/WebKit/LayoutTests/external/wpt/preload/preload-with-type.html b/third_party/WebKit/LayoutTests/external/wpt/preload/preload-with-type.html
index 5bce1da..cfe6408 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/preload/preload-with-type.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/preload/preload-with-type.html
@@ -31,7 +31,7 @@
 <link rel=preload href="resources/dummy.js" as=script type="text/javascript" onload="scriptLoaded = true;">
 <link rel=preload href="resources/dummy.css" as=style type="text/css" onload="styleLoaded = true;">
 <link rel=preload href="resources/square.png" as=image type="image/png" onload="imageLoaded = true;">
-<link rel=preload href="/fonts/CanvasTest.ttf" as=font type="font/ttf" crossorigin onload="fontLoaded = true;">
+<link rel=preload href="/media/CanvasTest.ttf" as=font type="font/ttf" crossorigin onload="fontLoaded = true;">
 <script>
     document.write('<link rel=preload href="' + videoURL + '" as=media type="video/' + videoFormat + '" onload="videoLoaded = true;">');
     document.write('<link rel=preload href="' + audioURL + '" as=media type="audio/' + audioFormat + '" onload="audioLoaded = true;">');
@@ -40,7 +40,7 @@
 <link rel=preload href="resources/dummy.js" as=script type="application/foobar" onload="gibberishLoaded++;">
 <link rel=preload href="resources/dummy.css" as=style type="text/foobar" onload="gibberishLoaded++;">
 <link rel=preload href="resources/square.png" as=image type="image/foobar" onload="gibberishLoaded++;">
-<link rel=preload href="/fonts/CanvasTest.ttf" as=font type="font/foobar" crossorigin onload="gibberishLoaded++;">
+<link rel=preload href="/media/CanvasTest.ttf" as=font type="font/foobar" crossorigin onload="gibberishLoaded++;">
 <script>
     document.write('<link rel=preload href="' + videoURL + '" as=media type="video/foobar" onload="gibberishLoaded++;">');
     document.write('<link rel=preload href="' + audioURL + '" as=media type="audio/foobar" onload="gibberishLoaded++;">');
diff --git a/third_party/WebKit/LayoutTests/external/wpt/preload/single-download-preload.html b/third_party/WebKit/LayoutTests/external/wpt/preload/single-download-preload.html
index c06e3e57..4535947 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/preload/single-download-preload.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/preload/single-download-preload.html
@@ -9,14 +9,14 @@
 <link rel=preload href="resources/dummy.css" as=style>
 <link rel=preload href="resources/square.png" as=image>
 <link rel=preload href="resources/square.png?background" as=image>
-<link rel=preload href="/fonts/CanvasTest.ttf" as=font crossorigin>
+<link rel=preload href="/media/CanvasTest.ttf" as=font crossorigin>
 <link rel=preload href="/media/white.mp4" as=media>
 <link rel=preload href="/media/sound_5.oga" as=media>
 <link rel=preload href="/media/foo.vtt" as=media>
 <link rel=preload href="resources/dummy.xml?foo=bar" as=foobarxmlthing>
 <link rel=preload href="resources/dummy.xml">
 <body>
-<script src="resources/dummy.js?pipe=trickle(d5)"></script>
+<script src="resources/dummy.js?pipe=trickle(d3)"></script>
 <style>
     #background {
         width: 200px;
@@ -25,7 +25,7 @@
     }
     @font-face {
       font-family:ahem;
-      src: url(/fonts/CanvasTest.ttf);
+      src: url(/media/CanvasTest.ttf);
     }
     span { font-family: ahem, Arial; }
 </style>
@@ -49,7 +49,7 @@
             verifyNumberOfDownloads("resources/dummy.css", 1);
             verifyNumberOfDownloads("resources/square.png", 1);
             verifyNumberOfDownloads("resources/square.png?background", 1);
-            verifyNumberOfDownloads("/fonts/CanvasTest.ttf", 1);
+            verifyNumberOfDownloads("/media/CanvasTest.ttf", 1);
             verifyNumberOfDownloads("resources/dummy.xml?foobar", 0);
             verifyNumberOfDownloads("/media/foo.vtt", 1);
             verifyNumberOfDownloads("resources/dummy.xml", 1);
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/common/system/platform_info.py b/third_party/WebKit/Tools/Scripts/webkitpy/common/system/platform_info.py
index 860fcd6..acf588a 100644
--- a/third_party/WebKit/Tools/Scripts/webkitpy/common/system/platform_info.py
+++ b/third_party/WebKit/Tools/Scripts/webkitpy/common/system/platform_info.py
@@ -147,9 +147,8 @@
 
     def _determine_mac_version(self, mac_version_string):
         minor_release = int(mac_version_string.split('.')[1])
-        # FIXME: This should really be >= 9, and we should get rid of 'future'.
-        assert minor_release >= 6, 'Unsupported mac os version: %s' % mac_version_string
-        if minor_release in (9, 10, 11):
+        assert minor_release >= 9, 'Unsupported mac OS version: %s' % mac_version_string
+        if minor_release <= 12:
             return 'mac10.%d' % minor_release
         return 'future'
 
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/common/system/platform_info_unittest.py b/third_party/WebKit/Tools/Scripts/webkitpy/common/system/platform_info_unittest.py
index eda5bc7..ff36290 100644
--- a/third_party/WebKit/Tools/Scripts/webkitpy/common/system/platform_info_unittest.py
+++ b/third_party/WebKit/Tools/Scripts/webkitpy/common/system/platform_info_unittest.py
@@ -47,7 +47,7 @@
     return FakeSysModule()
 
 
-def fake_platform(mac_version_string='10.6.3', release_string='bar', linux_version='trusty'):
+def fake_platform(mac_version_string='10.12.3', release_string='bar', linux_version='trusty'):
 
     class FakePlatformModule(object):
 
@@ -108,7 +108,7 @@
         self.assertFalse(info.is_win())
         self.assertFalse(info.is_freebsd())
 
-        info = self.make_info(fake_sys('darwin'), fake_platform('10.6.3'))
+        info = self.make_info(fake_sys('darwin'), fake_platform('10.12.3'))
         self.assertEqual(info.os_name, 'mac')
         self.assertFalse(info.is_linux())
         self.assertTrue(info.is_mac())
@@ -139,11 +139,12 @@
         self.assertRaises(AssertionError, self.make_info, fake_sys('vms'))
 
     def test_os_version(self):
-        self.assertRaises(AssertionError, self.make_info, fake_sys('darwin'), fake_platform('10.4.3'))
+        self.assertRaises(AssertionError, self.make_info, fake_sys('darwin'), fake_platform('10.6.3'))
         self.assertEqual(self.make_info(fake_sys('darwin'), fake_platform('10.9.0')).os_version, 'mac10.9')
         self.assertEqual(self.make_info(fake_sys('darwin'), fake_platform('10.10.0')).os_version, 'mac10.10')
         self.assertEqual(self.make_info(fake_sys('darwin'), fake_platform('10.11.0')).os_version, 'mac10.11')
-        self.assertEqual(self.make_info(fake_sys('darwin'), fake_platform('10.12.0')).os_version, 'future')
+        self.assertEqual(self.make_info(fake_sys('darwin'), fake_platform('10.12.0')).os_version, 'mac10.12')
+        self.assertEqual(self.make_info(fake_sys('darwin'), fake_platform('10.15.0')).os_version, 'future')
 
         self.assertEqual(self.make_info(fake_sys('linux2')).os_version, 'trusty')
         info = self.make_info(fake_sys('linux2'), fake_platform(linux_version='utopic'))
@@ -203,7 +204,7 @@
         self.assertNotEquals(info.display_name(), '')
 
     def test_total_bytes_memory(self):
-        info = self.make_info(fake_sys('darwin'), fake_platform('10.6.3'), executive=fake_executive('1234'))
+        info = self.make_info(fake_sys('darwin'), fake_platform('10.12.3'), executive=fake_executive('1234'))
         self.assertEqual(info.total_bytes_memory(), 1234)
 
         info = self.make_info(fake_sys('win32', tuple([6, 1, 7600])))
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/base.py b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/base.py
index 98c179c..177028ad 100644
--- a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/base.py
+++ b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/base.py
@@ -199,9 +199,6 @@
     def supports_per_test_timeout(self):
         return False
 
-    def default_pixel_tests(self):
-        return True
-
     def default_smoke_test_only(self):
         return False
 
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/mac.py b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/mac.py
index 8ad87584..680e06d2 100644
--- a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/mac.py
+++ b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/mac.py
@@ -37,7 +37,7 @@
 
 
 class MacPort(base.Port):
-    SUPPORTED_VERSIONS = ('mac10.9', 'mac10.10', 'mac10.11', 'retina')
+    SUPPORTED_VERSIONS = ('mac10.9', 'mac10.10', 'mac10.11', 'mac10.12', 'retina')
     port_name = 'mac'
 
     # FIXME: We treat Retina (High-DPI) devices as if they are running
@@ -48,7 +48,8 @@
     # We also currently only support Retina on 10.11.
 
     FALLBACK_PATHS = {}
-    FALLBACK_PATHS['mac10.11'] = ['mac']
+    FALLBACK_PATHS['mac10.12'] = ['mac']
+    FALLBACK_PATHS['mac10.11'] = ['mac-mac10.11'] + FALLBACK_PATHS['mac10.12']
     FALLBACK_PATHS['mac10.10'] = ['mac-mac10.10'] + FALLBACK_PATHS['mac10.11']
     FALLBACK_PATHS['mac10.9'] = ['mac-mac10.9'] + FALLBACK_PATHS['mac10.10']
     FALLBACK_PATHS['retina'] = ['mac-retina', 'mac']
@@ -62,10 +63,7 @@
     @classmethod
     def determine_full_port_name(cls, host, options, port_name):
         if port_name.endswith('mac'):
-            if host.platform.os_version in ('future',):
-                version = 'mac10.11'
-            else:
-                version = host.platform.os_version
+            version = host.platform.os_version
             if host.platform.is_highdpi():
                 version = 'retina'
             return port_name + '-' + version
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/mac_unittest.py b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/mac_unittest.py
index 7c8a2763..5310598 100644
--- a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/mac_unittest.py
+++ b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/mac_unittest.py
@@ -34,9 +34,9 @@
 
 class MacPortTest(port_testcase.PortTestCase):
     os_name = 'mac'
-    os_version = 'mac10.11'
+    os_version = 'mac10.12'
     port_name = 'mac'
-    full_port_name = 'mac-mac10.11'
+    full_port_name = 'mac-mac10.12'
     port_maker = mac.MacPort
 
     def assert_name(self, port_name, os_version_string, expected):
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/port_testcase.py b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/port_testcase.py
index f05e102..ab8887f4 100644
--- a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/port_testcase.py
+++ b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/port_testcase.py
@@ -126,9 +126,6 @@
         self.assertEqual(self.make_port(options=optparse.Values({'configuration': 'Release'})).default_timeout_ms(), 6000)
         self.assertEqual(self.make_port(options=optparse.Values({'configuration': 'Debug'})).default_timeout_ms(), 18000)
 
-    def test_default_pixel_tests(self):
-        self.assertEqual(self.make_port().default_pixel_tests(), True)
-
     def test_driver_cmd_line(self):
         port = self.make_port()
         self.assertTrue(len(port.driver_cmd_line()))
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/test.py b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/test.py
index 67baf100..7c47439 100644
--- a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/test.py
+++ b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/test.py
@@ -427,8 +427,8 @@
             'linux': ['precise', 'trusty']
         }
 
-    def default_pixel_tests(self):
-        return True
+    def buildbot_archives_baselines(self):
+        return self._name != 'test-win-win7'
 
     def _path_to_driver(self):
         # This routine shouldn't normally be called, but it is called by
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py
index 7e7bd00..113c3d3 100644
--- a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py
+++ b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py
@@ -190,12 +190,14 @@
                 "--pixel-tests",
                 dest="pixel_tests",
                 action="store_true",
-                help="Enable pixel-to-pixel PNG comparisons"),
+                default=True,
+                help="Enable pixel-to-pixel PNG comparisons (enabled by default)"),
             optparse.make_option(
                 "--no-pixel",
                 "--no-pixel-tests",
                 dest="pixel_tests",
                 action="store_false",
+                default=True,
                 help="Disable pixel-to-pixel PNG comparisons"),
             # FIXME: we should support a comma separated list with
             # --pixel-test-directory as well.
@@ -485,9 +487,6 @@
     if not options.configuration:
         options.configuration = port.default_configuration()
 
-    if options.pixel_tests is None:
-        options.pixel_tests = port.default_pixel_tests()
-
     if not options.time_out_ms:
         options.time_out_ms = str(port.default_timeout_ms())