* refactor: make KeyWeakMap::KeyObject private
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* perf: avoid redundant map lookup
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: remove unused KeyWeakMap::Has()
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: make KeyWeakMap dtor nonvirtual
no inheritance used, so no need for virtual dtor?
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* chore: fix KeyWeakMap code comment
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: use if statement in KeyWeakMap::Get()
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: use better variable names in KeyWeakMap::Values()
Co-authored-by: Charles Kerr <charles@charleskerr.com>
---------
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
When worker_thread shutdown, it will destory context and close
message_port. In this case, it should not dispatch close event.
Because it forbid script running during NotifyContextDestroyed in
ContextLifecycleNotifier.
Now chromium has implemented close_event and will not crash,
so we remove the patch with #22532 and add one test.
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Jinli Wu <wujinli@bytedance.com>
* refactor: use base::WriteJson() in ListValueToNSArray()
refactor: use base::WriteJson() in DictionaryValueToNSDictionary()
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: use base::WriteJson() in Debugger::SendCommand()
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: use base::WriteJson() in ScriptingExecuteScriptFunction::Run()
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: use base::WriteJson() in HandleAccessibilityRequestCallback()
Co-authored-by: Charles Kerr <charles@charleskerr.com>
---------
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
refactor: use gfx::Rect::Contains() instead of reinventing the wheel
perf: use base::Value::FindInt() to avoid redundant map lookups
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
This is a follow up to https://github.com/electron/electron/pull/35921
that, it fixes more corner cases that on-screen-keyboard does not hide
for webviews.
This change has been applied in Teams for quite a while and should be
reliable enough to introduce to Electron.
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Cheng Zhao <zcbenz@gmail.com>
* build: fixup zip manifest check on Windows
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* build: remove unused dlls
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
---------
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
`delegated_frame_host_` holds a pointer to `delegated_frame_host_client_`.
Since `delegated_frame_host_client_` was being destroyed first, that
pointer was dangling in the OSRWHV destructor.
Also, make these two unique_ptr fields `const` since they point to the
same objects for the lifespan of the OSRWHV.
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
reset spawnedProcess instance in case of error
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Maikel Ortega Hernandez <maikeloh@gmail.com>
* fix: draggable regions not working
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
* fix: only support app regions for main frame
Co-authored-by: deepak1556 <hop2deep@gmail.com>
---------
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
* refactor: do not use banned std::to_string() in ServiceWorkerContext::GetAllRunningWorkerInfo()
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: do not use banned std::to_string() in REPORT_AND_RETURN_IF_FAILED()
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: do not use banned std::to_string() in JSChunkedDataPipeGetter::OnWriteChunkComplete()
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: do not use banned std::to_string() in SetCrashKey()
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* chore: remove unused #include
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* fixup! refactor: do not use banned std::to_string() in REPORT_AND_RETURN_IF_FAILED()
Co-authored-by: Charles Kerr <charles@charleskerr.com>
---------
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* fix: ElectronBrowserContext::PartitionKey comparisons
Use c++20 default comparisons to simplify + fix PartitionKey sorting:
- The equality operator is broken. `PartitionKey{"foo", false}` is both
equal, to and less than, `PartitionKey{"foo", true}`
- For some keys, the same session can be retrieved via both `fromPath()`
and `fromPartition()`. This use case was discussed and removed from
the original PR after code review said "always returning different
sessions feels lower maintenance." The current behavior is a bug that
comes from the comparison operators not checking the keys' types.
Xref: 3f1aea9af9 (r1099745359)
Xref: https://chromium.googlesource.com/chromium/src/+/main/styleguide/c++/c++-features.md#Default-comparisons-allowed
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* fixup! fix: ElectronBrowserContext::PartitionKey comparisons
Co-authored-by: Charles Kerr <charles@charleskerr.com>
---------
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: do not use deprecated ToInternalValue() in ElectronExtensionLoader::FinishExtensionLoad()
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: do not use deprecated ToInternalValue() in NotificationPresenterWin::SaveIconToFilesystem()
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* chore: rename temp variable to now_usec for clarity
Co-authored-by: Charles Kerr <charles@charleskerr.com>
---------
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* fix: use `HasStyleMask(NSWindowStyleMaskResizable)` instead of `IsResizable()` for enabling/disabling window maximize button
Co-authored-by: Tamás Zahola <tzahola@gmail.com>
* Format
Co-authored-by: Tamás Zahola <tzahola@gmail.com>
---------
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Tamás Zahola <tzahola@gmail.com>
* refactor: use NoDestructor for g_io_thread_application_locale
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: use NoDestructor for ExtensionActionAPI::GetFactoryInstance()
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: use NoDestructor for ElectronExtensionsClient::GetPermissionMessageProvider()
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: use NoDestructor for feat_add_support_for_overriding_the_base_spellchecker_download_url.patch
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* chore: remove unused #include
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* fixup! refactor: use NoDestructor for ElectronExtensionsClient::GetPermissionMessageProvider()
make sure instance is static
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* chore: remove unused #include "base/lazy_instance.h"
Co-authored-by: Charles Kerr <charles@charleskerr.com>
---------
Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* chore: migrate from base::StringPiece to std::string_view in keyboard_util.cc
* chore: migrate from base::StringPiece to std::string_view in error_thrower.cc
* chore: migrate from base::StringPiece to std::string_view in electron_api_web_contents.cc
* chore: migrate from base::StringPiece to std::string_view in gin_helper/dictionary.h
* chore: migrate from base::StringPiece to std::string_view in electron_api_url_loader.cc
* chore: phase out internal use of base:::StringPiece
`base::StringPiece` is being phased out upstream. Its code has been
removed upstream and it's just a typedef for `std::string_view`.
They haven't removed the typedef yet, so this PR tries to get ahead
of future breakage by migrating "internal" use (i.e. leaving alone the
places where the `base::StringPiece` name is coming from an upstream
method that we override).
Xref: https://bugs.chromium.org/p/chromium/issues/detail?id=691162
Xref: https://chromium-review.googlesource.com/c/chromium/src/+/4294483
Xref: https://docs.google.com/document/d/1d4RnD1uAE2t4iANR0nXy82ASIPGsPuw2mpO6v6T7JKs