Commit graph

261 commits

Author SHA1 Message Date
Robo
eae7c840b7 use idweakmap for holding callbacks in browser 2015-10-29 17:51:56 +05:30
Robo
62d15953ff remote: track listeners for browser side 2015-10-29 17:51:56 +05:30
Cheng Zhao
a3f62da615 Fix passing Date object in remote
Close #2017.
2015-10-23 14:51:41 +08:00
Cheng Zhao
d5c964c68c Fix passing Error object in remote
Closes #3089
2015-10-23 14:37:28 +08:00
Haojian Wu
9c861b9ad3 Fix always passing the first result to renderer when the API is called multiple
time at once.
2015-10-19 18:07:35 +08:00
Haojian Wu
fb4efec55d Add options check.
This patch avoids main process never response back to renderer if the options is
invalid.
2015-10-19 11:06:56 +08:00
Haojian Wu
214f8477b3 Fix some typos. 2015-10-17 19:28:14 +08:00
Cheng Zhao
d9fdfb711f Clean up CallbackRegistry
There were some ancient code there.
2015-10-16 20:25:30 +08:00
Cheng Zhao
4871ea715c Merge pull request #3103 from bengotow/bengotow/debug-release
Allow "released callback" errors to be traced to remote calls
2015-10-16 20:21:46 +08:00
Cheng Zhao
16b9f8995d Revert "Go back to using node's console.* and std*.write"
This reverts commit 4e8db2c3be.

It seems that we still have problems with Node.js's console.* calls, I'm
reverting this for now unitl we get a solution.

Fixes #3100.
2015-10-16 17:38:11 +08:00
Ben Gotow
aeb24b784d Allow "released callback" errors to be traced to remote calls 2015-10-15 18:46:59 -07:00
Eran Tiktin
4e8db2c3be Go back to using node's console.* and std*.write
It seems that whatever issues we had with using the original
implementation of node for `console.*` calls and for
`process.std*.write` on Windows were solved.
So I removed the patch.

