user5734678
user5734678

Reputation: 35

Adding API's to chromium build in Electron framework

I would like to write custom functions in Window API in chromium source code. So how do we do it?

In case of doubts about window API here's a link to what I mean click here. I would like to have custom property functions analogus to those shown in the link.

It's for a github electron project.

Upvotes: 2

Views: 830

Answers (2)

skwalker
skwalker

Reputation: 329

Well after a week of searching I finally found the solution. Thanks to a pull request by magicae@github.

You need to look create your custom function in

electron/atom/browser/api/lib/atom_api_web_contents.cc

as say

bool WebContents::GetOkOk() {
  return true;
}

And define the same in it'h header file

electron/atom/browser/api/lib/atom_api_web_contents.h

as

bool GetOkOk();

Lastly you need to export the function through the webContents method located in

electron/atom/renderer/lib/web-view/web-view.js

as

/* Public-facing API methods. - modified by Akshay Thakare */
  methods = ['getOk','getURL', ... ];

And you are good to go.

Finally after you compile your electron app,

in the main.js file add,

console.log(mainWindow.webContents.getOk());

and your done.

Upvotes: 1

martpie
martpie

Reputation: 6080

As JS is prototype oriented, you could simply extend the BrowserWindow API

var BrowserWindow = require('electron').BrowserWindow; // main process
var BrowserWindow = require('electron').remote.BrowserWindow; // renderer process

BrowserWindow.foo = function() {
    console.log('foo');
}

Not sure if you're looking for someting more specific, but I'm not sure you can extend it with heavy impacts on the system, could you explain exactly what you are trying to do ?

Upvotes: 0

Related Questions