Commit graph

2694 commits

Author SHA1 Message Date
Kevin Sawicki
574eec3e74 Make window.opener a BrowserWindowProxy 2015-12-14 14:55:48 -08:00
Robo
3c5e5053e3 browser: dont lose coordinates in capturepage src rect 2015-12-14 00:52:05 +05:30
Cheng Zhao
10cad5d9ec Passing '' to fromPartiion should return default partition 2015-12-12 15:47:15 +08:00
Cheng Zhao
4d1e223044 Cleanup the cookies code 2015-12-12 15:33:51 +08:00
Cheng Zhao
9438d42322 Use generic function to handle events 2015-12-12 13:49:58 +08:00
Cheng Zhao
f976e1eda3 Add generic version for FillDetailsObject 2015-12-12 13:20:53 +08:00
Cheng Zhao
d3e723557e spec: Add test cases for webRequest 2015-12-12 11:31:19 +08:00
Cheng Zhao
fed94aada0 Make the webRequest listener asynchronous 2015-12-12 00:09:03 +08:00
Cheng Zhao
d3c8363450 EventType can not be OR'ed 2015-12-11 21:22:23 +08:00
Cheng Zhao
15cc8164b8 Use lower case for getters 2015-12-11 21:21:02 +08:00
Cheng Zhao
67886cf513 Parse filters in API code 2015-12-11 21:14:13 +08:00
Cheng Zhao
79a627014c Unify how listeners are handled 2015-12-11 21:02:44 +08:00
Cheng Zhao
9d406b695f Simpily the code that fills |details| 2015-12-11 20:40:39 +08:00
Cheng Zhao
e295eb0de7 Fix memory leak 2015-12-11 20:11:59 +08:00
Cheng Zhao
467e3b25b2 EvenTypes => EventType 2015-12-11 20:11:22 +08:00
Cheng Zhao
62f4b25cf9 Allow passing null to webRequest 2015-12-11 19:13:56 +08:00
Cheng Zhao
98ba1a24db Merge pull request #3640 from deepak1556/webrequest_api_patch
session: add webrequest api
2015-12-11 16:56:00 +08:00
Cheng Zhao
9495392a1a Bump v0.36.0 2015-12-11 11:49:01 +08:00
Cheng Zhao
a6976b7d83 Merge pull request #3768 from atom/window-post-message-origin
Fix window.postMessage event.origin value
2015-12-11 11:18:37 +08:00
Kevin Sawicki
8401ece537 removeWindow -> remove 2015-12-10 17:22:05 -08:00
Kevin Sawicki
49ca7509c7 Reuse BrowserWindowProxy instances 2015-12-10 17:20:10 -08:00
Kevin Sawicki
9bc7c62588 Use source origin in window.postMessage event 2015-12-10 16:52:39 -08:00
Kevin Sawicki
afd736d9f9 Guard against null guest or embedder
Uncaught exceptions would occur when these were null and
the target origin was '*'
2015-12-10 15:51:15 -08:00
Robo
053c77d6f4 default session should be persistent 2015-12-11 00:27:15 +05:30
Robo
658accab94 fix pointer usage 2015-12-11 00:25:25 +05:30
Cheng Zhao
a05aa81570 Merge pull request #3701 from deepak1556/protocol_post_data_patch
protocol: provide upload data when available
2015-12-10 19:38:35 +08:00
Cheng Zhao
991c8b1aa6 Merge pull request #3733 from deepak1556/service_worker_scheme_patch
protocol: api to register schemes that can handle service worker
2015-12-10 19:29:51 +08:00
Cheng Zhao
b42695a0b5 win: Don't attach console for third party terms
Close #3692.
2015-12-10 14:37:09 +08:00
Cheng Zhao
f4f4b9428d Merge pull request #3750 from atom/fullscreen-menu-item
Don't add the "Enter Full Screen" menu item automatically
2015-12-10 11:54:26 +08:00
Cheng Zhao
c180607ef6 Merge pull request #3721 from atom/emit-process-exit-event-with-code
Emit process exit event with app exit code
2015-12-10 11:39:14 +08:00
Cheng Zhao
2d940b7df7 Don't add the "Enter Full Screen" menu item automatically 2015-12-10 11:27:41 +08:00
Cheng Zhao
388a18b265 Don't emit will-quit event when calling app.exit 2015-12-10 11:22:55 +08:00
Kevin Sawicki
ea1479a651 Revert comment tweak 2015-12-09 18:20:53 -08:00
Kevin Sawicki
3e5caf7e54 Get exit code from within App::OnQuit 2015-12-09 18:19:51 -08:00
Kevin Sawicki
fc724b51e8 Move event forwarding back to init 2015-12-09 18:11:38 -08:00
Kevin Sawicki
92433be888 Include exit code with quit event 2015-12-09 18:09:59 -08:00
Kevin Sawicki
63c0095efb Emit process exit event with app exit code 2015-12-09 14:40:53 -08:00
Robo
461ee49988 fix response headers modification 2015-12-09 20:14:18 +05:30
Robo
c5b5bbbeb2 add documentation 2015-12-09 20:14:18 +05:30
Robo
29f32c5ec7 support filtering event with url regex 2015-12-09 20:14:18 +05:30
Robo
13b5cab738 session: add webrequest api 2015-12-09 20:14:18 +05:30
deepak1556
fbb5091f94 provide option to set content for POST request with url_fetcher 2015-12-09 20:10:57 +05:30
deepak1556
940289639e protocol: provide upload data when available 2015-12-09 20:10:57 +05:30
Cheng Zhao
8aee0f52e9 Merge pull request #3715 from atom/do-not-edit-menu-template
Do not modify the specified menu template
2015-12-09 12:13:07 +08:00
Cheng Zhao
774ba2a235 Merge pull request #3706 from billyct/master
support an api with SetIgnoreMouseEvents for osx
2015-12-09 12:00:16 +08:00
Robo
855d49100f protocol: api to register schemes that can handle service worker 2015-12-09 03:11:58 +05:30
Cheng Zhao
836a8b1794 Simplify the desktopCapturer code 2015-12-08 13:49:26 +08:00
Cheng Zhao
51368952a2 Remove deprecated API usages 2015-12-08 12:58:39 +08:00
Cheng Zhao
d458b24945 Add desktopCapturer to electron 2015-12-08 12:44:55 +08:00
Cheng Zhao
04f7ceab73 Merge branch 'master' into desktop-capture-api 2015-12-08 12:43:44 +08:00
Cheng Zhao
407e88cbad Update brightray 2015-12-08 12:08:33 +08:00
Cheng Zhao
0f2f9b5543 No need to use CommandDispatcher 2015-12-08 11:20:07 +08:00
Cheng Zhao
e8b5a6dedf Merge pull request #3718 from atom/chrome47-linux
Port Chrome47 on Linux
2015-12-08 10:14:27 +08:00
Cheng Zhao
e78a02806e Make it safe to use sendSync 2015-12-08 10:07:47 +08:00
Paul Betts
af28900189 Fix up Chrome47 changes 2015-12-07 13:27:05 -08:00
Kevin Sawicki
68d937ed47 🎨 2015-12-07 11:20:15 -08:00
Kevin Sawicki
96ef09742c Directly assign submenu when constructor is Menu 2015-12-07 11:16:36 -08:00
Paul Betts
3931ebb7ef Fix up Windows build errors 2015-12-07 10:02:06 -08:00
Kevin Sawicki
d5c740957f 🎨 2015-12-07 09:29:03 -08:00
Kevin Sawicki
26ac86c95c Convert submenu when non-Menu is passed into MenuItem ctor 2015-12-07 09:28:48 -08:00
Cheng Zhao
d0be6c7411 Fix cppling warning 2015-12-07 22:44:35 +08:00
Cheng Zhao
647f151906 Fix the failing sendSync 2015-12-07 21:25:19 +08:00
Cheng Zhao
73e7773d84 Update to API changes of Chrome 47 2015-12-07 19:56:23 +08:00
billyct
5f092a6c65 support an api with SetIgnoreMouseEvents, and worked fine with osx 2015-12-06 10:14:54 +08:00
Cheng Zhao
e1d7ef7e24 Bump v0.35.4 2015-12-04 19:23:48 +08:00
Cheng Zhao
c8e2be7b28 Bump v0.35.3 2015-12-04 16:43:23 +08:00
Cheng Zhao
5e5ae81c53 'key of' is better than Object.keys 2015-12-04 11:40:35 +08:00
Cheng Zhao
973ae06f21 Destroy the native window in next tick
It fixes a possible crash when native code is iterating all windows
while the JavaScript code decides to destroy a window.
2015-12-04 11:35:04 +08:00
Cheng Zhao
2c6d232254 Don't add too much listeners in BrowserWindowProxy 2015-12-04 11:12:36 +08:00
Cheng Zhao
504d3d3088 Merge pull request #3670 from mixmaxhq/jeff/fix_window_open
Fix `window.open` not respecting the features string
2015-12-04 10:55:51 +08:00
Charlie Hess
f2797d2eab Merge commit '58567834c7cb9c290ef48c9e8f54ae37246ef665' into web-contents-download-url
Conflicts:
	atom/browser/api/atom_api_web_contents.cc
