@banklerk said in CanvasInspector 3.1.0 has been released:
@Fox подскажите где взять ссылку на установщик?
0ce03dc1-6baa-43f7-8f88-a58061b59d33-изображение.png
Пожалуйста добавте стрелочки Фокса
@chyrik said in Выпущена 27.6.1 версия BrowserAutomationStudio:
по cookie никто не подскажет , как поправить?
У меня нет таких проблем, как все работало до этого, так и работает. С предыдущей версии экспортированные данные(кукисы, локальное хранилище, etc) загружаются в текущую версию.
Is this version already rolled out? When I open BAS it shows 27.5.1 and nothing update update.
@chyrik said in Выпущена 27.6.1 версия BrowserAutomationStudio:
@sergerdn 27.5.1 куки работают, гружу куки через 27.6.1 не работают
Есть какая-то странная фигня с кукисами, подтверждаю. Пока изучаю, но все выглядит очень странно.
@m4zuper, пожалуйста, проверь, нет ли странного поведения с кукисами.
@chyrik said in Выпущена 27.6.1 версия BrowserAutomationStudio:
какие-то работают на новой версии, какие-то нет,х.з поэтому и спрашиваю
Я посмотрел, на первый взгляд формат кукисов не менялся, но если восстановить сохраненные кукисы из предыдущей версии в текущую и потом опять их получить(восстановленные), то будет совсем пусто.
Судя по всему в рамках текущей версии все работает.
Пока не разбирался откуда растут ноги, думаю, что есть какая-то разница в хранении данных.
@m4zuper, зову на помощь.
@chyrik said in Выпущена 27.6.1 версия BrowserAutomationStudio:
@sergerdn 27.5.1 куки работают, гружу куки через 27.6.1 не работают
Я нашел причину, как минимум одну. У Chromium частично поменялся формат данных, если при восстановлении кукисов присутствует хоть одна кука старого формата, то кукисы вообще восстановлены не будут.
Хуже всего, что все происходит тихо и незаметно, пока воткнул в скриптах простую проверку, проверяю после восстановления, что кукисы реально существуют в браузере.
Потом воткну простой конвертер данных.
Если я удалю из сохраненных данных куки, что поменяли формат, то остальные кукисы будут восстановлены.
Старый формат:
{
"domain": ".example.com",
"expires": 1750256760.245414,
"httpOnly": true,
"name": "cf_clearance",
"partitionKey": "https://example.com",
"path": "/",
"priority": "Medium",
"sameParty": false,
"sameSite": "None",
"secure": true,
"session": false,
"size": 161,
"sourcePort": 443,
"sourceScheme": "Secure",
"value": "blabla"
}
Новый формат(изменен формат partitionKey):
{
"domain": ".example.com",
"expires": 1753675151.508734,
"httpOnly": true,
"name": "cf_clearance",
"partitionKey": {
"hasCrossSiteAncestor": false,
"topLevelSite": "https://example.com"
},
"path": "/",
"priority": "Medium",
"sameParty": false,
"sameSite": "None",
"secure": true,
"session": false,
"size": 161,
"sourcePort": 443,
"sourceScheme": "Secure",
"value": "blabla"
}
Текущий формат данных описан тут:
https://chromedevtools.github.io/devtools-protocol/tot/Network/#type-Cookie
@chyrik said in Выпущена 27.6.1 версия BrowserAutomationStudio:
то есть старые восстановить, для работы в новой версии баса уже не получится? я правильно понял?
Получится, почему же.
Вот код конвертации:
function convertOldToNew(oldCookies) {
var newCookies = {
cookies: []
};
// Get the current time in seconds
var currentTime = Math.floor(Date.now() / 1000);
for (var i = 0; i < oldCookies.cookies.length; i++) {
var cookie = oldCookies.cookies[i];
var newCookie = {};
for (var key in cookie) {
if (cookie.hasOwnProperty(key)) {
newCookie[key] = cookie[key];
}
}
// Check if the cookie's expires time is in the past
if (cookie.expires < currentTime) {
// Set expires to one month from the current time
var oneMonthLater = currentTime + (30 * 24 * 60 * 60); // 30 days in seconds
newCookie.expires = oneMonthLater;
}
// Check if partitionKey exists and transform it
if (cookie.partitionKey) {
newCookie.partitionKey = {
hasCrossSiteAncestor: false,
topLevelSite: cookie.partitionKey
};
}
newCookies.cookies.push(newCookie);
}
return newCookies;
}
// [[COOKIES]] - данные в стандартном формате BAS, в виде объекта, не строки!
// Конвертация строки с кукисами в объект: [[COOKIES]] = JSON.parse([[COOKIES_STR]])
VAR_COOKIES_CONVERTED = convertOldToNew(VAR_COOKIES);
//log(JSON.stringify(VAR_COOKIES_CONVERTED, null, 4));
// конвертация обратно в строку: [[COOKIES_ NEW_STR]] = JSON.stringify([[COOKIES_CONVERTED]])
Код дополнительно продляет кукисы на 1 месяц, если истек их срок действия, если не нужно, можно выпилить.
Код довольно простой, без проверок формата, который описан в документации.
@chyrik said in Выпущена 27.6.1 версия BrowserAutomationStudio:
можно телегу, пару вопросов?
Обычно я не оказываю бесплатных приватных консультаций, ни в личке, ни в телеге, ни еще где-либо кроме тех случаев, когда я сам предложил.
И даже в этих случаях, я не пишу код за других, могу сказать что надо сделать, но не как.
В виде исключения отпишу через минуту телеграм в личные сообщения, я не люблю переписываться, пожалуйста, будь готов говорить голосом.
@chyrik said in Выпущена 27.6.1 версия BrowserAutomationStudio:
может кто поможет , это сделать в .xml?
В теории, разработчик может сделать фикс бага(фичи) в следующем релизе. А вот будет или нет он делать, пока не известно.
Так как обходной путь существует, а значит вероятность, что будет фикс, не очень высокая.