updated core from 8.4 to 8.5 : bug with login_destination
This commit is contained in:
@@ -5,8 +5,8 @@ package: Core
|
||||
# version: VERSION
|
||||
# core: 8.x
|
||||
|
||||
# Information added by Drupal.org packaging script on 2018-01-03
|
||||
version: '8.4.4'
|
||||
# Information added by Drupal.org packaging script on 2018-03-07
|
||||
version: '8.5.0'
|
||||
core: '8.x'
|
||||
project: 'drupal'
|
||||
datestamp: 1515021228
|
||||
datestamp: 1520457826
|
||||
|
||||
@@ -20,16 +20,17 @@
|
||||
// Ignore any placeholders that are not in the known placeholder list. Used
|
||||
// to avoid someone trying to XSS the site via the placeholdering mechanism.
|
||||
if (typeof drupalSettings.bigPipePlaceholderIds[placeholderId] !== 'undefined') {
|
||||
const response = mapTextContentToAjaxResponse(content);
|
||||
// If we try to parse the content too early (when the JSON containing Ajax
|
||||
// commands is still arriving), textContent will be empty which will cause
|
||||
// JSON.parse() to fail. Remove once so that it can be processed again
|
||||
// later.
|
||||
// @see bigPipeProcessDocument()
|
||||
if (content === '') {
|
||||
// commands is still arriving), textContent will be empty or incomplete.
|
||||
if (response === false) {
|
||||
/**
|
||||
* Mark as unprocessed so this will be retried later.
|
||||
* @see bigPipeProcessDocument()
|
||||
*/
|
||||
$(this).removeOnce('big-pipe');
|
||||
}
|
||||
else {
|
||||
const response = JSON.parse(content);
|
||||
// Create a Drupal.Ajax object without associating an element, a
|
||||
// progress indicator or a URL.
|
||||
const ajaxObject = Drupal.ajax({
|
||||
@@ -45,6 +46,28 @@
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Maps textContent of <script type="application/vnd.drupal-ajax"> to an AJAX response.
|
||||
*
|
||||
* @param {string} content
|
||||
* The text content of a <script type="application/vnd.drupal-ajax"> DOM node.
|
||||
* @return {Array|boolean}
|
||||
* The parsed Ajax response containing an array of Ajax commands, or false in
|
||||
* case the DOM node hasn't fully arrived yet.
|
||||
*/
|
||||
function mapTextContentToAjaxResponse(content) {
|
||||
if (content === '') {
|
||||
return false;
|
||||
}
|
||||
|
||||
try {
|
||||
return JSON.parse(content);
|
||||
}
|
||||
catch (e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Processes a streamed HTML document receiving placeholder replacements.
|
||||
*
|
||||
@@ -89,7 +112,7 @@
|
||||
// The frequency with which to check for newly arrived BigPipe placeholders.
|
||||
// Hence 50 ms means we check 20 times per second. Setting this to 100 ms or
|
||||
// more would cause the user to see content appear noticeably slower.
|
||||
var interval = drupalSettings.bigPipeInterval || 50;
|
||||
const interval = drupalSettings.bigPipeInterval || 50;
|
||||
// The internal ID to contain the watcher service.
|
||||
let timeoutID;
|
||||
|
||||
|
||||
@@ -11,11 +11,11 @@
|
||||
var content = this.textContent.trim();
|
||||
|
||||
if (typeof drupalSettings.bigPipePlaceholderIds[placeholderId] !== 'undefined') {
|
||||
if (content === '') {
|
||||
var response = mapTextContentToAjaxResponse(content);
|
||||
|
||||
if (response === false) {
|
||||
$(this).removeOnce('big-pipe');
|
||||
} else {
|
||||
var response = JSON.parse(content);
|
||||
|
||||
var ajaxObject = Drupal.ajax({
|
||||
url: '',
|
||||
base: false,
|
||||
@@ -28,6 +28,18 @@
|
||||
}
|
||||
}
|
||||
|
||||
function mapTextContentToAjaxResponse(content) {
|
||||
if (content === '') {
|
||||
return false;
|
||||
}
|
||||
|
||||
try {
|
||||
return JSON.parse(content);
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function bigPipeProcessDocument(context) {
|
||||
if (!context.querySelector('script[data-big-pipe-event="start"]')) {
|
||||
return false;
|
||||
|
||||
@@ -420,7 +420,7 @@ class BigPipe {
|
||||
}
|
||||
|
||||
$placeholder = $fragment;
|
||||
assert('isset($no_js_placeholders[$placeholder])');
|
||||
assert(isset($no_js_placeholders[$placeholder]));
|
||||
$token = Crypt::randomBytesBase64(55);
|
||||
|
||||
// Render the placeholder, but include the cumulative settings assets, so
|
||||
@@ -629,7 +629,7 @@ EOF;
|
||||
* AJAX page state.
|
||||
*/
|
||||
protected function filterEmbeddedResponse(Request $fake_request, Response $embedded_response) {
|
||||
assert('$embedded_response instanceof \Drupal\Core\Render\HtmlResponse || $embedded_response instanceof \Drupal\Core\Ajax\AjaxResponse');
|
||||
assert($embedded_response instanceof HtmlResponse || $embedded_response instanceof AjaxResponse);
|
||||
return $this->filterResponse($fake_request, HttpKernelInterface::SUB_REQUEST, $embedded_response);
|
||||
}
|
||||
|
||||
@@ -649,7 +649,7 @@ EOF;
|
||||
* The filtered response.
|
||||
*/
|
||||
protected function filterResponse(Request $request, $request_type, Response $response) {
|
||||
assert('$request_type === \Symfony\Component\HttpKernel\HttpKernelInterface::MASTER_REQUEST || $request_type === \Symfony\Component\HttpKernel\HttpKernelInterface::SUB_REQUEST');
|
||||
assert($request_type === HttpKernelInterface::MASTER_REQUEST || $request_type === HttpKernelInterface::SUB_REQUEST);
|
||||
$this->requestStack->push($request);
|
||||
$event = new FilterResponseEvent($this->httpKernel, $request, $request_type, $response);
|
||||
$this->eventDispatcher->dispatch(KernelEvents::RESPONSE, $event);
|
||||
|
||||
@@ -9,6 +9,7 @@ use Drupal\Core\Extension\ModuleHandlerInterface;
|
||||
use Drupal\Core\Form\EnforcedResponseException;
|
||||
use Drupal\Core\Render\AttachmentsInterface;
|
||||
use Drupal\Core\Render\AttachmentsResponseProcessorInterface;
|
||||
use Drupal\Core\Render\HtmlResponse;
|
||||
use Drupal\Core\Render\HtmlResponseAttachmentsProcessor;
|
||||
use Drupal\Core\Render\RendererInterface;
|
||||
use Symfony\Component\HttpFoundation\RequestStack;
|
||||
@@ -57,7 +58,7 @@ class BigPipeResponseAttachmentsProcessor extends HtmlResponseAttachmentsProcess
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function processAttachments(AttachmentsInterface $response) {
|
||||
assert('$response instanceof \Drupal\Core\Render\HtmlResponse');
|
||||
assert($response instanceof HtmlResponse);
|
||||
|
||||
// First, render the actual placeholders; this will cause the BigPipe
|
||||
// placeholder strategy to generate BigPipe placeholders. We need those to
|
||||
|
||||
@@ -180,7 +180,7 @@ class BigPipeStrategy implements PlaceholderStrategyInterface {
|
||||
* a placeholder for a HTML attribute value or a subset of it).
|
||||
*/
|
||||
protected static function placeholderIsAttributeSafe($placeholder) {
|
||||
assert('is_string($placeholder)');
|
||||
assert(is_string($placeholder));
|
||||
return $placeholder[0] !== '<' || $placeholder !== Html::normalize($placeholder);
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -5,8 +5,8 @@ package: Testing
|
||||
# version: VERSION
|
||||
# core: 8.x
|
||||
|
||||
# Information added by Drupal.org packaging script on 2018-01-03
|
||||
version: '8.4.4'
|
||||
# Information added by Drupal.org packaging script on 2018-03-07
|
||||
version: '8.5.0'
|
||||
core: '8.x'
|
||||
project: 'drupal'
|
||||
datestamp: 1515021228
|
||||
datestamp: 1520457826
|
||||
|
||||
@@ -5,8 +5,8 @@ package: Testing
|
||||
# version: VERSION
|
||||
# core: 8.x
|
||||
|
||||
# Information added by Drupal.org packaging script on 2018-01-03
|
||||
version: '8.4.4'
|
||||
# Information added by Drupal.org packaging script on 2018-03-07
|
||||
version: '8.5.0'
|
||||
core: '8.x'
|
||||
project: 'drupal'
|
||||
datestamp: 1515021228
|
||||
datestamp: 1520457826
|
||||
|
||||
@@ -5,6 +5,11 @@ namespace Drupal\big_pipe_test\Form;
|
||||
use Drupal\Core\Form\FormBase;
|
||||
use Drupal\Core\Form\FormStateInterface;
|
||||
|
||||
/**
|
||||
* Form to test BigPipe.
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
class BigPipeTestForm extends FormBase {
|
||||
|
||||
/**
|
||||
|
||||
@@ -4,8 +4,8 @@ description: 'Theme for testing BigPipe edge cases.'
|
||||
# version: VERSION
|
||||
# core: 8.x
|
||||
|
||||
# Information added by Drupal.org packaging script on 2018-01-03
|
||||
version: '8.4.4'
|
||||
# Information added by Drupal.org packaging script on 2018-03-07
|
||||
version: '8.5.0'
|
||||
core: '8.x'
|
||||
project: 'drupal'
|
||||
datestamp: 1515021228
|
||||
datestamp: 1520457826
|
||||
|
||||
Reference in New Issue
Block a user