2015-12-03 10:31:51 -08:00
Cheng Zhao
48a11bd237 Weak map only needs to be deleted for once 2015-12-03 17:10:14 +08:00
Cheng Zhao
eb8426269f Remove itself from the cleanup list when it is destroyed 2015-12-03 17:04:40 +08:00
Cheng Zhao
1e7c8c9fda It is fine to leak a V8 handle on exit 2015-12-03 16:33:57 +08:00
Cheng Zhao
117b7462de window.id is no longer available when window is closed 2015-12-03 16:17:10 +08:00
Cheng Zhao
a15f9fab5b Use BuildPrototype to build prototype
This saves the step of manually keeping the global template object,
which is easy to forget then leak.
2015-12-03 16:04:46 +08:00
Cheng Zhao
6795bd1d96 Do not manually manage native resources
We should rely on the destructor to cleanup everything, instead of
putting them in the Destroy method.
2015-12-03 15:38:43 +08:00
Cheng Zhao
e5358d405a Make sure V8 Function passed to native code are destroyed on UI thread 2015-12-03 11:24:33 +08:00
Charlie Hess
0d30a8d70c Make downloadURL available on the webview tag. 2015-12-02 18:40:02 -08:00
Charlie Hess
c311c6cf1b Add a DownloadURL method on WebContents. 2015-12-02 13:49:30 -08:00
Jeff Wear
225fe72d03 Ensure that window.open does not override the child options
Fixes https://github.com/atom/electron/issues/3652.
2015-12-02 12:00:51 -08:00
Cheng Zhao
615ce45849 win: Implement menu parameter 2015-12-02 19:58:10 +08:00
Cheng Zhao
3cdd0f35c7 mac: Implement menu parameter 2015-12-02 19:05:22 +08:00
Cheng Zhao
2fba05b5e7 Add menu parameter for Tray.popUpContextMenu 2015-12-02 18:43:11 +08:00
Cheng Zhao
202475f5a9 Deprecating a property with method of same name causes trouble
Close #3511.
2015-12-02 17:29:58 +08:00
Cheng Zhao
c493bec089 Make sure temp file will be cleaned up when base::Move fails 2015-12-02 11:36:29 +08:00
Cheng Zhao
c3645e3f95 Don't call Move if there is no need to move 2015-12-02 11:07:48 +08:00
Juan Cruz Viotti
a99c193cf2 🏁 Preserve file extension when extracting from asar
Currently, when calling `copyFileOut`, the original extension from the
file is lost, and a generic `*.tmp` is added instead.

