Commit graph

3845 commits

Author SHA1 Message Date
Samuel Attard
7f3620bee3
Native mate in electron 3 (#13450)
* Initial commit.

* Do not rely on latest base/template_util.

* Enable modifying existing ObjectTemplate.

* Fix compilation error of function_template.

* Add initial Constructor type.

* Fix passing the wrong parameter.

* Make the Constructor accept arbitrary callback.

* Cleanup.

* Constructor should wrap the this pointer.

* Simplify Wrappable API.

* Remove helper typedefs.

* Support function with 7 parameters.

* Enable converting void*.

* Enable setting method in Dictionary.

* Add v8::Handle<v8::String> to converter.

* Make ScopedPersistent do type conversion.

* Add Arguments.Length method.

* Do not wrap an object when it's already wrapped.

* No need to reset wrapper_ when we would run destructor.

* Call object._init if we have one.

* Add object() accessor for Dictionary.

* Add converter for const char*.

* Enable creating empty Dictionary directly.

* Mark Dictionary.Get as const.

* Strictly check for boolean type.

* Add .gitignore.

* Add APIs to match new V8 APIs.

* Bring back ScopedPersistent.SetWeak.

* Some more APIs fixes.

* Reset handle in weak callback.

This doesn't seem to be neccesary, but we had better follow what upstream does.

* Enable converting ScopedPersistent.

* Fix compilation error with node 0.10.

* Fix compilation error of Constructor and ScopedPersistent in node 0.10.

* Use pump to generate source files.

* Add callback converter.

* Make ScopedPersistent's interface consistent with V8.

* Remove unused constructor of Dictionary.

* Add PersistentDictionary.

* Make throwing exception when parsing args easier

* Use NODE_VERSION_AT_LEAST to determine node version

* Don't throw error in Constructor

* Guard against non-constructor call in Constructor::New

* Fix throwing error in constructor

* Fix ignored exception thrown from constructor.

* OVERRIDE => override

* Avoid unnecessary copy in ConvertToV8

* Check internal field before converting

* Remove unneeded helper

* Add AfterInit method for Wrappable

* Add converter for unsigned long

* usigned long is uint64 on Linux

* Don't reset handle before Wrappable is destroyed

It is possible that the user wants to use the V8 object in the destructor.

Fixes atom/atom-shell#1112.

* added std::set converter

* Use Local instead of Handle

* Pass Handle to upper HandleScope when returning a V8 Handle

* Enter context before calling callback

* Allow converting Array

* Remember isolate in Wrappable

* Make isolate() public

* Check for null when converting Wrappable

* Add IsDestroyed method for Wrappable

* Allow specify methods that can be called after object is destroyed

* Use C++11 version of CreateFunctionTemplate

* Remove callback.h

* Remove locker.h

* Add Dictionary::CreateEmpty

* GetNext should have no side effect when failed

* Don't convert Function to Dictionary

* Don't pass callback as const reference

* Add SetHidden for Dictionary

* Use the new SetWeak in Wrappable

* Check whether key exists in Dictionary::Get

* Don't return v8::Maybe for std::vector

* Add Dictionary::Delete

* Do not manually destroy native resources

* isDestroy => isDestroyed

* Fix converter for std::set

* Improve error message for type error

Close atom/electron#4307.

* Clear internal field when Wrapper is destroyed

* basic_types.h => macros.h

* use v8::private symbols as identifiers for object properties

* Make Wrappable a template class

* Leak Wrappable's template

Since it is declared as static variable it will be released
automatically when process exits, which causes crashes in
renderer process because the template will then be released
later than V8 is closed.

This commit simply leaks the template so the crash won't happen,
this leak should be fine since leaking resource on exit is not
a bad thing.

* Handle.ToV8 should return Object

* Add converter for std::map

* Setup v8::MicrotasksScope for callbacks

* Update to API changes of V8 5.2

* CHECK is not needed

* Call the user call Init in Constructor

* Make InitWith virtual

* Turn Wrappable into using FunctionTemplate

* Create objects from InstanceTemplate

* NewOperatorFactory is not used

* Remove the Constructor class

* GetConstructor should init default constructor

* Pass FunctionTemplate in BuildPrototype

* Do not set constructor name in SetConstructor

* Use ToDetailString for processing error message

* Add back empty handle string

* Add README

* create empty handle for null or undefined value

* Support setting read-only property value

* Add Converter<std::map<std::string, T>>::ToV8

* Add CI build through Electron

* Support 5 argument member function

* Use std functions instead of template_util

* Make Wrappable thread safe

* Use gin to manage FunctionTemplate

Sadly there is no way for us to know when V8 is closing, thus it is
impossible for us to clean the FunctionTemplate on exit at the right
time, which is critcal for multi-thread environment.

* add ability to set high memory usage, skipping the second round of GC callbacks

* Fix broken link

* Add a converter for `nullptr_t`

* Upstream Muon changes to avoid crashing

* only mark handle as independent when it's a high memory user

* Remove WrappableBase::GetWrapper() DCHECK

* virtual members need a virtual destructor

* GetWrapper should be const

* Add support for FreeBSD

* Remove usage of MarkIndependent api

https://bugs.chromium.org/p/chromium/issues/detail?id=780749
Use Active/Not Active as indicator whether the Scavenger can drop wrappers

* Address breaking API

* Fix Value::ToDetailString() call

See https://chromium-review.googlesource.com/848782

* Revert "Address breaking API"

This reverts commit e20cf8687e.

* Add mate::Promise

* Update travis settings

Use Node.js 9.7.0 and Xcode 9.3.

* Update appveyor settings

Use Visual Studio 2017.

* Remove mate::TryCatch (#26)

It's not used anywhere. We use v8::TryCatch instead.

* Address breaking API

* Don't copy things on Dictionary::Set

* Remove native_mate/compat.h

* prepare for merging to electron

* remove native_mate submodule

* update paths for native_mate

* move native_mate script to the electron scripts dir

* rename back to expected values

* fix linting
2018-06-27 17:42:20 +10:00
trop[bot]
2069eb1972 Fix links to webview.md (#13370) 2018-06-22 03:06:54 +10:00
Samuel Attard
b0f6c3ab65 Revert "fix: Drop support for OS X Mavericks (version 10.9)" 2018-06-20 12:29:14 +00:00
John Kleinschmidt
d367b75680
Merge pull request #13296 from electron/miniak/drop-macos-10.9
fix: Drop support for OS X Mavericks (version 10.9)
2018-06-19 13:19:24 -04:00
Milan Burda
794fe741e9 fix: Drop support for OS X Mavericks (version 10.9) 2018-06-19 17:49:27 +02:00
popod
13f97b4cae Add Sentry.io to 3rd party hosted solution list for crash reports (#13281)
* Add Sentry.io to 3rd party hosted solution list for crash reports

* Single link to sentry doc
2018-06-19 10:32:37 -05:00
Danny Brown
dd6c776a19 docs: add note about how to remove a previously set aspect ratio (#13293) 2018-06-19 10:24:42 -05:00
Samuel Attard
c58fa02e58
Mark browser window affinity as experimental 2018-06-20 00:33:24 +10:00
Heilig Benedek
60ba2013c4 Re-add dirtyOnly to FrameSubscriber and document API change 2018-06-19 11:49:44 +10:00
Nitish Sakhawalkar
3ac4c1f03f Update libcc and replace snapshot_blob.bin by v8_context_snapshot.bin 2018-06-19 11:49:43 +10:00
deepak1556
c4b8e106c0 Create network_converter for services/network/* types 2018-06-19 11:49:42 +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
Zeke Sikelianos
994f613450
Merge pull request #13099 from electron/breaking-changes
docs: improve breaking API changes docs
2018-06-18 08:52:53 -07:00
John Kleinschmidt
78e199b5d7
Merge pull request #13187 from LostPlayer99/patch-1
docs: update bluetooth example
2018-06-18 09:16:54 -04:00
az-chris
83dc8cc13b docs: update remote.md (#13229)
* Update remote.md

Addressing Issue #9421

* Minor copyediting
2018-06-16 16:21:07 +10:00
Vlad Hashimoto
a67c992c36 docs: fix broken link to commit message guidelines (#13233)
* docs: fix broken link  to commit message guidelines

* Fix another broken links
2018-06-15 19:43:03 -05:00
Felix Rieseberg
1647c12c73 📝 Make appUserModelId requirement clearer (#13259) 2018-06-15 19:32:19 -05:00
Mateus Silva
1b3cd01851 Doc: Delete unnecessary require and update flag name 2018-06-12 20:17:16 +01:00
Milan Burda
6ad0a22602 Add process.getHeapStatistics() (#13183) 2018-06-10 22:00:36 +10:00
Mateus Silva
370d790776
Doc: Update bluetooth example
Update event select-bluetooth-device example documentation.
2018-06-07 20:29:20 +01:00
pravdomil
fd6eeed5c4
clarify docs 2018-06-02 20:41:19 +02:00
Charles Kerr
c7d1f95240 Merge branch 'master' into breaking-changes 2018-05-31 12:12:02 +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
Zeke Sikelianos
cb9ab213bb
Merge pull request #13005 from nornagon/gn-docs
docs: dev instructions for GN build
2018-05-29 15:17:16 -07:00
Dan Sandler
442ec7113e
Fix link to macOS notifications HIG 2018-05-29 11:16:26 -04:00
Charles Kerr
57cda797f3 docs: copyediting of breaking-changes.md
Tweak the phrasing of sections' introductions
2018-05-29 11:42:20 +02:00
Charles Kerr
b0f1b5f65b Modify 2.0 section's phrasing to use past tense 2018-05-29 11:37:42 +02:00
Charles Kerr
b621321ea0 Re-add missing section 2018-05-29 11:24:39 +02:00
Charles Kerr
066b92c7cd docs: re-document the 2.0 breaking API changes 2018-05-29 11:23:28 +02:00
Charles Kerr
57ad506cde Reorder the version sections newest-to-oldest
This puts 4.0 before 3.0, making room to re-add
the 2.0 changes back in at the end of the file.
2018-05-29 11:17:26 +02:00
Charles Kerr
7f64dbc1ba Make FIXME and API Contract their own H1 sections
Previously they were inside the 3.0 section,
which doesn't really make sense
2018-05-29 11:15:30 +02:00
Charles Kerr
e943cce125 docs: tweak phrasing 2018-05-29 11:10:23 +02:00
Charles Kerr
ac03b81624 docs: add breaking-changes to README 2018-05-29 11:08:49 +02:00
Charles Kerr
bb4979a82e docs: move breaking-changes to api 2018-05-29 11:06:56 +02:00
hkhere
0f1fcc3f4b docs: fix a typo in remote.md (#13084) 2018-05-29 03:14:06 -05:00
Maksym Dogadailo
562831ec1a fix tls script path in documentation (#13089) 2018-05-29 03:12:27 -05:00
Sven Hüster
ec44fb79d8 updated path to widevine libraries on windows (#13063) 2018-05-28 16:11:51 +09:00
Mikael Finstad
86fcdd0bae docs: Simplify loading of html in example (#13013)
* Simplify loading of html

See new api: https://github.com/electron/electron/pull/11565

* Update first-app.md

* Update first-app.md
2018-05-25 13:05:15 -07:00
Shelley Vohr
265aa3da29
docs: deprecate UploadFileSystem (#13064)
Deprecate UploadFileSystem in preparation for its being phased out completely in Chromium 66 and correspondingly Electron 4.0.0.
2018-05-25 10:50:27 -07:00
Ali BARIN
b0b31e67da fix: Update broken dock link in app doc 2018-05-24 21:21:08 +02:00
Jeremy Apthorp
8ea864d6eb docs: dev instructions for GN build 2018-05-24 11:46:35 -07:00
Shelley Vohr
322a303683
address changes from review 2018-05-23 15:57:58 -07:00
Shelley Vohr
5f5322c64e
rename blinkFeatures to enableBlinkFeatures 2018-05-23 14:01:34 -07:00
Shelley Vohr
fb4a8e9cb9
remove ses.setCertificateVerifyProc() deprecation 2018-05-23 09:47:14 -07:00
Shelley Vohr
22fed0c798
remove nativeImage.createFromBuffer() deprecation 2018-05-23 09:43:58 -07:00
Shelley Vohr
94e825378c
remove webFrame.registerURLSchemeAsSecure() deprecation 2018-05-23 09:33:57 -07:00
Shelley Vohr
4a90056462
remove webContents.openDevTools() deprecation 2018-05-23 09:30:15 -07:00
Shelley Vohr
3deffa859d
remove appcommand media-play_pause option deprecation 2018-05-23 09:24:32 -07:00
Shelley Vohr
003a5a0160
remove tray.setHighlightMode() deprecation 2018-05-23 09:20:39 -07:00