To enable/disable window resizing we set/unset WS_THICKFRAME style
flag on the window. Window's frame styles are cached so we need to
call SetWindowPos with the SWP_FRAMECHANGED flag set to update
cache properly.
* rebase "feat: enable windows control overlay on Windows"
* correct compilation error
* fix linting errors
* modify includes and build file
* change `hidden` option to `overlay`
* add patch to fix visual layout
* add button background color parameter
* add button text color parameter
* modify `overlay` in docs and modify button hover/press transition color
* change `text` to `symbol`
* remove todo and fix `text` replacement
* add new titleBarOverlay property and remove titleBarStyle `overlay`
* update browser and frameless window docs
* remove chromium patches
* chore: update patches
* change button hover color, update trailing `_`, update test file
* add dchecks, update title bar drawing checks, update test file
* modify for mac and linux builds
* update docs with overlayColor and overlaySymbolColor
* add corner and side hit test info
* modify docs and copyright info
* modify `titlebar_overlay_` as boolean or object
* move `title_bar_style_ to `NativeWindow`
* update docs with boolean and object titlebar_overlay_
* add `IsEmpty` checks
* move get options for boolean and object checks
* fix linting error
* disable `use_lld` for macos
* Update docs/api/frameless-window.md
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* Update docs/api/frameless-window.md
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* Update docs/api/frameless-window.md
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* Apply docs suggestions from code review
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
* modify `true` option description `titleBarOverlay`
* ci: cleanup keychain after tests on arm64 mac (#30472)
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
* chore: bump chromium in DEPS to 92.0.4512.6
* 2887336: [CaptureHandle][#2] Propagate CaptureHandleConfig in browser process
2887336
* refactor: base::Optional -> absl::optional
* chore: fixup patch indices
* chore: bump chromium in DEPS to 92.0.4514.0
* 2899417: Make build work when enable_pdf is set to false.
2899417
* 2904731: use BrowserContext instead of Profile in PreconnectManager
2904731
* 2295749: fix: check IsSecureEventInputEnabled in constructor before setting SetPasswordInputEnabled to true
2295749
* 2893803: Add a GetWebView to RenderFrame.
2893803
* 2892345: Implement WebContents::ForEachRenderFrameHost
2892345
* chore: fixup patch indices
* 2892048: Real instance methods for BrowserContext: remaining 5 methods.
2892048
* 2902821: [mojo] Don't require full header includes for referenced interfaces
2902821
* 2496500: Remove last deprecated extension Event ctor.
2496500
* chore: fixup malformed pepper support patch
* chore: bump chromium in DEPS to 92.0.4515.0
* 2908461: Add CreateEmptyPrintPagesParamsPtr() inside print_view_manager_base.cc.
2908461
* 2880838: viz: add optional HDRMetadata to TransferableResource
2880838
* chore: fixup patch indices
* chore: bump chromium in DEPS to 92.0.4515.5
* chore: update patches
* chore: bump chromium in DEPS to 92.0.4515.7
* chore: bump chromium in DEPS to 92.0.4515.9
* chore: bump chromium in DEPS to 93.0.4522.0
* chore: bump chromium in DEPS to 93.0.4523.0
* chore: bump chromium in DEPS to 93.0.4524.0
* chore: update patches
* chore: enable_pak_file_integrity_checks was reverted
* chore: update patches
* refactor: base/optional was replaced with absl::optional
Refs: 2910202
* refactor: replace all usages of base::nullopt with absl::nullopt
Refs: 2910202
* chore: add missing base::Contains include
Refs: 2910202
* refactor: replace all usages of base::make_optional with
absl::make_optional
Refs: 2910202
* refactor: replace WorldScriptContext() with GetScriptContextFromWorldId
Refs: 2893213
* chore: clean up left over opening namespace
Refs: 95bfe6d08f
* chore: add missing base::Contains include
Refs: 2910202
* refactor: replace GetCurrentDisplayIterator with the hard checker
GetCurrentDisplay
This code looks suspicious but if the iterator was invalid before it
will also be invalid now.
Refs: 2893191
* refactor: headers are now passed directly in extensions client
Refs: 2918906
* refactor: base::DictionaryValue::empty() has been removed
Refs: 2912424
* chore: add missing includes for network URLLoaderFactory
Refs: unknown, probably a side effect of header changes
* refactor: make convenience wrapper around AppendArg
There is no converter FromV8 for base::StringPiece (apparently its not
possible). So we now take in an std::string and use the construct for
StringPiece to do implicit conversion.
Refs: 2905544
* chore: add patch
* chore: bump chromium in DEPS to 93.0.4525.0
* chore: update patches
* refactor: CanResize has been de-virtualized
Refs: 2485774
* chore: update resource integrity patch
* chore: add character encoding idl patch
* chore: bump chromium in DEPS to 93.0.4526.0
* chore: update patches
* chore: bump chromium in DEPS to 93.0.4527.0
* chore: bump chromium in DEPS to 93.0.4528.0
* chore: update patches
* chore: update idl encoding patch
* chore: bump chromium in DEPS to 93.0.4529.0
* chore: update patches
* chore: bump chromium in DEPS to 93.0.4530.0
* chore: update patches
* fix: only SetCanResize after the widget has been initialized
* chore: add patch for vr on windows gn gen
* spec: fix focus related tests on linux due to delay in focus swap
* chore: remove new usages of base::Optional from main
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Samuel Attard <sattard@slack-corp.com>
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
When creating a widget on linux the bounds are restricted to the screen
size, when calling SetSize / SetBounds they are not. This fixes this
initialization issue by calling SetBounds after widget creation.
Noticed this issue while running linux tests on xvfb with a screen size
smaller than the default electron window size (resulted in a failed
test).
* fix: move widget maximization check
* fix linting error
* change workaround to only effect transparent windows
* disable menu maximize and restore for transparent windows
* disable double clicking title bar max/unmax for transparent windows
* add docs change and address review
* fix: handle a nil backgroundColor in win.getBackgroundColor()
* spec: add crash case
* fix: update to fix native_views transparent color
* chore: fix lint
* feat: Raise a browser view via `BrowserWindow.setTopBrowserView()`.
This is similar to removing and re-adding a browser view, but avoids a visible flicker as the browser view is not removed from the window when using `setTopBrowserView`. Note: if the given browser view is not attached to the window, it will be added.
This commit contains the macOS implementation.
* feat: setTopBrowserView support for Windows and Linux
* docs: add info about setTopBrowserView
* docs: Clarify behavior when browserView is not yet attached.
* fix: throw en error when browserView is not attached to the window
* fix: build error
* fix: test
* fix: add test case
* fix: tests
* fix: reparenting
* fix: close second window in tests
Co-authored-by: sentialx <sentialx@gmail.com>
* fix: optionally transform processes on win.SetVisibleOnAllWorkspaces on macOS, making it backwards-compatible with v9.2.1 (#27101)
* fix: optionally transform processes on win.SetVisibleOnAllWorkspaces on macOS, making it backwards-compatible with v9.2.1 (#27101)
Co-authored-by: Cyrus Roshan <cyrusroshan@users.noreply.github.com>
* fix: prevent crash when destroyed widget receives keyboard event
Activating a key to close a window will cause a silent crash. Handling the keyboard
event will lead to a nullptr dereferenced in Chromium code if the window widget has
already been destroyed.
* test: ensure BrowserWindow doesn't crash from keyboard events during close
* fix: add check in IsMaximized for non-WS_THICKFRAME windows
* remove logs
* change GetPosition for GetNativeWindow
* change GetPosition for GetNativeWindow in IsMaximize
* add top left corner check
* add transparent maximization test
* replace window and display comparison
* rebase off master
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
* feat: support exclude from capture on Windows
Check for WDA_EXCLUDEFROMCAPTURE support, and fallback to WDA_MONITOR. Windows versions that support exclude from capture will exclude the window entirely when `setContentProtection` is enabled similar to how Mac behaves. Fall back to `WDA_MONITOR` for windows verisions that do not support.
This flag is mentioned at the very end of a Microsoft blog post here: https://blogs.windows.com/windowsdeveloper/2019/09/16/new-ways-to-do-screen-capture/
Use WDA_EXCLUDEFROMCAPTURE for content protection on windows
Starting with Windows 10, version 2004 this will exclude a window similar to the expected behavior on mac. It is safe to use WDA_EXCLUDEFROMCAPTURE on older Windows versions, as it will still behave as if WDA_MONITOR is applied.
https://github.com/microsoft/Windows.UI.Composition-Win32-Samples/issues/64#issuecomment-697074762
See the docs here: https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setwindowdisplayaffinity
* docs: update setContentProtection docs
Update `setContentProtection` docs with `WDA_EXCLUDEFROMCAPTURE` info. This is to support screen capture fully excluding a particular window instead of showing it as a black screen.
* chore: bump chromium in DEPS to 1f1c4d91f6eaa4a033ec8f499d63a0717f79a42a
* viz: Do not apply white level scaling for RGBA fp16 HDR video
2296006
* Move WebPreferences to WebContents
2263635
* Fix missing WeakPtr check in PreconnectManager
2309029
* Fixup swiftshader roll revision
* Update patch indices
* Move WebDeviceEmulationParams into common.
2303356
* Move EnableDisableDeviceEmulation to blink mojom messages
2303367
* PDF Viewer: Remove flag for two-up view
2311130
* Add mojom definition for DeviceEmulationParams.
2303491
* Remove ServiceWorkerContextWatcher from PaymentAppInstaller
2291186
* Loader: Move transferrable_url_loader.mojom into blink's mojom directory
2306123
* chore: bump chromium in DEPS to 4974f436479739025a90ebc2cc2e36d67ee1ac46
* mac: Work around Xcode 12b3 SDK bug
2315078
* Reland Update core items for macOS Big Sur.
2315162
* Update Swiftshader revision
* mac/arm64: When cross-building the snapshot, use page size of the target ISA instead of the host.
2310575
* Update patch indices
* Rename {,Non}ClientView::CanClose() to OnWindowCloseRequested()
2247838
* chore: bump chromium in DEPS to e9465d70d1dea539400f0fddad43358ea3c31d71
* chore: bump chromium in DEPS to bd5b71c5f20288eb26068a39ae6e0579566a51c5
* chore: bump chromium in DEPS to 786ee543048bd07d07c5ac50b7dbbdd6bdd8dcce
* chore: bump chromium in DEPS to 34eb6ecbf2c5894b648900bf771a2a29de204798
* chore: bump chromium in DEPS to 567ff038d68e3adb8116a01eec863cdf34d775f5
* chore: bump chromium in DEPS to 340b45c8d4ceb2dd61969fc34e1928d3c46db48c
* chore: update patches
* chore: base::DeleteFile with two params is removed
Should use base::DeleteFile and base::DeletePathRecursively when
appropriate
Refs: 2313376
* chore: add patch for NodePlatform::PostJob impl
* chore: update patches
* chore: extension file access is now instrumented
Refs: 2209995
* chore: implement SetWindowFrameInScreen in OSR RWHV
Refs: 2321409
* chore: NotifyUserActivation requires a type now
This is just for a histogram thing and therefore it does not matter what
we pass in
Refs: 2281303
* chore: update patches
* chore: bump chromium in DEPS to cd570e6dd3dcb84463ac252b04e92ceb02d8400c
* chore: update patches
* chore: bump chromium in DEPS to 0187908a31866992b90c59719ac1d016328f6ee0
* chore: bump chromium in DEPS to 3c9df38c508f3dba26a75248beed4882ddfb98e9
* chore: bump chromium in DEPS to 1a47d3b9cee710bd3c958c4f2d8b205710df9d50
* chore: bump chromium in DEPS to baac93040d96abdab72d46dd034c60f86e108702
* chore: bump chromium in DEPS to 13836145f97299e636491de38064b78861c4fb2e
* update patches
* change OS_MACOSX -> OS_MAC
Refs: https://bugs.chromium.org/p/chromium/issues/detail?id=1105907
* patch: add header for ToExecutionContext in WebMessagePortConverter
* chore: bump chromium in DEPS to 91ab9b6ac5d04dc034a03ad847fbfa8261328c2b
* update patches
* NeedToFireBeforeUnloadOrUnload -> NeedToFireBeforeUnloadOrUnloadEvents
Refs: 2288711
* chore: bump chromium in DEPS to 290deb11f0e30cb1382fd8f8793d340560283c23
* update patches
* add dragdrop header for autofill popup
* int -> x11::Time
* patch out accessibility private API use
Refs: 2330812
* remove usage of XEvent
Refs: 2317767
* trigger recalculation of WebPreferences before renderer initialization
Refs: 2263635
* chore: bump chromium in DEPS to 6bdb484583b99c96ef3388d0c2184326581b2d5a
* chore: bump chromium in DEPS to 1eb2a79cde04fd5c8ae51b4d813e6521635269e5
* chore: bump chromium in DEPS to 3dc8e3c0f400e4ca9c0a63d7a39bd910997ad4c6
* chore: update patches
* fixup! trigger recalculation of WebPreferences before renderer initialization
* views: Make MenuButton and RadioButton default constructible
2339586
* chore: fix code style
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: Samuel Attard <sattard@slack-corp.com>
Co-authored-by: Andy Locascio <andy@slack-corp.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
* chore: bump chromium in DEPS to 0ee01724797ab0f6deadb33bb3a0201cd2d21602
* Update patches
* Separate pdf/pdf_ppapi.h into its own target.
2292458
* [ozone/x11] Removed DesktopWindowTreeHostX11 and its DnD client.
2279199
* Move front_end html_entrypoints to data_deps
2292282
Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
* chore: bump chromium in DEPS to 7fb9778894d73378bff51087ce869ea5aa6e5d5d
* chore: bump chromium in DEPS to 83da426e53d423f0530fc23433b6d2c4d0548442
* update patches
* remove chromeos-only TtsControllerDelegate
Refs: 2255314
* SharedUserScriptMaster -> SharedUserScriptManager
Refs: 2258357
* avoid deprecated DISALLOW_COPY_AND_ASSIGN
https://groups.google.com/a/chromium.org/forum/#!msg/cxx/qwH2hxaEjac/TUKq6eqfCwAJ
* chore: bump chromium in DEPS to b2eaf9ff4e6b03267bf279583ea20ceb2b25e9d0
* update patches
* rename GetHighContrastColorScheme -> GetPlatformHighContrastColorScheme
Refs: 2250224
* remove vulkan info collection
Refs: 2252818
* add max_xcode_version build var
Refs: 2264867
* add missing headers
* chore: bump chromium in DEPS to cded18ca1138f7e8efc904f077ddcca34f0135cf
* update patches
* add empty floc blocklist to BrowserProcessImpl
Refs: 2240873
* chore: bump chromium in DEPS to f06602226cd80bf677b2ce013a94a2fb7f6ac58d
* chore: bump chromium in DEPS to 747aa4bfc74fc6cf7f08ee72624cd69ae41ae28d
* chore: bump chromium in DEPS to 31c0105e50fcc4e94de33e5c8602c755ace4a32b
* chore: update patches
* Reland "[base] Stop including check.h, notreached.h, etc. in logging.h"
2264297
* X11 and Ozone: make sure gfx::AcceleratedWidget to be uint32_t
2260554
* Move zygote from //services/service_manager back to //content
2252466
* chore: update v8 patches
* [XProto] Remove usage of Shape extension
2262113
* fixup! add empty floc blocklist to BrowserProcessImpl
* Require macOS 10.15.1 sdk
2238504
* Use newer Xcode version 11.5.0
* update src cache
* chore: bump chromium in DEPS to 60a9883e35db3f6f91916f0878e88e1849c17b11
* chore: update patches
* Reland "Reland "New toolchain for Windows 10 19041 SDK""
2255527
* update patches
* Convert raw NonClientFrameViews to unique_ptrs
2240417
* [printing] Move PrintHostMsg_DidPreviewDocument_Params to print.mojom
2257035
* chore: bump chromium in DEPS to 12c233c2a85bfa28fb279f390121ba681e52a71b
* chore: update patches
* Removing oppressive language for the directory chrome/browser/apps
2269822
* Inclusion: rename SpellcheckLanguageBlacklistPolicyHandler
2267646
* Clean up duplicate WebContents "is fullscreen" functions
2275148
* Adds icon loading service with sandbox for Windows.
1987273
* No more Vulkan info collection for UMA on Windows
2252818
* fix lint
* chore: update buildflag conditions
* chore: bump chromium in DEPS to a837d4c4230ace4f10b2768728f4044b7995dfa5
* update hunspell files
* chore: update patches
* Make content::FileSelectListener a RefCounted
2275338
* fix build failures on MAS
* update patches
* fixup! Reland "[base] Stop including check.h, notreached.h, etc. in logging.h"
* fix build on windows
* Check for GDI exhaustion if window creation fails
2244124
* chore: bump chromium in DEPS to 2c9b2a73be4ef9ec22d8b6da8e174cb80753f125
* chore: update patches
* Network Service: Move DeleteCookiePredicate into public folder
2264186
* chore: bump chromium in DEPS to fa2606299bcc02c362528d26b5dcf8c8a0db0735
* chore: bump chromium in DEPS to d9c235d1227204dbae3708daae851573a3566b94
* chore: bump chromium in DEPS to 2f82c284243c035f49a747fd1ead6c44b4b31093
* chore: update patches
* Move creating the LayerTreeSettings into blink.
2267720
* chore: bump chromium in DEPS to 914112f1d9af9e4974059dc403da62699a55550f
* update patches
* chore: bump chromium in DEPS to e0bc1ffae6393fc543a2da94c88167df75859b36
* refactor: match upstream print preview handling (#24452)
* update patches
* chore: bump chromium in DEPS to 0881423156abe084164b51ab58ce93a8bd380524
* update patches
* update patches
* give a type to pendingPromise
* chore: bump chromium in DEPS to 11a8c1534b16d130075d378a64187360ba4e7820
* update patches
* 2272609: Move //services/service_manager/sandbox to //sandbox/policy.
2272609
* update patches
* fixup! 2272609: Move //services/service_manager/sandbox to //sandbox/policy.
* fixup! 2272609: Move //services/service_manager/sandbox to //sandbox/policy.
* 2264511: Cookies: Update SetCanonicalCookie to return CookieAccessResult
2264511
* chore: fix setAlwaysOnTop test
The window must be visible for state to be updated properly.
* Revert "Migrate modules/desktop_capture and modules/video_capture to webrtc::Mutex."
https://webrtc-review.googlesource.com/c/src/+/179080
* update patches
Co-authored-by: Andy Locascio <andy@slack-corp.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
Co-authored-by: Electron Bot <anonymous@electronjs.org>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
Co-authored-by: Samuel Attard <marshallofsound@electronjs.org>
* chore: bump chromium in DEPS to db7d7b3e7cb2bc925f2abfde526280cfdfc21a41
* Update patches
* chore: bump chromium in DEPS to 5613e1b99a44fcbe22f3910f803ca76903a77ec1
* Update patches
* Network service: Remove primary_network_context bool.
2204678
* WebContentsObserver now implements OnRendererResponsive
2211066
* update patches
* Fixup printing patch
* chore: bump chromium in DEPS to e387b972cdd7160c416fa6c64a724e2258aa0218
* update patches
* [printing] Move PrintHostMsg_DidPrintContent_Params to print.mojom
2212110
* [XProto] Move items from ::x11::XProto to ::x11
2218476
* revert Add IChromeAccessible
This was added in 2206224 but it breaks WOA builds because third_party/win_build_output/midl/ui/accessibility/platform/arm64 does not exist. The link above says that the new interface is behind a feature flag which is disabled by default so it is safe to remove for now.
* rebaseline ichromeaccessible for Windows arm64
This patch will not be needed once we get the next roll.
* Update to 1b9e01844e8bf1aaafc4a52c0c62af7f56d9637b to get arm64 fix
* update patches
* chore: bump chromium in DEPS to 096aefa04092ea00f7b68d8d19345883f20db3c3
* chore: bump chromium in DEPS to a524a45ffd1d6fd46a7a86138fe2b22df5b6651a
* chore: update patches
* Window Placement: Gate cross-screen fullscreen behavior on permission
2203268
* chore: add spec for https://crbug.com/1085836
* chore: bump chromium in DEPS to ff6c4f4b826d66c2e32380bf5d1eb5e1fe37faef
* update patches
Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
Co-authored-by: Electron Bot <anonymous@electronjs.org>
Co-authored-by: deepak1556 <hop2deep@gmail.com>