This becomes problematic in the scenario where we use
`child_process.execFile` on a Windows Batch script that lives inside the
`asar` package.

Windows relies on the extension being present in order to interpret the
script accordingly, which results in the following bug because the
operating system doesn't know what do to with this `*.tmp` file:

```
Error: spawn UNKNOWN
```

Steps to reproduce:

1. Create a dummy batch script (test.bat):

```
@echo off
echo "Hello world"
```

2. Create an electron app that attemps to call this script with
`child_process.execFile`:

```js
var child_process = require('child_process');
var path = require('path');

child_process.execFile(path.join(__dirname, 'test.bat'), function(error, stdout) {
    if (error) throw error;
    console.log(stdout);
});
```

3. Package this small application as an asar archive:

```sh
> asar pack mytestapp app.asar
```

4. Execute the application:

```sh
> electron.exe app.asar
```
2015-12-01 14:55:58 -04:00
Cheng Zhao
e5974e44ed Deprecate the page-title-set event
We have two names for the same event, page-title-updated wins.
2015-12-01 18:50:56 +08:00
Cheng Zhao
c95117fb22 Delay the page-title-set event to next tick 2015-12-01 18:34:58 +08:00
Cheng Zhao
83ee78451a Emit event when title becomes empty 2015-12-01 17:53:13 +08:00
Cheng Zhao
8d20dda6d7 No need to override TitleWasSet in NativeWindow 2015-12-01 17:51:09 +08:00
Cheng Zhao
1b3eb1cc5d Delay the did-fail-provisional-load event to next tick
Chrome is doing some stuff after the DidFailProvisionalLoad event, if we
call LoadURL at this time crash would happen.
2015-12-01 17:00:42 +08:00
Cheng Zhao
0f17a0163d Put common constants in atom_constants 2015-12-01 16:21:15 +08:00
Cheng Zhao
e3ec1fe8ab Add process.noAsar to turn off asar support 2015-12-01 13:09:37 +08:00
Paul Betts
7fd1db192b Lint harder 2015-11-30 18:12:00 -08:00
Paul Betts
549da7fd91 Linting 2015-11-30 11:10:18 -08:00
Paul Betts
7cce3987eb Add CORS header to file jobs 2015-11-30 11:08:45 -08:00
Paul Betts
65cb1488b0 Fix CORS header code to be cleaner 2015-11-30 11:08:44 -08:00
Paul Betts
7622bb40a9 Enable all origins via CORS header for custom schemes
This PR disables CORS for custom schemes, which allows you to serve Font
resources from custom schemes after using registerCustomSchemeAsSecure
2015-11-30 11:08:43 -08:00
Cheng Zhao
44e24ebf7a Delete BridgeTaskRunner when main message loop is ready 2015-11-30 22:29:01 +08:00
Luke Westby
df9ecefe01 fix typo in "rotation" string 2015-11-29 12:22:53 -06:00
Cheng Zhao
62add3abcc Bump v0.35.2 2015-11-27 22:23:19 +08:00
Cheng Zhao
cfdcfcbd80 Add executable permission in CopyFileOut 2015-11-27 22:06:37 +08:00
Cheng Zhao
42454b07d0 Merge pull request #3595 from jviotti/jviotti/fix/3512/execFile-override-exec-permissions
🐛 Fix missing execution permission bit in execFile override
2015-11-27 11:39:45 +08:00
Juan Cruz Viotti
585ff9062c 🐛 Fix missing execution permission bit in execFile override
Consider an electron application that uses `execFile` to run a script
that lives within the application code base:

