Cómo agregar llamadas API a JavaScript en C
Puedes ingresar chrome://extensiones en la barra de direcciones para ver las extensiones instaladas. El siguiente ejemplo muestra que tengo instalada la extensión Google Mail Checker en mi navegador, que usaremos para probar la nueva API (la prueba puede usar cualquier extensión sin especificar Google Mail en este ejemplo, ?checker).
La imagen de arriba también muestra un ejemplo de cómo abrir la tienda en línea de Chrome. Necesitamos ingresar a esta página para ver la API desarrollada. Después de ingresar a la página, presione F12 para abrir las herramientas de desarrollador y cambiar las herramientas de desarrollador a la consola.
En la consola de herramientas de desarrollo, ingrese "chrome.management.un" que mostrará las API admitidas por Management?namespace.
Lo que debemos hacer a continuación es agregar showButton?API en la administración, que se utiliza para mostrar u ocultar el ícono de (un determinado) programa de extensión en la barra de extensiones. ¿Agregar la API showButton? generalmente se divide en dos pasos principales. El primer paso es cambiar el código C y el segundo paso es cambiar el archivo de descripción de la interfaz management.json. La siguiente es una explicación paso a paso de los cambios específicos basados en el código fuente de Chrome R28.
Primero, agregue una nueva declaración de clase en src\chrome\browser\extensions\api\management\management_api.h. Cuando se llama a showButton en Javascript, esta clase será responsable del procesamiento posterior y se llamará a su método RunImpl.
clase?ManagementShowButtonFunction:?public?ManagementFunction {
público:
DECLARE_EXTENSION_FUNCTION("management.showButton", MANAGEMENT_UNINSTALL)
privado :
virtual?bool?RunImpl() OVERRIDE;
};
Luego, en src\chrome\browser\extensions\api\management\management_api. Agregue la implementación de nuevas clases en cc. El método RunImpl llama a la función SetBrowserActionVisibility según los dos parámetros pasados por JavaScript para mostrar y ocultar el icono de extensión. El primer parámetro es el ID de la extensión y el segundo parámetro es una variable booleana que se utiliza para indicar si se muestra (verdadero) u oculta (falso) el icono de la extensión.
Después de los cambios anteriores, debe volver a compilar manualmente el proyecto API antes de compilar el proyecto Chrome, porque el proyecto Chrome no depende del proyecto API. La recompilación hará que el registro de ManagementShowButtonFunction se agregue a la función GeneratedFunctionRegistry::?RegisterAll generada automáticamente.
Una vez compilado el programa, podemos probar la función showButton en la consola de las herramientas de desarrollo. El siguiente ejemplo ilustra cómo ocultar y mostrar el ícono de la extensión Google Mail Checker llamando a esta función.
El ejemplo anterior muestra cómo agregar una API al espacio de nombres de administración existente.
En Chrome, el uso de la API de JavaScript tiene el concepto de permisos. Si necesita agregar un nuevo espacio de nombres al agregar una API, debe prestar atención a registrar los permisos para el nuevo espacio de nombres en el método APIPermissionInfo::RegisterAllPermissions. De lo contrario, la página no podrá acceder a la nueva API.