Commit graph

2059 commits

Author SHA1 Message Date
Aleksei Kuzmin
417fe29dc0 Fix the media events test
Playing a media now requires a user gesture.
See https://goo.gl/xX8pDD.
2018-06-19 11:49:45 +10:00
Aleksei Kuzmin
c786abf1e9 Add gfx:PointF support to mate::Converter
It's needed by atom_api_screen, BuildPrototype function on Windows.
2018-06-19 11:49:45 +10:00
Aleksei Kuzmin
7886cfe408 FIXME: Disable "node feature child_process.fork" tests 2018-06-19 11:49:45 +10:00
Aleksei Kuzmin
368734b8ab FIXME: Disable "node feature inspector" tests 2018-06-19 11:49:45 +10:00
Aleksei Kuzmin
e240a16a20 FIXME: Disable "ses.cookies calls back with an error when setting a cookie with missing required fields" test 2018-06-19 11:49:45 +10:00
Aleksei Kuzmin
4a08779bc8 FIXME: Disable a couple of "debugger module debugger.sendCommand" tests 2018-06-19 11:49:45 +10:00
Aleksei Kuzmin
3ca288aba4 FIXME: Disable "BrowserWindow module extensions and dev tools extensions works when used with partitions" test 2018-06-19 11:49:45 +10:00
Aleksei Kuzmin
6c0b5cd76c FIXME: Disable "BrowserWindow module beginFrameSubscription method" tests 2018-06-19 11:49:45 +10:00
Aleksei Kuzmin
9b9a818c43 FIXME: Disable one of the <webview> tag tests. 2018-06-19 11:49:44 +10:00
Aleksei Kuzmin
7e4c0b304b Enable a few tests 2018-06-19 11:49:44 +10:00
Aleksei Kuzmin
32ff2ff8fb FIXME: Disable some of <webview> tag tests 2018-06-19 11:49:44 +10:00
Aleksei Kuzmin
a45b1a9205 FIXME: Disable a couple of webContents module tests 2018-06-19 11:49:44 +10:00
Aleksei Kuzmin
123b35a7f1 FIXME: Disable "asar package child_process.fork" tests 2018-06-19 11:49:44 +10:00
Aleksei Kuzmin
77ae8b65f7 FIXME: Disable desktopCapturer tests 2018-06-19 11:49:44 +10:00
deepak1556
7b47d69efe Remove did-get-response-details and did-get-redirect-request events
https://chromium-review.googlesource.com/c/chromium/src/+/805008
https://chromium-review.googlesource.com/c/chromium/src/+/786320
2018-06-19 11:49:41 +10:00
Zhuo Lu
ab24a1e36d feat: netLog API for dynamic logging control (#13068)
* Introduce `net.{start|stop}Logging()`

- Slight regression right now as Electron won't automatically start logging net-logs at launch, will soon be fixed
- To implement callback for async controls

* Add `net.isLogging` & optional callback param for `net.stopLogging()`

* Fix small regression on --log-net-log

--log-net-log should work again

* Error on empty file path

* Only start with valid file path

* Remove unused var

* Allow setting log file path before URLRequestContextGetter starts logging

* Add net log tests

* Remove redundant checks

* Use brightray::NetLog

* Clean up code

* Should automatically stop listening

* 🎨 Attempt to fix styles

* Only run non-null callback

* Dump file to tmpdir

* Simplify net log spec

Spawned Electron process on Linux CI can fail to launch

* Separate netLog module

* Remove net logging test from net spec

* Add tests for netLog

* Fix header guard

* Clean up code

* Add netLog.currentlyLoggingPath

* Callback with filepath

* Add test for case when only .stopLogging() is called

* Add docs

* Reintroduce error on invalid arg

* Update copyright

* Update error message

* Juggle file path string types
2018-06-19 11:45:58 +10:00
Shelley Vohr
b4cce8e240
spec: convert IAP and GC specs to expect (#13272)
* spec: convert IAP and GC specs to expect

* address review
2018-06-18 09:50:37 -07:00
Shelley Vohr
c65844a7d0
address review feedback 2018-06-18 08:56:24 -07:00
Shelley Vohr
314071d79f
feedback from review 2018-06-18 08:12:54 -07:00
Shelley Vohr
fe94bf7c1d
spec: convert dialog spec to expect (#13271) 2018-06-18 07:56:03 -07:00
Milan Burda
2eb5b751f3 exit HTML fullscreen when window leaves fullscreen (#13090) 2018-06-18 16:48:20 +09:00
Shelley Vohr
2c2e8317de
spec: convert desktop capturer to expect 2018-06-17 16:00:28 -07:00
Shelley Vohr
4dec5ec5f9
spec: update browser-view spec to expect (#13238)
* spec: update browser-view spec to expect
2018-06-17 15:56:04 -07:00
Shelley Vohr
79c2d22c25
remove assert require 2018-06-17 15:37:16 -07:00
Shelley Vohr
8d5fc61c12
spec: update browser-window-affinity spec to expect (#13239)
* spec: update browser-window-affinity spec to expect

* final cleanup
2018-06-17 15:36:30 -07:00
Shelley Vohr
e023035393
spec: convert debugger spec to expect 2018-06-17 15:35:24 -07:00
Shelley Vohr
c5c571f8ec
spec: update callback registry spec to expect (#13263)
* spec: update callback-reg-spec to sexpect

* remove stray only

* remove redundant assertions
2018-06-17 15:08:17 -07:00
Shelley Vohr
0ef0e69f03
spec: convert clipboard spec to use expect (#13266) 2018-06-17 14:47:51 -07:00
Shelley Vohr
a0d252870c
spec: update auto-updater spec to expect (#13237)
* spec: update auto-updater to expect
2018-06-16 00:28:28 -07:00
Shelley Vohr
91559191c9
spec: update app spec to assert (#13155)
* convert app spec from assert to expect and add dirty-chai
2018-06-14 09:44:27 -07:00
Alexey Kuzmin
6a59b37bea spec: better texts for the Crash Reporter tests (#13227)
* Better failure messages for a Crash Reporter test

* Add a TODO
2018-06-14 19:24:28 +10:00
Alexey Kuzmin
dee9aef975 Add "enable_desktop_capturer" build flag (#13133)
* Make it possible to disable a module for a renderer

* Put DesktopCapturer API under a build flag

The name is "enable_desktop_capturer".
Enabled by default.
2018-06-13 11:15:34 -05:00
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
Milan Burda
6ad0a22602 Add process.getHeapStatistics() (#13183) 2018-06-10 22:00:36 +10:00
Alexey Kuzmin
0d5e98a201 Slightly rewrite <webview> tag tests (#13122) 2018-06-01 10:56:48 +02:00
Charles Kerr
b89fe86fa1
Merge pull request #13050 from electron/3.0.0-deprecations
chore: removal of 3.0.0 deprecations
2018-05-30 09:25:36 +02:00
Shelley Vohr
d40cce92bf
remove deprecated signature tests 2018-05-29 11:42:03 -04:00
Shelley Vohr
2660859434
update signature for setCertificateVerifyProc in session spec 2018-05-29 10:54:27 -04:00
Charles Kerr
2275625e1a feat: warn if deprecated property is already set 2018-05-29 15:58:02 +02:00
Charles Kerr
61fac1bbc1 test: add tests for deprecate.property() 2018-05-29 15:40:48 +02:00
Milan Burda
4cfe5ecaa4 add proper support for typed arrays in remote (#13055) 2018-05-24 21:05:46 +09:00
Aleš Pergl
93bee69266 Remove command line argument black-list (#13039)
* Remove command line argument black-list

Instead block all arguments following a URL.

* Updated tests
2018-05-22 11:51:03 -05:00
Shelley Vohr
560c0e72e6
Fix vulnerabilities both top-level and in spec (#13029)
* fix dependency vulnerabilities

* fix vulnerabilities in spec
2018-05-21 21:15:18 -07:00
Cheng Zhao
300c7a4b04 add tests for View and WebContentsView 2018-05-21 10:53:09 +09:00
Alexey Kuzmin
fc34076c2b Refactor <webview> tag tests (#12886) 2018-05-14 17:00:49 -05:00
Alexey Kuzmin
d5dfb19508 Update some tests (#12917)
* Use Chai for webview tests

* Slightly rewrite one of the <webview> tests

"dom-ready event" > "throws a custom error..."

* Use Chai for BrowserWindow tests

* Rewrite BrowserWindow.addDevToolsExtension tests
2018-05-14 13:17:31 -05:00
Heilig Benedek
eae0674f61 Match chromium's workaround when setting size of unresizable windows 2018-05-12 17:37:31 +02:00
Shelley Vohr
daf75dd375
add app.isPackaged (#12656)
* add isPackaged method

* add false test case for app.isPackaged()

* document add.isPackaged()

* check isPackaged() without fs call

* convert to non-method property

* document app.isPackaged as a property

* update tests for app.isPackaged

* remove unused fs require

* clarify docs for isPackaged()
2018-05-07 23:15:31 -07:00
Samuel Attard
5b5c161601
feat: new makeSingleInstance API (#12782)
* Refactor app.makeSingleInstance
* new API `app.isPrimaryInstance()`
* new API `app.isSingleInstance()`
* new event `app.on('second-instance')`
* deprecated old syntax `app.makeSingleInstance(cb)`
* deprecated old syntax of `app.makeSingleInstance() --> bool` in favor
of `app.isPrimaryInstance()`
* Fix spec, we don't need process.nextTick hacks any more
* Make deprecation TODO for the return value of makeSingleInstance
* Refactor makeSingleInstance to requestSingleInstanceLock and add appropriate deprecation comments
* I swear this isn't tricking the linter
* Make const
* Add deprecation warnings for release, and add to planned-breaking-changes

BREAKING CHANGE
2018-05-08 01:29:18 +10:00
Shelley Vohr
9c8952aef0
Add menu item order control (#12362)
Add four new optional properties to menus in Electron. The four properties are:
'before'
'after'
'beforeGroupContaining'
'afterGroupContaining'

'before/after' - provides a means for a single context menu item to declare its placement relative to another context menu item. These also imply that menu item in question should be placed in the same “group” as the item.

'beforeGroupContaining/afterGroupContaining - provides a means for a single menu item to declare the placement of its containing group, relative to the containing group of the specified item.
2018-05-05 09:37:29 -07:00
Alexey Kuzmin
3fd0ec99ae Better OSR tests (#12817)
* Add features.isOffscreenRenderingEnabled()

* Use .isOffscreenRenderingEnabled() to determine if OSR is available

* Add a helper closeTheWindow() function

* Skip OSR tests if they are disabled
2018-05-03 11:10:25 -05:00
Cheng Zhao
d46aa92f0b
make security-warnings tests more robust (#12757) 2018-05-01 14:28:55 +09:00
Cheng Zhao
e00b128a50
fix flaky security-warnings test (#12749) 2018-05-01 09:49:45 +09:00
Tatsuya Hiroishi
9c65abd746 handle remote exception (#12694)
* add cause property to exception in callFunction

* update exceptionToMeta function

* add sender argument
* and cause property to return value

* update exception convert in metaToValue function

* add from and cause properties to the exception error

* unit test for remote exception
2018-04-24 08:40:19 -04: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
Alexey Kuzmin
fcc82ebd35 Add "app.whenReady()" (#12652)
* Make "chai-as-promised" avaialble in tests

* Add "app.whenReady()"

Closes #9561.
2018-04-20 17:09:23 +10:00
Jeremy Apthorp
97fb15ac49 Enable WebFrame method forwarding in sandboxed renderers (#12538)
* Enable WebFrame method forwarding in sandboxed renderers

Fixes #9073

* Non-change to kick CI
2018-04-12 11:57:40 +10:00
Nitish Sakhawalkar
6fc819dae1 Fix transparency in capturePage (#12561)
* Fix transparent window capture. Transparency is preserved and not converted to black pixels anymore

* Add test to make sure aplha channel exists in captured image
2018-04-10 19:07:15 +09:00
Andrew MacDonald
6bfb122cd1 Add a display_id parameter to the desktopCapturer API. (#12417)
* Add a screen_api_id parameter to the desktopCapturer API.

When using the DirectX capturer on Windows, there was previously no way
to associate desktopCapturer/getUserMedia and electron.screen API
screens. This new parameter provides the association.

* Fix non-Windows build.

* Fix Mac.

* Fix Mac harder.

* JS lint

* clang-format C++ code.

* IWYU

* display_id, Linux comment, better test

* lint

* Fix tests on Linux.

* Add display_id documentation.
2018-04-09 14:43:35 +09:00
Nitish Sakhawalkar
970f79e32f Check for devtools in BrowserWindow.getFocusedWindow() (#12526) 2018-04-06 09:21:32 -04:00
Robo
65e8199a93 Enable plznavigate aka browser side navigation (#12535)
* enable plznavigate code path

* AtomBrowserClient::GetGeolocationApiKey returns the right default

* use IsLoadingToDifferentDocument to identify top level navigation in mainFrame

* use candidate site instance when available

* spec: don't test httpReferrer option for file origin

* update libcc ref

* affinity: only group same site in this mode

* plznavigate: don't emit did-get-response-details event for blob scheme
2018-04-06 16:22:52 +09:00
Jeremy Apthorp
f0d08f4da1 Propagate referrer to new windows (#12397)
* Propagate referrer to new windows

Fixes #9205

* Rearrange -new-window event arguments for backwards-compatibility

* Plumb referrer policy through guest-window-manager

* Document the Referrer structure and its uses

* Add tests for referrer in new windows

* Docs nits
2018-04-05 18:13:24 -05:00
Adrien Fery
5486a65702 Improve in-app purchase for MacOS (#12464)
* Add methods to finish transactions

* Add a method to get the product descriptions from the App Store

* Improve the documentation of a transaction structure

* Add a tutorial for In App Purchase

* Fix typo in In-App Purchase tutorial

* Fix style of In-App Purchase files

* Fix In-App-Purchase product structure conversion in amr64

* Fix code style in In-App Purchase tutorial documentation

* Fix typos in In-App Purchase documentation

* Fix typo in In-App Purchase spec

* Slight style fixes
2018-04-05 15:33:13 +09:00
Nitish Sakhawalkar
fbff355742 Support for navigator.languages (#12419) 2018-04-02 12:47:00 +09:00
Cheng Zhao
f41cce96a3 Increase timeout for inAppPurchase test (#12403) 2018-03-22 08:47:29 -05:00
deepak1556
e24c0dda5d add features module to detect availability of build time features at runtime 2018-03-20 10:13:17 +03:00
deepak1556
4b39d17e5f move pdf viewer behind feature flag 2018-03-20 10:13:17 +03:00
deepak1556
f9de29ed8c Enable node crypto spec 2018-03-20 10:13:16 +03:00
Aleksei Kuzmin
d5ecbfc539 spec: Do not assume en-US locale to be the current 2018-03-20 10:13:16 +03:00
Nitish Sakhawalkar
524f56354c Fix webview resize test 2018-03-20 10:13:16 +03:00
deepak1556
80772c2419 FIXME: Disable node crypto spec 2018-03-20 10:13:15 +03:00
deepak1556
719980a948 REVIEW: remove device emulation ipc dependecny on rvh 2018-03-20 10:13:15 +03:00
Aleksei Kuzmin
490b1e2532 FIXME: Disable some tests to avoid crashes 2018-03-20 10:13:15 +03:00
Shelley Vohr
31d688ad3d
Check menu.popup options are an object (#12325)
* check menu.popup options are an object

* Add a spec for menu.popup options check

* remove stray .only
2018-03-17 06:31:10 +09:00
Birunthan Mohanathas
2681e769a6 Document BrowserView.{destroy,isDestroyed} (#12274) 2018-03-15 16:15:56 +09:00
Charles Kerr
c2673aa970 Set appropriate defaults for webview options (#12271)
* Persist defaults to webPreferences object to JS land can read the inferred values instead of just user defined values

* Test inherited default propogation

* Refactor to remove coupling from fetching values and defaults

* Test description type

* Fix up tests
2018-03-15 13:56:46 +09:00
Samuel Attard
9ed9885c8d
fix remote setInterval flake (#12263) 2018-03-14 14:51:47 +09:00
OJ Kwon
e7181eb89c feat(powerMonitor): expose interface to query system idle state (#11807)
* feat(BrowserWindow): expose interface to query system idle state

* test(BrowserWindow): update test cases for querySystemIdle interface

* docs(BrowserWindow): add querySystemIdle interface documentation

* refactor(powerMonitor): move querySystemIdle into powerMonitor

* test(powerMonitor): split test cases for all platform
2018-03-14 14:42:08 +09:00
Samuel Attard
90dc897f71 add missing report.length > 1 assertion (#12257) 2018-03-14 13:14:29 +09:00
Hari Juturu
704af29543 Exposing process.env status (#12166) 2018-03-14 12:01:40 +09:00
Robo
e741bc0577 fix crash when using getWebPreferences api with devtools webContents (#12254) 2018-03-14 11:19:22 +09:00
Samuel Attard
e62349cffb
Merge pull request #12253 from felixrieseberg/fix-last-crash-report
fix: Ensure that `getLastCrashReport()` is actually the last crash report
2018-03-14 10:36:27 +09:00
Felix Rieseberg
ee67211035 🔧 Linter's gotta lint 2018-03-13 17:41:02 -07:00
Felix Rieseberg
582ef30b4a 👷 Tests, how do they work 2018-03-13 17:35:55 -07:00
Felix Rieseberg
1b3568e66e 👷 Fancy test 2018-03-13 17:28:15 -07:00
Felix Rieseberg
3575dae75c 🔪 Cut typo 2018-03-13 16:58:40 -07:00
Felix Rieseberg
673335de4b 🔧 Actually test the method 2018-03-13 16:51:20 -07:00
deepak1556
c3bcb606a9 spec: isolate sw file scheme spec storage with temp partition 2018-03-14 02:03:55 +09:00
Charles Kerr
e400585a0e Apply further ES6 bikeshedding 2018-03-13 17:09:47 +09:00
Charles Kerr
e4d5ae53fc Add tests 2018-03-13 15:55:48 +09:00
Charles Kerr
86af20ded0
Linux named notifications (#12192)
* Set name & desktop-entry on Linux notifications

* DBusMock now honors verbose mode flag

* Disable DBus Notification tests on ia32
2018-03-12 09:33:06 +09:00
Cheng Zhao
cf36fdecbf Skip client-certificate test for Linux (#12189) 2018-03-09 14:43:49 +09:00
Cheng Zhao
cde0c1d418 Print detailed error for serviceWorker test (#12186) 2018-03-08 21:06:29 -05:00
John Kleinschmidt
134d3f98c9 Allow CI building on arm64 hardware 2018-03-08 09:53:47 -05:00
Hari Juturu
2f4fd3324b Preload doesn't load in sandboxed render if preload path contains special chars (#12037)
* Adding missing headers

* adding ut

* Removing the file path exists check

* fixing test

* exposing window.require in UT
2018-03-07 11:40:00 -05:00
Cheng Zhao
cc6bcb6c81 Fix some flaky tests in CI (#12153)
* Guard whole InitPrefs with ScopedAllowIO

Saw a crash:
0 0x7f8d2f7d918d base::debug::StackTrace::StackTrace()
1 0x7f8d2f7d755c base::debug::StackTrace::StackTrace()
2 0x7f8d2f867caa logging::LogMessage::~LogMessage()
3 0x7f8d2fa157c7 base::ThreadRestrictions::AssertIOAllowed()
4 0x7f8d2f83453a base::OpenFile()
5 0x7f8d2f82a967 base::ReadFileToStringWithMaxSize()
6 0x7f8d2f82ad44 base::ReadFileToString()
7 0x7f8d2f846f73 JSONFileValueDeserializer::ReadFileToString()
8 0x7f8d2f84738c JSONFileValueDeserializer::Deserialize()
9 0x7f8d35a5d1f6 <unknown>
10 0x7f8d35a5c217 JsonPrefStore::ReadPrefs()
11 0x7f8d35a87d3e PrefService::InitFromStorage()
12 0x7f8d35a87c60 PrefService::PrefService()
13 0x7f8d35a91a10 PrefServiceFactory::Create()
14 0x000000e86e1b brightray::BrowserContext::InitPrefs()
15 0x000000c2bd64 atom::AtomBrowserContext::AtomBrowserContext()
16 0x000000c320db atom::AtomBrowserContext::From()
17 0x000000b4b8b5 atom::api::Session::FromPartition()

* Fix done being called twice in setInterval test

The callback passed to browser process is called asyncly, so it is
possible that multiple callbacks has already been scheduled before we
can clearInternval.

* Fix failing test when dir name has special chars

The pdfSource is not escaped while parsedURL.search is.

* Call done with Error instead of string

* Fix crash caused by not removing input observer

Solve crash:
0 libcontent.dylib content::RenderWidgetHostImpl::DispatchInputEventWithLatencyInfo(blink::WebInputEvent const&, ui::LatencyInfo*) + 214
1 libcontent.dylib content::RenderWidgetHostImpl::ForwardMouseEventWithLatencyInfo(blink::WebMouseEvent const&, ui::LatencyInfo const&) + 1350
2 libcontent.dylib content::RenderWidgetHostViewMac::ProcessMouseEvent(blink::WebMouseEvent const&, ui::LatencyInfo const&) + 44
3 libcontent.dylib content::RenderWidgetHostInputEventRouter::RouteMouseEvent(content::RenderWidgetHostViewBase*, blink::WebMouseEvent*, ui::LatencyInfo const&) + 1817

* Print detailed error

* Run tests after server is ready
2018-03-07 14:40:27 +09:00
Charles Kerr
65ee977a86 Exit gracefully on linux (#12139)
* Fix timing issue in singleton fixture.

Singleton now sends the "we've started" message out only after it's
received a `'ready'` event from `app`. Previously it sent the message
out immediately, resulting in the parent test trying to manipulate it
before Singleton's event loop was fully bootstrapped.

* Check for graceful exits on Linux, too.

Rewrite the "exits gracefully on macos" spec to run on Linux too.

* Check for graceful exits everywhere.

* Tweak comment

* Better error logging in api-app-spec.js. (#12122)

In the 'exits gracefully' test for app.exit(exitCode),
print the relevant error information if the test fails.

* Run the exit-gracefully test on macOS and Linux.

Windows does not support sending signals, but Node.js offers some
emulation with process.kill(), and subprocess.kill(). Sending signal 0
can be used to test for the existence of a process. Sending SIGINT,
SIGTERM, and SIGKILL cause the unconditional termination of the target
process.

So, we'll need a different approach if we want to test this in win32.
2018-03-06 22:01:17 -05:00
Cheng Zhao
90bd1fd7e9 Native confirm/alert throws differently 2018-03-06 14:06:29 +09:00
Shelley Vohr
3635872f37
remove screen.getMenuBarHeight spec 2018-03-05 20:10:34 -05:00
Charles Kerr
e9808d138f
Better error logging in api-app-spec.js. (#12122)
In the 'exits gracefully on macos' test for app.exit(exitCode),
print the relevant error information if the test fails.
2018-03-06 03:13:47 +09:00