Commit 30768ecb authored by lukas.niegsch's avatar lukas.niegsch

implement some chromium commands

parent 839d73b0
......@@ -17,8 +17,42 @@ class HeadlessChromium
var command = {id: 0, method: method, params: params}
this.websocket.send(JSON.stringify(command))
this.websocket.onmessage = (response) => {
callback(response.data)
callback(JSON.parse(response.data))
}
}
openNewPage(url, callback)
{
this.runCommand("Target.createTarget", {url: url}, (response) => {
callback(response.result.targetId)
})
}
closePage(page, callback)
{
this.runCommand("Target.closeTarget", {targetId: page}, (response) => {
callback()
})
}
focusPage(page, callback)
{
this.runCommand("Target.activateTarget", {targetId: page}, (response) => {
this.runCommand("Target.attachToTarget", {targetId:page}, (response) => {
callback()
})
})
}
// todo: does not work yet
printToPdf(callback)
{
this.runCommand("Page.enable", {}, (ignored) => {
console.log("Page.enable: " + JSON.stringify(ignored))
this.runCommand("Page.printToPDF", {}, (response) => {
console.log("Page.printToPDF:" + JSON.stringify(response))
})
})
}
}
......@@ -11,20 +11,33 @@
var websocketUrl = searchParams.get("websocket")
var browser = new HeadlessChromium(websocketUrl)
function mainloop()
function html2pdf(url, callback)
{
if (browser.isConnected())
{
browser.runCommand("Browser.getVersion", {}, (version) => {
console.log(version)
})
}
else
if (!browser.isConnected())
{
console.log("Not connected!")
console.log("Browser is not connected!")
callback(null)
return
}
setTimeout(mainloop, 2 /* seconds */ * 1000)
browser.openNewPage(url, (page) => {
browser.focusPage(page, () => {
browser.printToPdf(() => {
browser.closePage(page, () => {
console.log("close")
})
})
})
})
}
function mainloop()
{
html2pdf("http://www.example.com", (pdf) => {
console.log(pdf)
setTimeout(mainloop, 5 /* seconds */ * 1000)
})
}
mainloop()
</script>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment