Что за объект chrome?
Доброго времени суток. Помогите кто-нибудь. Есть расширение для хрома WebRTC Network Limiter и оно рабочее. Вот часть кода:
'use strict'; var pn = chrome.privacy.network; var pi = null; function browserSupportsIPHandlingPolicy() { return pn.webRTCIPHandlingPolicy !== undefined; } function browserSupportsNonProxiedUdpBoolean() { return pn.webRTCNonProxiedUdpEnabled !== undefined; } // Handle the case when this is installed in pre-M48. if (!browserSupportsIPHandlingPolicy()) { chrome.privacy.IPHandlingPolicy = {}; chrome.privacy.IPHandlingPolicy.DEFAULT = 0; chrome.privacy.IPHandlingPolicy.DEFAULT_PUBLIC_AND_PRIVATE_INTERFACES = 1; chrome.privacy.IPHandlingPolicy.DEFAULT_PUBLIC_INTERFACE_ONLY = 2; chrome.privacy.IPHandlingPolicy.DISABLE_NON_PROXIED_UDP = 3; } pi = chrome.privacy.IPHandlingPolicy; // Helper function to convert the parameters to policy synchronously. function convertToPolicy(allowMultiRoute, allowUdp) { if (!allowUdp) { return pi.DISABLE_NON_PROXIED_UDP; } if (!allowMultiRoute) { return pi.DEFAULT_PUBLIC_INTERFACE_ONLY; } return pi.DEFAULT; } // This function just returns the new policy value based on the 2 booleans // without changing any preferences. function getPolicyFromBooleans(callback) { pn.webRTCMultipleRoutesEnabled.get({}, function(allowMultiRoute) { if (!browserSupportsNonProxiedUdpBoolean()) { callback(convertToPolicy(allowMultiRoute.value, true)); } else { pn.webRTCNonProxiedUdpEnabled.get({}, function(allowUdp) { callback(convertToPolicy(allowMultiRoute.value, allowUdp.value)); }); } }); } Проблема возникает здесь: var pn = chrome.privacy.network; Я пытаюсь запустить скрипт на хромиуме, вообще там скрипты работают, а этот не хочет, суть проблемы в том, что возникает ошибка, связанная с тем, что chrome.privacy==undefined и 'network' у undefined быть не может. Пробовал запустить в консоли - то же самое. Чувствую, что есть разница между запуском простого скрипта и расширения. Кто подскажет, в чём разница и что это за объект chrome, почему в скрипте и консоли он не имеет поле private, а в расширении имеет. Мне не лень читать. Я прочитал на хабре статью про создание расширения, там не упоминалось об отличиях между простыми скриптами и расширениями, также я пытался гуглить "javascript объект chrome", но сами понимаете что chrome и в гугле и в яндексе толкуется не так как я бы хотел. Заранее благодарен за ответы. И спасибо за сайт, раза 3 перечитывал и пользуюсь как справочником, может чего-то не прочитал:) |
Цитата:
Вы понимаете, что это возможности, которые не должны быть доступны на любом сайте? Цитата:
|
Я это понимаю, но я не хочу это запускать на каком-либо сайте, понимаю, что создатели браузера позаботились о том, чтобы это нельзя было запустить просто так, но у меня управляемый браузер хромиум и мне хотелось бы обойти WebRTC, это просто какая-то заноза в заднице, в гугле никакой толковой информации и понятно почему, единственный вариант обойти - это установка гугловского же расширения код которого я привёл выше, оно отключает эту технологию и баг с нею связанный. Я бы очень хотел даже не получить готовое решение, а получить варианты, по которым можно было бы посмотреть информацию. Неужели только хирургическое вмешательство в исходники хромиум?
P.S. Разрабов хромиум просят о функции отключения этой херни уже 3 года как, они это могут сделать минут за пять, но по итогу они формально сделали возможность анонимизации, которую каждый пользователь хрома может увидеть по адресу в своём браузере chrome://flags/#enable-webrtc-hide-local-ips-with-mdns , но это всё равно не отключает WebRTC, всё палится, а отключение при запуске через параметры командной строки им тоже не судьба сделать, хотя, я думаю, что это 5 минут делов, но понятно, почему они этого не делают. Подскажите куда копать, кто знает. |
Цитата:
|
Часовой пояс GMT +3, время: 20:04. |