```coffee
child_process = require 'child_process'
child_process.execFile __dirname + '/script.sh', (error) ->
  throw error if error?
```

An application like this will fail when being packaged in an `asar` with
an following error:

```
Error: spawn EACCES
```

Electron overrides certain `fs` functions to make them work within an
`asar` package. In the case of `execFile`, the file to be executed is
extracted from the `asar` package into a temporary file and ran from
there.

The problem is that during the extraction, the original permissions of
the file are lost.

We workaround this by:

1. Extending `asar.stat` to return whether a file is executable or not,
  which is information that's already saved in the `asar` header.

2. Setting execution permissions on the extracted file if the above
  property holds true.

Fixes: https://github.com/atom/electron/issues/3512
2015-11-26 23:30:23 -04:00
Cheng Zhao
932cd92bf6 Fix wrong deprecation wrappers of BrowserWindow 2015-11-27 10:30:51 +08:00
Cheng Zhao
59402eb23f Add ELECTRON_NO_ATTACH_CONSOLE env var
Close #1556.
2015-11-26 21:11:28 +08:00
Cheng Zhao
b1e6d4f64c Check ELECTRON_RUN_AS_NODE env var 2015-11-26 20:37:21 +08:00
Cheng Zhao
b0d4aa211d Fix compatibility with activate-with-no-open-windows event 2015-11-26 13:57:48 +08:00
Cheng Zhao
6c1878d15b mac: Clears the delegate when window is going to be closed
Since EL Capitan it is possible that the methods of delegate would get
called after the window has been closed.

