Commit graph

651 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
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
Shelley Vohr
f67c625e6a
don't filter out invisible menu separators (#12825) 2018-05-04 07:59:40 -07:00
Shelley Vohr
7c4964fae6
revert to more graceful template structure check (#12699) 2018-04-24 11:21:26 -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
Cheng Zhao
7473b612c5 Make Menu API accept TopLevelWindow 2018-04-19 13:08:37 +09:00
Cheng Zhao
1340b17424 Do not return TopLevelWindow in BrowserWindow.getAllWindows 2018-04-19 13:08:37 +09:00
Cheng Zhao
e38f511737 Make BrowserWindow inheirt TopLevelWindow in JS 2018-04-19 13:08:37 +09:00
Cheng Zhao
71ebd99dfa Expose TopLevelWindow to JavaScript 2018-04-19 13:08:36 +09:00
Samuel Attard
7cc3b877dc Fix event leak on reuse of touchbar item (#12527)
* fix event leak on reuse of touchbar item

* Clean up child touch bar item event listeners and escape item listeners
2018-04-15 10:24:47 -05:00
Nitish Sakhawalkar
970f79e32f Check for devtools in BrowserWindow.getFocusedWindow() (#12526) 2018-04-06 09:21:32 -04: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
Charles Kerr
1a649a6ac3
Handle in-app-purchase less fatally on non-Darwin (#12511)
Fixes #12311

Right now it throws a new error when the file is even require()d, but this isn't ideal as there are cases where everything is mass-required, such as Spectron. Instead, we should throw an error on non-Darwin environments only when the IAP methods are invoked.
2018-04-02 18:55:44 -05:00
Shelley Vohr
a677c22e1f
re-enable null check against menu item accelerators (#12449) 2018-03-27 20:32:55 -04: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
Samuel Attard
4b476f13bb Revert "Fixes electron/electron#12147" (#12293)
* Revert "Set appropriate defaults for webview options (#12271)"

This reverts commit c2673aa970.

* Revert "Fixes electron/electron#12147 (#12193)"

This reverts commit f54c94d6c9.
2018-03-15 16:18:36 +09:00
nous-
f54c94d6c9 Fixes electron/electron#12147 (#12193) 2018-03-15 13:29:32 +09:00
Shelley Vohr
199cf31b9e
deprecate screen.getMenuBarHeight 2018-03-05 19:45:51 -05: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
18362eb948 improve Menu and MenuItem testing (#12015)
* split menu/menuitem and add some tests

* fix ipc send issue

* feedback: make tests less brittle

* clean up MenuItem accelerator and label tests
2018-02-23 07:53:59 -06: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
193febd18c deprecate boolean highlightMode param (#11993)
* deprecate boolean highlightMode param

* add process.noDeprecations check

* fix native method override

* add todo
2018-02-20 22:30:32 -06: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
9c56b81b71 Throw an error if menu.popup() has no window 2018-02-20 18:38:05 -06:00
Charles Kerr
5a25b88b50 Fix browserWindow detection in menu.popup() 2018-02-20 18:35:39 -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
5065e159f1
positionItem => positioningItem 2018-02-20 11:28:34 -05:00
Cheng Zhao
dc62e51ba4 Fix the cyclic reference in menu delegate (#11967)
* Fix the cyclic reference in menu delegate

* Fix menu tests due to delegate change
2018-02-20 10:11:35 -06:00
Shelley Vohr
fb7fb4972d
options all the things 2018-02-20 11:10:53 -05:00
Shelley Vohr
211b542ae4
remove setZoomLevelLimits 2018-02-20 08:57:48 -05:00
Shelley Vohr
56f06187d5
forgot to remove old method 2018-02-19 21:03:10 -05:00
Shelley Vohr
6e11a3e53d
add restructured window.popup 2018-02-19 20:59:27 -05:00
Shelley Vohr
cd9e7142e4
add conditional for menu.popup(window, callback) 2018-02-19 13:06:37 -05:00
Samuel Attard
a20b379f26 fix windows tests 2018-02-16 16:02:10 +11:00
Samuel Attard
6318cd781d Update to use Squirrel.Mac that supports CDN releases 2018-02-15 14:00:46 +11:00
acheronfail
d1d50a4c92 Implement App-Scoped Security scoped bookmarks (#11711)
* implementation of security scoped bookmarks

* option is now only available on mas builds
2018-02-12 13:25:06 -05:00
Samuel Attard
66b57858b8 Fix child touch bar items not updating (#11812)
* Fix child touch bar items not updating

Deep children of a TouchBar didn't cause the top level touch bar to update, now they do

Fixes #11761.

* Remove unused newValue property in TB setter
2018-02-12 12:53:04 -05:00
shelley vohr
5240352326 Remove extra menu separators (#11827)
* add function to remove leading/trailing separators

* change const  name for clarity

* add spec to check filtered separators

* clean method and add edge case spec per review
2018-02-05 11:55:12 -06:00
Cheng Zhao
8ae3d9dd0b Simplify the public PowerObserver interface 2018-02-05 15:28:58 +09:00
Thiago de Arruda
56b53e71aa Implement powerMonitor 'shutdown' event for Linux.
The event is emitted when the OS is rebooting/shutting down, and allows
an electron app to call `e.preventDefault()` in order to delay shutdown
and exit cleanly.
2018-02-05 15:21:31 +09:00
Samuel Attard
32a1395bcf
Merge pull request #11565 from electron/add-load-file-helper
Add window.loadFile and webContents.loadFile helper methods
2018-01-23 09:08:23 +11:00
Cheng Zhao
bd271cffb9 Throw when inAppPurchase is used on unsupported platforms 2018-01-10 18:53:55 +09:00
Cheng Zhao
ac6f895f64 Turn InAppPurchase into an EventEmitter 2018-01-10 16:37:05 +09:00
Adrien Fery
b2542a27c3 Update code style 2018-01-10 13:14:18 +09:00
Adrien Fery
eb2520488f Adapt code style 2018-01-10 13:14:18 +09:00
Adrien Fery
f3ae566164 Add in-app purchase for MacOS 2018-01-10 13:14:18 +09:00
Zeke Sikelianos
eb89e12c5b
Merge pull request #11532 from sethlu/camelcase-menuitem-role
Make MenuItem roles camelCase-compatible
2018-01-04 09:53:58 -08: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
73d78d345a Make callback work for old-style Menu.popup call
While the old-style Menu.popup has been deprecated, it is still being
used widely in apps and even in Electron itself.
2018-01-01 17:17:01 +09:00
Cheng Zhao
7b01a8b860 Add callback parameter to Menu.popup 2018-01-01 16:26:19 +09:00
Zhuo Lu
b8ec84c761 Fix syntax 2018-01-01 02:23:32 +08:00
Zhuo Lu
d45914c3f7 MenuItem roles camelCase-compatible 2017-12-28 13:28:20 +08:00
Cheng Zhao
088042841d win: Correctly close popup menu 2017-12-21 15:26:32 +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
8166a64f98 🔧 Last round of feedback 2017-12-12 11:25:01 -08:00
Felix Rieseberg
c4ec8b4545 🔧 Feedback 2017-12-12 11:25:01 -08:00
Felix Rieseberg
5b7f7c8a1a 🔧 Menu returns its properties now 2017-12-12 11:25:01 -08:00
Felix Rieseberg
ffc54967e9 🔧 Fix value shift 2017-12-12 11:25:01 -08:00
Felix Rieseberg
99031834ff 🔧 Cleanup 2017-12-12 11:25:01 -08:00
Felix Rieseberg
3719ee0b53 🔧 Allow for menu.popup({}) 2017-12-12 11:25:01 -08:00
Felix Rieseberg
9e660b1d32 🔧 Always find a window (or error) 2017-12-12 11:25:01 -08:00
Felix Rieseberg
4f901c6d24 🔧 Oh wow, that looks wrong 2017-12-12 11:25:01 -08:00
Alexey Kuzmin
1c8eb03574
Revert "fix: Fix menu.popup() bugs" 2017-12-12 13:59:34 +03:00
Felix Rieseberg
927c63b477 🔧 Last round of feedback 2017-12-11 15:19:33 -08:00
Felix Rieseberg
89b90be6a2 🔧 Feedback 2017-12-11 14:43:35 -08:00
Felix Rieseberg
22e9d665d2 🔧 Menu returns its properties now 2017-12-11 14:03:01 -08:00
Felix Rieseberg
93b46116f4 🔧 Fix value shift 2017-12-11 13:30:35 -08:00
Felix Rieseberg
abd56eda6f 🔧 Cleanup 2017-12-08 14:40:51 -08:00
Felix Rieseberg
955564abd7 🔧 Allow for menu.popup({}) 2017-12-08 14:37:16 -08:00
Felix Rieseberg
bd6767fac6 🔧 Always find a window (or error) 2017-12-08 14:36:52 -08:00
Felix Rieseberg
38bb9baac5 🔧 Oh wow, that looks wrong 2017-12-08 14:36:29 -08:00
Felix Rieseberg
9646f0c99a 🔧 Sprinkle some ES6 across the file 2017-12-01 17:18:57 -08:00
Felix Rieseberg
c5abe96b39 🔧 Hide subprocess window 2017-12-01 17:18:37 -08:00
Cheng Zhao
b161a4f515
Merge pull request #11166 from sethlu/openrecent
feat: Recent documents menu item
2017-11-28 10:55:14 +09:00
Zhuo Lu
dcdc3621ac Rename roles 2017-11-27 17:26:22 +09:00
Zhuo Lu
5d44dbaf54 Redesign recent documents role API
- For more flexibility in designing the recent documents menu, now there can be one menu item (known issue: you may specify more but AppKit doens't display more than one) in the submenu list, rather than separating the labels with a tab.
- Also added is the role `clearrecent` that can be given to a menu item that can clear the recent documents.
2017-11-27 17:26:22 +09:00
Zhuo Lu
828d233f2a Rollback duplicated feature 2017-11-27 17:26:22 +09:00
Zhuo Lu
0b9cea334f Specify "Clear Menu" through label option
Like a bit of a hack right now, conforming to the existing menu item definition
2017-11-27 17:26:22 +09:00
Zhuo Lu
4da2eb9366 Introduce openrecent role
- Does not yet accept any options except label--"Clear Menu" can't be modified through exposed node API
- If `openrecent` is present across multiple menu items, the last seen will be visible in the main menu due to that it is designed to behave like a singleton
2017-11-27 17:26:22 +09:00
Zhuo Lu
f0bff74995 Add "Open Recent" submenu to default 2017-11-27 17:26:22 +09:00
Cheng Zhao
1c0ea0286e
Merge pull request #11235 from electron/standard-10
infra: Upgrade to StandardJS 10
2017-11-27 15:42:52 +09:00
Birunthan Mohanathas
4e859b4718 Remove "async" option from menu.popup()
All menus are async now. See "Cleanup MenuRunner API"
https://codereview.chromium.org/2790773002
2017-11-24 10:58:17 +09:00
Felix Rieseberg
f7d6e3fa7b 🔧 Disable standard/no-callback-literal where necessary 2017-11-23 13:53:03 -08:00
Felix Rieseberg
f81bfb7b86 🔧 Fix style issues 2017-11-23 13:42:48 -08:00
Charles Kerr
9c217fc6c7
Merge pull request #11224 from electron/browser-view-window
feature: Add `BrowserWindow.fromBrowserView()`
2017-11-23 14:41:36 +01:00
Felix Rieseberg
037f76c47b 🐛 Ooops, fix that 2017-11-22 17:07:57 -08:00
Felix Rieseberg
4d18cbe728 🔧 BrowserView.fromWebContents() 2017-11-22 16:59:00 -08:00
Felix Rieseberg
7630ac6e90 🔧 Return null if not found 2017-11-22 15:48:11 -08:00
Felix Rieseberg
8c5aad8b17 🔧 Add BrowserWindow.fromBrowserView() 2017-11-22 14:36:54 -08:00
Felix Rieseberg
05bae0b4c4 🔧 Util is no longer used here 2017-11-20 09:52:13 -08:00
Felix Rieseberg
b029c088db 🔧 Bonus ; 2017-11-20 09:48:33 -08:00
Felix Rieseberg
b8b3b441a7 🔧 util._extend is deprecated, too 2017-11-20 09:46:02 -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
Felix Rieseberg
d475eaf011
🔧 One commit per character is now hot 2017-11-07 19:44:24 -08:00
Felix Rieseberg
3dcde82485
🔧 Make this easier to read 2017-11-07 18:26:10 -08:00
Felix Rieseberg
1454783450 🔧 Check menu for being falsy 2017-11-07 13:29:14 -08:00
Charles Kerr
1c09dede1a singletons that are retroactively turned into EventEmitters should call the EventEmitter ctor 2017-11-01 23:05:27 -05:00
Shelley Vohr
bccaf56200
remove common sense comments 2017-10-25 12:23:41 -04:00
Shelley Vohr
ffd43c1886
remove quotes and const replaces 2017-10-25 10:17:41 -04:00
Shelley Vohr
e8935232b1
clean falsy statements 2017-10-24 18:52:12 -04:00
Shelley Vohr
75f32afcd5
clean up excess code from generateGroupId 2017-10-24 00:24:57 -04:00
Shelley Vohr
f93121b226
don't reassign parameters in Menu.prototype.popup 2017-10-24 00:07:39 -04:00
Shelley Vohr
b1e707d535
abstract out switch case from Menu.prototype.insert 2017-10-23 23:46:39 -04:00
Shelley Vohr
7c0f7329d9
appease the linter overlords 2017-10-23 22:35:42 -04:00
Shelley Vohr
508b614769
remove excess code in delegate 2017-10-23 22:33:23 -04:00
Shelley Vohr
9b364d5be3
refactor menuWillShow 2017-10-23 22:22:39 -04:00
Shelley Vohr
9038987e1d
significant cleanup; all tests still passing 2017-10-23 20:04:22 -04:00
Shelley Vohr
3fc5d51a96
clean up delegate 2017-10-23 18:35:16 -04:00
Shelley Vohr
577c0042b0
update to ES6 2017-10-23 14:47:47 -04:00
Shelley Vohr
87802b2c17
initial port of things into a Menu class 2017-10-23 12:11:59 -04:00
Shelley Vohr
61a93c711c
clean up popup 2017-10-23 00:47:02 -04:00
Shelley Vohr
f9c3123f5f
clean up menuWillShow 2017-10-23 00:16:35 -04:00
Shelley Vohr
1cd53768ab
clean up indexToInsertByPosition 2017-10-22 23:57:23 -04:00
Shelley Vohr
b7ebee985b
refactor indexOfItemById 2017-10-22 23:51:33 -04:00
Birunthan Mohanathas
945fef8a5a Merge pull request #10483 from jublonet/fix-double-downloads
Use Squirrel.Windows --checkForUpdate
2017-09-27 20:26:24 +03:00
Shelley Vohr
c932871bb1
change default to null 2017-09-26 20:35:14 -04:00
Shelley Vohr
f49f7d65a5
remove check on items instance 2017-09-26 14:38:34 -04:00
Shelley Vohr
afe033a6e1
stray semicolon fml 2017-09-26 12:10:16 -04:00
Shelley Vohr
4753ada7a9
rewrite method with only id parameter 2017-09-26 12:05:45 -04:00
Shelley Vohr
5217718d7b
conform to linter standard 2017-09-26 09:50:47 -04:00
Shelley Vohr
ea42851c9b
add first pass at getMenuItemById 2017-09-26 09:47:13 -04:00
J.M
6442e6b5e8 Use Squirrel.Windows --checkForUpdate
Avoid downloading updates twice. Fix #5057.
2017-09-11 00:54:08 +02:00
Cheng Zhao
d233fc044a Pass dpiVertical and dpiHorizontal to print settings 2017-08-22 13:54:49 +09:00
Thiago de Arruda
1709b8e39d Fix sandbox crash when opening a background tab
When a link is clicked with the middle mouse button, chrome opens a window with
"background-tab" disposition. This is not currently handled in sandbox mode,
causing an api::WebContents to leak leading to eventual crash(since it has no
wrapper).

Also fix the event handler for "-add-new-contents" by having it call
`event.preventDefault()` when the window creation should be cancelled.
2017-08-15 09:55:39 -03:00
Samuel Attard
59e85c0f33 Fix stupid or check in scrubber defaults 2017-07-27 17:49:05 +10:00
Kevin Sawicki
959231f766 Merge pull request #9834 from shubham2892/input-type-file-treating-packaged-app-as-directory
Fix treat packaged app as directory
2017-07-18 10:21:07 -07:00
Shubham
b25a1d10a2 🍎 Add treatPackageasDirectory as an option 2017-07-18 10:13:25 -07:00
Cheng Zhao
5fbcb6ef4e Merge pull request #9396 from drulm/printtopdf-custom-pagesize
Add Math.ceil to pageSize.height and pageSize.width to printToPDF() o…
2017-06-26 14:48:44 +09:00
Birunthan Mohanathas
7d2226e05e Let Chromium manage document.visibilityState and document.hidden
Chromium already includes the necessary plumbing to manage the
visibility properties and `visibilitychange` event so this gets rid of
most of our custom logic for `BrowserWindow` and `BrowserView`.

Note that `webview` remains unchanged and is still affected by the issues
listed below.

User facing changes:

- The `document` visibility properties and `visibilitychange` event are
  now also updated/fired in response to occlusion changes on macOS. In
  other words, `document.visibilityState` will now be `hidden` on macOS
  if the window is occluded by another window.

- Previously, `visibilitychange` was also fired by *both* Electron and
  Chromium in some cases (e.g. when hiding the window). Now it is only
  fired by Chromium so you no longer get duplicate events.

- The visiblity state of `BrowserWindow`s created with `{ show: false }`
  is now initially `visible` until the window is shown and hidden.

- The visibility state of `BrowserWindow`s with `backgroundThrottling`
  disabled is now permanently `visible`.

This should also fix #6860 (but not for `webview`).
2017-06-06 15:16:01 -07:00
Kevin Sawicki
53b6ee0e3f Merge pull request #9468 from tonyganch/9296-history-state
Remove page url check during `history.pushState`
2017-06-05 14:47:49 -07:00
Cheng Zhao
e82af41591 Merge pull request #9269 from electron/main-notifications
Notifications from the main process
2017-05-31 17:21:05 +09:00
Samuel Attard
3938373ecb
Fix linting errors and add isSupported 2017-05-30 20:27:24 +10:00
Kevin Sawicki
7baf472c0f Implement BrowserPluginGuestDelegate::CreateNewGuestWindow for nativeWindowOpen 2017-05-26 10:10:36 -07:00
Tony Ganch
3a9b035d36 Remove page url check in history.pushState
Current implementation of NavigationController does not allow using
`history.pushState()` if page url is not changed.
It worked by mistake in versions < 1.3.6 and got visible after fix 180a77e6.
2017-05-23 22:42:33 +02:00
Samuel Attard
5dd4d6a961
macOS implementation of notifications in the main process 2017-05-23 02:05:13 +10: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
Kevin Sawicki
eebae82bc1 Merge pull request #9315 from electron/segmented-control-mode
Add mode prop to segmented touch bar control
2017-05-04 14:16:28 -07:00
Samuel Attard
718dc732ad
Add docs and add isSelected arg 2017-05-03 20:25:50 +10:00
deepak1556
5e976be43b remove page-title-updated workaround for #3380 2017-05-01 16:53:55 +09:00
Samuel Attard
225ccab3d2
Add mode prop to segmented touch bar control 2017-04-28 14:50:58 +10:00
Kevin Sawicki
a004cada7c Merge pull request #9095 from seanchas116/better-path-resolve
Search for module from app path when URL is not file protocol
2017-04-20 10:49:53 -07:00
Samuel Attard
11c7c107a9 add iconPosition property to touch bar buttons 2017-04-18 08:56:39 -07:00
Birunthan Mohanathas
8b9f7e5b00 Implement initial, experimental BrowserView API
Right now, `<webview>` is the only way to embed additional content in a
`BrowserWindow`. Unfortunately `<webview>` suffers from a [number of
problems](https://github.com/electron/electron/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Awebview%20).
To make matters worse, many of these are upstream Chromium bugs instead
of Electron-specific bugs.

For us at [Figma](https://www.figma.com), the main issue is very slow
performance.

Despite the upstream improvements to `<webview>` through the OOPIF work, it is
probable that there will continue to be `<webview>`-specific bugs in the
future.

Therefore, this introduces a `<webview>` alternative to called `BrowserView`,
which...

- is a thin wrapper around `api::WebContents` (so bugs in `BrowserView` will
  likely also be bugs in `BrowserWindow` web contents)

- is instantiated in the main process like `BrowserWindow` (and unlike
  `<webview>`, which lives in the DOM of a `BrowserWindow` web contents)

- needs to be added to a `BrowserWindow` to display something on the screen

This implements the most basic API. The API is expected to evolve and change in
the near future and has consequently been marked as experimental. Please do not
use this API in production unless you are prepared to deal with breaking
changes.

In the future, we will want to change the API to support multiple
`BrowserView`s per window. We will also want to consider z-ordering
auto-resizing, and possibly even nested views.
2017-04-13 01:27:27 +03:00
Samuel Attard
bea56bbdc8 Update as per feedback 2017-04-04 13:51:38 -07:00
Samuel Attard
2fd62d090a Allow items to be assigned to multiple popovers 2017-04-04 13:51:33 -07:00
Samuel Attard
f05dfc74da Store parent popover in popover touch bar items 2017-04-04 13:51:13 -07:00
Kevin Sawicki
74a3a34caa Add spec for interaction event with escape item 2017-04-04 13:14:56 -07:00
Kevin Sawicki
bbadeb62ac Check that escape item is non-null before checking id 2017-04-04 13:12:29 -07:00
Kevin Sawicki
414540bfcb Support passing escape item to TouchBar constructor 2017-04-04 12:50:41 -07:00
Kevin Sawicki
b24b4212c5 Make escape item a property instead of setter 2017-04-04 12:50:41 -07:00
Kevin Sawicki
21c1ddffb3 Handle change and interaction events on escape items 2017-04-04 12:50:41 -07:00
Kevin Sawicki
591cd8d073 Update window via listener when escape item changes 2017-04-04 12:50:41 -07:00
Kevin Sawicki
d596d85288 🎨 2017-04-04 12:50:41 -07:00
Samuel Attard
60cc862031 Make everything pointer like 2017-04-04 12:50:41 -07:00
Samuel Attard
4d6b0fc01b Add a method to set the escape identifier on the touch bar 2017-04-04 12:50:41 -07:00
Kevin Sawicki
3e9014c371 Merge pull request #9099 from electron/certificate-trust
macOS: Add certificate trust API
2017-04-04 11:17:09 -07:00
Kevin Sawicki
2e32525e8f Make browser window optional 2017-04-04 10:49:10 -07:00
joshaber
2749ded062 Fix c&p error 2017-04-04 11:45:27 -04:00
joshaber
e2bda3ca0f Use an options object for most of the params 2017-04-03 21:33:21 -04:00
Ryohei Ikegami
4a7eec8f2d Pass app path as command line argument 2017-04-04 09:36:01 +09:00
joshaber
0b7ffd094a Expose through the actual JS API too 2017-04-03 15:25:06 -04:00
Kevin Sawicki
fcb7cbc54a Check name directly instead of arguments length 2017-03-30 14:03:00 -07:00
Thiago de Arruda
b3cf00a19a Fix net module to accept non-string header values
This is required to be compatible with node.js http module.
2017-03-30 16:01:40 -03:00
Kevin Sawicki
57edc28b0d Merge pull request #8880 from mst128256/2814
Default menu items for 'Edit' and 'Window' #2814
2017-03-29 12:31:58 -07:00
Kevin Sawicki
8b4bf1f29e 🎨 2017-03-29 12:29:36 -07:00
mst128256
6ae198a625 Empty objects within default menu replaced by nulls 2017-03-29 12:50:31 +02:00
deepak1556
3ae62615f4 net: allow controlling redirects 2017-03-28 18:46:21 +05:30
mst128256
9e471d8f1c Added specs 2017-03-24 12:14:08 +01:00
Kevin Sawicki
23b235c9c7 Default async to false when object is specified 2017-03-20 20:37:52 -07:00
Kevin Sawicki
bc31f05404 highlightedStyle -> overlayStyle 2017-03-15 09:47:07 -07:00
Kevin Sawicki
2e0e4e69bb Drop on prefix from property names 2017-03-14 14:02:48 -07:00
Samuel Attard
a55cddaa53
Add more options 2017-03-14 18:57:57 +11:00
Kevin Sawicki
5e70adb511 Guard against only specifying select or highlight handler 2017-03-13 11:23:27 -07:00
mst128256
76ee7fda2b Fixed linting 2017-03-13 14:26:34 +01:00
Samuel Attard
a85ae27d68
Fix linting 2017-03-13 11:00:10 +11:00
Samuel Attard
25a231fc50
Initial NSScrubber implementation 2017-03-13 10:51:12 +11:00
Samuel Attard
bfe63d7a88
Fix linting 2017-03-10 17:56:26 +11:00
Samuel Attard
1c027c526b
Add segmented control implementation 2017-03-10 17:40:39 +11:00
Thiago de Arruda
44bd93589a Refactor electron exports to keep module list in separate files 2017-03-09 19:08:01 -03:00
mst128256
8aba640250 added default menu items for 'Edit' and 'Window' #2814 2017-03-09 16:01:33 +01: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
2680ee9f8f Add support for setting TouchBarLabel text color 2017-03-03 15:14:51 -08:00
Kevin Sawicki
c349aeff80 Add initial touch bar specs 2017-03-03 14:00:39 -08:00
Kevin Sawicki
002369576f Add initial touch bar docs 2017-03-03 14:00:39 -08:00
Kevin Sawicki
81ecd4499c Make exported properties match class names 2017-03-03 14:00:39 -08:00
Kevin Sawicki
eb03ab561d Make config optional 2017-03-03 14:00:39 -08:00
Kevin Sawicki
ce12dcd3b4 Add live popover icon property 2017-03-03 14:00:39 -08:00
Kevin Sawicki
a34f9d3583 Support icon property to match MenuItem 2017-03-03 14:00:39 -08:00
Kevin Sawicki
d1edd80ef8 Use NSTouchBar itemForIdentifier to lookup existing item 2017-03-03 14:00:39 -08:00
Kevin Sawicki
8d716e8b17 Register item after validating 2017-03-03 14:00:39 -08:00
Kevin Sawicki
76f112ffc5 Only export TouchBar to start 2017-03-03 14:00:39 -08:00
Kevin Sawicki
5f9e9d4b36 Add move live updating properties 2017-03-03 14:00:39 -08:00
Kevin Sawicki
61aa9bbff4 Add support for spacer items 2017-03-03 14:00:39 -08:00