Commit graph

170 commits

Author SHA1 Message Date
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
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
Cheng Zhao
cf36fdecbf Skip client-certificate test for Linux (#12189) 2018-03-09 14:43:49 +09: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
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
Cheng Zhao
35cbe9d140 Fix dockMenu not being referenced in JavaScript (#12062)
* Fix dockMenu not being referenced in JavaScript

* spec: Test garbage collecting dock menu
2018-02-26 22:15:06 -08:00
Shelley Vohr
e10b5e13e9
move spec to chromium_spec 2018-02-08 13:00:41 -05:00
shelley vohr
ca34978e73 add app.setLocale() (#11469)
* infrastructure for setLocale via klang

* add documentation for setLocale

* add test for setLocale

* fix spec

* add spec and update docs

* fix carriage feeds on windows

* SetLocale() sets LC_ALL on Linux

* in SetLocale() on Linux, use g_setenv()

* fix tyop: '#ifdef OSX_POSIX'

* make the linter happy

* improvements from review
2018-02-08 08:26:37 -06:00
Aleš Pergl
c49cb29ddf Disallow launching unknown apps via browser client.
CVE-2018-1000006
2018-01-22 16:49:30 -06:00
Nitish Sakhawalkar
ea2056b513 Replace arrow function 2018-01-17 15:27:11 +09:00
Nitish Sakhawalkar
7aefc73ffd Fix lint 2018-01-17 15:27:11 +09:00
Nitish Sakhawalkar
28f1abcb05 Change macos app termination process 2018-01-17 15:27:11 +09:00
Felix Rieseberg
bd4c7a114a 👷 Fix the last broken test 2017-12-05 17:07:22 -08:00
Felix Rieseberg
bf043c92af 👷 Ugh, whitespace 2017-12-05 13:20:34 -08:00
Felix Rieseberg
e6cbb2f3aa 👷 Cleanup on Windows only 2017-12-05 12:14:19 -08:00
Felix Rieseberg
d519bfc5fb 👷 Linter fascism 2017-12-05 11:38:19 -08:00
Felix Rieseberg
997f3f31d2 👷 Cleanup after the test 2017-12-05 11:31:40 -08:00
Felix Rieseberg
e77751aab5 👷 Test registry interaction 2017-12-05 11:28:39 -08:00
Cheng Zhao
c0e9dbcc00
Merge pull request #11144 from dittos/mas-login-helper-again
Re-land MAS login helper (w/ regression fix)
2017-11-27 17:02:57 +09:00
deepak1556
2fa0b3d33e Enable client certificate tests 2017-11-24 10:58:53 +09:00
Aleksei Kuzmin
cf749a8e18 Explicitly skip tests that should be skipped 2017-11-20 14:43:23 +01:00
Ted Kim
71c16ad76f lint 2017-11-20 10:17:34 +09:00
Ted Kim
1660fc8d13 Fix getLoginItemSettings timing issue 2017-11-20 10:15:45 +09:00
Ted Kim
d9481430df Fix test failure 2017-11-17 10:53:21 +09:00
Shelley Vohr
e4214a6cbe
[WIP] Upgrade more specs (#10945)
Finish upgrading specs to ES6
2017-10-27 16:45:58 -04:00
Cheng Zhao
d87ea5713d spec: It is not certain which process starts first 2017-09-25 11:19:25 +09:00
Cheng Zhao
5940231b76 spec: Do not assume which process exits first in singleton test 2017-09-25 10:49:54 +09:00
Cheng Zhao
b4075bed87 spec: Add test case for app.makeSingleInstance 2017-09-20 11:58:32 +09:00
Samuel Attard
6b010614e2 Implement moveToApplicationsFolder (#10142)
* Implement moveToApplicationsFolder

* Fix tabs / spaces

* Fix linting

* Use Browser::Quit, instead of exit

* Update documentation as per feedback

* Fix spec
2017-08-31 10:37:12 -04:00
Cheng Zhao
5510d8cfb1 Revert "Revert "spec: Suppress the select-client-certificate test""
This reverts commit 8e989170f1.
2017-08-29 14:19:22 +09:00
Cheng Zhao
68e0fbfd60 Revert "Revert "spec: Suppress the app.importCertificate test""
This reverts commit a7cb89aeb5.
2017-08-29 14:19:21 +09:00
Kevin Sawicki
8e989170f1 Revert "spec: Suppress the select-client-certificate test"
This reverts commit dc1269615a.
2017-08-07 12:57:01 -07:00
Kevin Sawicki
a7cb89aeb5 Revert "spec: Suppress the app.importCertificate test"
This reverts commit 5ccae79ea7.
2017-08-07 12:56:54 -07:00
Cheng Zhao
dc1269615a spec: Suppress the select-client-certificate test
Not sure why it is not working
2017-08-02 16:07:46 +09:00
Cheng Zhao
5ccae79ea7 spec: Suppress the app.importCertificate test
I have no idea why it failed, somehow the page can not load with the
provided certificated.
2017-08-02 15:17:18 +09:00
Kevin Sawicki
48f5a66f87 Merge pull request #9983 from electron/devtools-mixed-sandbox
Fix devtools open in mixed sandbox
2017-07-14 09:41:56 -07:00
Birunthan Mohanathas
812b529881 Add app.disableDomainBlockingFor3DAPIs()
By default, Chromium disables 3D APIs (e.g. WebGL) until restart on a
per domain basis if the GPU processes crashes too frequently. This
function disables that behaviour.
2017-07-14 01:41:43 +03:00
Hari Juturu
80bd6a3e91 🎨 2017-07-11 18:36:01 -07:00
Hari Juturu
9a3b78d9fe Fix devtools open in mixed sandbox mode 2017-07-11 18:36:00 -07:00
Kevin Sawicki
e37fc0e30a Mark mixed sandbox as macOS/Windows only 2017-06-28 14:36:34 -07:00
Kevin Sawicki
523fbe2df9 Send messages between app via socket connection 2017-06-28 09:27:19 -07:00
Kevin Sawicki
7fcc00f137 Add spec for app.enableMixedSandbox() 2017-06-28 08:33:11 -07:00
Kevin Sawicki
55fcb286a5 Run getGPUFeatureStatus spec on all platforms 2017-05-31 08:10:55 -07:00
Kevin Sawicki
4a5831a733 Add initial getGPUFeatureStatus spec 2017-05-30 13:00:00 -07:00
Kevin Sawicki
edd840fcc0 Only assert GPU process on macOS 2017-05-26 10:10:56 -07:00
Kevin Sawicki
8b14df143a Don't assert GPU process on Linux 2017-05-26 09:14:17 -07:00
Kevin Sawicki
1e4dd9b163 Store process type as int 2017-05-26 08:53:26 -07:00
Kevin Sawicki
b5879b7399 🎨 Minor formatting/doc changes 2017-05-26 07:51:17 -07:00
Hari Juturu
de5eaf9336 Remove .only 2017-05-24 21:07:35 -07:00
Hari Juturu
939747945e Adding CPU & Memory metrics for App 2017-05-24 21:07:35 -07:00
Kevin Sawicki
3b3e7cc14e Assert memory info for all returned processes 2017-05-04 13:43:45 -07:00
HariJ
88ad28b2a5 Removing describe.only 2017-04-27 14:06:53 -07:00
HariJ
81bd9fa3a2 fixing mac ut failure 2017-04-27 14:06:53 -07:00
Hari Krishna Reddy Juturu
d77c1319f4 Fixing lint error 2017-04-27 14:06:53 -07:00
Hari Krishna Reddy Juturu
27aad902b8 Adding docs, specs and fixing object returned 2017-04-27 14:06:53 -07:00
Kevin Sawicki
bfb9388191 Add failing spec for app.exit with >2 windows 2017-04-11 09:09:17 -07:00
Kevin Sawicki
ba03f04017 Disable getFileIcon specs on Linux CI 2017-02-07 18:24:35 -08:00
Kevin Sawicki
82ac4ddf19 Large is only 48x48 on Linux 2017-02-07 11:20:27 -08:00
Kevin Sawicki
dddc6aec49 Tweak spec descriptions 2017-02-07 10:21:20 -08:00
Kevin Sawicki
683a758dab Call done instead of skip 2017-02-07 10:16:09 -08:00
Yury Solovyov
a9dae243b4 Fix large icon spec 2017-02-07 09:55:18 -08:00
Yury Solovyov
bcf0964c61 Fix more review 2017-02-07 09:55:18 -08:00
Yury Solovyov
c36cdb8580 Properly skip large size test on macOS 2017-02-07 09:54:22 -08:00
Yury Solovyov
1aa4fcae08 Lint tests 2017-02-07 09:54:22 -08:00
Yury Solovyov
00748889f9 Add tests 2017-02-07 09:54:22 -08:00
Kevin Sawicki
1c6a07c68d Clear Update.exe login item settings in afterEach 2017-02-06 08:34:35 -08:00
Kevin Sawicki
e2501a80e4 Add path and args to LoginItemSettings struct 2017-02-06 08:34:35 -08:00
Charlie Hess
d2ffd87668 I will never appreciate standard. 2017-02-06 08:34:35 -08:00
CharlieHess
852e158cc6 Make sure the spec takes arguments into account. 2017-02-06 08:34:35 -08:00
Charlie Hess
4fce00148d Add a spec for this behavior on Windows. 2017-02-06 08:34:35 -08:00
Kevin Sawicki
daff671afc Add protocol constant 2017-02-02 12:48:09 -08:00
Kevin Sawicki
a60f341968 Add procotol client specs on Windows 2017-02-02 12:48:09 -08:00
deepak1556
cbddbdb296 fix code style 2016-12-07 15:33:56 +05:30
deepak1556
1c45285fe3 add spec 2016-12-07 13:26:06 +05:30
Kevin Sawicki
f5f790863d Use 1 or 2 minute timeout for long specs 2016-11-29 14:31:57 -08:00
Kevin Sawicki
10386edea5 Default timeout to 30 seconds on CI and 10 seconds locally 2016-11-29 14:29:35 -08:00
Kevin Sawicki
4ccc3d9fb3 Remove unneeded return 2016-11-29 14:19:20 -08:00
Kevin Sawicki
095d711848 Remove select-client-certificate issueCert assert 2016-11-15 16:24:50 -08:00
Kevin Sawicki
a1dca8afc9 🎨 Remove buildup asserts and just use assert.equal 2016-11-15 15:53:42 -08:00
Greg Nolle
86321a2c60 Fixed incorrect subject name of test client certificate. 2016-11-15 15:53:42 -08:00
Greg Nolle
2e5c92d41e Fix listing issues: remove semicolons. 2016-11-15 15:53:42 -08:00
Greg Nolle
93ce2f7800 Add assertions for new fields in existing specs. 2016-11-15 15:53:42 -08:00
Zeke Sikelianos
af0098f064 remove badge count after each setBadgeCount test 2016-10-11 14:22:48 -07:00
Zeke Sikelianos
156d823b7f remove badge after setBadgeCount test finishes 2016-10-11 14:22:48 -07:00
Kevin Sawicki
fbbffe03a5 Add getPath specs 2016-10-06 09:57:25 -07:00
Kevin Sawicki
0ebe142b2f Close windows instead of destroying them 2016-08-03 16:23:39 -07:00
Kevin Sawicki
64513f8c69 Enable login item spec on Windows 2016-07-12 09:10:47 -07:00
Kevin Sawicki
4e22d5dd8a Add missing typeof 2016-07-11 14:48:48 -07:00
Kevin Sawicki
67b647322f Add spec to verify app.isAccessibilitySupportEnabled return type 2016-07-11 14:32:24 -07:00
Kevin Sawicki
2633c2f735 Add was prefix to current launch settings 2016-07-07 16:29:58 -07:00
Kevin Sawicki
c100300764 Update API to get/setLoginItemSettings 2016-07-07 16:29:09 -07:00
Kevin Sawicki
60ab71a706 Combine launch and current status login item APIs 2016-07-06 13:57:46 -07:00
Kevin Sawicki
2406c82ef5 Add specs for login item APIs 2016-07-06 13:34:14 -07:00
Cheng Zhao
767124c45c Update for reviews 2016-07-02 10:36:46 +09:00
Cheng Zhao
1da2a1c2ae app.setBadgeCount should return boolean 2016-07-01 22:20:05 +09:00
Cheng Zhao
cb00d3cfb3 mac: Implement app.setBadgeCount 2016-07-01 17:39:26 +09:00
Jonas Schwabe
9aa8807f83 add specs for app.launcher api
fix linter errors
2016-06-29 20:28:16 +02:00
Kevin Sawicki
197ec98800 Remove standard linter warnings 2016-06-29 09:46:16 -07:00
Kevin Sawicki
d160be5daa Add web-contents-created event spec 2016-06-13 09:05:04 -07:00