google chrome extension - how - ¿Cómo abrir un archivo que incluye en la extensión de Chrome por C/C++?
how to do a chrome extension (2)
Hay dos formas de abordar esto; el primero es simplemente usar javascript para obtener la ruta y luego pasarla al complemento en una llamada a un método.
El segundo es obtener la ruta al archivo .dll del complemento y luego calcular la ubicación de config.txt en relación con eso, tal como se explica en el sitio web .
Supongo que la otra opción sería intentar usar:
m_host->getDOMWindow()->getNode("chrome")->getNode("extension")->getNode("getURL")->callMethod<FB::variant>("", FB::variant_list_of("config.txt");
No sé si eso realmente funcionaría o no; No lo he probado, y es posible que incluso haya escrito mal algunas de las llamadas a la función, pero podría valer la pena intentarlo.
Estoy tratando de abrir un archivo para analizar, decir "config.txt", en mi extensión de Chrome.
Por Javascript será bastante fácil. Por ejemplo: chrome.extension.getURL(''config.txt'')
obtendrá algo como chrome-extension://kfcphocilcidmjolfgicbchdfjjlfkmh/config.txt
.
Sin embargo, en el código C ++ (o C) de la extensión, abrir un archivo por este tipo de URL no está disponible.
¿Hay alguna forma de abrir un archivo en extensión en este caso?
Finalmente logré encontrar una forma de obtener el "config.txt" en mi plugin NPAPI por XmlHttpRequest.
const char* getconfig =
" window.__config_txt__ = (function() {"
" var ret = /"Default return value/";"
" var xhr = new XMLHttpRequest();"
" xhr.open(/"GET/", /"config.txt/", false);"
" xhr.onreadystatechange = function() {"
" if(xhr.readyState == 4) {"
" ret = xhr.responseText;"
" };"
" };"
" xhr.send();"
" return ret;"
" })();";
m_host->evaluateJavaScript(getconfig);
if (window && window->getJSObject()->HasProperty("window")) {
std::string content = window->getProperty<std::string>("__config_txt__");
}