Commit graph

123 commits

Author SHA1 Message Date
Thiago de Arruda
6ff111a141 perf: don't use JSON to send the result of ipcRenderer.sendSync. (#8953)
* Don't use JSON to send the result of `ipcRenderer.sendSync`.

- Change the return type of AtomViewHostMsg_Message_Sync from `base::string16`
  to `base::ListValue`
- Adjust lib/browser/api/web-contents.js and /lib/renderer/api/ipc-renderer.js
  to wrap/unwrap return values to/from array, instead of
  serializing/deserializing JSON.

This change can greatly improve `ipcRenderer.sendSync` calls where the return
value contains Buffer instances, because those are converted to Array before
being serialized to JSON(which has no efficient way of representing byte
arrays).

A simple benchmark where remote.require('fs') was used to read a 16mb file got
at least 5x faster, not to mention it used a lot less memory.  This difference
tends increases with larger buffers.

* Don't base64 encode Buffers

* Don't allocate V8ValueConverter on the heap

* Replace hidden global.sandbox with NodeBindings::IsInitialized()

* Refactoring: check NodeBindings::IsInitialized() in V8ValueConverter

* Refactor problematic test to make it more reliable

* Add tests for NaN and Infinity
2018-06-13 17:38:31 +10:00
Shelley Vohr
4a90056462
remove webContents.openDevTools() deprecation 2018-05-23 09:30:15 -07:00
Nitish Sakhawalkar
2579071b98 Deprecate did-get-response-details and did-get-redirect-request (#12615)
* Deprecate webContents events did-get-response-details and did-get-redirect-request.

* Update guest view files

* Update webview tag docs and update specs

* Update deprecate.event function

* Update comment

* Update more

* Update documentation for other deprecated event
2018-04-23 14:46:12 -05:00
John Kleinschmidt
2a97e48465
Merge pull request #11968 from electron/refactor-menu-popup
Refactor menu.popup
2018-02-21 14:29:52 -05:00
shelley vohr
719e5a93b4 deprecation for webContents.openDevTools (#11986)
* deprecate old openDevTools param

* add deprecation check and existence check

* fix method issues
2018-02-20 22:30:02 -06:00
Charles Kerr
f59d078eea Use more idiomatic JS in WebContents' init() 2018-02-20 19:20:11 -06:00
Charles Kerr
708f39a1a5 update a few menu.popup() calls to use the new API 2018-02-20 14:02:24 -06:00
Shelley Vohr
211b542ae4
remove setZoomLevelLimits 2018-02-20 08:57:48 -05:00
Samuel Attard
1553b54779
Add window.loadFile and webContents.loadFile helper methods 2018-01-04 11:38:56 +13:00
Cheng Zhao
46330ac2a9 Remove the closed event of Menu
The callback of Menu.popup does more things, and there is actually no
request for the closed event.
2018-01-01 17:22:07 +09:00
Cheng Zhao
e4770c7604 Coding style fixes 2017-12-20 18:48:09 +09:00
Heilig Benedek
c586806609 fix flash menu being unresponsive to commands 2017-12-20 15:40:07 +09:00
Felix Rieseberg
f81bfb7b86 🔧 Fix style issues 2017-11-23 13:42:48 -08:00
Felix Rieseberg
5b18bea7e3 🔧 Alex has good ideas 2017-11-18 10:59:09 -08:00
Felix Rieseberg
cf7e9df3a0 🔧 Appease the linter 2017-11-18 01:02:09 -08:00
Felix Rieseberg
9a2d103e7f :thinking_face: What if we made it an Error again? 2017-11-18 00:51:14 -08:00
Cheng Zhao
d233fc044a Pass dpiVertical and dpiHorizontal to print settings 2017-08-22 13:54:49 +09:00
Darrell Ulm
fa2bfd3ff5 Add Math.ceil to pageSize.height and pageSize.width to printToPDF() options to prevent error on display. 2017-05-06 19:19:31 -04:00
deepak1556
5e976be43b remove page-title-updated workaround for #3380 2017-05-01 16:53:55 +09:00
Kevin Sawicki
6240e30be1 Default hasUserGesture to false when null 2017-03-06 10:51:17 -08:00
Samuel Attard
095e79b043 Ensure the callback is a function when executing JS 2017-03-06 10:46:20 -08:00
Kevin Sawicki
739f3ed102 Popup pepper menu in owner browser window 2017-02-24 08:39:22 -08:00
deepak1556
203a920c64 fix signature of zoom getter apis 2017-02-18 01:34:32 +05:30
deepak1556
b27c94368d webContents: set zoom levels with HostZoomMap 2017-02-12 00:49:17 +05:30
Cheng Zhao
3024d0563f There were new defaultPrintingSetting fields added 2017-02-06 10:34:29 -08:00
Kevin Sawicki
d6eb0d6629 Implement insertCSS on webFrame 2017-01-19 09:05:59 +02:00
Kevin Sawicki
c8ff67ab75 Use spread syntax instead of function apply 2016-12-01 14:56:00 -08:00
Kevin Sawicki
9a5df9da41 Expose setVisualZoomLevelLimits on webContents and <web-view> 2016-11-22 08:07:55 -08:00
Paul Betts
e2649ce7d8 Add new method to set layout-based zoom level limit 2016-11-21 14:59:55 -05:00
Kevin Sawicki
8e203592e2 🎨 Remove extra returns 2016-11-03 09:51:01 -07:00
Samuel Attard
9f18a6e65c Use ES6 template strings, fix docs and remove _ERROR_ IPC event 2016-11-03 09:33:47 -07:00
Samuel Attard
857e1da6a3 Make executeJavaScript return a Promise so that caught errors can be sent to the caller 2016-11-03 09:33:47 -07:00
Kevin Sawicki
b54b74c310 Prevent missing Menu.buildFromTemplate function 2016-09-06 11:31:14 -07:00
Cheng Zhao
edb573d69e Make WebContents inherit NavigationController 2016-08-02 20:55:56 +09:00
Cheng Zhao
025034127a Set JavaScript APIs on prototype of WebContents 2016-08-02 20:52:07 +09:00
Cheng Zhao
844f32aa36 Set prototype of constructor directly 2016-08-02 20:38:35 +09:00
Cheng Zhao
6e0cde5b24 All native objects have prototype now 2016-08-02 17:12:17 +09:00
Samuel Attard
a498cf5b79 Fix linting issues 2016-08-02 13:13:17 +10:00
Samuel Attard
e4f6083753 Implement asynchronous versions of getZoomFactor and GetZoomLevel on the webContents object 2016-08-02 13:02:55 +10:00
Kevin Sawicki
a7badd43d5 Expose getAllWebContents() API 2016-07-14 08:59:49 -07:00
Kevin Sawicki
72cdba2b8e 🎨 2016-07-13 14:49:25 -07:00
Kevin Sawicki
06e595e7cc Add webContents.getFocusedWebContents() 2016-07-13 14:16:56 -07:00
Kevin Sawicki
7877fa7c0a Add webContents.isFocused() 2016-07-13 14:16:56 -07:00
Kevin Sawicki
f67e2043c8 Add back options param 2016-06-13 09:06:42 -07:00
Kevin Sawicki
56001b481e Emit web-contents-created on app 2016-06-13 08:59:57 -07:00
Kevin Sawicki
c8c60dd313 Add devtools from web-contents-created event 2016-06-08 12:00:13 -07:00
Cheng Zhao
0864d3b1ee Cleanup the printToPDF code 2016-06-01 15:32:37 +09:00
Cheng Zhao
eb882855bc Cleanup the CoffeeScript converted code 2016-06-01 15:08:51 +09:00
Cheng Zhao
5bb8da6073 Explicitly initialize session before webContents 2016-06-01 14:57:35 +09:00
Cheng Zhao
0565c42add Merge pull request #5812 from vasumahesh1/feature-pdf
webContents: custom pageSize for printToPDF
2016-06-01 05:52:08 +00:00
Cheng Zhao
d105524135 Cleanup the JavaScript code of session 2016-06-01 10:42:24 +09:00
Vasu Mahesh
fc6628d159 Add: custom pageSize for printToPDF 2016-05-31 22:40:11 +05:30
Cheng Zhao
5f3fdbe635 Simplify the implementation of sendToAll 2016-05-29 12:10:32 +09:00
Cheng Zhao
dfe7ae2124 Add webContents.fromId 2016-05-28 10:10:24 +09:00
Cheng Zhao
9ab76fb884 Add webContents.sendToAll to send message to all frames 2016-05-27 16:58:49 +09:00
Kevin Sawicki
cc7395eea8 Remove returns from event listeners 2016-05-19 15:28:08 -07:00
Steve Kinney
0d3d097ce8 💄 Standarize requires in JavaScript API 2016-05-15 09:41:30 -04:00
deepak1556
14661819c2 move session wrapper to webcontents 2016-05-06 10:12:55 -07:00
Kevin Sawicki
dae68be2ce Remove deprecated APIs 2016-05-06 10:12:53 -07:00
deepak1556
4e6b148eaa webContents: fix executejavascript when called before page load 2016-04-28 01:54:08 +05:30
Rob Brackett
64a84dee3b Add isLoadingMainFrame method to WebContents.
Also switch `webContents.executeJavaScript` to check it instead of `isLoading`.
There doesn’t seem to be a reasonable public way to get this information out of Chromium, so it’s synthesized here based on WebContentsObserver callbacks.
Fixes #5183.
2016-04-18 10:37:08 -07:00
Cheng Zhao
92882c358a No more need to delay did-fail-load event 2016-04-13 19:33:59 +09:00
Cheng Zhao
2fbe06a2a5 Handle the Page.reload command coming from devtools 2016-04-12 16:36:12 +09:00
Zeke Sikelianos
b5afad9da7 avoid using eslint comment exceptions 2016-03-30 17:00:34 -07:00
Zeke Sikelianos
4e2f1311e0 replace __proto__ with Object.setPrototype 2016-03-30 17:00:33 -07:00
Zeke Sikelianos
2c3cacdc08 standardize by hand 2016-03-30 17:00:33 -07:00
Zeke Sikelianos
e6698102c9 standardize by hand 2016-03-30 17:00:33 -07:00
Zeke Sikelianos
4794385fac first pass at standardizing; suite still passing! 2016-03-30 17:00:30 -07:00
Kevin Sawicki
4127b524d5 Destructure params directly 2016-03-22 13:11:42 -07:00
Kevin Sawicki
4f4dc2f4d8 Use destructuring assigment 2016-03-22 13:11:42 -07:00
Kevin Sawicki
8889c29866 Use rest parameters 2016-03-18 11:51:02 -07:00
Kevin Sawicki
a3f08c9b51 Use arrow functions to replace old CoffeeScript => this wrappers 2016-03-11 11:25:56 -08:00
Kevin Sawicki
70aa9b06ee Move JavaScript to root lib/ folder 2016-03-08 11:14:21 -08:00
Renamed from atom/browser/api/lib/web-contents.js (Browse further)