Tested it with cmd, cygwin and used spawn and exec and everything seems
to work (except for colors/ansi escape codes, but that didn't work
before anyway).
2015-10-10 20:17:08 +03:00
Eran Tiktin
c71efc8ca5 Fix process.std*.write
- Support printing Buffer
- Don't add '\n' at the end the chunk
2015-10-10 08:13:27 +03:00
Eran Tiktin
1896deb10e Fix console.* calls on Windows
- Calls for console.* on browser process are printed with no need for
--enable-logging
- The output is without the logging prefix
- The cursor in the terminal is always after the last output
- The first output starts on a new line and not at the prompt
- console.* from renderer are not printed to cmd
- Added a missing '\n' in the default_app help output
2015-10-10 06:39:02 +03:00
Cheng Zhao
9dd714f056 Fix postMessage not working for windows opened by window.open 2015-10-08 10:44:30 +08:00
Haojian Wu
dcb457e76e Refine API design: desktopCapturer.getSources. 2015-10-07 11:10:35 +08:00
Cheng Zhao
927c3f34c3 Guard against undefined, fix #2995
In theory this should never happen, seems like some object is garbage
collected after the JavaScript context has been destroyed.
2015-10-06 22:25:55 +08:00
Haojian Wu
36c0ad7fda Refine more about desktop capturer API.
* Simplify the coffeescript code.
* Add more options in desktopCapturer.startUpdating.
2015-10-05 12:47:01 +08:00
Haojian Wu
1e69ef79de Refine: make desktop-capturer as a renderer module. 2015-10-04 22:04:41 +08:00
Cheng Zhao
01d2765e4b Prevent Node from adding paths outside this app to search paths 2015-10-03 20:38:39 +08:00
Cheng Zhao
9fe326ebeb Clear node's global search paths 2015-10-03 19:55:59 +08:00
Cheng Zhao
1045bbc861 Do not enumerate windows in remote.getCurrentWindow 2015-10-01 14:08:33 +08:00
Cheng Zhao
8c3116851d Exit the process when unable to find a valid app
Fixes #2583.
2015-09-30 17:30:28 +08:00
Cheng Zhao
f2fa0e96eb Pass options in "new-window" event 2015-09-22 23:40:16 +08:00
Cheng Zhao
de41890196 Inherit parent window's options in window.open 2015-09-22 22:32:10 +08:00
Cheng Zhao
f07fea1936 Add allowpopups attribute for webview 2015-09-22 20:11:05 +08:00
Cheng Zhao
f140f35910 Expose experiment APIs 2015-09-14 22:59:49 +08:00
Cheng Zhao
5eb0bedbbc Parse partition in webContents.create 2015-09-06 10:54:34 +08:00
Cheng Zhao
3773f81fd5 Pass partition name instead of path to BrowserContext 2015-09-06 10:53:39 +08:00
Cheng Zhao
9c235509a6 Read guest view's info from WebContentsPreferences 2015-09-06 10:53:03 +08:00
Robo
03ba9533fb store webviewinfo as web contents userdata 2015-09-03 21:27:50 +05:30
Robo
8f59c0b642 create partitionId with encodedURIcomponent 2015-09-03 20:49:29 +05:30
Robo
da5bac42f3 use embedders' browser context when partition is not specified 2015-09-03 20:49:29 +05:30
Robo
d180d3b168 webview: fix partition attribute 2015-09-03 20:49:29 +05:30
Cheng Zhao
50bfe9e335 Set source and origin correctly for window.opener.postMessage 2015-09-01 11:51:10 +08:00
Cheng Zhao
64e8ce0c07 Don't rely on IDWeakMap for bookkeeping remote objects
It frees us from using C++ to track JS objects, thus improves the
performance of collecting memory.
2015-08-27 19:01:34 +08:00
Cheng Zhao
f7c75d36ba Do not create remote object for simple return values of APIs 2015-08-27 16:14:53 +08:00
Cheng Zhao
c441dd1436 Merge pull request #2571 from atom/index-entry-startup
Support index.js module resolution at startup of Electron.
2015-08-26 12:35:24 +08:00
Haojian Wu
7a23add23b Support index.js module resolution at startup of Electron. 2015-08-24 21:16:19 +08:00
Cheng Zhao
33737498ec Make sure guest view is destroyed immediately when embeder is closed 2015-08-24 16:17:15 +08:00
Cheng Zhao
9212a1db8e Merge branch 'master' into chrome44 2015-08-21 19:29:34 +08:00
Eran Tiktin
6f25996fa1 Fixed typo 2015-08-16 23:20:09 +03:00
Cheng Zhao
1f2d7d1cd8 Implement protocol.registerBufferProtocol 2015-08-12 20:37:52 +08:00
Cheng Zhao
d2681d2ba1 Implement protocol.registerFileProtocol 2015-08-12 15:22:19 +08:00
Cheng Zhao
96d53d279e Initial implementation of new protocol API 2015-08-12 13:30:19 +08:00
Robo
0a7a4c0d0a webview: adding load-commit event 2015-08-05 19:22:30 +05:30
Cheng Zhao
2a30520799 Only set window.opener for windows opened by window.open 2015-08-04 15:47:12 +08:00
Ryohei Ikegami
c8a794ac34 Use constructor name to check if Promise 2015-08-01 12:20:16 +09:00
Ryohei Ikegami
92af275f98 Support remote Promise in browser 2015-07-31 14:52:48 +09:00
Ryohei Ikegami
ddf2cfd48d Support remote Promise in renderer 2015-07-31 14:52:37 +09:00
Vivek Patel
90bd32c680 Replaced 'browser' with 'main'
"A JavaScript error occured in the browser process" is confusing. Replacing it with 'main', just like everywhere else.
2015-07-29 15:04:34 +02:00
Cheng Zhao
e0528655a8 Merge pull request #2133 from atom/app_dir_api
Implment app.getAppPath API.
2015-07-08 10:08:22 +08:00
Haojian Wu
a2857d2dca Implment app.getAppPath API. 2015-07-07 17:37:53 +08:00
Cheng Zhao
f8786e9d17 No need to send message to embedder after it is closed 2015-07-06 21:28:09 +08:00
Cheng Zhao
85a4ff83da Some methods can be accessed after object is destroyed 2015-07-06 21:26:50 +08:00
Cheng Zhao
081a4597e9 Pass isGuest when creating WebContents 2015-06-24 23:29:32 +08:00
Cheng Zhao
8c83dfe918 Remove usages of JS IDWeakMap in browser-window 2015-06-24 19:01:44 +08:00
Cheng Zhao
15f350edcb Don't make IDWeakMap public API 2015-06-24 13:38:55 +08:00
Cheng Zhao
015ef3e014 Omit extra transfer of new-window event 2015-06-23 16:34:22 +08:00
Cheng Zhao
4b12a95d37 Transfer Buffer through "remote" 2015-06-10 11:58:15 +08:00
Cheng Zhao
9f0ac13edc Pass embedder when creating WebContents 2015-06-09 15:50:20 +08:00
Cheng Zhao
5459137d3d Remove unused options for WebContents.create 2015-06-09 15:40:04 +08:00
Haojian Wu
f1a8c5a1ca Use httpReferrer and userAgent new names in webview. 2015-06-09 10:44:54 +08:00
Cheng Zhao
b5c9fe78f1 Listen to ElementSizeChanged event 2015-05-29 13:47:09 +08:00
Cheng Zhao
e4bb456964 Pass element size when attaching 2015-05-29 11:47:54 +08:00
Cheng Zhao
bdf73fcd4c Update to the new algorithm of setting webview size 2015-05-29 11:12:55 +08:00
deepak1556
0dcf061dc1 check if window is html or forced fullscreen 2015-05-21 10:16:11 +05:30
deepak1556
c548b9c87e webContents: adding events to detect gpu and plugin process crashes 2015-05-20 15:05:48 +05:30
Paul Betts
975978b414 Don't be so paranoid about empty opts 2015-05-19 14:27:15 -07:00
Paul Betts
e4d90f747f Pass user agent along like http referrer and set user agent in C++ 2015-05-19 14:27:15 -07:00
Cheng Zhao
4c10925694 Add remote.getCurrentWebContents API 2015-05-11 14:05:20 +08:00
Paul Betts
4f67415607 Enable NPAPI by default, trump Chromium's default 2015-05-01 16:59:40 -07:00
deepak1556
8c5f171a93 webContents: providing dom-ready event 2015-04-30 09:58:29 +05:30
deepak1556
18b3dfa350 removed will-navigate and did-navigate events 2015-04-25 09:50:28 +05:30
deepak1556
36819e2638 added did-navigate event, getFavicon api and workaround webview spec 2015-04-25 09:50:28 +05:30
deepak1556
9b585458c1 webview: will-navigate and page-favicon-set navigation events 2015-04-25 09:50:28 +05:30
Cheng Zhao
500d15f53a Also remove user-defined search paths in renderer 2015-04-23 13:17:18 +08:00
Cheng Zhao
fad977e27d Simplify how we remove user-defined search paths 2015-04-23 13:13:58 +08:00
deepak1556
4983ef77bd module: remove system paths from search 2015-04-23 12:55:34 +08:00
deepak1556
15a648a879 webContents: event to detect status of requested resource 2015-04-08 19:14:47 +05:30
Robo
87af6f9c80 webview: adding page-title-set event 2015-04-05 14:50:42 +05:30
deepak1556
399f47ef0f implemetation of AtomCommandline to preserve args 2015-03-28 22:41:00 +05:30
Cheng Zhao
6af7388ac0 Use DevToolsAPI instead of InspectorFrontendAPI 2015-03-18 09:57:43 +08:00
Cheng Zhao
99f6bf045f Improve #1137 2015-03-04 07:58:06 -08:00
Bundyo
dbbc35bd13 Fixes after code review. 2015-03-04 11:29:52 +02:00
Bundyo
4e82f4c672 Remove two semicolons. 2015-02-13 18:54:18 +02:00
Bundyo
7fa1296a17 Implement FakeWindow.postMessage, window.opener.postMessage and window.closed flag for popup windows. 2015-02-13 18:45:12 +02:00
Cheng Zhao
4834eed520 Set process.resourcesPath in C++ 2015-02-13 13:32:58 +08:00
Cheng Zhao
0b8efc434d Use __dirname when setting globalPaths 2015-02-13 12:55:06 +08:00
Cheng Zhao
7c8bed7bfc Get the WebViewManager from embedder WebContents
This make our lives easier when we have multiple BrowserContext support.
2015-02-04 15:52:59 -08:00
Cheng Zhao
4ba3e101f6 Clean the init.coffee 2015-01-21 17:38:26 -08:00
Cheng Zhao
7e33e26465 Add atom-shell bindings before loading environment 2015-01-21 15:02:09 -08:00
Cheng Zhao
fe78c17ea6 Don't popup error if the user has a custom uncaught exception handler
Fix #1012.
2015-01-19 12:50:44 -08:00
Cheng Zhao
ce52a87477 Add "cache" and "userCache" directories 2015-01-18 21:43:22 -08:00
Cheng Zhao
d31df439c3 Override default userData according to app's name 2015-01-18 21:43:19 -08:00
Cheng Zhao
2d1afbf51b Call app.getDataPath after app is ready
It is possible for users to override the data path.
2015-01-18 21:43:18 -08:00
Cheng Zhao
482c740e61 Also unpack arguments in ipc-message-host message 2015-01-14 19:43:01 -08:00
Cheng Zhao
b4cdb546fe Don't set contentWindow property for <webview>
This property is only available in Chrome and we don't need it in
atom-shell, so remove it to avoid confusions.

