With multi-threaded-message-loop there is no GTK-backed LinuxUi, so
Views windows use the fallback FrameViewLinux with client-drawn
shadows. DesktopWindowTreeHostLinux only updates the opaque region from
OnBoundsChanged(), which runs before the FrameView exists. The surface
keeps its initial full-size opaque region, shadow included, so the
compositor leaves trails behind the window when it moves.
Call UpdateFrameRegions() from OnWidgetInitDone() so that the opaque and
input regions are set once the FrameView exists.
Skip ListAccounts when browser sign-in is disabled, default new
profiles to sign-in disabled, and disable the sign-in promo on the
avatar button by default. Embedders can still opt in via
OnRegisterCustomPreferences.
Preserve the preview WebContents in the file-selection policy so
CEF can resolve the originating browser when saving a PDF.
Use the hosted BrowserView bounds for dialog sizing, and let AppKit
handle native resize edges without child-modal input blocking.
Restore focus to the topmost visible child-modal dialog after
resizing, provided the app is active and the parent still owns
keyboard focus.
Always complete oracle bookkeeping for failed copies and obsolete
capture versions so pending captures cannot block refresh retries.
Reject cached frames from obsolete capture versions and allow newer
versions to replace them.
Add regression coverage for refresh recovery after copy failures
and capture-version changes.
Keep CEF-created unique OTR profiles when resolving the DevTools
profile so Inspect Element does not create the popup with the parent
profile. Add coverage for a non-global request context and verify that
the DevTools popup shares it.
In CEF dcheck_always_on=true builds on Windows, the network process
crashes with reentrant malloc on first allocation. Outer trigger:
CheckedLockImpl::Acquire (DCHECK-only) allocates on PostTask -> enters
PartitionAlloc -> ThreadCache::Get; on this path the `static
thread_local MetricsSubSampler g_shared_subsampler` (added by
https://crrev.com/c/6202281) is constructed, and its ctor seeds
InsecureRandomGenerator via base::RandUint64() -> BoringSSL RAND_bytes
-> OPENSSL_malloc, tripping ScopedDisallowAllocations.
Defer seeding to the first RandUint64() call. (0, 0) is XorShift128+'s
unique fixed point, so it doubles as the unseeded sentinel without a
flag (no size change). ReseedForTesting(0) now CHECKs; no caller
passes 0. Tactical fix: any other dynamic-init thread_local in
libcef.dll whose ctor allocates could crash similarly in DCHECK
builds.
Recent Windows 11 SDK installs (10.0.26100.7xxx+) no longer duplicate
dxil.dll into bin/<ver>/<arch>/; only the canonical Redist/D3D/<arch>/
copy is present. Switch Dawn's copy_dxil_dll and copy_dxc_binary GN
rules to use the Redist path, matching what ANGLE already does for
d3dcompiler_47.dll.
Chromium 1624993 (https://crrev.com/c/7810279, "Fix FileSelectHelper
double-release Use-After-Free") migrated FileSelectHelper from manual
AddRef/Release to a WebContents-scoped ActiveHelpers manager, and in
the process removed the listener_->FileSelectionCanceled() notification
from RunFileChooserEnd(). FileSelectHelper::FileSelectionCanceled() now
just calls RunFileChooserEnd(), which unregisters from ActiveHelpers
without ever telling the wrapped content::FileSelectListener. The CEF
listener's callback never fires, and DialogTest.FileOpenCancelSkipFirstCallback
and DialogTest.FileOpenAsyncCancelSkipFirstCallback time out waiting for
OnFileDialogDismissed.
This was already reverted upstream as https://crrev.com/c/7836491 in
149.0.7827.11. Carry the revert in chrome_browser_dialogs_native.patch
for branches pinned before that point. Restores manual AddRef/Release,
the listener_->FileSelectionCanceled() call in RunFileChooserEnd(), the
CleanUp() helper, and the WebContentsDestroyed() cleanup path. The
file_select_helper_unittest.cc parts of the upstream revert are
intentionally skipped.
Chromium 491783215 (https://crrev.com/c/7617635, cherry-picked to the
M148.40 branch) removed Blink's SetHTTPOriginToMatchReferrerPolicyIfNeeded
call on navigation requests, on the premise that the browser process
would add the Origin header in AddAdditionalRequestHeaders() in
content/browser/renderer_host/navigation_request.cc. That premise holds
for http(s) but not for embedder-registered schemes, because the
function early-returns on !SchemeIsHTTPOrHTTPS(). As a result, form
POSTs from custom standard schemes (SECURE/CORS_ENABLED) no longer had
an Origin header, and POSTs from non-standard schemes no longer had
Origin: null. CorsTest.RedirectPost* was failing in 30 configurations.
Drop the early-return so the Origin / User-Agent / referrer-policy
logic runs uniformly; each inner block is already guarded by its own
condition (enable_do_not_track, SetHeaderIfMissing, NeedsHTTPOrigin,
feature flags, prerender/preview state) and is a no-op for schemes
that don't need it.
Update the CorsTest.RedirectPost* expectations to stop treating
CUSTOM_STANDARD_SCHEME as an always-null-origin scheme; its actual
origin is now sent (matching http(s)), while truly non-standard
schemes still serialize to "null" via their opaque origin.
Forward-port of 68aa5a908 from the M148 stable branch.
Adds role-aware collapsing of off-screen nodes to CDP accessibility tree
serialization (Accessibility.getFullAXTree). When enabled, off-screen
landmarks and headings are serialized as summaries (role + name only)
and other off-screen nodes are pruned. Position:fixed/sticky descendants
of off-screen parents are still discovered and fully serialized.
Reduces snapshot size for AI agents using Playwright ariaSnapshot().
Platform screen readers are unaffected — they use a separate code path.
CDP nodesUpdated events are suppressed when active.
The setting is a per-browser CefBrowserSettings field threaded through
WebPreferences, with a runtime override via SetAxViewportCollapse().
Both APIs are guarded with CEF_API_ADDED(CEF_EXPERIMENTAL).
TPM metrics collection via MaybeMeasureTpmOperations() can crash on
some Windows machines due to a null pointer dereference in the Windows
TPM Platform Crypto Provider (PCPKsp.dll) when calling
NCryptIsAlgSupported().
During browser window closing, the ToolbarView is destroyed before
BrowserView, causing views in the toolbar to be freed while
WebUIBubbleManagerImpl and TabSearchBubbleHost still hold raw_ptr
references to them. When BrowserView is later destroyed, these
classes trigger dangling pointer errors.
Replace raw_ptr with views::ViewTracker in both classes:
- WebUIBubbleManagerImpl::anchor_view_ -> anchor_view_tracker_
- TabSearchBubbleHost::button_ -> button_tracker_
ViewTracker safely clears its internal pointer when the tracked
view is destroyed, preventing the dangling pointer situation.
When BrowserViewLayoutImpl::Layout is called before the frame view
has been laid out, GetBrowserLayoutParams returns empty params.
The early return allowed View::Layout's for-loop to trigger child
layouts with 0x0 bounds, causing ContentsLayoutManager to receive
invalid size. Fall back to using the host's local bounds as
visual_client_area when frame params are empty, allowing layout to
proceed with valid bounds.
Call UpdateDialogTopInsetInBrowserView in GetDialogTop() to match
the behavior of BrowserViewLayoutImplOld::GetDialogTopY(), allowing
CEF to adjust dialog positioning.
Update Browser::GetCurrentPageIcon() to use the favicon from the opener
WebContents for document picture-in-picture windows, instead of the PiP
window's own WebContents. This ensures the correct icon is displayed in
the Windows taskbar preview and matches the existing behavior for
window titles, where PiP windows use the opener's title.
Usage:
documentPictureInPicture.requestWindow({
width: 400,
height: 300,
cefOptions: { position: { x: 100, y: 200 } }
});
The feature is gated by Blink RuntimeEnabled flag and must be
explicitly enabled with:
--enable-blink-features=DocumentPictureInPictureCefOptions
Approved-by: Marshall Greenblatt
Call EnableInProcessStackDumping for all processes during Chromium
initialization. This is necessary after https://crrev.com/0bbe87d347
to fix "Symbols not available" output when printing stack traces in
the main process. For comparison, Chromium test code calls this
explicitly from TestSuite::Initialize. This change only impacts
non-Official builds.
Note that there are also timing considerations with GTest calling
absl::InitializeSymbolizer. That call must occur before the
Chromium call to EnableInProcessStackDumping.
See https://crbug.com/462160529 for additional background.
Allow JavaScript resize down to kMinWindowSize (52px) which is the
hard-coded minimum height for Document Picture-in-Picture windows.
The minimum size is now the same for both manual and JS resize.
This file will exist when building with a source tarball and
contain GN args that will be merged into the build-specific
args.gn file to configure angle commit details.