HTMLSHIT Telegram 3790
#фишка дня

Вот как вы думаете, что может преследовать разработчика веб-браузера во сне? Может, это разбор дерева DOM? А может, реализация всех новых атрибутов элементов?

Нет! Это поддержка легаси! Например, как вам такое сообщение в PR браузера Ladybird:
Atlassian login gets the base URL for its module scripts by throwing an error and pulling out the current script's URL from error.stack with regex.


Вы всё правильно поняли. Получение базового URL-адреса сборки ведётся путём выбрасывания исключения и поиска адреса в нём. Я такое делал на AppsScript чтобы получить стек, но прям в продакшене да чтобы для реального использования...

Пруф: https://github.com/LadybirdBrowser/ladybird/pull/5678

Дальше — больше. Не только разработчики Atlassian (Jira, Trello) используют подобное, тем же самым славится и любимый многими Parcel: https://github.com/parcel-bundler/parcel/pull/2534/files#diff-39112519f42223a8e331d0dac27d01f8a70db6fe3d515ad8016856931a6ccbda

Стало быть, фишкой дня объявляется:

function getBundleURL() {
// Attempt to find the URL of the current script and use that as the base URL
try {
throw new Error();
} catch (err) {
var matches = ('' + err.stack).match(/(https?|file|ftp):\/\/[^)\n]+/g);
if (matches) {
return getBaseURL(matches[0]);
}
}


И, получается, ничего лучше же у нас так-то и нет. Если нет двери — используем окно.

А подробнее о браузере Ladybird я рассказывал в нескольких постах. Например, тут: https://www.tgoop.com/htmlshit/2935

#js #hack
5🤩4



tgoop.com/htmlshit/3790
Create:
Last Update:

#фишка дня

Вот как вы думаете, что может преследовать разработчика веб-браузера во сне? Может, это разбор дерева DOM? А может, реализация всех новых атрибутов элементов?

Нет! Это поддержка легаси! Например, как вам такое сообщение в PR браузера Ladybird:

Atlassian login gets the base URL for its module scripts by throwing an error and pulling out the current script's URL from error.stack with regex.


Вы всё правильно поняли. Получение базового URL-адреса сборки ведётся путём выбрасывания исключения и поиска адреса в нём. Я такое делал на AppsScript чтобы получить стек, но прям в продакшене да чтобы для реального использования...

Пруф: https://github.com/LadybirdBrowser/ladybird/pull/5678

Дальше — больше. Не только разработчики Atlassian (Jira, Trello) используют подобное, тем же самым славится и любимый многими Parcel: https://github.com/parcel-bundler/parcel/pull/2534/files#diff-39112519f42223a8e331d0dac27d01f8a70db6fe3d515ad8016856931a6ccbda

Стало быть, фишкой дня объявляется:

function getBundleURL() {
// Attempt to find the URL of the current script and use that as the base URL
try {
throw new Error();
} catch (err) {
var matches = ('' + err.stack).match(/(https?|file|ftp):\/\/[^)\n]+/g);
if (matches) {
return getBaseURL(matches[0]);
}
}


И, получается, ничего лучше же у нас так-то и нет. Если нет двери — используем окно.

А подробнее о браузере Ladybird я рассказывал в нескольких постах. Например, тут: https://www.tgoop.com/htmlshit/2935

#js #hack

BY Будни разработчика




Share with your friend now:
tgoop.com/htmlshit/3790

View MORE
Open in Telegram


Telegram News

Date: |

6How to manage your Telegram channel? Content is editable within two days of publishing Telegram users themselves will be able to flag and report potentially false content. The imprisonment came as Telegram said it was "surprised" by claims that privacy commissioner Ada Chung Lai-ling is seeking to block the messaging app due to doxxing content targeting police and politicians. Read now
from us


Telegram Будни разработчика
FROM American