Fixes #997.
2015-01-12 14:17:49 -08:00
deepak1556
c0f0f4cdc6 ensuring single instance for loading and unloading extension 2015-01-10 04:12:13 +05:30
Cheng Zhao
da54ac5f55 Don't leak listeners in embedder when guest is destroyed 2014-12-17 20:44:15 -08:00
Cheng Zhao
a26091e485 Suppress EventEmitter warnings 2014-12-17 20:33:47 -08:00
Cheng Zhao
c92d2531b5 Add "disablewebsecurity" attribute for <webview> 2014-12-17 18:13:20 -08:00
Cheng Zhao
a8f5a4e2d4 Add sendToHost method 2014-12-17 11:09:11 -08:00
Cheng Zhao
95793e410d Redirect guest page's ipc message to embedder 2014-12-16 21:10:53 -08:00
Cheng Zhao
11cd301127 Only listen to its own events in <webview>, fixes #885 2014-12-12 17:16:12 -08:00
Cheng Zhao
9d23cce2b6 Move "nodeintegration" and "plugins" to web-view-attributes 2014-12-09 14:51:35 -08:00
Cheng Zhao
68381e1b76 Use element instant id for GetGuestByInstanceID 2014-12-09 14:38:43 -08:00
Cheng Zhao
882a08f61a Fix browser plugin API changes 2014-12-08 09:00:00 -08:00
Cheng Zhao
fbd74c0e2d Various fixes of #801 2014-11-12 10:28:50 +08:00
Frank Hale
ef255db069 Making Http Referrer addition better!
- Code cleanup
2014-11-07 21:54:36 -05:00
Frank Hale
f56d1ea7b4 Add support for setting http referrer
- Add url option to specify the http referrer
- Add httpReferrer attribute to webview

