Как мы можем выполнить команду оболочки из расширения Chrome; есть ли способ?

Как мы можем выполнить команду (shell или bash) из расширения Chrome; есть ли способ в Chrome API?


person Affan Hasan    schedule 06.03.2014    source источник


Ответы (2)


Нет. Такая возможность была бы очень страшной. Вас может заинтересовать Native Messaging API, но вам потребуется распространять собственный установщик приложения, который обычно требует прав администратора. Ваш другой вопрос предполагает, что подход не будет работать для вашего варианта использования.

person sowbug    schedule 06.03.2014
comment
Спасибо за этот ответ, он прояснил это. - person Affan Hasan; 08.03.2014

Есть более простой способ, если у вас есть работающий локальный сервер. Локальный сервер может выполнить команду. Вызовите конечную точку с помощью fetch. Вот пример:

chrome.contextMenus.create({
        title: "Open in Safari",
        contexts: ["all"],
        onclick: info => {
            const u = 'http://localhost:3012/to-safari?url=info.pageUrl;
            fetch(u).then(result => console.info(result)).catch(err => console.error(err));
        }
    });

Я сделал это, чтобы открыть текущий URL-адрес (в Chrome) в Safari. Конечно, ваш сервер может выполнить любую команду.

Кстати, никаких специальных разрешений в манифесте не требуется.

person Jan Croonen    schedule 30.12.2019