- Issue created by @codebymikey
When the user unintentionally specifies an invalid javascript definition, e.g. a category called "category", and a protocol-less URL of //example.com/main.js
(which I'm aware is also a bit of an anti-pattern). It assumes the category is a URL protocol and fails to parse it further down the line and crashes the entire site.
I'm aware there's documentation to always add the appropriate HTTP/HTTPS protocol, so this could be mitigated that way, but I believe human error should not take the site down entirely with no means of recovering - I was able to work around it by editing the config using Drush (drush config:edit eu_cookie_compliance.settings
).
Adding the following entry:
First Category://example.com/main.js
Second Category://example.com/script.js
The website encountered an unexpected error. Please try again later.
Drupal\Core\File\Exception\InvalidStreamWrapperException: in Drupal\Core\File\FileUrlGenerator->doGenerateString() (line 106 of core/lib/Drupal/Core/File/FileUrlGenerator.php).
Drupal\Core\File\FileUrlGenerator->generateString() (Line: 986)
_eu_cookie_compliance_convert_relative_uri()
array_walk() (Line: 948)
_eu_cookie_compliance_explode_multiple_lines() (Line: 824)
eu_cookie_compliance_js_alter() (Line: 545)
Drupal\Core\Extension\ModuleHandler->alter() (Line: 261)
Drupal\Core\Asset\AssetResolver->getJsAssets() (Line: 318)
Drupal\Core\Render\HtmlResponseAttachmentsProcessor->processAssetLibraries() (Line: 157)
Drupal\Core\Render\HtmlResponseAttachmentsProcessor->processAttachments() (Line: 45)
Drupal\Core\EventSubscriber\HtmlResponseSubscriber->onRespond()
call_user_func() (Line: 111)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch() (Line: 196)
Symfony\Component\HttpKernel\HttpKernel->filterResponse() (Line: 142)
Symfony\Component\HttpKernel\HttpKernel->handleRaw() (Line: 74)
Symfony\Component\HttpKernel\HttpKernel->handle() (Line: 58)
Drupal\Core\StackMiddleware\Session->handle() (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle() (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch() (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup() (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle() (Line: 62)
Drupal\plymouth_migrate\StackMiddleware\PlymouthMigrateMiddleware->handle() (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle() (Line: 51)
Drupal\Core\StackMiddleware\StackedHttpKernel->handle() (Line: 692)
Drupal\Core\DrupalKernel->handle() (Line: 19)
Add validation on form submission to ensure the syntax and any supposed URL protocols are valid, then implement tests/PRs.
Provide PR.
N/A
Active
1.0
Code