NOTE: This is still not complete. Some love has to be done to
guest-view-manager.coffee and very likely the function calls called
createGuest and to the code that uses them.
2014-11-06 14:29:41 -05:00
Cheng Zhao
217b1afe87 Load the "preload" script in <webview> 2014-11-06 15:13:37 +08:00
Cheng Zhao
f6ba308ff8 Use dialog.showErrorBox for showing errors 2014-11-05 16:05:29 +08:00
Cheng Zhao
80d574482e Add "plugins" attribute for <webview> 2014-11-05 14:59:28 +08:00
Cheng Zhao
22c5720aa2 Window opened by window.open should have "default" disposition 2014-11-04 18:31:47 +08:00
Cheng Zhao
f29c7164f3 Translate |disposition| to string 2014-11-04 18:12:57 +08:00
Cheng Zhao
0c21c863d7 Simplify the GuestWindowManager
Instead of recording guest explicitly in a map, we just make use of
closure for bookkeeping.
2014-10-28 18:51:28 +08:00
Cheng Zhao
c71aa0995a Reuse the window of same frame name 2014-10-28 13:23:25 +08:00
Cheng Zhao
89990ec037 Don't throw exception on closed guest window 2014-10-27 23:59:11 +08:00
Cheng Zhao
7f4d00fac0 Add eval() for FakeWindow 2014-10-27 23:07:41 +08:00
Cheng Zhao
bdad1d1753 Add focus() and blur() for FakeWindow 2014-10-27 23:03:05 +08:00
Cheng Zhao
6f41598962 Use GuestWindowManager to mange windows created by window.open 2014-10-27 21:56:04 +08:00
Cheng Zhao
404e08c0e7 Make remote.getCurrentWindow() work in <webview> 2014-10-26 19:30:53 +08:00
Cheng Zhao
24b4fcea15 Add BIND_DONE event for process object 2014-10-25 23:21:17 +08:00
Cheng Zhao
1a93babdbc Fix double freeing guest 2014-10-25 22:01:24 +08:00
Cheng Zhao
22e3b9df44 Add attribute to turn on node integration in <webview> 2014-10-25 20:52:42 +08:00
Cheng Zhao
04f1860bf5 Make autoresize follow Chrome's behavior 2014-10-25 16:04:16 +08:00
Cheng Zhao
194ed3884c Add 'new-window' event for <webview> 2014-10-25 13:21:09 +08:00
Cheng Zhao
485bd7bbd3 Add 'close' and 'console-message' for <webview> 2014-10-25 10:01:19 +08:00
Cheng Zhao
218d69d288 Dispatch WebContents events to <webview> 2014-10-25 09:05:50 +08:00
Cheng Zhao
e95c1256a0 Add remote.getGuestWebContents 2014-10-24 19:57:29 +08:00
Cheng Zhao
58a38d90b8 Don't fork renderer process for guest 2014-10-24 19:08:26 +08:00
Cheng Zhao
6336edbe92 Implement allowtransparency attribute 2014-10-24 16:48:21 +08:00
Cheng Zhao
ce793ec86d Destroy guest when the embedder is gone 2014-10-24 16:19:00 +08:00
Cheng Zhao
39e75574f4 Attach <webview> with guest WebContents 2014-10-24 14:37:14 +08:00
Cheng Zhao
dacbf7a042 Register guest web view 2014-10-23 23:08:48 +08:00
Cheng Zhao
a22a5c67bd Implement GuestViewInternal.createGuest and destroyGuest 2014-10-23 17:54:52 +08:00
Cheng Zhao
0d19e772e6 linux: Don't append --force-device-scale-factor to process.argv 2014-10-21 20:55:37 +08:00
Cheng Zhao
d754b2bda7 Break on first found app 2014-10-01 20:40:52 +08:00
Cheng Zhao
d559275711 Emit "exit" event for "process" when quitting. 2014-09-25 21:48:30 +08:00
Cheng Zhao
e5e1e207b6 Also search for app.asar when starting app. 2014-09-24 20:09:41 +08:00
Cheng Zhao
9b755620d3 Make fs.stat support asar package 2014-09-24 15:38:02 +08:00
Haojian Wu
e7fbe84644 Use app name as desktop name by default. 2014-09-18 22:58:17 +08:00
Haojian Wu
d9ce3f0ca3 linux: Implement SetProgressBar API. 2014-09-18 19:26:52 +08:00
Guido Zuidhof
3e6d8ddbbd Small typo fix in fatal JS error message
An javascript error -> A javascript error
2014-09-01 21:02:03 +02:00
Cheng Zhao
aa8f5e54df dev-tools => devtools. 2014-08-28 16:00:29 +08:00
Cheng Zhao
8134585578 Remember loaded extensions. 2014-08-28 15:58:36 +08:00
Cheng Zhao
b6c2e7ef76 Ignore requests to other hosts. 2014-08-27 21:05:54 +08:00
Cheng Zhao
fe96a9de33 Don't use pure number as host name.
Numbers would be treated as IP addresses.
2014-08-27 20:49:57 +08:00
Cheng Zhao
cd40bdbec8 Add chrome-extension protocol for loading devtools extensions. 2014-08-27 16:01:15 +08:00