Commit graph

21 commits

Author SHA1 Message Date
John Kleinschmidt
6aece4a83d
feat: add support for WebHID (#30213)
* feat: add support for WebHID

* Apply suggestions from code review

Co-authored-by: Jeremy Rose <jeremya@chromium.org>

* Address review feedback

* Address review feedback

* chore: clear granted_devices on navigation

Also added test to verify devices get cleared

* fixup testing for device clear

* make sure navigator.hid.getDevices is run on correct frame

* clear granted devices on RenderFrameHost deletion/change

* manage device permissions per RenderFrameHost

This change makes sure we don't clear device permission prematurely due to child frame navigation

* Update shell/browser/api/electron_api_web_contents.cc

Co-authored-by: Jeremy Rose <jeremya@chromium.org>

* apply review feedback from @zcbenz

* Match upstream ObjectMap

This change matches what ObjectPermissionContextBase uses to cache object permissions: https://source.chromium.org/chromium/chromium/src/+/main:components/permissions/object_permission_context_base.h;l=52;drc=8f95b5eab2797a3e26bba299f3b0df85bfc98bf5;bpv=1;bpt=0

The main reason for this was to resolve this crash on Win x64:
ok 2 WebContentsView doesn't crash when GCed during allocation
Received fatal exception EXCEPTION_ACCESS_VIOLATION
Backtrace:
        gin::WrappableBase::SecondWeakCallback [0x00007FF6F2AFA005+133] (o:\gin\wrappable.cc:53)
        v8::internal::GlobalHandles::InvokeSecondPassPhantomCallbacks [0x00007FF6F028F9AB+171] (o:\v8\src\handles\global-handles.cc:1400)
        v8::internal::GlobalHandles::InvokeSecondPassPhantomCallbacksFromTask [0x00007FF6F028F867+391] (o:\v8\src\handles\global-handles.cc:1387)
        node::PerIsolatePlatformData::RunForegroundTask [0x00007FF6F3B4D065+317] (o:\third_party\electron_node\src\node_platform.cc:415)
        node::PerIsolatePlatformData::FlushForegroundTasksInternal [0x00007FF6F3B4C424+776] (o:\third_party\electron_node\src\node_platform.cc:479)
        uv_run [0x00007FF6F2DDD07C+492] (o:\third_party\electron_node\deps\uv\src\win\core.c:609)
        electron::NodeBindings::UvRunOnce [0x00007FF6EEE1E036+294] (o:\electron\shell\common\node_bindings.cc:631)
        base::TaskAnnotator::RunTask [0x00007FF6F2318A19+457] (o:\base\task\common\task_annotator.cc:178)
        base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl [0x00007FF6F2E6F553+963] (o:\base\task\sequence_manager\thread_controller_with_message_pump_impl.cc:361)
        base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork [0x00007FF6F2E6EC69+137] (o:\base\task\sequence_manager\thread_controller_with_message_pump_impl.cc:266)
        base::MessagePumpForUI::DoRunLoop [0x00007FF6F235AA58+216] (o:\base\message_loop\message_pump_win.cc:221)
        base::MessagePumpWin::Run [0x00007FF6F235A01A+106] (o:\base\message_loop\message_pump_win.cc:79)
        base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run [0x00007FF6F2E702DA+682] (o:\base\task\sequence_manager\thread_controller_with_message_pump_impl.cc:470)
        base::RunLoop::Run [0x00007FF6F22F95BA+842] (o:\base\run_loop.cc:136)
        content::BrowserMainLoop::RunMainMessageLoop [0x00007FF6F14423CC+208] (o:\content\browser\browser_main_loop.cc:990)
        content::BrowserMainRunnerImpl::Run [0x00007FF6F144402F+143] (o:\content\browser\browser_main_runner_impl.cc:153)
        content::BrowserMain [0x00007FF6F143F911+257] (o:\content\browser\browser_main.cc:49)
        content::RunBrowserProcessMain [0x00007FF6EFFA7D18+112] (o:\content\app\content_main_runner_impl.cc:608)
        content::ContentMainRunnerImpl::RunBrowser [0x00007FF6EFFA8CF4+1220] (o:\content\app\content_main_runner_impl.cc:1104)
        content::ContentMainRunnerImpl::Run [0x00007FF6EFFA87C9+393] (o:\content\app\content_main_runner_impl.cc:971)
        content::RunContentProcess [0x00007FF6EFFA73BD+733] (o:\content\app\content_main.cc:394)
        content::ContentMain [0x00007FF6EFFA79E1+54] (o:\content\app\content_main.cc:422)
        wWinMain [0x00007FF6EECA1535+889] (o:\electron\shell\app\electron_main.cc:291)
        __scrt_common_main_seh [0x00007FF6F6F88482+262] (d:\A01\_work\6\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
        BaseThreadInitThunk [0x00007FFEC0087034+20]
        RtlUserThreadStart [0x00007FFEC1F02651+33]
✗ Electron tests failed with code 0xc0000005.

Co-authored-by: Jeremy Rose <jeremya@chromium.org>
2021-09-23 20:00:11 +09:00
Samuel Attard
fa61e3b119
feat: add session.storagePath to get path on disk for session data (#28665) 2021-04-27 09:54:28 -07:00
Shelley Vohr
ae2059eaa1
refactor: remove more uses of v8::Isolate::GetCurrent() (#28369) 2021-03-29 03:45:08 -07:00
Сковорода Никита Андреевич
a5e9af330f
feat: implement allowFileAccess loadExtension option (#25198)
Co-authored-by: Samuel Maddock <samuel.maddock@gmail.com>
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
2021-02-01 14:41:08 -08:00
Cheng Zhao
bb3fb548d8
feat: add APIs to enable/disable spell checker (#26276)
* feat: add APIs to enable/disable bulitin spell checker

* feat: add togglespellchecker menu item role
2020-11-11 10:29:18 -05:00
loc
0b85fdf26c
feat: add webContents.setWindowOpenHandler API (#24517)
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
2020-11-10 09:06:03 -08:00
LuoJinghua
201fc11b4b
feat: Added support for all proxy modes (#24937)
* feat: Added support for all proxy modes

This commit extended setProxy to support all proxy modes including
direct, auto_detect, pac_script, fixed_servers and system.

* feat: New api for reload proxy configurations
2020-10-27 15:50:06 +09:00
LuoJinghua
e4213e326b
feat: add ability to close connections for a session (#24945)
These methods are needed for closing all idle and in-flight connections after
switching to another proxy from same origin for a session, otherwise
these connections may be reused for future requests which is
unexpected for most of users.
2020-10-08 09:45:36 -07:00
Jeremy Rose
27ea3fc069
feat: allow setting SSL config (#25461)
* feat: allow setting SSL config

* lint

* configure system network context with min TLS1.2

* fix

* note defaults
2020-09-23 16:22:10 -04:00
Samuel Maddock
9d0d9a1664
feat(extensions): expose ExtensionRegistryObserver events in Session (#25385)
* feat(extensions): expose ExtensionRegistryObserver events in Session

Extensions can be loaded and unloaded for various reasons. In some cases this can
occur by no means of the Electron programmer, such as in the case of chrome.runtime.reload().

In order to be able to manage state about extensions outside of Electron's APIs, events
reloaded to loading and unloaded are needed.

* docs(extensions): elaborate on extension-loaded/unloaded details

* fix: remove scoped extension registry observer

* docs: update extension-unloaded
2020-09-23 15:29:08 -04:00
Jeremy Rose
bac2f46ba9
fix: browser contexts live forever (#24964) 2020-08-17 13:21:53 -07:00
Jeremy Rose
f0953902db
refactor: clean up Session with CleanedUpAtExit (#24603) 2020-07-20 12:13:33 -07:00
Jeremy Apthorp
de44d28c8e
refactor: ginify Session (#23569) 2020-05-19 10:18:12 -07:00
Jeremy Apthorp
e73d5e3db5
refactor: ginify protocol (#22812) 2020-03-26 10:34:32 -07:00
Erick Zhao
34e004015d
feat: add API to check if session is persistent (#22622) 2020-03-11 16:02:22 +09:00
Alexey Kuzmin
bf75e5a91f
build: fix build without built-in spellchecker (#22594) 2020-03-10 18:39:40 +09:00
Samuel Attard
b3e1134a1a
feat: add events for spellcheck dictionary downloads (#22449) 2020-03-05 11:58:19 -08:00
Samuel Attard
e7b0a9ca8f
feat: add API for receiving logs from service workers (#20624)
* feat: add API for receiving logs from service workers

* feat: add new serviceWorkerContext APIs

* chore: add missing #include's

* refactor: rename serviceWorkerContext to serviceWorkers

* chore: clean up based on review

* chore: remove native_mate

* chore: add tests for the service worker module

* Update spec-main/api-service-workers-spec.ts

Co-Authored-By: Jeremy Apthorp <jeremya@chromium.org>

* chore: fix linting

* chore: handle renames

Co-authored-by: Jeremy Apthorp <nornagon@nornagon.net>
2020-02-20 15:19:06 -08:00
Erick Zhao
9942149f3c
feat: add session.listWordsFromSpellCheckerDictionary API (#22101)
* doesn't work yet but compiles.

* works

* fixup
2020-02-10 14:08:53 -08:00
Erick Zhao
17abeca8b7
feat: add session.removeWordFromSpellCheckerDictionary API (#22039)
* feat: add session.removeWordFromSpellCheckerDictionary API

* rebase fixup
2020-02-10 14:07:25 -08:00
Jeremy Apthorp
d9321f4df7
chore: rename atom -> electron (#21986) 2020-02-04 12:19:40 -08:00
Renamed from shell/browser/api/atom_api_session.h (Browse further)