Refs atom/atom#9584.
2015-11-26 13:56:56 +08:00
Cheng Zhao
8ce19d8059 Merge pull request #3586 from atom/ipc-fasterer
Ensure calling webview.send will not block the renderer
2015-11-26 13:15:08 +08:00
Cheng Zhao
9c62be8fc9 Improve the deprecation notice for ipc module
Close #3577.
2015-11-26 11:06:56 +08:00
Paul Betts
789380dfad Ensure calling webview.send will not block the renderer
When the browser process is busy, calling webview.send (a method that appears
on its face to be non-blocking) will actually block, because most webview methods
are remoted to a guest view instance in the browser. Instead, define a few methods
which will instead send its call over an async IPC message.
2015-11-25 15:54:30 -08:00
Ryan Prichard
0f5a3baff4 Fix https://github.com/atom/electron/issues/3565 by adding a typeof 2015-11-24 16:49:52 -06:00
Cheng Zhao
fe88cb01fc Merge pull request #3531 from deepak1556/fetch_job_nocontent_patch
protocol: handle http responses with no content
2015-11-24 15:45:07 +08:00
Cheng Zhao
e98d4c4a2e Merge pull request #3549 from bengotow/fix-hide-others
Remove trailing colons from default menu roles
2015-11-23 17:44:06 +08:00
Cheng Zhao
360a747acf Merge pull request #3542 from etiktin/fix_menu_item_using_deprcated_api
Fix menu-item using deprecated API
2015-11-23 17:11:44 +08:00
Cheng Zhao
634fef2508 Merge pull request #3537 from etiktin/make_BrowserWindow_options_optional
Make BrowserWindow options argument optional
2015-11-23 16:56:30 +08:00
Robo
167f11e797 protocol: handle http responses with no content 2015-11-23 01:07:14 +05:30
Ben Gotow
fbdef9e112 Remove trailing colons from default menu roles
`hideothers` and `unhide` had trailing colons which prevented them from being enabled / working in the default app. #3543
2015-11-22 09:08:35 -08:00
Eran Tiktin
6db6842c14 Fix menu-item using deprecated API
Some of the roles in menu-item use methods on BrowserWindow instead of
WebContents which outputs a deprecation warning.
I changed it to use the correct methods.
2015-11-22 01:13:57 +02:00
Eran Tiktin
18de28c3ff Make BrowserWindow options argument optional
Resolves #3473
2015-11-21 06:22:19 +02:00
Eran Tiktin
9341b9d640 Make links to docs, point to the correct version
- Links to docs in the default app, pointed to the docs in the master
branch. I changed them to point to the docs that match Electron's
version.
- Added Electron's version to the header of the default app, so it will
be easier to figure out what version is currently running.
2015-11-21 02:26:59 +02:00
Cheng Zhao
29052b0498 Bump v0.35.1 2015-11-20 13:36:59 +08:00
Cheng Zhao
8e2faba8f7 Small style fix 2015-11-20 13:06:42 +08:00
Cheng Zhao
c1d6d68783 Merge pull request #3509 from bengotow/macosx-desktop-window
Support the "desktop" window type on Mac OS X
2015-11-20 13:02:05 +08:00
Cheng Zhao
784d2633a9 Make child_process.execFileSync support asar 2015-11-20 10:33:57 +08:00
Cheng Zhao
08c13cf446 Deprecate app.resolveProxy
There is now a public API to get default session, this helper is no
longer necessary.
2015-11-19 21:32:46 +08:00
Cheng Zhao
1392873cbc Add session.defaultSession and remove app.defaultSession
The latter has never been a public API, no need to keep it.
2015-11-19 21:03:42 +08:00
Cheng Zhao
47d7d49d19 Add session module 2015-11-19 20:47:11 +08:00
Cheng Zhao
9a20b33d97 Add isDestroyed method for classes with destroy method 2015-11-19 17:08:16 +08:00
Ben Gotow
d427ae1030 Support the "desktop" window type on Mac OS X
Adds the desktop window type referenced in https://github.com/atom/electron/issues/2899 for compatiblity with the linux version. Note that on Mac OS X, the desktop window cannot receive input events (seems to be a limitation of being behind the desktop).

