Compare commits

...

4 Commits

Author SHA1 Message Date
Marshall Greenblatt e52707f8c9 ceftests: Merge ViewsWindowTest fixes to M129 (see #3188) 2024-09-30 13:36:52 -04:00
Marshall Greenblatt fda35ba29a cmake: Fix set_property argument (fixes #3775) 2024-09-30 12:48:33 -04:00
Marshall Greenblatt 31668f9570 Fix dangling ptr in RenderProcessHostTaskProvider (fixes #3758) 2024-09-30 12:22:39 -04:00
Marshall Greenblatt 8929b36b73 Update to Chromium version 129.0.6668.71 2024-09-30 11:50:30 -04:00
14 changed files with 122 additions and 69 deletions

View File

@ -7,5 +7,5 @@
# https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding
{
'chromium_checkout': 'refs/tags/129.0.6668.29'
'chromium_checkout': 'refs/tags/129.0.6668.71'
}

View File

@ -142,7 +142,7 @@ set(CMAKE_CONFIGURATION_TYPES Debug Release)
project(cef)
# Use folders in the resulting project files.
set_property(GLOBAL PROPERTY OS_FOLDERS ON)
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
#

View File

@ -744,5 +744,11 @@ patches = [
# Windows: Add missing check in base/profiler/stack_copier.cc to fix
# compilation error of cef_sandbox.
'name': 'win_sandbox_stack_copier'
},
{
# Fix dangling RenderProcessHost ptr in RenderProcessHostTaskProvider.
# https://github.com/chromiumembedded/cef/issues/3758
# https://chromium-review.googlesource.com/c/chromium/src/+/5894650
'name': 'chrome_browser_task_manager_5894650'
}
]

View File

@ -1,8 +1,8 @@
diff --git build/config/compiler/BUILD.gn build/config/compiler/BUILD.gn
index 3b809a3c065f6..d9a5b328db5ed 100644
index 45086d6838cac..58f4eb5278d99 100644
--- build/config/compiler/BUILD.gn
+++ build/config/compiler/BUILD.gn
@@ -134,6 +134,9 @@ declare_args() {
@@ -133,6 +133,9 @@ declare_args() {
# The cache can lead to non-determinism: https://crbug.com/1486045
thin_lto_enable_cache = true
@ -12,7 +12,7 @@ index 3b809a3c065f6..d9a5b328db5ed 100644
# Initialize all local variables with a pattern. This flag will fill
# uninitialized floating-point types (and 32-bit pointers) with 0xFF and the
# rest with 0xAA. This makes behavior of uninitialized memory bugs consistent,
@@ -2260,11 +2263,13 @@ config("export_dynamic") {
@@ -2256,11 +2259,13 @@ config("export_dynamic") {
config("thin_archive") {
# The macOS and iOS default linker ld64 does not support reading thin
# archives.

View File

@ -578,7 +578,7 @@ index 9081a0ed32b64..5fc21fd1c33a4 100644
UnloadController unload_controller_;
diff --git chrome/browser/ui/browser_navigator.cc chrome/browser/ui/browser_navigator.cc
index 31e27cfa516bc..e98078bf64c61 100644
index 41a7c90bc2754..8ccf0dd8b296c 100644
--- chrome/browser/ui/browser_navigator.cc
+++ chrome/browser/ui/browser_navigator.cc
@@ -263,6 +263,10 @@ std::pair<Browser*, int> GetBrowserAndTabForDisposition(
@ -592,7 +592,7 @@ index 31e27cfa516bc..e98078bf64c61 100644
const BrowserWindow* const browser_window = params.browser->window();
const gfx::NativeWindow native_window =
browser_window ? browser_window->GetNativeWindow()
@@ -551,6 +555,13 @@ std::unique_ptr<content::WebContents> CreateTargetContents(
@@ -553,6 +557,13 @@ std::unique_ptr<content::WebContents> CreateTargetContents(
std::unique_ptr<WebContents> target_contents =
WebContents::Create(create_params);

View File

@ -34,7 +34,7 @@ index 4007e26f780c3..26d0d492cf176 100644
WebViewGuestDelegate* ChromeExtensionsAPIClient::CreateWebViewGuestDelegate(
diff --git chrome/browser/extensions/api/tabs/tabs_api.cc chrome/browser/extensions/api/tabs/tabs_api.cc
index 723e68fdb68e0..604989e6bfd1a 100644
index cbfeb699bb92c..259c9b9d5938b 100644
--- chrome/browser/extensions/api/tabs/tabs_api.cc
+++ chrome/browser/extensions/api/tabs/tabs_api.cc
@@ -1552,7 +1552,7 @@ ExtensionFunction::ResponseAction TabsUpdateFunction::Run() {
@ -73,23 +73,18 @@ index 723e68fdb68e0..604989e6bfd1a 100644
int opener_id = *params->update_properties.opener_tab_id;
WebContents* opener_contents = nullptr;
if (opener_id == tab_id) {
@@ -1638,11 +1638,11 @@ ExtensionFunction::ResponseAction TabsUpdateFunction::Run() {
@@ -1637,7 +1637,7 @@ ExtensionFunction::ResponseAction TabsUpdateFunction::Run() {
->SetAutoDiscardable(state);
}
const bool contents_in_an_uneditable_saved_group =
- contents && ExtensionTabUtil::TabIsInSavedTabGroup(
+ browser && contents && ExtensionTabUtil::TabIsInSavedTabGroup(
web_contents_, browser->tab_strip_model()) &&
!ExtensionHasLockedFullscreenPermission(extension());
- if (params->update_properties.pinned) {
+ if (tab_strip && params->update_properties.pinned) {
// Pinning will result in changes to the tabs index/group affiliation in
// some cases, Throw an error if a tab is attempting to be pinned.
if (contents_in_an_uneditable_saved_group) {
@@ -1673,8 +1673,9 @@ ExtensionFunction::ResponseAction TabsUpdateFunction::Run() {
}
// Bug fix for crbug.com/1197888. Don't let the extension update the tab if
// the user is dragging tabs.
if (!ExtensionTabUtil::IsTabStripEditable()) {
@@ -1658,8 +1658,9 @@ ExtensionFunction::ResponseAction TabsUpdateFunction::Run() {
// Navigate the tab to a new location if the url is different.
if (params->update_properties.url) {
std::string updated_url = *params->update_properties.url;
- if (browser->profile()->IsIncognitoProfile() &&
- !IsURLAllowedInIncognito(GURL(updated_url), browser->profile())) {
@ -99,7 +94,7 @@ index 723e68fdb68e0..604989e6bfd1a 100644
return RespondNow(Error(ErrorUtils::FormatErrorMessage(
tabs_constants::kURLsNotAllowedInIncognitoError, updated_url)));
}
@@ -1688,7 +1689,7 @@ ExtensionFunction::ResponseAction TabsUpdateFunction::Run() {
@@ -1673,7 +1674,7 @@ ExtensionFunction::ResponseAction TabsUpdateFunction::Run() {
return RespondNow(Error(std::move(error)));
}
@ -109,7 +104,7 @@ index 723e68fdb68e0..604989e6bfd1a 100644
current_url, updated_url, js_callstack());
}
diff --git chrome/browser/extensions/extension_tab_util.cc chrome/browser/extensions/extension_tab_util.cc
index 9d33f958ae540..40dc75ebc88b6 100644
index c630431022688..534c6f9e52726 100644
--- chrome/browser/extensions/extension_tab_util.cc
+++ chrome/browser/extensions/extension_tab_util.cc
@@ -18,6 +18,7 @@
@ -131,7 +126,7 @@ index 9d33f958ae540..40dc75ebc88b6 100644
using content::NavigationEntry;
using content::WebContents;
using extensions::mojom::APIPermissionID;
@@ -758,6 +763,20 @@ bool ExtensionTabUtil::GetTabById(int tab_id,
@@ -748,6 +753,20 @@ bool ExtensionTabUtil::GetTabById(int tab_id,
}
}

View File

@ -0,0 +1,27 @@
diff --git chrome/browser/task_manager/providers/render_process_host_task_provider.cc chrome/browser/task_manager/providers/render_process_host_task_provider.cc
index 11b05cbfc6077..45a5b11158a21 100644
--- chrome/browser/task_manager/providers/render_process_host_task_provider.cc
+++ chrome/browser/task_manager/providers/render_process_host_task_provider.cc
@@ -110,18 +110,14 @@ void RenderProcessHostTaskProvider::OnRenderProcessHostCreated(
void RenderProcessHostTaskProvider::RenderProcessExited(
content::RenderProcessHost* host,
const content::ChildProcessTerminationInfo& info) {
- if (is_updating_) {
- DeleteTask(host->GetID());
- host_observation_.RemoveObservation(host);
- }
+ DeleteTask(host->GetID());
+ host_observation_.RemoveObservation(host);
}
void RenderProcessHostTaskProvider::RenderProcessHostDestroyed(
content::RenderProcessHost* host) {
- if (is_updating_) {
- DeleteTask(host->GetID());
- host_observation_.RemoveObservation(host);
- }
+ DeleteTask(host->GetID());
+ host_observation_.RemoveObservation(host);
}
} // namespace task_manager

View File

@ -397,7 +397,7 @@ index 14a8a70d853f6..bf81594947886 100644
// regenerated.
bool RegenerateFrameOnThemeChange(BrowserThemeChangeType theme_change_type);
diff --git chrome/browser/ui/views/frame/browser_view.cc chrome/browser/ui/views/frame/browser_view.cc
index 79a944bab28e1..1c236bd829c05 100644
index d775394c47cf5..10f089b2389b3 100644
--- chrome/browser/ui/views/frame/browser_view.cc
+++ chrome/browser/ui/views/frame/browser_view.cc
@@ -366,10 +366,6 @@ constexpr base::FeatureParam<base::TimeDelta> kLoadingTabAnimationFrameDelay = {
@ -411,7 +411,7 @@ index 79a944bab28e1..1c236bd829c05 100644
#if BUILDFLAG(IS_CHROMEOS_ASH)
// UMA histograms that record animation smoothness for tab loading animation.
constexpr char kTabLoadingSmoothnessHistogramName[] =
@@ -708,6 +704,14 @@ class BrowserViewLayoutDelegateImpl : public BrowserViewLayoutDelegate {
@@ -750,6 +746,14 @@ class BrowserViewLayoutDelegateImpl : public BrowserViewLayoutDelegate {
return browser_view_->frame()->GetTopInset() - browser_view_->y();
}
@ -426,7 +426,7 @@ index 79a944bab28e1..1c236bd829c05 100644
bool IsToolbarVisible() const override {
return browser_view_->IsToolbarVisible();
}
@@ -859,11 +863,21 @@ class BrowserView::AccessibilityModeObserver : public ui::AXModeObserver {
@@ -901,11 +905,21 @@ class BrowserView::AccessibilityModeObserver : public ui::AXModeObserver {
///////////////////////////////////////////////////////////////////////////////
// BrowserView, public:
@ -449,7 +449,7 @@ index 79a944bab28e1..1c236bd829c05 100644
SetShowIcon(
::ShouldShowWindowIcon(browser_.get(), AppUsesWindowControlsOverlay()));
@@ -953,8 +967,15 @@ BrowserView::BrowserView(std::unique_ptr<Browser> browser)
@@ -995,8 +1009,15 @@ BrowserView::BrowserView(std::unique_ptr<Browser> browser)
contents_container->SetLayoutManager(std::make_unique<ContentsLayoutManager>(
devtools_web_view_, contents_web_view_, watermark_view_));
@ -467,7 +467,7 @@ index 79a944bab28e1..1c236bd829c05 100644
contents_separator_ =
top_container_->AddChildView(std::make_unique<ContentsSeparator>());
@@ -1035,7 +1056,9 @@ void BrowserView::ToggleCompactModeUI() {
@@ -1077,7 +1098,9 @@ void BrowserView::ToggleCompactModeUI() {
}
BrowserView::~BrowserView() {
@ -477,7 +477,7 @@ index 79a944bab28e1..1c236bd829c05 100644
// Destroy the top controls slide controller first as it depends on the
// tabstrip model and the browser frame.
@@ -1043,7 +1066,9 @@ BrowserView::~BrowserView() {
@@ -1085,7 +1108,9 @@ BrowserView::~BrowserView() {
// All the tabs should have been destroyed already. If we were closed by the
// OS with some tabs than the NativeBrowserFrame should have destroyed them.
@ -487,7 +487,7 @@ index 79a944bab28e1..1c236bd829c05 100644
// Stop the animation timer explicitly here to avoid running it in a nested
// message loop, which may run by Browser destructor.
@@ -1052,17 +1077,18 @@ BrowserView::~BrowserView() {
@@ -1094,17 +1119,18 @@ BrowserView::~BrowserView() {
// Immersive mode may need to reparent views before they are removed/deleted.
immersive_mode_controller_.reset();
@ -510,7 +510,7 @@ index 79a944bab28e1..1c236bd829c05 100644
// `watermark_view_` is a raw pointer to a child view, so it needs to be set
// to null before `RemoveAllChildViews()` is called to avoid dangling.
@@ -1622,6 +1648,13 @@ gfx::Point BrowserView::GetThemeOffsetFromBrowserView() const {
@@ -1664,6 +1690,13 @@ gfx::Point BrowserView::GetThemeOffsetFromBrowserView() const {
ThemeProperties::kFrameHeightAboveTabs - browser_view_origin.y());
}
@ -524,7 +524,7 @@ index 79a944bab28e1..1c236bd829c05 100644
// static:
BrowserView::DevToolsDockedPlacement BrowserView::GetDevToolsDockedPlacement(
const gfx::Rect& contents_webview_bounds,
@@ -2036,9 +2069,14 @@ void BrowserView::OnExclusiveAccessUserInput() {
@@ -2078,9 +2111,14 @@ void BrowserView::OnExclusiveAccessUserInput() {
bool BrowserView::ShouldHideUIForFullscreen() const {
// Immersive mode needs UI for the slide-down top panel.
@ -540,7 +540,7 @@ index 79a944bab28e1..1c236bd829c05 100644
return frame_->GetFrameView()->ShouldHideTopUIForFullscreen();
}
@@ -3212,7 +3250,8 @@ views::View* BrowserView::GetTopContainer() {
@@ -3260,7 +3298,8 @@ views::View* BrowserView::GetTopContainer() {
}
DownloadBubbleUIController* BrowserView::GetDownloadBubbleUIController() {
@ -550,7 +550,7 @@ index 79a944bab28e1..1c236bd829c05 100644
if (auto* download_button = toolbar_button_provider_->GetDownloadButton())
return download_button->bubble_controller();
return nullptr;
@@ -3767,7 +3806,8 @@ void BrowserView::ReparentTopContainerForEndOfImmersive() {
@@ -3815,7 +3854,8 @@ void BrowserView::ReparentTopContainerForEndOfImmersive() {
if (top_container()->parent() == this)
return;
@ -560,7 +560,7 @@ index 79a944bab28e1..1c236bd829c05 100644
top_container()->DestroyLayer();
AddChildViewAt(top_container(), 0);
EnsureFocusOrder();
@@ -4254,11 +4294,38 @@ void BrowserView::GetAccessiblePanes(std::vector<views::View*>* panes) {
@@ -4302,11 +4342,38 @@ void BrowserView::GetAccessiblePanes(std::vector<views::View*>* panes) {
bool BrowserView::ShouldDescendIntoChildForEventHandling(
gfx::NativeView child,
const gfx::Point& location) {
@ -601,7 +601,7 @@ index 79a944bab28e1..1c236bd829c05 100644
// Draggable regions are defined relative to the web contents.
gfx::Point point_in_contents_web_view_coords(location);
views::View::ConvertPointToTarget(GetWidget()->GetRootView(),
@@ -4267,7 +4334,7 @@ bool BrowserView::ShouldDescendIntoChildForEventHandling(
@@ -4315,7 +4382,7 @@ bool BrowserView::ShouldDescendIntoChildForEventHandling(
// Draggable regions should be ignored for clicks into any browser view's
// owned widgets, for example alerts, permission prompts or find bar.
@ -610,7 +610,7 @@ index 79a944bab28e1..1c236bd829c05 100644
point_in_contents_web_view_coords.x(),
point_in_contents_web_view_coords.y()) ||
WidgetOwnedByAnchorContainsPoint(point_in_contents_web_view_coords);
@@ -4378,8 +4445,10 @@ void BrowserView::Layout(PassKey) {
@@ -4426,8 +4493,10 @@ void BrowserView::Layout(PassKey) {
// TODO(jamescook): Why was this in the middle of layout code?
toolbar_->location_bar()->omnibox_view()->SetFocusBehavior(
@ -623,7 +623,7 @@ index 79a944bab28e1..1c236bd829c05 100644
// Some of the situations when the BrowserView is laid out are:
// - Enter/exit immersive fullscreen mode.
@@ -4445,6 +4514,11 @@ void BrowserView::AddedToWidget() {
@@ -4493,6 +4562,11 @@ void BrowserView::AddedToWidget() {
SetThemeProfileForWindow(GetNativeWindow(), browser_->profile());
#endif
@ -635,7 +635,7 @@ index 79a944bab28e1..1c236bd829c05 100644
toolbar_->Init();
// TODO(pbos): Investigate whether the side panels should be creatable when
@@ -4487,13 +4561,9 @@ void BrowserView::AddedToWidget() {
@@ -4535,13 +4609,9 @@ void BrowserView::AddedToWidget() {
EnsureFocusOrder();
@ -651,7 +651,7 @@ index 79a944bab28e1..1c236bd829c05 100644
using_native_frame_ = frame_->ShouldUseNativeFrame();
MaybeInitializeWebUITabStrip();
@@ -4857,7 +4927,8 @@ void BrowserView::ProcessFullscreen(bool fullscreen, const int64_t display_id) {
@@ -4905,7 +4975,8 @@ void BrowserView::ProcessFullscreen(bool fullscreen, const int64_t display_id) {
// Undo our anti-jankiness hacks and force a re-layout.
in_process_fullscreen_ = false;
ToolbarSizeChanged(false);
@ -661,7 +661,7 @@ index 79a944bab28e1..1c236bd829c05 100644
}
void BrowserView::RequestFullscreen(bool fullscreen, int64_t display_id) {
@@ -5361,6 +5432,8 @@ Profile* BrowserView::GetProfile() {
@@ -5409,6 +5480,8 @@ Profile* BrowserView::GetProfile() {
}
void BrowserView::UpdateUIForTabFullscreen() {
@ -670,7 +670,7 @@ index 79a944bab28e1..1c236bd829c05 100644
frame()->GetFrameView()->UpdateFullscreenTopUI();
}
@@ -5383,6 +5456,8 @@ void BrowserView::HideDownloadShelf() {
@@ -5431,6 +5504,8 @@ void BrowserView::HideDownloadShelf() {
}
bool BrowserView::CanUserExitFullscreen() const {
@ -721,7 +721,7 @@ index bff67fba31480..bf3c87a126457 100644
// Do not friend BrowserViewLayout. Use the BrowserViewLayoutDelegate
// interface to keep these two classes decoupled and testable.
diff --git chrome/browser/ui/views/frame/browser_view_layout.cc chrome/browser/ui/views/frame/browser_view_layout.cc
index 7359b0457bf17..e661e2af050f0 100644
index 80dcf5b08c67c..d0aef3fc40b07 100644
--- chrome/browser/ui/views/frame/browser_view_layout.cc
+++ chrome/browser/ui/views/frame/browser_view_layout.cc
@@ -53,6 +53,10 @@
@ -755,7 +755,7 @@ index 7359b0457bf17..e661e2af050f0 100644
return gfx::Point(middle_x - size.width() / 2, top);
}
@@ -151,7 +159,7 @@ class BrowserViewLayout::WebContentsModalDialogHostViews
@@ -162,7 +170,7 @@ class BrowserViewLayout::WebContentsModalDialogHostViews
// universally.
views::View* view = browser_view_layout_->contents_container_;
gfx::Rect content_area = view->ConvertRectToWidget(view->GetLocalBounds());
@ -764,7 +764,7 @@ index 7359b0457bf17..e661e2af050f0 100644
return gfx::Size(content_area.width(), content_area.bottom() - top);
#endif
}
@@ -181,6 +189,13 @@ class BrowserViewLayout::WebContentsModalDialogHostViews
@@ -192,6 +200,13 @@ class BrowserViewLayout::WebContentsModalDialogHostViews
return host_widget ? host_widget->GetNativeView() : nullptr;
}
@ -778,7 +778,7 @@ index 7359b0457bf17..e661e2af050f0 100644
// Add/remove observer.
void AddObserver(ModalDialogHostObserver* observer) override {
observer_list_.AddObserver(observer);
@@ -502,6 +517,8 @@ void BrowserViewLayout::Layout(views::View* browser_view) {
@@ -513,6 +528,8 @@ void BrowserViewLayout::Layout(views::View* browser_view) {
if (exclusive_access_bubble)
exclusive_access_bubble->RepositionIfVisible();
@ -787,7 +787,7 @@ index 7359b0457bf17..e661e2af050f0 100644
// Adjust any hosted dialogs if the browser's dialog hosting bounds changed.
const gfx::Rect dialog_bounds(dialog_host_->GetDialogPosition(gfx::Size()),
dialog_host_->GetMaximumDialogSize());
@@ -515,6 +532,7 @@ void BrowserViewLayout::Layout(views::View* browser_view) {
@@ -526,6 +543,7 @@ void BrowserViewLayout::Layout(views::View* browser_view) {
latest_dialog_bounds_in_screen_ = dialog_bounds_in_screen;
dialog_host_->NotifyPositionRequiresUpdate();
}
@ -795,7 +795,7 @@ index 7359b0457bf17..e661e2af050f0 100644
}
gfx::Size BrowserViewLayout::GetPreferredSize(
@@ -656,6 +674,13 @@ int BrowserViewLayout::LayoutWebUITabStrip(int top) {
@@ -667,6 +685,13 @@ int BrowserViewLayout::LayoutWebUITabStrip(int top) {
int BrowserViewLayout::LayoutToolbar(int top) {
TRACE_EVENT0("ui", "BrowserViewLayout::LayoutToolbar");

View File

@ -56,10 +56,10 @@ index f1030a744809c..c222a209949e6 100644
return nullptr;
}
diff --git content/browser/renderer_host/render_widget_host_impl.cc content/browser/renderer_host/render_widget_host_impl.cc
index c77a3fa9a247c..611baceed3883 100644
index 4b7a2ab4833ce..bc3b1745875fd 100644
--- content/browser/renderer_host/render_widget_host_impl.cc
+++ content/browser/renderer_host/render_widget_host_impl.cc
@@ -3190,6 +3190,11 @@ void RenderWidgetHostImpl::DecrementInFlightEventCount(
@@ -3191,6 +3191,11 @@ void RenderWidgetHostImpl::DecrementInFlightEventCount(
}
}

View File

@ -1,5 +1,5 @@
diff --git ui/base/resource/resource_bundle.cc ui/base/resource/resource_bundle.cc
index 7c222473c1b21..45ee9ed945f1d 100644
index c63a9c42f686a..b10a1a0444267 100644
--- ui/base/resource/resource_bundle.cc
+++ ui/base/resource/resource_bundle.cc
@@ -931,6 +931,12 @@ ResourceBundle::ResourceBundle(Delegate* delegate)

View File

@ -1,5 +1,5 @@
diff --git content/browser/renderer_host/render_widget_host_view_aura.cc content/browser/renderer_host/render_widget_host_view_aura.cc
index ea5a519007ffd..1bb591bba1796 100644
index 9e1bc80a3f131..88fae6a5664ff 100644
--- content/browser/renderer_host/render_widget_host_view_aura.cc
+++ content/browser/renderer_host/render_widget_host_view_aura.cc
@@ -6,6 +6,7 @@
@ -18,7 +18,7 @@ index ea5a519007ffd..1bb591bba1796 100644
#include "content/public/common/page_visibility_state.h"
#include "services/service_manager/public/cpp/interface_provider.h"
#include "third_party/blink/public/common/input/web_input_event.h"
@@ -754,10 +756,12 @@ gfx::Rect RenderWidgetHostViewAura::GetViewBounds() {
@@ -758,10 +760,12 @@ gfx::Rect RenderWidgetHostViewAura::GetViewBounds() {
void RenderWidgetHostViewAura::UpdateBackgroundColor() {
CHECK(GetBackgroundColor());
@ -35,7 +35,7 @@ index ea5a519007ffd..1bb591bba1796 100644
}
#if BUILDFLAG(IS_WIN)
@@ -2371,6 +2375,16 @@ void RenderWidgetHostViewAura::CreateAuraWindow(aura::client::WindowType type) {
@@ -2394,6 +2398,16 @@ void RenderWidgetHostViewAura::CreateAuraWindow(aura::client::WindowType type) {
window_->layer()->SetColor(GetBackgroundColor() ? *GetBackgroundColor()
: SK_ColorWHITE);
UpdateFrameSinkIdRegistration();

View File

@ -1,8 +1,8 @@
diff --git ui/views/controls/textfield/textfield.cc ui/views/controls/textfield/textfield.cc
index 404bb1abdfa68..dd9ed220b07f6 100644
index ca0720729d433..6aa7907ca7c28 100644
--- ui/views/controls/textfield/textfield.cc
+++ ui/views/controls/textfield/textfield.cc
@@ -3016,6 +3016,10 @@ void Textfield::OnCursorBlinkTimerFired() {
@@ -3006,6 +3006,10 @@ void Textfield::OnCursorBlinkTimerFired() {
void Textfield::OnEnabledChanged() {
if (GetInputMethod())
GetInputMethod()->OnTextInputTypeChanged(this);

View File

@ -23,7 +23,7 @@ index cef40af382b1e..a2cf4691edc37 100644
case ui::SHOW_STATE_END:
return ui::SHOW_STATE_NORMAL;
diff --git components/sessions/core/session_service_commands.cc components/sessions/core/session_service_commands.cc
index 5cd1fb6938b07..3eec7d48690ca 100644
index fc9d96c12b063..3fa0ab80926b3 100644
--- components/sessions/core/session_service_commands.cc
+++ components/sessions/core/session_service_commands.cc
@@ -165,9 +165,10 @@ enum PersistedWindowShowState {

View File

@ -145,11 +145,36 @@ void WindowCreateMaximizedImpl(CefRefPtr<CefWaitableEvent> event) {
TestWindowDelegate::RunTest(event, std::move(config));
}
#if defined(OS_MAC)
void WindowFullscreenCreationComplete(CefRefPtr<CefWindow> window,
size_t count) {
EXPECT_FALSE(window->IsMinimized());
EXPECT_EQ(window->IsFullscreen(), window->IsMaximized());
if (window->IsFullscreen()) {
EXPECT_EQ(1U, count);
window->SetFullscreen(false);
} else {
EXPECT_EQ(2U, count);
// End the test by closing the Window.
window->Close();
}
}
#endif
void WindowCreateFullscreenImpl(CefRefPtr<CefWaitableEvent> event) {
auto config = std::make_unique<TestWindowDelegate::Config>();
config->initial_show_state = CEF_SHOW_STATE_FULLSCREEN;
config->on_window_created =
base::BindOnce(RunWindowShow, config->initial_show_state);
#if defined(OS_MAC)
// On macOS, destroying a fullscreen window can take a long time.
// To prevent the next test from starting before the window is fully closed,
// we need to exit fullscreen mode before closing the window.
config->on_window_fullscreen_transition_complete =
base::BindRepeating(WindowFullscreenCreationComplete);
config->close_window = false;
#endif
TestWindowDelegate::RunTest(event, std::move(config));
}
@ -215,9 +240,9 @@ void CreateBoxLayout(CefRefPtr<CefWindow> parent) {
// The children should each take up 50% of the client area.
ExpectCloseRects(CefRect(0, 0, kWSize, kWSize / 2), panel_child1->GetBounds(),
2);
3);
ExpectCloseRects(CefRect(0, kWSize / 2, kWSize, kWSize / 2),
panel_child2->GetBounds(), 2);
panel_child2->GetBounds(), 3);
}
void RunWindowLayoutAndCoords(CefRefPtr<CefWindow> window) {
@ -242,7 +267,7 @@ void RunWindowLayoutAndCoords(CefRefPtr<CefWindow> window) {
EXPECT_TRUE(view2->ConvertPointToScreen(point));
ExpectClosePoints(CefPoint(client_bounds_in_screen.x,
client_bounds_in_screen.y + kWSize / 2),
point, 1);
point, 3);
// Test view from screen coordinate conversions.
point = CefPoint(client_bounds_in_screen.x, client_bounds_in_screen.y);
@ -251,7 +276,7 @@ void RunWindowLayoutAndCoords(CefRefPtr<CefWindow> window) {
point = CefPoint(client_bounds_in_screen.x,
client_bounds_in_screen.y + kWSize / 2);
EXPECT_TRUE(view2->ConvertPointFromScreen(point));
ExpectClosePoints(CefPoint(0, 0), point, 1);
ExpectClosePoints(CefPoint(0, 0), point, 3);
// Test view to window coordinate conversions.
point = CefPoint(0, 0);
@ -259,7 +284,7 @@ void RunWindowLayoutAndCoords(CefRefPtr<CefWindow> window) {
EXPECT_EQ(CefPoint(0, 0), point);
point = CefPoint(0, 0);
EXPECT_TRUE(view2->ConvertPointToWindow(point));
ExpectClosePoints(CefPoint(0, kWSize / 2), point, 1);
ExpectClosePoints(CefPoint(0, kWSize / 2), point, 3);
// Test view from window coordinate conversions.
point = CefPoint(0, 0);
@ -267,23 +292,23 @@ void RunWindowLayoutAndCoords(CefRefPtr<CefWindow> window) {
EXPECT_EQ(CefPoint(0, 0), point);
point = CefPoint(0, kWSize / 2);
EXPECT_TRUE(view2->ConvertPointFromWindow(point));
ExpectClosePoints(CefPoint(0, 0), point, 1);
ExpectClosePoints(CefPoint(0, 0), point, 3);
// Test view to view coordinate conversions.
point = CefPoint(0, 0);
EXPECT_TRUE(view1->ConvertPointToView(view2, point));
ExpectClosePoints(CefPoint(0, -kWSize / 2), point, 1);
ExpectClosePoints(CefPoint(0, -kWSize / 2), point, 3);
point = CefPoint(0, 0);
EXPECT_TRUE(view2->ConvertPointToView(view1, point));
ExpectClosePoints(CefPoint(0, kWSize / 2), point, 1);
ExpectClosePoints(CefPoint(0, kWSize / 2), point, 3);
// Test view from view coordinate conversions.
point = CefPoint(0, -kWSize / 2);
EXPECT_TRUE(view1->ConvertPointFromView(view2, point));
ExpectClosePoints(CefPoint(0, 0), point, 1);
ExpectClosePoints(CefPoint(0, 0), point, 3);
point = CefPoint(0, kWSize / 2);
EXPECT_TRUE(view2->ConvertPointFromView(view1, point));
ExpectClosePoints(CefPoint(0, 0), point, 1);
ExpectClosePoints(CefPoint(0, 0), point, 3);
CefRefPtr<CefDisplay> display = window->GetDisplay();
EXPECT_TRUE(display.get());
@ -299,7 +324,7 @@ void RunWindowLayoutAndCoords(CefRefPtr<CefWindow> window) {
point = CefPoint(client_bounds_in_screen.x, client_bounds_in_screen.y);
const auto pixels = CefDisplay::ConvertScreenPointToPixels(point);
const auto dip = CefDisplay::ConvertScreenPointFromPixels(pixels);
EXPECT_EQ(point, dip);
ExpectClosePoints(point, dip, 1);
}
void WindowLayoutAndCoordsImpl(CefRefPtr<CefWaitableEvent> event) {