Commit graph

195 commits

Author SHA1 Message Date
Kevin Sawicki
4c8592b8ef Merge pull request #9828 from electron/fix-browserview-file-chooser-crash
Fix crash when using file chooser in BrowserView
2017-06-26 09:54:31 -07:00
Birunthan Mohanathas
eb19562316 Fix crash when using file chooser in BrowserView
The crash was a segfault caused by a null `WebDialogHelper::window_`.
2017-06-21 16:26:38 -07:00
Daniel Ma
4fb9f825b1 Add "New Tab" button for Native macOS Tabs
Adds responders for `newWindowForTab` to `AtomApplicationDelegate` and
`NativeWindowMac`, so that `BrowserWindow`s with a `tabbingIdentifier`
will get the new tab button, and both `app` and `window` will emit a
`new-tab-for-window` event.
2017-06-11 02:26:26 -07:00
Hari Krishna Reddy Juturu
8a32826876 Removing #ifdef windows for endsession methods 2017-04-24 11:49:21 -07:00
Hari Krishna Reddy Juturu
3c3e14b820 End session event on browser window 2017-04-21 14:22:11 -07:00
Kevin Sawicki
29a3e11893 Group sheet event methods with other macOS methods 2017-04-20 10:32:14 -07:00
Yuya Ochiai
75184046f6 Add events to manage sheets of macOS BrowserWindow 2017-04-15 16:26:45 +09: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
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
51f1c5a557 Use SetTouchBar withe empty vector instead of DestroyTouchBar 2017-03-03 14:00:39 -08:00
Kevin Sawicki
823b3baed0 Use vector of dictionaries instead of mate::Arguments 2017-03-03 14:00:38 -08:00
Kevin Sawicki
98f5858b11 Initial support for dynamic properties 2017-03-03 14:00:38 -08:00
Kevin Sawicki
cbb6f8c33e Store event listeners in each TouchBar class 2017-03-03 14:00:38 -08:00
Samuel Attard
dd09c91cf2 initial work on updating touch bar item config without rerender 2017-03-03 14:00:38 -08:00
Samuel Attard
d1b3ba39bd Fix cpp linting 2017-03-03 14:00:38 -08:00
Samuel Attard
18c7c3ece8 Make label and colorpicker types work 2017-03-03 14:00:38 -08:00
Samuel Attard
7857c83ea1 Make dynamic buttons work along with click events 2017-03-03 14:00:38 -08:00
Samuel Attard
703b5738c8 Initial TouchBar Magic
* Make the AtomNSWindow also a NSTouchbarDelegate
* Implement basic makeTouchBar and makeItemForIdentifier methods
* Initial sending of touch / update events through IPC to BrowserWindowObjects

TODO:
* JS API
* JS Object Converters
* Generalize methods so that popovers can work
2017-03-03 14:00:38 -08:00
Kevin Sawicki
6a023dc4fe Add Menu.closePopup API on macOS 2017-02-22 10:30:28 -08:00
Birunthan Mohanathas
18c49285a8 Add BrowserWindow.setAutoHideCursor for macOS
The `disableAutoHideCursor` BrowserWindow option can be used to control
auto-hiding behavior when the window is created. This new API is needed
to dynamically change the behavior after the fact.
2016-11-29 09:46:00 -08:00
Kevin Sawicki
774b2f99f2 Merge pull request #8038 from electron/danhp/close-file-preview
Add 'win.closeFilePreview()'
2016-11-28 14:47:06 -08:00
Daniel Pham
d5a0dd39a1 🎁 Add 'win.closeFilePreview()' 2016-11-28 14:25:11 -08:00
Tereza Tomcova
ac9e0b458d Added BrowserWindow.setAppDetails to set user model id, icon and relaunch command 2016-11-18 21:33:55 +01:00
gellert
5e62d28e50 adds test, adds view to AtomNSWindow and minor fixes 2016-11-11 08:49:57 -08:00
gellert
2cf30c0d63 remove method transferred to set with null 2016-11-11 08:49:57 -08:00
gellert
8ad50d1e35 adds vibrancy effect for macos 2016-11-11 08:49:57 -08:00
Pierre Laurac
9b19e6ee38 Changing names and memory leak fix 2016-10-26 09:05:42 +09:00
Pierre Laurac
b44371f4bf filename as Optional argument 2016-10-26 09:05:01 +09:00
Pierre Laurac
9673cee4d7 Using string from the std 2016-10-26 09:02:36 +09:00
Pierre Laurac
526debb5ab Adding easy way to preview files 2016-10-26 09:02:29 +09:00
Pierre Laurac
fb444f646b default template for PreviewFile 2016-10-26 09:02:21 +09:00
Cheng Zhao
de76bf5f63 Merge pull request #7296 from adammeyer/custom-window-level
Allow custom window level when sending window to top
2016-09-28 19:18:12 +08:00
Thiago de Arruda
1b1541fe1a Decouple api::Window initialization from api::WebContents construction. 2016-09-27 06:01:46 -03:00
adammeyer
fbb3a288ec Allow custom window level when sending window to top 2016-09-21 13:35:59 -04:00
Anthony Tseng
269a87b26f Emit scroll-touch-edge event instead of changing the behavior of scroll-touch-begin/end
fix #6873
2016-09-17 22:50:10 +08:00
Kevin Sawicki
6285500cdc Sort includes alphabetically 2016-08-26 15:30:02 -07:00
Kevin Sawicki
7a0129bbc7 Correct misspelling of destroy in method name 2016-08-25 12:28:57 -07:00
Cheng Zhao
81244c2221 Merge pull request #6768 from electron/felix-set-progress
Enable mode indication for setProgressBar
2016-08-09 20:58:07 +09:00
Felix Rieseberg
73c91dae9e 🔧 Enable mode indication for setProgressBar
This commit enables setting a mode for the setProgressBar method.
Old behavior is kept intact, usage is entirely optional.
2016-08-08 15:52:20 -07:00
Milan Burda
a6125c538e Add BrowserWindow.prototype.setThumbnailToolTip 2016-08-08 12:05:47 +02:00
Kevin Sawicki
52199a008d Add initial setContentBounds method 2016-08-04 12:02:24 -07:00
Kevin Sawicki
48cc13d009 Add BrowserWindow.getClientBounds API 2016-08-04 09:58:35 -07:00
Cheng Zhao
cb19efe49c Pass FunctionTemplate in BuildPrototype 2016-08-02 18:08:12 +09:00
Cheng Zhao
1505a46ed0 Do not rely on Constructor to call Init
This makes it deterministic when the JavaScript is initialized, which
can make our logic more clear.
2016-08-02 15:15:40 +09:00
Kevin Sawicki
ccee3e1fc2 Document setThumbnailClip 2016-07-14 15:54:57 -07:00
Kevin Sawicki
86218fe773 win: Add setThumbnailClip window API 2016-07-14 15:50:31 -07:00
Kevin Sawicki
f7b72f0948 Move capturePage to WebContents 2016-07-06 09:21:28 -07:00
Milan Burda
c243cf0c0f Add BrowserWindow.prototype.setContentProtection(enable) 2016-06-22 10:40:33 +02:00
Cheng Zhao
5674e8d114 Only define enable/disable API for views 2016-06-20 15:44:50 +09:00