In this diff I also removed the `standardWindow` option from the docs, in favor of an additional `textured` value for window `type` on Mac OS X. The old `standardWindow` option continues to work, but seemed more confusing. If this seems like a bad idea, I can revert that change.
2015-11-19 00:39:45 -08:00
Cheng Zhao
87546bd4f8 Merge pull request #3479 from bengotow/tray-resizing
Fix sizing of Mac OS X tray icon after image change
2015-11-18 18:49:15 +08:00
Cheng Zhao
1ee69540b0 Merge pull request #3484 from bengotow/remote-errors
Improve exception messages from remote calls
2015-11-18 18:21:02 +08:00
Cheng Zhao
47d7f2c050 Fix cpplint warning 2015-11-18 11:45:15 +08:00
Cheng Zhao
9ca022c98a docs: Update the certificate APIs 2015-11-18 11:35:26 +08:00
Cheng Zhao
c5bfac1969 Add session.setCertificateVerifyProc 2015-11-18 11:17:08 +08:00
Cheng Zhao
e432abfb42 Add certificate-error event 2015-11-18 10:39:25 +08:00
Cheng Zhao
341341bf28 Rename select-certificate to select-client-certificate 2015-11-18 10:10:21 +08:00
Cheng Zhao
9a0dc3bfd7 Add Delegate for AtomBrowserClient 2015-11-18 10:07:03 +08:00
Ben Gotow
1022179a1f Improve exception messages from remote calls
Spent a while tracking down `Error processing argument -1`, caused by a missing param (`app.exit()` now takes an exit code.) Improve the rpc-server so that it prints the function name when possible, so it's much easier to identify which remote call is causing the error.
2015-11-17 17:36:37 -08:00
Ben Gotow
9c69416e32 Fix sizing of Mac OS X tray icon after image change
- Consolidate logic that applies view dimensions into a function
- Use `NSVariableStatusItemLength` instead of trying to sync status item width
- Use modern Obj-C syntax `@[], @{}` in a few places
- Recompute view bounds after updating image in `setImage:`
2015-11-17 13:43:55 -08:00
Cheng Zhao
961ee5a4d9 Rename verify-certificate to untrusted-certificate 2015-11-17 21:41:36 +08:00
Cheng Zhao
ebe66daa56 Emit verify-certificate only when default verifier fails 2015-11-17 21:36:36 +08:00
Cheng Zhao
e3517b701e Create a new CertVerifierRequest for each request
It greatly simplifies the code.
2015-11-17 19:44:55 +08:00
Cheng Zhao
ea1e4160ea Move AtomSSLConfigService to atom/browser/net 2015-11-17 19:05:38 +08:00
Cheng Zhao
37f355724a Move AtomCertVerifier to atom/browser/net 2015-11-17 19:03:09 +08:00
Cheng Zhao
217311ef21 No need to use weak reference
Ref-counting manages everything.
2015-11-17 19:00:33 +08:00
Cheng Zhao
24f573eceb Merge pull request #3344 from deepak1556/certificate_verifier_api_patch
session: api to allow handling certificate verification
2015-11-17 18:53:35 +08:00