diff --git a/core/includes/common.inc b/core/includes/common.inc
index f2a2b4c..53dfbc3 100644
--- a/core/includes/common.inc
+++ b/core/includes/common.inc
@@ -1039,6 +1039,35 @@ function url_is_external($path) {
 }
 
 /**
+ * Utility method to get the normalized type of the current request.
+ *
+ * Fetches the ContentNegotiation and Request objects from the current container
+ * and returns the associated request content type. The normalized type is a
+ * short, lowercase version of the format, such as 'html', 'json' or 'atom'.
+ *
+ * @return string|false
+ *   The request type or FALSE if there is no request.
+ */
+function drupal_get_request_content_type() {
+  $type = &drupal_static(__FUNCTION__);
+
+  if (isset($type)) {
+    return $type;
+  }
+  else {
+    $container = drupal_container();
+    if ($container->has('request') &&
+      $container->has('content_negotiation')) {
+      $type = $container->get('content_negotiation')->getContentType($container->get('request'));
+    }
+    else {
+      $type = FALSE;
+    }
+  }
+  return $type;
+}
+
+/**
  * Formats an attribute string for an HTTP header.
  *
  * @param $attributes
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/display/DisplayPluginBase.php b/core/modules/views/lib/Drupal/views/Plugin/views/display/DisplayPluginBase.php
index 2afb2b3..c2eff31 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/display/DisplayPluginBase.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/display/DisplayPluginBase.php
@@ -1019,7 +1019,7 @@ public function optionLink($text, $section, $class = '', $title = '') {
       $title = $text;
     }
 
-    return l($text, 'admin/structure/views/nojs/display/' . $this->view->storage->id() . '/' . $this->display['id'] . '/' . $section, array('attributes' => array('class' => array('views-ajax-link', $class), 'title' => $title, 'id' => drupal_html_id('views-' . $this->display['id'] . '-' . $section)), 'html' => TRUE));
+    return l($text, 'admin/structure/views/callback/display/' . $this->view->storage->id() . '/' . $this->display['id'] . '/' . $section, array('attributes' => array('class' => array('views-ajax-link', $class), 'title' => $title, 'id' => drupal_html_id('views-' . $this->display['id'] . '-' . $section)), 'html' => TRUE));
   }
 
   /**
diff --git a/core/modules/views/lib/Drupal/views/Tests/Handler/AreaTest.php b/core/modules/views/lib/Drupal/views/Tests/Handler/AreaTest.php
index 2fae9d3..37c4079 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Handler/AreaTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Handler/AreaTest.php
@@ -69,7 +69,7 @@ public function testUI() {
     $types = array('header', 'footer', 'empty');
     $labels = array();
     foreach ($types as $type) {
-      $edit_path = 'admin/structure/views/nojs/handler/test_example_area/default/' . $type .'/test_example';
+      $edit_path = 'admin/structure/views/callback/handler/test_example_area/default/' . $type .'/test_example';
 
       // First setup an empty label.
       $this->drupalPostForm($edit_path, array(), t('Apply'));
@@ -129,7 +129,7 @@ public function testRenderAreaToken() {
     $view = Views::getView('test_example_area');
     $view->initHandlers();
 
-    $this->drupalGet('admin/structure/views/nojs/handler/test_example_area/default/empty/test_example');
+    $this->drupalGet('admin/structure/views/callback/handler/test_example_area/default/empty/test_example');
 
     // Test that the list is token present.
     $element = $this->xpath('//ul[@class="global-tokens"]');
diff --git a/core/modules/views/lib/Drupal/views/Tests/Handler/FilterDateTest.php b/core/modules/views/lib/Drupal/views/Tests/Handler/FilterDateTest.php
index 5665e96..e9340b5 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Handler/FilterDateTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Handler/FilterDateTest.php
@@ -155,7 +155,7 @@ protected function _testUiValidation() {
     $this->drupalLogin($this->drupalCreateUser(array('administer views', 'administer site configuration')));
 
     $this->drupalGet('admin/structure/views/view/test_filter_date_between/edit');
-    $this->drupalGet('admin/structure/views/nojs/handler/test_filter_date_between/default/filter/created');
+    $this->drupalGet('admin/structure/views/callback/handler/test_filter_date_between/default/filter/created');
 
     $edit = array();
     // Generate a definitive wrong value, which should be checked by validation.
diff --git a/core/modules/views/lib/Drupal/views/Tests/Handler/HandlerTest.php b/core/modules/views/lib/Drupal/views/Tests/Handler/HandlerTest.php
index 9a6e56b..558d25c 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Handler/HandlerTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Handler/HandlerTest.php
@@ -78,7 +78,7 @@ function testFilterInOperatorUi() {
     $admin_user = $this->drupalCreateUser(array('administer views', 'administer site configuration'));
     $this->drupalLogin($admin_user);
 
-    $path = 'admin/structure/views/nojs/handler/test_filter_in_operator_ui/default/filter/type';
+    $path = 'admin/structure/views/callback/handler/test_filter_in_operator_ui/default/filter/type';
     $this->drupalGet($path);
     $this->assertFieldByName('options[expose][reduce]', FALSE);
 
@@ -244,7 +244,7 @@ public function testRelationshipUI() {
     $this->drupalLogin($views_admin);
 
     // Make sure the link to the field options exists.
-    $handler_options_path = 'admin/structure/views/nojs/handler/test_handler_relationships/default/field/title';
+    $handler_options_path = 'admin/structure/views/callback/handler/test_handler_relationships/default/field/title';
     $view_edit_path = 'admin/structure/views/view/test_handler_relationships/edit';
     $this->drupalGet($view_edit_path);
     $this->assertLinkByHref($handler_options_path);
@@ -270,7 +270,7 @@ public function testRelationshipUI() {
     $this->assertEqual($options, $expected_options);
 
     // Remove the relationship and make sure no relationship option appears.
-    $this->drupalPostForm('admin/structure/views/nojs/handler/test_handler_relationships/default/relationship/nid', array(), t('Remove'));
+    $this->drupalPostForm('admin/structure/views/callback/handler/test_handler_relationships/default/relationship/nid', array(), t('Remove'));
     $this->drupalGet($handler_options_path);
     $this->assertNoFieldByName($relationship_name, 'Make sure that no relationship option is available');
   }
diff --git a/core/modules/views/lib/Drupal/views/Tests/Plugin/ArgumentDefaultTest.php b/core/modules/views/lib/Drupal/views/Tests/Plugin/ArgumentDefaultTest.php
index 6f50fa3..68926ce 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Plugin/ArgumentDefaultTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Plugin/ArgumentDefaultTest.php
@@ -95,7 +95,7 @@ function testArgumentDefaultNoOptions() {
     $edit = array(
       'options[default_argument_type]' => $argument_type,
     );
-    $this->drupalPostForm('admin/structure/views/nojs/handler/test_argument_default_current_user/default/argument/uid', $edit, t('Apply'));
+    $this->drupalPostForm('admin/structure/views/callback/handler/test_argument_default_current_user/default/argument/uid', $edit, t('Apply'));
 
     // Note, the undefined index error has two spaces after it.
     $error = array(
diff --git a/core/modules/views/lib/Drupal/views/Tests/Plugin/DisplayFeedTest.php b/core/modules/views/lib/Drupal/views/Tests/Plugin/DisplayFeedTest.php
index 34403c8..ee65bb3 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Plugin/DisplayFeedTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Plugin/DisplayFeedTest.php
@@ -56,7 +56,7 @@ public function testFeedUI() {
     $this->assertText('test_display_feed');
 
     // Check the attach TO interface.
-    $this->drupalGet('admin/structure/views/nojs/display/test_display_feed/feed_1/displays');
+    $this->drupalGet('admin/structure/views/callback/display/test_display_feed/feed_1/displays');
 
     // Load all the options of the checkbox.
     $result = $this->xpath('//div[@id="edit-displays"]/div');
@@ -72,12 +72,12 @@ public function testFeedUI() {
     $this->assertEqual($options, array('default', 'page'), 'Make sure all displays appears as expected.');
 
     // Post and save this and check the output.
-    $this->drupalPostForm('admin/structure/views/nojs/display/test_display_feed/feed_1/displays', array('displays[page]' => 'page'), t('Apply'));
+    $this->drupalPostForm('admin/structure/views/callback/display/test_display_feed/feed_1/displays', array('displays[page]' => 'page'), t('Apply'));
     $this->drupalGet('admin/structure/views/view/test_display_feed/edit/feed_1');
     $this->assertFieldByXpath('//*[@id="views-feed-1-displays"]', 'Page');
 
     // Add the default display, so there should now be multiple displays.
-    $this->drupalPostForm('admin/structure/views/nojs/display/test_display_feed/feed_1/displays', array('displays[default]' => 'default'), t('Apply'));
+    $this->drupalPostForm('admin/structure/views/callback/display/test_display_feed/feed_1/displays', array('displays[default]' => 'default'), t('Apply'));
     $this->drupalGet('admin/structure/views/view/test_display_feed/edit/feed_1');
     $this->assertFieldByXpath('//*[@id="views-feed-1-displays"]', 'Multiple displays');
   }
diff --git a/core/modules/views/lib/Drupal/views/Tests/Plugin/PagerTest.php b/core/modules/views/lib/Drupal/views/Tests/Plugin/PagerTest.php
index 9ba46d8..fc274ab 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Plugin/PagerTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Plugin/PagerTest.php
@@ -51,18 +51,18 @@ public function testStorePagerSettings() {
     $edit = array(
       'pager[type]' => 'full',
     );
-    $this->drupalPostForm('admin/structure/views/nojs/display/test_view/default/pager', $edit, t('Apply'));
+    $this->drupalPostForm('admin/structure/views/callback/display/test_view/default/pager', $edit, t('Apply'));
     $edit = array(
       'pager_options[items_per_page]' => 20,
     );
-    $this->drupalPostForm('admin/structure/views/nojs/display/test_view/default/pager_options', $edit, t('Apply'));
+    $this->drupalPostForm('admin/structure/views/callback/display/test_view/default/pager_options', $edit, t('Apply'));
     $this->assertText('20 items');
 
     // Change type and check whether the type is new type is stored.
     $edit = array(
       'pager[type]' => 'mini',
     );
-    $this->drupalPostForm('admin/structure/views/nojs/display/test_view/default/pager', $edit, t('Apply'));
+    $this->drupalPostForm('admin/structure/views/callback/display/test_view/default/pager', $edit, t('Apply'));
     $this->drupalGet('admin/structure/views/view/test_view/edit');
     $this->assertText('Mini', 'Changed pager plugin, should change some text');
 
@@ -76,14 +76,14 @@ public function testStorePagerSettings() {
     $edit = array(
       'pager[type]' => 'full',
     );
-    $this->drupalPostForm('admin/structure/views/nojs/display/test_store_pager_settings/default/pager', $edit, t('Apply'));
+    $this->drupalPostForm('admin/structure/views/callback/display/test_store_pager_settings/default/pager', $edit, t('Apply'));
     $this->drupalGet('admin/structure/views/view/test_store_pager_settings/edit');
     $this->assertText('Full');
 
     $edit = array(
       'pager_options[items_per_page]' => 20,
     );
-    $this->drupalPostForm('admin/structure/views/nojs/display/test_store_pager_settings/default/pager_options', $edit, t('Apply'));
+    $this->drupalPostForm('admin/structure/views/callback/display/test_store_pager_settings/default/pager_options', $edit, t('Apply'));
     $this->assertText('20 items');
 
     // add new display and test the settings again, by override it.
@@ -93,19 +93,19 @@ public function testStorePagerSettings() {
     $edit = array(
       'override[dropdown]' => 'page_1',
     );
-    $this->drupalPostForm('admin/structure/views/nojs/display/test_store_pager_settings/page_1/pager', $edit, t('Apply'));
+    $this->drupalPostForm('admin/structure/views/callback/display/test_store_pager_settings/page_1/pager', $edit, t('Apply'));
 
     $edit = array(
       'pager[type]' => 'mini',
     );
-    $this->drupalPostForm('admin/structure/views/nojs/display/test_store_pager_settings/page_1/pager', $edit, t('Apply'));
+    $this->drupalPostForm('admin/structure/views/callback/display/test_store_pager_settings/page_1/pager', $edit, t('Apply'));
     $this->drupalGet('admin/structure/views/view/test_store_pager_settings/edit');
     $this->assertText('Mini', 'Changed pager plugin, should change some text');
 
     $edit = array(
       'pager_options[items_per_page]' => 10,
     );
-    $this->drupalPostForm('admin/structure/views/nojs/display/test_store_pager_settings/default/pager_options', $edit, t('Apply'));
+    $this->drupalPostForm('admin/structure/views/callback/display/test_store_pager_settings/default/pager_options', $edit, t('Apply'));
     $this->assertText('10 items', 'The default value has been changed.');
     $this->drupalGet('admin/structure/views/view/test_store_pager_settings/edit/page_1');
     $this->assertText('20 items', 'The original value remains unchanged.');
diff --git a/core/modules/views_ui/lib/Drupal/views_ui/Form/Ajax/ReorderDisplays.php b/core/modules/views_ui/lib/Drupal/views_ui/Form/Ajax/ReorderDisplays.php
index 61e5693..634792a 100644
--- a/core/modules/views_ui/lib/Drupal/views_ui/Form/Ajax/ReorderDisplays.php
+++ b/core/modules/views_ui/lib/Drupal/views_ui/Form/Ajax/ReorderDisplays.php
@@ -38,7 +38,7 @@ public function buildForm(array $form, array &$form_state) {
 
     $form['#title'] = $this->t('Reorder displays');
     $form['#section'] = 'reorder';
-    $form['#action'] = url('admin/structure/views/nojs/reorder-displays/' . $view->id() . '/' . $display_id);
+    $form['#action'] = url('admin/structure/views/callback/reorder-displays/' . $view->id() . '/' . $display_id);
     $form['view'] = array(
       '#type' => 'value',
       '#value' => $view
diff --git a/core/modules/views_ui/lib/Drupal/views_ui/Form/Ajax/ViewsFormInterface.php b/core/modules/views_ui/lib/Drupal/views_ui/Form/Ajax/ViewsFormInterface.php
index d109ea3..79062c9 100644
--- a/core/modules/views_ui/lib/Drupal/views_ui/Form/Ajax/ViewsFormInterface.php
+++ b/core/modules/views_ui/lib/Drupal/views_ui/Form/Ajax/ViewsFormInterface.php
@@ -29,8 +29,7 @@ public function getFormKey();
    * @param string|null $display_id
    *   The display ID being edited, or NULL to load the first available display.
    * @param string $js
-   *   If this is an AJAX form, it will be the string 'ajax'. Otherwise, it will
-   *   be 'nojs'. This determines the response.
+   *   This is 'callback'!!!!
    *
    * @return array
    *   An associative array containing the current state of the form.
@@ -45,8 +44,7 @@ public function getFormState(ViewStorageInterface $view, $display_id, $js);
    * @param string|null $display_id
    *   The display ID being edited, or NULL to load the first available display.
    * @param string $js
-   *   If this is an AJAX form, it will be the string 'ajax'. Otherwise, it will
-   *   be 'nojs'. This determines the response.
+   *   This is 'callback'!!!!
    *
    * @return array
    *   An form for a specific operation in the Views UI, or an array of AJAX
diff --git a/core/modules/views_ui/lib/Drupal/views_ui/Tests/CachedDataUITest.php b/core/modules/views_ui/lib/Drupal/views_ui/Tests/CachedDataUITest.php
index 9bfde8e..366de2c 100644
--- a/core/modules/views_ui/lib/Drupal/views_ui/Tests/CachedDataUITest.php
+++ b/core/modules/views_ui/lib/Drupal/views_ui/Tests/CachedDataUITest.php
@@ -39,7 +39,7 @@ public function testCacheData() {
 
     $this->drupalGet('admin/structure/views/view/test_view/edit');
     // Make sure we have 'changes' to the view.
-    $this->drupalPostForm('admin/structure/views/nojs/display/test_view/default/title', array(), t('Apply'));
+    $this->drupalPostForm('admin/structure/views/callback/display/test_view/default/title', array(), t('Apply'));
     $this->assertText('You have unsaved changes.');
     $this->assertEqual($temp_store->getMetadata('test_view')->owner, $views_admin_user_uid, 'View cache has been saved.');
 
@@ -56,7 +56,7 @@ public function testCacheData() {
     $this->assertUrl('admin/structure/views', array(), 'Redirected back to the view listing page.');
 
     // Login with another user and make sure the view is locked and break.
-    $this->drupalPostForm('admin/structure/views/nojs/display/test_view/default/title', array(), t('Apply'));
+    $this->drupalPostForm('admin/structure/views/callback/display/test_view/default/title', array(), t('Apply'));
     $this->drupalLogin($this->adminUser);
 
     $this->drupalGet('admin/structure/views/view/test_view/edit');
@@ -76,7 +76,7 @@ public function testCacheData() {
     $this->assertRaw(t('The view %view has been saved.', array('%view' => 'Test view')));
 
     // Test that a deleted view has no tempstore data.
-    $this->drupalPostForm('admin/structure/views/nojs/display/test_view/default/title', array(), t('Apply'));
+    $this->drupalPostForm('admin/structure/views/callback/display/test_view/default/title', array(), t('Apply'));
     $this->drupalPostForm('admin/structure/views/view/test_view/delete', array(), t('Delete'));
     // No view tempstore data should be returned for this view after deletion.
     $this->assertEqual($temp_store->getMetadata('test_view'), NULL, 'View tempstore data has been removed after deletion.');
diff --git a/core/modules/views_ui/lib/Drupal/views_ui/Tests/CustomBooleanTest.php b/core/modules/views_ui/lib/Drupal/views_ui/Tests/CustomBooleanTest.php
index 1b40d9f..e69921a 100644
--- a/core/modules/views_ui/lib/Drupal/views_ui/Tests/CustomBooleanTest.php
+++ b/core/modules/views_ui/lib/Drupal/views_ui/Tests/CustomBooleanTest.php
@@ -98,7 +98,7 @@ public function testCustomOption() {
         'options[type_custom_true]' => $values['true'],
         'options[type_custom_false]' => $values['false'],
       );
-      $this->drupalPostForm('admin/structure/views/nojs/handler/test_view/default/field/age', $options, 'Apply');
+      $this->drupalPostForm('admin/structure/views/callback/handler/test_view/default/field/age', $options, 'Apply');
 
       // Save the view.
       $this->drupalPostForm('admin/structure/views/view/test_view', array(), 'Save');
diff --git a/core/modules/views_ui/lib/Drupal/views_ui/Tests/DefaultViewsTest.php b/core/modules/views_ui/lib/Drupal/views_ui/Tests/DefaultViewsTest.php
index 607cfc1..065aafc 100644
--- a/core/modules/views_ui/lib/Drupal/views_ui/Tests/DefaultViewsTest.php
+++ b/core/modules/views_ui/lib/Drupal/views_ui/Tests/DefaultViewsTest.php
@@ -56,14 +56,14 @@ function testDefaultViews() {
     // displayed.
     $new_title = $this->randomName(16);
     $edit = array('title' => $new_title);
-    $this->drupalPostForm('admin/structure/views/nojs/display/glossary/page_1/title', $edit, t('Apply'));
+    $this->drupalPostForm('admin/structure/views/callback/display/glossary/page_1/title', $edit, t('Apply'));
     $this->drupalPostForm('admin/structure/views/view/glossary/edit/page_1', array(), t('Save'));
     $this->drupalGet('glossary');
     $this->assertResponse(200);
     $this->assertText($new_title);
 
     // Save another view in the UI.
-    $this->drupalPostForm('admin/structure/views/nojs/display/archive/page_1/title', array(), t('Apply'));
+    $this->drupalPostForm('admin/structure/views/callback/display/archive/page_1/title', array(), t('Apply'));
     $this->drupalPostForm('admin/structure/views/view/archive/edit/page_1', array(), t('Save'));
 
     // Check there is an enable link. i.e. The view has not been enabled after
diff --git a/core/modules/views_ui/lib/Drupal/views_ui/Tests/DisplayAttachmentTest.php b/core/modules/views_ui/lib/Drupal/views_ui/Tests/DisplayAttachmentTest.php
index 5d71210..4b20063 100644
--- a/core/modules/views_ui/lib/Drupal/views_ui/Tests/DisplayAttachmentTest.php
+++ b/core/modules/views_ui/lib/Drupal/views_ui/Tests/DisplayAttachmentTest.php
@@ -38,7 +38,7 @@ public function testAttachmentUI() {
     $this->drupalGet('admin/structure/views/view/test_attachment_ui/edit/attachment_1');
     $this->assertText(t('Not defined'), 'The right text appears if there is no attachment selection yet.');
 
-    $attachment_display_url = 'admin/structure/views/nojs/display/test_attachment_ui/attachment_1/displays';
+    $attachment_display_url = 'admin/structure/views/callback/display/test_attachment_ui/attachment_1/displays';
     $this->drupalGet($attachment_display_url);
 
     foreach (array('default', 'page-1') as $display_id) {
diff --git a/core/modules/views_ui/lib/Drupal/views_ui/Tests/DisplayExtenderUITest.php b/core/modules/views_ui/lib/Drupal/views_ui/Tests/DisplayExtenderUITest.php
index 388eb38..2980ece 100644
--- a/core/modules/views_ui/lib/Drupal/views_ui/Tests/DisplayExtenderUITest.php
+++ b/core/modules/views_ui/lib/Drupal/views_ui/Tests/DisplayExtenderUITest.php
@@ -37,7 +37,7 @@ public function testDisplayExtenderUI() {
 
     $view = Views::getView('test_view');
     $view_edit_url = "admin/structure/views/view/{$view->storage->id()}/edit";
-    $display_option_url = 'admin/structure/views/nojs/display/test_view/default/test_extender_test_option';
+    $display_option_url = 'admin/structure/views/callback/display/test_view/default/test_extender_test_option';
 
     $this->drupalGet($view_edit_url);
     $this->assertLinkByHref($display_option_url, 0, 'Make sure the option defined by the test display extender appears in the UI.');
diff --git a/core/modules/views_ui/lib/Drupal/views_ui/Tests/DisplayPath.php b/core/modules/views_ui/lib/Drupal/views_ui/Tests/DisplayPath.php
index 31b1ff2..7799dff 100644
--- a/core/modules/views_ui/lib/Drupal/views_ui/Tests/DisplayPath.php
+++ b/core/modules/views_ui/lib/Drupal/views_ui/Tests/DisplayPath.php
@@ -39,7 +39,7 @@ public function testPathUI() {
 
     // Save a path and make sure the summary appears as expected.
     $random_path = $this->randomName();
-    $this->drupalPostForm('admin/structure/views/nojs/display/test_view/page_1/path', array('path' => $random_path), t('Apply'));
+    $this->drupalPostForm('admin/structure/views/callback/display/test_view/page_1/path', array('path' => $random_path), t('Apply'));
     $this->assertText('/' . $random_path, 'The custom path appears in the summary.');
     $this->assertLink(t('View @display', array('@display' => 'Page')), 0, 'view page link found on the page.');
   }
@@ -65,12 +65,12 @@ public function testMenuOptions() {
     // Add a new page display.
     $this->drupalPostForm(NULL, array(), 'Add Page');
     // Save a path.
-    $this->drupalPostForm('admin/structure/views/nojs/display/test_view/page_1/path', array('path' => $this->randomString()), t('Apply'));
+    $this->drupalPostForm('admin/structure/views/callback/display/test_view/page_1/path', array('path' => $this->randomString()), t('Apply'));
     $this->drupalGet('admin/structure/views/view/test_view');
 
-    $this->drupalPostForm('admin/structure/views/nojs/display/test_view/page_1/menu', array('menu[type]' => 'default tab', 'menu[title]' => 'Test tab title'), t('Apply'));
+    $this->drupalPostForm('admin/structure/views/callback/display/test_view/page_1/menu', array('menu[type]' => 'default tab', 'menu[title]' => 'Test tab title'), t('Apply'));
     $this->assertResponse(200);
-    $this->assertUrl('admin/structure/views/nojs/display/test_view/page_1/tab_options');
+    $this->assertUrl('admin/structure/views/callback/display/test_view/page_1/tab_options');
 
     $this->drupalPostForm(NULL, array('tab_options[type]' => 'tab', 'tab_options[title]' => $this->randomString()), t('Apply'));
     $this->assertResponse(200);
@@ -79,7 +79,7 @@ public function testMenuOptions() {
     $this->drupalGet('admin/structure/views/view/test_view');
     $this->assertLink(t('Tab: @title', array('@title' => 'Test tab title')));
     // If it's a default tab, it should also have an additional settings link.
-    $this->assertLinkByHref('admin/structure/views/nojs/display/test_view/page_1/tab_options');
+    $this->assertLinkByHref('admin/structure/views/callback/display/test_view/page_1/tab_options');
   }
 
 }
diff --git a/core/modules/views_ui/lib/Drupal/views_ui/Tests/DisplayTest.php b/core/modules/views_ui/lib/Drupal/views_ui/Tests/DisplayTest.php
index b3edc9a..f0ad0ba 100644
--- a/core/modules/views_ui/lib/Drupal/views_ui/Tests/DisplayTest.php
+++ b/core/modules/views_ui/lib/Drupal/views_ui/Tests/DisplayTest.php
@@ -141,7 +141,7 @@ public function testDisplayAreas() {
   public function testLinkDisplay() {
     // Test setting the link display in the UI form.
     $path = 'admin/structure/views/view/test_display/edit/block_1';
-    $link_display_path = 'admin/structure/views/nojs/display/test_display/block_1/link_display';
+    $link_display_path = 'admin/structure/views/callback/display/test_display/block_1/link_display';
 
     // Test the link text displays 'None' and not 'Block 1'
     $this->drupalGet($path);
@@ -221,7 +221,7 @@ public function testActionLinks() {
     // be escaped when rendered.
     $display_title = "'<test>'";
     $this->drupalGet('admin/structure/views/view/test_display');
-    $display_title_path = 'admin/structure/views/nojs/display/test_display/block_1/display_title';
+    $display_title_path = 'admin/structure/views/callback/display/test_display/block_1/display_title';
     $this->drupalPostForm($display_title_path, array('display_title' => $display_title), t('Apply'));
 
     $placeholder = array('!display_title' => $display_title);
diff --git a/core/modules/views_ui/lib/Drupal/views_ui/Tests/DisplayTestCRUD.php b/core/modules/views_ui/lib/Drupal/views_ui/Tests/DisplayTestCRUD.php
index c027167..ffe1986 100644
--- a/core/modules/views_ui/lib/Drupal/views_ui/Tests/DisplayTestCRUD.php
+++ b/core/modules/views_ui/lib/Drupal/views_ui/Tests/DisplayTestCRUD.php
@@ -56,7 +56,7 @@ public function testAddDisplay() {
     $this->assertNoLink('Master*', 0, 'Make sure the master display is not marked as changed.');
     $this->assertLink('Page*', 0, 'Make sure the added display is marked as changed.');
 
-    $this->drupalPostForm("admin/structure/views/nojs/display/{$view['id']}/page_1/path", array('path' => 'test/path'), t('Apply'));
+    $this->drupalPostForm("admin/structure/views/callback/display/{$view['id']}/page_1/path", array('path' => 'test/path'), t('Apply'));
     $this->drupalPostForm(NULL, array(), t('Save'));
 
     // Test that the new view display contains the correct provider.
@@ -123,8 +123,8 @@ public function testCloneDisplay() {
     // Set the title and override the css classes.
     $random_title = $this->randomName();
     $random_css = $this->randomName();
-    $this->drupalPostForm("admin/structure/views/nojs/display/{$view['id']}/page_2/title", array('title' => $random_title), t('Apply'));
-    $this->drupalPostForm("admin/structure/views/nojs/display/{$view['id']}/page_2/css_class", array('override[dropdown]' => 'page_2', 'css_class' => $random_css), t('Apply'));
+    $this->drupalPostForm("admin/structure/views/callback/display/{$view['id']}/page_2/title", array('title' => $random_title), t('Apply'));
+    $this->drupalPostForm("admin/structure/views/callback/display/{$view['id']}/page_2/css_class", array('override[dropdown]' => 'page_2', 'css_class' => $random_css), t('Apply'));
 
     // Clone as a different display type.
     $this->drupalPostForm(NULL, array(), 'Clone as Block');
diff --git a/core/modules/views_ui/lib/Drupal/views_ui/Tests/ExposedFormUITest.php b/core/modules/views_ui/lib/Drupal/views_ui/Tests/ExposedFormUITest.php
index a17ffce..fc34324 100644
--- a/core/modules/views_ui/lib/Drupal/views_ui/Tests/ExposedFormUITest.php
+++ b/core/modules/views_ui/lib/Drupal/views_ui/Tests/ExposedFormUITest.php
@@ -45,7 +45,7 @@ protected function setUp() {
   function testExposedAdminUi() {
     $edit = array();
 
-    $this->drupalGet('admin/structure/views/nojs/handler/test_exposed_admin_ui/default/filter/type');
+    $this->drupalGet('admin/structure/views/callback/handler/test_exposed_admin_ui/default/filter/type');
     // Be sure that the button is called exposed.
     $this->helperButtonHasLabel('edit-options-expose-button-button', t('Expose filter'));
 
@@ -57,7 +57,7 @@ function testExposedAdminUi() {
     $this->assertFieldById('edit-options-value-article', '', 'Checkbox for Article exists');
 
     // Click the Expose filter button.
-    $this->drupalPostForm('admin/structure/views/nojs/handler/test_exposed_admin_ui/default/filter/type', $edit, t('Expose filter'));
+    $this->drupalPostForm('admin/structure/views/callback/handler/test_exposed_admin_ui/default/filter/type', $edit, t('Expose filter'));
     // Check the label of the expose button.
     $this->helperButtonHasLabel('edit-options-expose-button-button', t('Hide filter'));
     // Check the label of the grouped exposed button
@@ -81,12 +81,12 @@ function testExposedAdminUi() {
     $this->assertText(t('This identifier is not allowed.'));
 
     // Now check the sort criteria.
-    $this->drupalGet('admin/structure/views/nojs/handler/test_exposed_admin_ui/default/sort/created');
+    $this->drupalGet('admin/structure/views/callback/handler/test_exposed_admin_ui/default/sort/created');
     $this->helperButtonHasLabel('edit-options-expose-button-button', t('Expose sort'));
     $this->assertNoFieldById('edit-options-expose-label', '', 'Make sure no label field is shown');
 
     // Click the Grouped Filters button.
-    $this->drupalGet('admin/structure/views/nojs/handler/test_exposed_admin_ui/default/filter/type');
+    $this->drupalGet('admin/structure/views/callback/handler/test_exposed_admin_ui/default/filter/type');
     $this->drupalPostForm(NULL, array(), t('Grouped filters'));
 
     // After click on 'Grouped Filters', the standard operator and value should
@@ -101,7 +101,7 @@ function testExposedAdminUi() {
     $this->helperButtonHasLabel('edit-options-group-info-add-group', t('Add another item'));
 
     // Create a grouped filter
-    $this->drupalGet('admin/structure/views/nojs/handler/test_exposed_admin_ui/default/filter/type');
+    $this->drupalGet('admin/structure/views/callback/handler/test_exposed_admin_ui/default/filter/type');
     $edit = array();
     $edit["options[group_info][group_items][1][title]"] = 'Is Article';
     $edit["options[group_info][group_items][1][value][article]"] = 'article';
@@ -116,7 +116,7 @@ function testExposedAdminUi() {
 
     // Select the empty operator, so the empty value should not trigger a form
     // error.
-    $this->drupalGet('admin/structure/views/nojs/handler/test_exposed_admin_ui/default/filter/body_value');
+    $this->drupalGet('admin/structure/views/callback/handler/test_exposed_admin_ui/default/filter/body_value');
     $edit = array();
     $edit["options[group_info][group_items][1][title]"] = $this->randomName();
     $edit["options[group_info][group_items][1][operator]"] = 'empty';
@@ -126,7 +126,7 @@ function testExposedAdminUi() {
     $this->assertNoText(t('The value is required if title for this item is defined.'));
 
     // Validate that all the titles are defined for each group
-    $this->drupalGet('admin/structure/views/nojs/handler/test_exposed_admin_ui/default/filter/type');
+    $this->drupalGet('admin/structure/views/callback/handler/test_exposed_admin_ui/default/filter/type');
     $edit = array();
     $edit["options[group_info][group_items][1][title]"] = 'Is Article';
     $edit["options[group_info][group_items][1][value][article]"] = TRUE;
@@ -142,7 +142,7 @@ function testExposedAdminUi() {
     $this->assertRaw(t('The title is required if value for this item is defined.'), 'Group items should have a title');
 
     // Un-expose the filter.
-    $this->drupalGet('admin/structure/views/nojs/handler/test_exposed_admin_ui/default/filter/type');
+    $this->drupalGet('admin/structure/views/callback/handler/test_exposed_admin_ui/default/filter/type');
     $this->drupalPostForm(NULL, array(), t('Hide filter'));
 
     // After Un-exposing the filter, Operator and Value should be shown again.
@@ -153,7 +153,7 @@ function testExposedAdminUi() {
 
     // Click the Expose sort button.
     $edit = array();
-    $this->drupalPostForm('admin/structure/views/nojs/handler/test_exposed_admin_ui/default/sort/created', $edit, t('Expose sort'));
+    $this->drupalPostForm('admin/structure/views/callback/handler/test_exposed_admin_ui/default/sort/created', $edit, t('Expose sort'));
     // Check the label of the expose button.
     $this->helperButtonHasLabel('edit-options-expose-button-button', t('Hide sort'));
     $this->assertFieldById('edit-options-expose-label', '', 'Make sure a label field is shown');
diff --git a/core/modules/views_ui/lib/Drupal/views_ui/Tests/FieldUITest.php b/core/modules/views_ui/lib/Drupal/views_ui/Tests/FieldUITest.php
index 4bcddc0..7d762c5 100644
--- a/core/modules/views_ui/lib/Drupal/views_ui/Tests/FieldUITest.php
+++ b/core/modules/views_ui/lib/Drupal/views_ui/Tests/FieldUITest.php
@@ -39,24 +39,24 @@ public function testFieldUI() {
     $this->assertNoText('Views test: Name (Name) [' . t('hidden') . ']');
 
     // Hides the field and check whether the hidden label is appended.
-    $edit_handler_url = 'admin/structure/views/nojs/handler/test_view/default/field/name';
+    $edit_handler_url = 'admin/structure/views/callback/handler/test_view/default/field/name';
     $this->drupalPostForm($edit_handler_url, array('options[exclude]' => TRUE), t('Apply'));
 
     $this->assertText('Views test: Name (Name) [' . t('hidden') . ']');
 
     // Ensure that the expected tokens appear in the UI.
-    $edit_handler_url = 'admin/structure/views/nojs/handler/test_view/default/field/age';
+    $edit_handler_url = 'admin/structure/views/callback/handler/test_view/default/field/age';
     $this->drupalGet($edit_handler_url);
     $result = $this->xpath('//details[@id="edit-options-alter-help"]/div[@class="details-wrapper"]/div[@class="item-list"]/fields/li');
     $this->assertEqual((string) $result[0], '[age] == Age');
 
-    $edit_handler_url = 'admin/structure/views/nojs/handler/test_view/default/field/id';
+    $edit_handler_url = 'admin/structure/views/callback/handler/test_view/default/field/id';
     $this->drupalGet($edit_handler_url);
     $result = $this->xpath('//details[@id="edit-options-alter-help"]/div[@class="details-wrapper"]/div[@class="item-list"]/fields/li');
     $this->assertEqual((string) $result[0], '[age] == Age');
     $this->assertEqual((string) $result[1], '[id] == ID');
 
-    $edit_handler_url = 'admin/structure/views/nojs/handler/test_view/default/field/name';
+    $edit_handler_url = 'admin/structure/views/callback/handler/test_view/default/field/name';
     $this->drupalGet($edit_handler_url);
     $result = $this->xpath('//details[@id="edit-options-alter-help"]/div[@class="details-wrapper"]/div[@class="item-list"]/fields/li');
     $this->assertEqual((string) $result[0], '[age] == Age');
diff --git a/core/modules/views_ui/lib/Drupal/views_ui/Tests/FilterBooleanWebTest.php b/core/modules/views_ui/lib/Drupal/views_ui/Tests/FilterBooleanWebTest.php
index 24b0f39..a3e9408 100644
--- a/core/modules/views_ui/lib/Drupal/views_ui/Tests/FilterBooleanWebTest.php
+++ b/core/modules/views_ui/lib/Drupal/views_ui/Tests/FilterBooleanWebTest.php
@@ -33,7 +33,7 @@ public static function getInfo() {
    * Tests the filter boolean UI.
    */
   public function testFilterBooleanUI() {
-    $this->drupalPostForm('admin/structure/views/nojs/add-handler/test_view/default/filter', array('name[views_test_data.status]' => TRUE), t('Add and configure @handler', array('@handler' => t('filter criteria'))));
+    $this->drupalPostForm('admin/structure/views/callback/add-handler/test_view/default/filter', array('name[views_test_data.status]' => TRUE), t('Add and configure @handler', array('@handler' => t('filter criteria'))));
 
     $this->drupalPostForm(NULL, array(), t('Expose filter'));
     $this->drupalPostForm(NULL, array(), t('Grouped filters'));
@@ -51,7 +51,7 @@ public function testFilterBooleanUI() {
 
     $this->drupalPostForm(NULL, $edit, t('Apply'));
 
-    $this->drupalGet('admin/structure/views/nojs/handler/test_view/default/filter/status');
+    $this->drupalGet('admin/structure/views/callback/handler/test_view/default/filter/status');
 
     $result = $this->xpath('//input[@name="options[group_info][group_items][1][value]"]');
     $this->assertEqual((int) $result[1]->attributes()->checked, 'checked');
diff --git a/core/modules/views_ui/lib/Drupal/views_ui/Tests/GroupByTest.php b/core/modules/views_ui/lib/Drupal/views_ui/Tests/GroupByTest.php
index 7a5d615..7e1c484 100644
--- a/core/modules/views_ui/lib/Drupal/views_ui/Tests/GroupByTest.php
+++ b/core/modules/views_ui/lib/Drupal/views_ui/Tests/GroupByTest.php
@@ -35,14 +35,14 @@ public static function getInfo() {
   function testGroupBySave() {
     $this->drupalGet('admin/structure/views/view/test_views_groupby_save/edit');
 
-    $edit_groubpy_url = 'admin/structure/views/nojs/handler-group/test_views_groupby_save/default/field/id';
+    $edit_groubpy_url = 'admin/structure/views/callback/handler-group/test_views_groupby_save/default/field/id';
     $this->assertNoLinkByHref($edit_groubpy_url, 0, 'No aggregation link found.');
 
     // Enable aggregation on the view.
     $edit = array(
       'group_by' => TRUE,
     );
-    $this->drupalPostForm('admin/structure/views/nojs/display/test_views_groupby_save/default/group_by', $edit, t('Apply'));
+    $this->drupalPostForm('admin/structure/views/callback/display/test_views_groupby_save/default/group_by', $edit, t('Apply'));
 
     $this->assertLinkByHref($edit_groubpy_url, 0, 'Aggregation link found.');
 
diff --git a/core/modules/views_ui/lib/Drupal/views_ui/Tests/HandlerTest.php b/core/modules/views_ui/lib/Drupal/views_ui/Tests/HandlerTest.php
index 5a00b03..d8684b5 100644
--- a/core/modules/views_ui/lib/Drupal/views_ui/Tests/HandlerTest.php
+++ b/core/modules/views_ui/lib/Drupal/views_ui/Tests/HandlerTest.php
@@ -78,23 +78,23 @@ public function testUICRUD() {
     $handler_types = ViewExecutable::getHandlerTypes();
     foreach ($handler_types as $type => $type_info) {
       // Test adding handlers.
-      $add_handler_url = "admin/structure/views/nojs/add-handler/test_view_empty/default/$type";
+      $add_handler_url = "admin/structure/views/callback/add-handler/test_view_empty/default/$type";
 
       // Area handler types need to use a different handler.
       if (in_array($type, array('header', 'footer', 'empty'))) {
         $this->drupalPostForm($add_handler_url, array('name[views.area]' => TRUE), t('Add and configure @handler', array('@handler' => $type_info['ltitle'])));
         $id = 'area';
-        $edit_handler_url = "admin/structure/views/nojs/handler/test_view_empty/default/$type/$id";
+        $edit_handler_url = "admin/structure/views/callback/handler/test_view_empty/default/$type/$id";
       }
       elseif ($type == 'relationship') {
         $this->drupalPostForm($add_handler_url, array('name[views_test_data.uid]' => TRUE), t('Add and configure @handler', array('@handler' => $type_info['ltitle'])));
         $id = 'uid';
-        $edit_handler_url = "admin/structure/views/nojs/handler/test_view_empty/default/$type/$id";
+        $edit_handler_url = "admin/structure/views/callback/handler/test_view_empty/default/$type/$id";
       }
       else {
         $this->drupalPostForm($add_handler_url, array('name[views_test_data.job]' => TRUE), t('Add and configure @handler', array('@handler' => $type_info['ltitle'])));
         $id = 'job';
-        $edit_handler_url = "admin/structure/views/nojs/handler/test_view_empty/default/$type/$id";
+        $edit_handler_url = "admin/structure/views/callback/handler/test_view_empty/default/$type/$id";
       }
 
       $this->assertUrl($edit_handler_url, array(), 'The user got redirected to the handler edit form.');
@@ -125,14 +125,14 @@ public function testUICRUD() {
 
     // Test adding a field of the user table using the uid relationship.
     $type_info = $handler_types['relationship'];
-    $add_handler_url = "admin/structure/views/nojs/add-handler/test_view_empty/default/relationship";
+    $add_handler_url = "admin/structure/views/callback/add-handler/test_view_empty/default/relationship";
     $this->drupalPostForm($add_handler_url, array('name[views_test_data.uid]' => TRUE), t('Add and configure @handler', array('@handler' => $type_info['ltitle'])));
 
-    $add_handler_url = "admin/structure/views/nojs/add-handler/test_view_empty/default/field";
+    $add_handler_url = "admin/structure/views/callback/add-handler/test_view_empty/default/field";
     $type_info = $handler_types['field'];
     $this->drupalPostForm($add_handler_url, array('name[users.signature]' => TRUE), t('Add and configure @handler', array('@handler' => $type_info['ltitle'])));
     $id = 'signature';
-    $edit_handler_url = "admin/structure/views/nojs/handler/test_view_empty/default/field/$id";
+    $edit_handler_url = "admin/structure/views/callback/handler/test_view_empty/default/field/$id";
 
     $this->assertUrl($edit_handler_url, array(), 'The user got redirected to the handler edit form.');
     $this->assertFieldByName('options[relationship]', 'uid', 'Ensure the relationship select is filled with the UID relationship.');
@@ -152,7 +152,7 @@ public function testBrokenHandlers() {
     foreach ($handler_types as $type => $type_info) {
       $this->drupalGet('admin/structure/views/view/test_view_broken/edit');
 
-      $href = "admin/structure/views/nojs/handler/test_view_broken/default/$type/id_broken";
+      $href = "admin/structure/views/callback/handler/test_view_broken/default/$type/id_broken";
 
       $result = $this->xpath('//a[contains(@href, :href)]', array(':href' => $href));
       $this->assertEqual(count($result), 1, String::format('Handler (%type) edit link found.', array('%type' => $type)));
@@ -186,7 +186,7 @@ public function testOptionalHandlers() {
     foreach ($handler_types as $type => $type_info) {
       $this->drupalGet('admin/structure/views/view/test_view_optional/edit');
 
-      $href = "admin/structure/views/nojs/handler/test_view_optional/default/$type/id_optional";
+      $href = "admin/structure/views/callback/handler/test_view_optional/default/$type/id_optional";
 
       $result = $this->xpath('//a[contains(@href, :href)]', array(':href' => $href));
       $this->assertEqual(count($result), 1, String::format('Handler (%type) edit link found.', array('%type' => $type)));
diff --git a/core/modules/views_ui/lib/Drupal/views_ui/Tests/OverrideDisplaysTest.php b/core/modules/views_ui/lib/Drupal/views_ui/Tests/OverrideDisplaysTest.php
index 3384b0f..d8cca31 100644
--- a/core/modules/views_ui/lib/Drupal/views_ui/Tests/OverrideDisplaysTest.php
+++ b/core/modules/views_ui/lib/Drupal/views_ui/Tests/OverrideDisplaysTest.php
@@ -41,7 +41,7 @@ function testOverrideDisplays() {
     $edit = array();
     $edit['title'] = $original_title = $this->randomName(16);
     $edit['override[dropdown]'] = 'default';
-    $this->drupalPostForm("admin/structure/views/nojs/display/{$view['id']}/page_1/title", $edit, t('Apply'));
+    $this->drupalPostForm("admin/structure/views/callback/display/{$view['id']}/page_1/title", $edit, t('Apply'));
     $this->drupalPostForm("admin/structure/views/view/{$view['id']}/edit/page_1", array(), t('Save'));
 
     // Add a node that will appear in the view, so that the block will actually
@@ -69,7 +69,7 @@ function testOverrideDisplays() {
     $edit = array();
     $edit['title'] = $new_title = $this->randomName(16);
     $edit['override[dropdown]'] = 'page_1';
-    $this->drupalPostForm("admin/structure/views/nojs/display/{$view['id']}/page_1/title", $edit, t('Apply'));
+    $this->drupalPostForm("admin/structure/views/callback/display/{$view['id']}/page_1/title", $edit, t('Apply'));
     $this->drupalPostForm("admin/structure/views/view/{$view['id']}/edit/page_1", array(), t('Save'));
     $this->drupalGet($view_path);
     $this->assertResponse(200);
@@ -135,7 +135,7 @@ function testWizardMixedDefaultOverriddenDisplays() {
     // the feed's title also, but not the block.
     $edit = array();
     $edit['title'] = $new_default_title = $this->randomName(16);
-    $this->drupalPostForm("admin/structure/views/nojs/display/{$view['id']}/page_1/title", $edit, t('Apply'));
+    $this->drupalPostForm("admin/structure/views/callback/display/{$view['id']}/page_1/title", $edit, t('Apply'));
     $this->drupalPostForm("admin/structure/views/view/{$view['id']}/edit/page_1", array(), t('Save'));
     $this->drupalGet($view['page[path]']);
     $this->assertResponse(200);
@@ -156,7 +156,7 @@ function testWizardMixedDefaultOverriddenDisplays() {
     // the block title only, and leave the defaults alone.
     $edit = array();
     $edit['title'] = $new_block_title = $this->randomName(16);
-    $this->drupalPostForm("admin/structure/views/nojs/display/{$view['id']}/block_1/title", $edit, t('Apply'));
+    $this->drupalPostForm("admin/structure/views/callback/display/{$view['id']}/block_1/title", $edit, t('Apply'));
     $this->drupalPostForm("admin/structure/views/view/{$view['id']}/edit/block_1", array(), t('Save'));
     $this->drupalGet($view['page[path]']);
     $this->assertResponse(200);
@@ -192,7 +192,7 @@ function testRevertAllDisplays() {
     $edit['title'] = $new_block_title = $this->randomName();
     $edit['override[dropdown]'] = 'default_revert';
 
-    $this->drupalPostForm("admin/structure/views/nojs/display/{$view['id']}/block_1/title", $edit, t('Apply'));
+    $this->drupalPostForm("admin/structure/views/callback/display/{$view['id']}/block_1/title", $edit, t('Apply'));
     $this->drupalPostForm("admin/structure/views/view/{$view['id']}/edit/block_1", array(), t('Save'));
     $this->assertText($view['page[title]']);
   }
diff --git a/core/modules/views_ui/lib/Drupal/views_ui/Tests/QueryTest.php b/core/modules/views_ui/lib/Drupal/views_ui/Tests/QueryTest.php
index 0013b78..7f6ac31 100644
--- a/core/modules/views_ui/lib/Drupal/views_ui/Tests/QueryTest.php
+++ b/core/modules/views_ui/lib/Drupal/views_ui/Tests/QueryTest.php
@@ -46,7 +46,7 @@ protected function viewsData() {
    */
   public function testQueryUI() {
     // Save some query settings.
-    $query_settings_path = "admin/structure/views/nojs/display/test_view/default/query";
+    $query_settings_path = "admin/structure/views/callback/display/test_view/default/query";
     $random_value = $this->randomName();
     $this->drupalPostForm($query_settings_path, array('query[options][test_setting]' => $random_value), t('Apply'));
     $this->drupalPostForm(NULL, array(), t('Save'));
diff --git a/core/modules/views_ui/lib/Drupal/views_ui/Tests/RearrangeFieldsTest.php b/core/modules/views_ui/lib/Drupal/views_ui/Tests/RearrangeFieldsTest.php
index b7bd570..5d674ed 100644
--- a/core/modules/views_ui/lib/Drupal/views_ui/Tests/RearrangeFieldsTest.php
+++ b/core/modules/views_ui/lib/Drupal/views_ui/Tests/RearrangeFieldsTest.php
@@ -53,7 +53,7 @@ protected function getViewFields($view_name = 'test_view', $display_id = 'defaul
    *   Array of field names.
    */
   protected function assertFieldOrder($view_name, $fields) {
-    $this->drupalGet('admin/structure/views/nojs/rearrange/' . $view_name . '/default/field');
+    $this->drupalGet('admin/structure/views/callback/rearrange/' . $view_name . '/default/field');
 
     foreach ($fields as $idx => $field) {
       $this->assertFieldById('edit-fields-' . $field . '-weight', $idx + 1);
@@ -71,7 +71,7 @@ public function testRearrangeFields() {
 
     // Checks that a field is not deleted if a value is not passed back.
     $fields = array();
-    $this->drupalPostForm('admin/structure/views/nojs/rearrange/' . $view_name . '/default/field', $fields, t('Apply'));
+    $this->drupalPostForm('admin/structure/views/callback/rearrange/' . $view_name . '/default/field', $fields, t('Apply'));
     $this->assertFieldOrder($view_name, $this->getViewFields($view_name));
 
     // Checks that revers the new field order is respected.
@@ -80,7 +80,7 @@ public function testRearrangeFields() {
     foreach ($reversedFields as $delta => $field) {
       $fields['fields[' . $field . '][weight]'] = $delta;
     }
-    $this->drupalPostForm('admin/structure/views/nojs/rearrange/' . $view_name . '/default/field', $fields, t('Apply'));
+    $this->drupalPostForm('admin/structure/views/callback/rearrange/' . $view_name . '/default/field', $fields, t('Apply'));
     $this->assertFieldOrder($view_name, $reversedFields);
   }
 
diff --git a/core/modules/views_ui/lib/Drupal/views_ui/Tests/RedirectTest.php b/core/modules/views_ui/lib/Drupal/views_ui/Tests/RedirectTest.php
index 08483f6..95f91c5 100644
--- a/core/modules/views_ui/lib/Drupal/views_ui/Tests/RedirectTest.php
+++ b/core/modules/views_ui/lib/Drupal/views_ui/Tests/RedirectTest.php
@@ -46,7 +46,7 @@ public function testRedirect() {
     $new_path = $this->randomName();
 
     $edit_path = "admin/structure/views/view/$view_name/edit";
-    $path_edit_path = "admin/structure/views/nojs/display/$view_name/page_1/path";
+    $path_edit_path = "admin/structure/views/callback/display/$view_name/page_1/path";
 
     $this->drupalPostForm($path_edit_path, array('path' => $new_path), t('Apply'));
     $this->drupalPostForm($edit_path, array(), t('Save'), array('query' => array('destination' => 'test-redirect-view')));
diff --git a/core/modules/views_ui/lib/Drupal/views_ui/Tests/RowUITest.php b/core/modules/views_ui/lib/Drupal/views_ui/Tests/RowUITest.php
index cc8c5c3..2c4caae 100644
--- a/core/modules/views_ui/lib/Drupal/views_ui/Tests/RowUITest.php
+++ b/core/modules/views_ui/lib/Drupal/views_ui/Tests/RowUITest.php
@@ -38,8 +38,8 @@ public function testRowUI() {
     $view_name = 'test_view';
     $view_edit_url = "admin/structure/views/view/$view_name/edit";
 
-    $row_plugin_url = "admin/structure/views/nojs/display/$view_name/default/row";
-    $row_options_url = "admin/structure/views/nojs/display/$view_name/default/row_options";
+    $row_plugin_url = "admin/structure/views/callback/display/$view_name/default/row";
+    $row_options_url = "admin/structure/views/callback/display/$view_name/default/row_options";
 
     $this->drupalGet($row_plugin_url);
     $this->assertFieldByName('row[type]', 'fields', 'The default row plugin selected in the UI should be fields.');
@@ -67,7 +67,7 @@ public function testRowUI() {
     $this->assertEqual($row['options']['test_option'], $random_name, 'Make sure that the custom settings field got saved as expected.');
 
     // Change the row plugin to fields using ajax.
-    $this->drupalPostAjaxForm($row_plugin_url, array('row[type]' => 'fields'), array('op' => 'Apply'), str_replace('/nojs/', '/ajax/', $row_plugin_url));
+    $this->drupalPostAjaxForm($row_plugin_url, array('row[type]' => 'fields'), array('op' => 'Apply'), str_replace('/callback/', '/ajax/', $row_plugin_url));
     $this->drupalPostAjaxForm(NULL, array(), array('op' => 'Apply'));
     $this->assertResponse(200);
     $this->assertFieldByName('row[type]', 'fields', 'Make sure that the fields got saved as used row plugin.');
diff --git a/core/modules/views_ui/lib/Drupal/views_ui/Tests/StorageTest.php b/core/modules/views_ui/lib/Drupal/views_ui/Tests/StorageTest.php
index 4a99d2a..20c03cc 100644
--- a/core/modules/views_ui/lib/Drupal/views_ui/Tests/StorageTest.php
+++ b/core/modules/views_ui/lib/Drupal/views_ui/Tests/StorageTest.php
@@ -55,7 +55,7 @@ public function testDetails() {
       'langcode' => 'fr',
     );
 
-    $this->drupalPostForm("admin/structure/views/nojs/edit-details/$view_name/default", $edit, t('Apply'));
+    $this->drupalPostForm("admin/structure/views/callback/edit-details/$view_name/default", $edit, t('Apply'));
     $this->drupalPostForm(NULL, array(), t('Save'));
 
     $view = Views::getView($view_name);
diff --git a/core/modules/views_ui/lib/Drupal/views_ui/Tests/StyleUITest.php b/core/modules/views_ui/lib/Drupal/views_ui/Tests/StyleUITest.php
index c58d1a5..81a51ec 100644
--- a/core/modules/views_ui/lib/Drupal/views_ui/Tests/StyleUITest.php
+++ b/core/modules/views_ui/lib/Drupal/views_ui/Tests/StyleUITest.php
@@ -38,8 +38,8 @@ public function testStyleUI() {
     $view_name = 'test_view';
     $view_edit_url = "admin/structure/views/view/$view_name/edit";
 
-    $style_plugin_url = "admin/structure/views/nojs/display/$view_name/default/style";
-    $style_options_url = "admin/structure/views/nojs/display/$view_name/default/style_options";
+    $style_plugin_url = "admin/structure/views/callback/display/$view_name/default/style";
+    $style_options_url = "admin/structure/views/callback/display/$view_name/default/style_options";
 
     $this->drupalGet($style_plugin_url);
     $this->assertFieldByName('style[type]', 'default', 'The default style plugin selected in the UI should be unformatted list.');
@@ -69,7 +69,7 @@ public function testStyleUI() {
     // Test that fields are working correctly in the UI for style plugins when
     // a field row plguin is selected.
     $this->drupalPostForm("admin/structure/views/view/$view_name/edit", array(), 'Add Page');
-    $this->drupalPostForm("admin/structure/views/nojs/display/$view_name/page_1/row", array('row[type]' => 'fields'), t('Apply'));
+    $this->drupalPostForm("admin/structure/views/callback/display/$view_name/page_1/row", array('row[type]' => 'fields'), t('Apply'));
     // If fields are being used this text will not be shown.
     $this->assertNoText(t('The selected style or row format does not utilize fields.'));
   }
diff --git a/core/modules/views_ui/lib/Drupal/views_ui/Tests/ViewEditTest.php b/core/modules/views_ui/lib/Drupal/views_ui/Tests/ViewEditTest.php
index 1693888..beb4213 100644
--- a/core/modules/views_ui/lib/Drupal/views_ui/Tests/ViewEditTest.php
+++ b/core/modules/views_ui/lib/Drupal/views_ui/Tests/ViewEditTest.php
@@ -59,7 +59,7 @@ public function testMachineNameOption() {
 
     // Change the machine name for the display from page_1 to test_1.
     $edit = array('display_id' => 'test_1');
-    $this->drupalPostForm('admin/structure/views/nojs/display/test_view/attachment_1/display_id', $edit, 'Apply');
+    $this->drupalPostForm('admin/structure/views/callback/display/test_view/attachment_1/display_id', $edit, 'Apply');
     $this->assertLink(t('test_1'));
 
     // Save the view, and test the new ID has been saved.
@@ -71,7 +71,7 @@ public function testMachineNameOption() {
     $this->assertFalse(array_key_exists('attachment_1', $displays), 'Old display ID not found.');
 
     // Test the form validation with invalid IDs.
-    $machine_name_edit_url = 'admin/structure/views/nojs/display/test_view/test_1/display_id';
+    $machine_name_edit_url = 'admin/structure/views/callback/display/test_view/test_1/display_id';
     $error_text = t('Display name must be letters, numbers, or underscores only.');
 
     $edit = array('display_id' => 'test 1');
@@ -98,7 +98,7 @@ public function testMachineNameOption() {
   public function testEditFormOtherOptions() {
     // Test the Field language form.
     $this->drupalGet('admin/structure/views/view/test_view');
-    $langcode_url = 'admin/structure/views/nojs/display/test_view/default/field_langcode';
+    $langcode_url = 'admin/structure/views/callback/display/test_view/default/field_langcode';
     $this->assertLinkByHref($langcode_url);
     $this->assertLink(t("Current user's language"));
     // Click the link and check the form before language is enabled.
@@ -111,7 +111,7 @@ public function testEditFormOtherOptions() {
     $this->rebuildContainer();
     entity_info_cache_clear();
 
-    $this->drupalGet('admin/structure/views/nojs/display/test_display/page_1/field_langcode');
+    $this->drupalGet('admin/structure/views/callback/display/test_display/page_1/field_langcode');
     $this->assertResponse(200);
     $this->assertFieldByName('field_langcode', '***CURRENT_LANGUAGE***');
     $this->assertFieldByName('field_langcode_add_to_query', TRUE);
@@ -151,7 +151,7 @@ public function testPluginProviders() {
     foreach ($plugin_data as $plugin_type => $plugin_options) {
       $element_name = $plugin_type . '[type]';
       // Save the plugin form, to change the plugin used.
-      $this->drupalPostForm("admin/structure/views/nojs/display/test_view/default/$plugin_type", array($element_name => $plugin_options['value']), t('Apply'));
+      $this->drupalPostForm("admin/structure/views/callback/display/test_view/default/$plugin_type", array($element_name => $plugin_options['value']), t('Apply'));
       $this->drupalPostForm('admin/structure/views/view/test_view', array(), t('Save'));
       // Check the plugin provider.
       $view = Views::getView('test_view');
diff --git a/core/modules/views_ui/lib/Drupal/views_ui/ViewEditFormController.php b/core/modules/views_ui/lib/Drupal/views_ui/ViewEditFormController.php
index dfd8f6d..50e9400 100644
--- a/core/modules/views_ui/lib/Drupal/views_ui/ViewEditFormController.php
+++ b/core/modules/views_ui/lib/Drupal/views_ui/ViewEditFormController.php
@@ -680,12 +680,12 @@ public function renderDisplayTop(ViewUI $view) {
       '#links' => array(
         'edit-details' => array(
           'title' => $this->t('Edit view name/description'),
-          'href' => "admin/structure/views/nojs/edit-details/{$view->id()}/$display_id",
+          'href' => "admin/structure/views/callback/edit-details/{$view->id()}/$display_id",
           'attributes' => array('class' => array('views-ajax-link')),
         ),
         'analyze' => array(
           'title' => $this->t('Analyze view'),
-          'href' => "admin/structure/views/nojs/analyze/{$view->id()}/$display_id",
+          'href' => "admin/structure/views/callback/analyze/{$view->id()}/$display_id",
           'attributes' => array('class' => array('views-ajax-link')),
         ),
         'clone' => array(
@@ -693,7 +693,7 @@ public function renderDisplayTop(ViewUI $view) {
         ) + $view->urlInfo('clone')->toArray(),
         'reorder' => array(
           'title' => $this->t('Reorder displays'),
-          'href' => "admin/structure/views/nojs/reorder-displays/{$view->id()}/$display_id",
+          'href' => "admin/structure/views/callback/reorder-displays/{$view->id()}/$display_id",
           'attributes' => array('class' => array('views-ajax-link')),
         ),
       ),
@@ -923,7 +923,7 @@ public function getFormBucket(ViewUI $view, $type, $display) {
 
     $build['#name'] = $build['#title'] = $types[$type]['title'];
 
-    $rearrange_url = "admin/structure/views/nojs/rearrange/{$view->id()}/{$display['id']}/$type";
+    $rearrange_url = "admin/structure/views/callback/rearrange/{$view->id()}/{$display['id']}/$type";
     $class = 'icon compact rearrange';
 
     // Different types now have different rearrange forms, so we use this switch
@@ -932,7 +932,7 @@ public function getFormBucket(ViewUI $view, $type, $display) {
       case 'filter':
         // The rearrange form for filters contains the and/or UI, so override
         // the used path.
-        $rearrange_url = "admin/structure/views/nojs/rearrange-filter/{$view->id()}/{$display['id']}";
+        $rearrange_url = "admin/structure/views/callback/rearrange-filter/{$view->id()}/{$display['id']}";
         // TODO: Add another class to have another symbol for filter rearrange.
         $class = 'icon compact rearrange';
         break;
@@ -972,7 +972,7 @@ public function getFormBucket(ViewUI $view, $type, $display) {
 
     $actions['add'] = array(
       'title' => $add_text,
-      'href' => "admin/structure/views/nojs/add-handler/{$view->id()}/{$display['id']}/$type",
+      'href' => "admin/structure/views/callback/add-handler/{$view->id()}/{$display['id']}/$type",
       'attributes' => array('class' => array('icon compact add', 'views-ajax-link'), 'id' => 'views-add-' . $type),
       'html' => TRUE,
     );
@@ -1040,7 +1040,7 @@ public function getFormBucket(ViewUI $view, $type, $display) {
       if ($handler->broken()) {
         $build['fields'][$id]['#class'][] = 'broken';
         $field_name = $handler->adminLabel();
-        $build['fields'][$id]['#link'] = l($field_name, "admin/structure/views/nojs/handler/{$view->id()}/{$display['id']}/$type/$id", array('attributes' => array('class' => array('views-ajax-link')), 'html' => TRUE));
+        $build['fields'][$id]['#link'] = l($field_name, "admin/structure/views/callback/handler/{$view->id()}/{$display['id']}/$type/$id", array('attributes' => array('class' => array('views-ajax-link')), 'html' => TRUE));
         continue;
       }
 
@@ -1057,15 +1057,15 @@ public function getFormBucket(ViewUI $view, $type, $display) {
         // Add a [hidden] marker, if the field is excluded.
         $link_text .= ' [' . $this->t('hidden') . ']';
       }
-      $build['fields'][$id]['#link'] = l($link_text, "admin/structure/views/nojs/handler/{$view->id()}/{$display['id']}/$type/$id", array('attributes' => $link_attributes, 'html' => TRUE));
+      $build['fields'][$id]['#link'] = l($link_text, "admin/structure/views/callback/handler/{$view->id()}/{$display['id']}/$type/$id", array('attributes' => $link_attributes, 'html' => TRUE));
       $build['fields'][$id]['#class'][] = drupal_clean_css_identifier($display['id']. '-' . $type . '-' . $id);
 
       if ($executable->display_handler->useGroupBy() && $handler->usesGroupBy()) {
-        $build['fields'][$id]['#settings_links'][] = l('<span class="label">' . $this->t('Aggregation settings') . '</span>', "admin/structure/views/nojs/handler-group/{$view->id()}/{$display['id']}/$type/$id", array('attributes' => array('class' => array('views-button-configure', 'views-ajax-link'), 'title' => $this->t('Aggregation settings')), 'html' => TRUE));
+        $build['fields'][$id]['#settings_links'][] = l('<span class="label">' . $this->t('Aggregation settings') . '</span>', "admin/structure/views/callback/handler-group/{$view->id()}/{$display['id']}/$type/$id", array('attributes' => array('class' => array('views-button-configure', 'views-ajax-link'), 'title' => $this->t('Aggregation settings')), 'html' => TRUE));
       }
 
       if ($handler->hasExtraOptions()) {
-        $build['fields'][$id]['#settings_links'][] = l('<span class="label">' . $this->t('Settings') . '</span>', "admin/structure/views/nojs/handler-extra/{$view->id()}/{$display['id']}/$type/$id", array('attributes' => array('class' => array('views-button-configure', 'views-ajax-link'), 'title' => $this->t('Settings')), 'html' => TRUE));
+        $build['fields'][$id]['#settings_links'][] = l('<span class="label">' . $this->t('Settings') . '</span>', "admin/structure/views/callback/handler-extra/{$view->id()}/{$display['id']}/$type/$id", array('attributes' => array('class' => array('views-button-configure', 'views-ajax-link'), 'title' => $this->t('Settings')), 'html' => TRUE));
       }
 
       if ($grouping) {
diff --git a/core/modules/views_ui/views_ui.module b/core/modules/views_ui/views_ui.module
index 951321c..c8d08d5 100644
--- a/core/modules/views_ui/views_ui.module
+++ b/core/modules/views_ui/views_ui.module
@@ -184,13 +184,13 @@ function views_ui_view_preview_section_handler_links(ViewExecutable $view, $type
     $field_name = $handler->adminLabel(TRUE);
     $links[$type . '-edit-' . $id] = array(
       'title' => t('Edit @section', array('@section' => $field_name)),
-      'href' => "admin/structure/views/nojs/handler/{$view->storage->id()}/{$display['id']}/$type/$id",
+      'href' => "admin/structure/views/callback/handler/{$view->storage->id()}/{$display['id']}/$type/$id",
       'attributes' => array('class' => array('views-ajax-link')),
     );
   }
   $links[$type . '-add'] = array(
     'title' => t('Add new'),
-    'href' => "admin/structure/views/nojs/add-handler/{$view->storage->id()}/{$display['id']}/$type",
+    'href' => "admin/structure/views/callback/add-handler/{$view->storage->id()}/{$display['id']}/$type",
     'attributes' => array('class' => array('views-ajax-link')),
   );
 
@@ -205,7 +205,7 @@ function views_ui_view_preview_section_display_category_links(ViewExecutable $vi
   $links = array(
     $type . '-edit' => array(
       'title' => t('Edit @section', array('@section' => $title)),
-      'href' => "admin/structure/views/nojs/display/{$view->storage->id()}/{$display['id']}/$type",
+      'href' => "admin/structure/views/callback/display/{$view->storage->id()}/{$display['id']}/$type",
       'attributes' => array('class' => array('views-ajax-link')),
     ),
   );
diff --git a/core/modules/views_ui/views_ui.routing.yml b/core/modules/views_ui/views_ui.routing.yml
index ee6ad6c..313acd6 100644
--- a/core/modules/views_ui/views_ui.routing.yml
+++ b/core/modules/views_ui/views_ui.routing.yml
@@ -130,7 +130,7 @@ views_ui.break_lock:
     _permission: 'administer views'
 
 views_ui.form_add_handler:
-  path: '/admin/structure/views/{js}/add-handler/{view}/{display_id}/{type}'
+  path: '/admin/structure/views/callback/add-handler/{view}/{display_id}/{type}'
   options:
     parameters:
       view:
@@ -139,10 +139,9 @@ views_ui.form_add_handler:
     _content: '\Drupal\views_ui\Form\Ajax\AddHandler::getForm'
   requirements:
     _permission: 'administer views'
-    js: 'nojs|ajax'
 
 views_ui.form_edit_details:
-  path: '/admin/structure/views/{js}/edit-details/{view}/{display_id}'
+  path: '/admin/structure/views/callback/edit-details/{view}/{display_id}'
   options:
     parameters:
       view:
@@ -151,10 +150,9 @@ views_ui.form_edit_details:
     _content: '\Drupal\views_ui\Form\Ajax\EditDetails::getForm'
   requirements:
     _permission: 'administer views'
-    js: 'nojs|ajax'
 
 views_ui.form_reorder_displays:
-  path: '/admin/structure/views/{js}/reorder-displays/{view}/{display_id}'
+  path: '/admin/structure/views/callback/reorder-displays/{view}/{display_id}'
   options:
     parameters:
       view:
@@ -163,10 +161,9 @@ views_ui.form_reorder_displays:
     _content: '\Drupal\views_ui\Form\Ajax\ReorderDisplays::getForm'
   requirements:
     _permission: 'administer views'
-    js: 'nojs|ajax'
 
 views_ui.form_analyze:
-  path: '/admin/structure/views/{js}/analyze/{view}/{display_id}'
+  path: '/admin/structure/views/callback/analyze/{view}/{display_id}'
   options:
     parameters:
       view:
@@ -175,10 +172,9 @@ views_ui.form_analyze:
     _content: '\Drupal\views_ui\Form\Ajax\Analyze::getForm'
   requirements:
     _permission: 'administer views'
-    js: 'nojs|ajax'
 
 views_ui.form_rearrange:
-  path: '/admin/structure/views/{js}/rearrange/{view}/{display_id}/{type}'
+  path: '/admin/structure/views/callback/rearrange/{view}/{display_id}/{type}'
   options:
     parameters:
       view:
@@ -187,10 +183,9 @@ views_ui.form_rearrange:
     _content: '\Drupal\views_ui\Form\Ajax\Rearrange::getForm'
   requirements:
     _permission: 'administer views'
-    js: 'nojs|ajax'
 
 views_ui.form_rearrange_filter:
-  path: '/admin/structure/views/{js}/rearrange-filter/{view}/{display_id}'
+  path: '/admin/structure/views/callback/rearrange-filter/{view}/{display_id}'
   options:
     parameters:
       view:
@@ -199,10 +194,9 @@ views_ui.form_rearrange_filter:
     _content: '\Drupal\views_ui\Form\Ajax\RearrangeFilter::getForm'
   requirements:
     _permission: 'administer views'
-    js: 'nojs|ajax'
 
 views_ui.form_display:
-  path: '/admin/structure/views/{js}/display/{view}/{display_id}/{type}'
+  path: '/admin/structure/views/callback/display/{view}/{display_id}/{type}'
   options:
     parameters:
       view:
@@ -211,10 +205,9 @@ views_ui.form_display:
     _content: '\Drupal\views_ui\Form\Ajax\Display::getForm'
   requirements:
     _permission: 'administer views'
-    js: 'nojs|ajax'
 
 views_ui.form_handler:
-  path: '/admin/structure/views/{js}/handler/{view}/{display_id}/{type}/{id}'
+  path: '/admin/structure/views/callback/handler/{view}/{display_id}/{type}/{id}'
   options:
     parameters:
       view:
@@ -223,10 +216,9 @@ views_ui.form_handler:
     _content: '\Drupal\views_ui\Form\Ajax\ConfigHandler::getForm'
   requirements:
     _permission: 'administer views'
-    js: 'nojs|ajax'
 
 views_ui.form_handler_extra:
-  path: '/admin/structure/views/{js}/handler-extra/{view}/{display_id}/{type}/{id}'
+  path: '/admin/structure/views/callback/handler-extra/{view}/{display_id}/{type}/{id}'
   options:
     parameters:
       view:
@@ -235,10 +227,9 @@ views_ui.form_handler_extra:
     _content: '\Drupal\views_ui\Form\Ajax\ConfigHandlerExtra::getForm'
   requirements:
     _permission: 'administer views'
-    js: 'nojs|ajax'
 
 views_ui.form_handler_group:
-  path: '/admin/structure/views/{js}/handler-group/{view}/{display_id}/{type}/{id}'
+  path: '/admin/structure/views/callback/handler-group/{view}/{display_id}/{type}/{id}'
   options:
     parameters:
       view:
@@ -248,4 +239,3 @@ views_ui.form_handler_group:
     form_state: NULL
   requirements:
     _permission: 'administer views'
-    js: 'nojs|ajax'
