diff --git a/core/core.services.yml b/core/core.services.yml
index f5ed5db..81cd11f 100644
--- a/core/core.services.yml
+++ b/core/core.services.yml
@@ -819,6 +819,16 @@ services:
       - { name: path_processor_inbound, priority: 200 }
       - { name: path_processor_outbound, priority: 200 }
     arguments: ['@config.factory']
+  path_processor_none:
+    class: Drupal\Core\PathProcessor\PathProcessorNone
+    tags:
+      - { name: path_processor_outbound, priority: 200 }
+    arguments: ['@config.factory']
+  path_processor_current:
+    class: Drupal\Core\PathProcessor\PathProcessorCurrent
+    tags:
+      - { name: path_processor_outbound, priority: 200 }
+    arguments: ['@config.factory']
   path_processor_alias:
     class: Drupal\Core\PathProcessor\PathProcessorAlias
     tags:
diff --git a/core/lib/Drupal/Core/PathProcessor/PathProcessorCurrent.php b/core/lib/Drupal/Core/PathProcessor/PathProcessorCurrent.php
new file mode 100644
index 0000000..a665c1c
--- /dev/null
+++ b/core/lib/Drupal/Core/PathProcessor/PathProcessorCurrent.php
@@ -0,0 +1,31 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\Core\PathProcessor\PathProcessorCurrent.
+ */
+
+namespace Drupal\Core\PathProcessor;
+
+use Symfony\Component\HttpFoundation\Request;
+
+/**
+ * Provides a path processor to replace <current>.
+ */
+class PathProcessorCurrent implements OutboundPathProcessorInterface {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function processOutbound($path, &$options = array(), Request $request = NULL) {
+    if ($path == '%3Ccurrent%3E' && $request) {
+      $path_info = $request->getPathInfo();
+
+      $current_base_path = $request->getBasePath() . '/';
+      return mb_strcut($path_info, strlen($current_base_path));
+    }
+    return $path;
+  }
+
+}
+
diff --git a/core/lib/Drupal/Core/PathProcessor/PathProcessorNone.php b/core/lib/Drupal/Core/PathProcessor/PathProcessorNone.php
new file mode 100644
index 0000000..990faee
--- /dev/null
+++ b/core/lib/Drupal/Core/PathProcessor/PathProcessorNone.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\Core\PathProcessor\PathProcessorNone.
+ */
+
+namespace Drupal\Core\PathProcessor;
+
+use Symfony\Component\HttpFoundation\Request;
+
+/**
+ * Provides a path processor to replace <none>.
+ */
+class PathProcessorNone implements OutboundPathProcessorInterface {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function processOutbound($path, &$options = array(), Request $request = NULL) {
+    if ($path == '%3Cnone%3E') {
+      return NULL;
+    }
+    return $path;
+  }
+
+}
diff --git a/core/modules/contact/contact.module b/core/modules/contact/contact.module
index f1dfca7..90fb153 100644
--- a/core/modules/contact/contact.module
+++ b/core/modules/contact/contact.module
@@ -97,7 +97,7 @@ function contact_mail($key, &$message, $params) {
     '!site-name' => \Drupal::config('system.site')->get('name'),
     '!subject' => $contact_message->getSubject(),
     '!form' => !empty($params['contact_form']) ? $params['contact_form']->label() : NULL,
-    '!form-url' => url(current_path(), array('absolute' => TRUE, 'language' => $language)),
+    '!form-url' => \Drupal::url('<current>', [], ['absolute' => TRUE, 'language' => $language]),
     '!sender-name' => user_format_name($sender),
   );
   if ($sender->isAuthenticated()) {
diff --git a/core/modules/locale/tests/modules/locale_test/locale_test.module b/core/modules/locale/tests/modules/locale_test/locale_test.module
index d9fd382..ee5e7bf 100644
--- a/core/modules/locale/tests/modules/locale_test/locale_test.module
+++ b/core/modules/locale/tests/modules/locale_test/locale_test.module
@@ -49,7 +49,7 @@ function locale_test_locale_translation_projects_alter(&$projects) {
 
     // Instead of the default ftp.drupal.org we use the file system of the test
     // instance to simulate a remote file location.
-    $url = url(NULL, array('absolute' => TRUE));
+    $url = \Drupal::url('<none>', [], ['absolute' => TRUE]);
     $remote_url = $url . PublicStream::basePath() . '/remote/';
 
     // Completely replace the project data with a set of test projects.
diff --git a/core/modules/system/system.routing.yml b/core/modules/system/system.routing.yml
index 6df0e0c..c2446d6 100644
--- a/core/modules/system/system.routing.yml
+++ b/core/modules/system/system.routing.yml
@@ -352,6 +352,12 @@ system.theme_settings_theme:
   requirements:
     _access: 'TRUE'
 
+'<none>':
+  path: '<none>'
+
+'<current>':
+  path: '<current>'
+
 system.modules_uninstall:
   path: '/admin/modules/uninstall'
   defaults:
