Skip to content
This repository has been archived by the owner on Jun 4, 2023. It is now read-only.

Commit

Permalink
Merge pull request #114 from khoaakt/master
Browse files Browse the repository at this point in the history
Update tabs API
  • Loading branch information
sentialx committed Aug 8, 2018
2 parents 63c0578 + 9c56da8 commit c56ca1e
Show file tree
Hide file tree
Showing 3 changed files with 84 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/constants/api-ipc-messages.ts
Expand Up @@ -3,5 +3,8 @@ export const API_TABS_QUERY = 'api-tabs-query';
export const API_TABS_GET_CURRENT = 'api-tabs-getCurrent';
export const API_TABS_EXECUTE_SCRIPT = 'api-tabs-executeScript';
export const API_TABS_INSERT_CSS = 'api-tabs-insertCSS';
export const API_TABS_SET_ZOOM = 'api-tabs-setZoom';
export const API_TABS_GET_ZOOM = 'api-tabs-getZoom';
export const API_TABS_DETECT_LANGUAGE = 'api-tabs-detectLanguage';

export const API_RUNTIME_RELOAD = 'api-runtime-reload';
27 changes: 27 additions & 0 deletions src/preloads/api/index.ts
Expand Up @@ -137,6 +137,33 @@ export const getAPI = (manifest: Manifest) => {
if (callback) callback(result);
});
},
setZoom: (tabId: number, zoomFactor: number, callback: () => void) => {
ipcRenderer.send('api-tabs-setZoom', tabId, zoomFactor);

ipcRenderer.on('api-tabs-setZoom', () => {
if (callback) callback();
});
},
getZoom: (
tabId: number,
callback: (zoomFactor: number) => void,
) => {
ipcRenderer.send('api-tabs-getZoom', tabId);

ipcRenderer.on('api-tabs-getZoom', (e: Electron.IpcMessageEvent, zoomFactor: number) => {
if (callback) callback(zoomFactor);
});
},
detectLanguage: (
tabId: number,
callback: (language: string) => void,
) => {
ipcRenderer.send('api-tabs-detectLanguage', tabId);

ipcRenderer.on('api-tabs-detectLanguage', (e: Electron.IpcMessageEvent, language: string) => {
if (callback) callback(language);
});
},

onCreated: new IpcEvent('tabs', 'onCreated'),
onUpdated: new IpcEvent('tabs', 'onUpdated'),
Expand Down
54 changes: 54 additions & 0 deletions src/renderer/extensions-service.ts
Expand Up @@ -6,6 +6,9 @@ import {
API_TABS_CREATE,
API_TABS_INSERT_CSS,
API_TABS_EXECUTE_SCRIPT,
API_TABS_SET_ZOOM,
API_TABS_GET_ZOOM,
API_TABS_DETECT_LANGUAGE,
} from '../constants';

export const runExtensionsService = () => {
Expand Down Expand Up @@ -70,4 +73,55 @@ export const runExtensionsService = () => {
});
},
);

ipcRenderer.on(
API_TABS_SET_ZOOM,
(
e: Electron.IpcMessageEvent,
tabId: number,
zoomFactor: number,
sender: number,
) => {
const webContents = remote.webContents.fromId(sender);
const page = store.getPageById(tabId);

page.webview.setZoomFactor(zoomFactor);
webContents.send(API_TABS_SET_ZOOM);
},
);

ipcRenderer.on(
API_TABS_GET_ZOOM,
(
e: Electron.IpcMessageEvent,
tabId: number,
sender: number,
) => {
const webContents = remote.webContents.fromId(sender);
const page = store.getPageById(tabId);

page.webview.getWebContents().getZoomFactor((zoomFactor: number) => {
webContents.send(API_TABS_GET_ZOOM, zoomFactor);
});
},
);

ipcRenderer.on(
API_TABS_DETECT_LANGUAGE,
(
e: Electron.IpcMessageEvent,
tabId: number,
sender: number,
) => {
const webContents = remote.webContents.fromId(sender);
const page = store.getPageById(tabId);

page.webview.executeJavaScript('document.documentElement.lang', true, (language: string) => {
if (language !== "") webContents.send(API_TABS_DETECT_LANGUAGE, language);
else page.webview.executeJavaScript('navigator.language', true, (language: string) => {
webContents.send(API_TABS_DETECT_LANGUAGE, language);
});
});
},
);
};

0 comments on commit c56ca1e

Please sign in to comment.