mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-02-16 12:10:41 +01:00
Compare commits
3 Commits
3cd94714f7
...
2be337fb12
Author | SHA1 | Date | |
---|---|---|---|
|
2be337fb12 | ||
|
7e5ee97d2e | ||
|
6090afb12e |
@ -7,5 +7,5 @@
|
||||
# https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding
|
||||
|
||||
{
|
||||
'chromium_checkout': 'refs/tags/126.0.6478.26'
|
||||
'chromium_checkout': 'refs/tags/126.0.6478.57'
|
||||
}
|
||||
|
@ -3463,7 +3463,7 @@ typedef enum {
|
||||
CEF_CPAIT_COOKIE_CONTROLS,
|
||||
CEF_CPAIT_FILE_SYSTEM_ACCESS,
|
||||
CEF_CPAIT_FIND,
|
||||
CEF_CPAIT_HIGH_EFFICIENCY,
|
||||
CEF_CPAIT_MEMORY_SAVER,
|
||||
CEF_CPAIT_INTENT_PICKER,
|
||||
CEF_CPAIT_LOCAL_CARD_MIGRATION,
|
||||
CEF_CPAIT_MANAGE_PASSWORDS,
|
||||
@ -3487,7 +3487,8 @@ typedef enum {
|
||||
CEF_CPAIT_PRICE_INSIGHTS,
|
||||
CEF_CPAIT_PRICE_READ_ANYTHING,
|
||||
CEF_CPAIT_PRODUCT_SPECIFICATIONS,
|
||||
CEF_CPAIT_MAX_VALUE = CEF_CPAIT_PRODUCT_SPECIFICATIONS,
|
||||
CEF_CPAIT_LENS_OVERLAY,
|
||||
CEF_CPAIT_MAX_VALUE = CEF_CPAIT_LENS_OVERLAY,
|
||||
} cef_chrome_page_action_icon_type_t;
|
||||
|
||||
///
|
||||
|
@ -152,6 +152,12 @@ class CefContextMenuObserver : public RenderViewContextMenuObserver,
|
||||
}
|
||||
|
||||
void OnMenuClosed() override {
|
||||
// May be called multiple times. For example, if the menu runs and is
|
||||
// additionally reset via MaybeResetContextMenu.
|
||||
if (!handler_) {
|
||||
return;
|
||||
}
|
||||
|
||||
handler_->OnContextMenuDismissed(browser_, GetFrame());
|
||||
model_->Detach();
|
||||
|
||||
@ -203,17 +209,25 @@ class CefContextMenuObserver : public RenderViewContextMenuObserver,
|
||||
base::BindOnce(&CefContextMenuObserver::ExecuteCommandCallback,
|
||||
weak_ptr_factory_.GetWeakPtr())));
|
||||
|
||||
bool handled = handler_->RunContextMenu(browser_, GetFrame(), params_,
|
||||
model_, callbackImpl.get());
|
||||
if (!handled && callbackImpl->IsDisconnected()) {
|
||||
is_handled_ = handler_->RunContextMenu(browser_, GetFrame(), params_,
|
||||
model_, callbackImpl.get());
|
||||
if (!is_handled_ && callbackImpl->IsDisconnected()) {
|
||||
LOG(ERROR) << "Should return true from RunContextMenu when executing the "
|
||||
"callback";
|
||||
handled = true;
|
||||
is_handled_ = true;
|
||||
}
|
||||
if (!handled) {
|
||||
if (!is_handled_) {
|
||||
callbackImpl->Disconnect();
|
||||
}
|
||||
return handled;
|
||||
return is_handled_;
|
||||
}
|
||||
|
||||
void MaybeResetContextMenu() {
|
||||
// Don't reset the menu when the client is using custom handling. It will be
|
||||
// reset via ExecuteCommandCallback instead.
|
||||
if (!is_handled_) {
|
||||
OnMenuClosed();
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
@ -282,6 +296,8 @@ class CefContextMenuObserver : public RenderViewContextMenuObserver,
|
||||
using ItemInfoMap = std::map<int, ItemInfo>;
|
||||
ItemInfoMap iteminfomap_;
|
||||
|
||||
bool is_handled_ = false;
|
||||
|
||||
base::WeakPtrFactory<CefContextMenuObserver> weak_ptr_factory_{this};
|
||||
};
|
||||
|
||||
@ -336,4 +352,13 @@ bool HandleContextMenu(content::WebContents* opener,
|
||||
return false;
|
||||
}
|
||||
|
||||
void MaybeResetContextMenu(content::WebContents* opener) {
|
||||
auto browser = CefBrowserHostBase::GetBrowserForContents(opener);
|
||||
if (browser && browser->context_menu_observer()) {
|
||||
return static_cast<CefContextMenuObserver*>(
|
||||
browser->context_menu_observer())
|
||||
->MaybeResetContextMenu();
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace context_menu
|
||||
|
@ -21,6 +21,8 @@ void RegisterCallbacks();
|
||||
bool HandleContextMenu(content::WebContents* opener,
|
||||
const content::ContextMenuParams& params);
|
||||
|
||||
void MaybeResetContextMenu(content::WebContents* opener);
|
||||
|
||||
} // namespace context_menu
|
||||
|
||||
#endif // CEF_LIBCEF_BROWSER_CHROME_CHROME_CONTEXT_MENU_HANDLER_H_
|
||||
|
@ -19,4 +19,14 @@ void ChromeWebContentsViewDelegateCef::ShowContextMenu(
|
||||
}
|
||||
|
||||
ChromeWebContentsViewDelegateBase::ShowContextMenu(render_frame_host, params);
|
||||
|
||||
// The menu may not be running in the following cases:
|
||||
// - If the menu is empty (e.g. cleared in OnBeforeContextMenu).
|
||||
// - If the menu is disabled (see e.g. RenderViewContextMenuViews::Show).
|
||||
// - When the above call blocks until the menu is dismissed (macOS behavior).
|
||||
// We explicitly clean up in these cases instead of waiting for OnMenuClosed
|
||||
// which will otherwise never be called for the first 2 cases.
|
||||
if (!IsMenuRunning()) {
|
||||
context_menu::MaybeResetContextMenu(web_contents_);
|
||||
}
|
||||
}
|
||||
|
@ -8,6 +8,8 @@
|
||||
#include "cef/libcef/browser/browser_host_base.h"
|
||||
#include "cef/libcef/browser/chrome/chrome_context_menu_handler.h"
|
||||
#include "cef/libcef/browser/osr/web_contents_view_osr.h"
|
||||
#include "components/renderer_context_menu/context_menu_delegate.h"
|
||||
#include "content/public/browser/web_contents.h"
|
||||
#include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h"
|
||||
|
||||
namespace extensions {
|
||||
@ -42,8 +44,27 @@ bool ChromeMimeHandlerViewGuestDelegateCef::HandleContextMenu(
|
||||
return true;
|
||||
}
|
||||
|
||||
return ChromeMimeHandlerViewGuestDelegate::HandleContextMenu(
|
||||
render_frame_host, params);
|
||||
[[maybe_unused]] bool result =
|
||||
ChromeMimeHandlerViewGuestDelegate::HandleContextMenu(render_frame_host,
|
||||
params);
|
||||
DCHECK(result);
|
||||
|
||||
content::WebContents* web_contents =
|
||||
content::WebContents::FromRenderFrameHost(&render_frame_host);
|
||||
ContextMenuDelegate* menu_delegate =
|
||||
ContextMenuDelegate::FromWebContents(web_contents);
|
||||
|
||||
// The menu may not be running in the following cases:
|
||||
// - If the menu is empty (e.g. cleared in OnBeforeContextMenu).
|
||||
// - If the menu is disabled (see e.g. RenderViewContextMenuViews::Show).
|
||||
// - When the above call blocks until the menu is dismissed (macOS behavior).
|
||||
// We explicitly clean up in these cases instead of waiting for OnMenuClosed
|
||||
// which will otherwise never be called for the first 2 cases.
|
||||
if (!menu_delegate->IsMenuRunning()) {
|
||||
context_menu::MaybeResetContextMenu(owner_web_contents_);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace extensions
|
||||
|
@ -1,5 +1,5 @@
|
||||
diff --git DEPS DEPS
|
||||
index 5183762f9cedc..c691198319e88 100644
|
||||
index 03652696e2e40..b684b58db41ff 100644
|
||||
--- DEPS
|
||||
+++ DEPS
|
||||
@@ -2102,16 +2102,16 @@ deps = {
|
||||
|
@ -1,5 +1,5 @@
|
||||
diff --git base/BUILD.gn base/BUILD.gn
|
||||
index 575149b2f3246..74719a39cf4e4 100644
|
||||
index 4c7130084a91f..c0e00c6fc2636 100644
|
||||
--- base/BUILD.gn
|
||||
+++ base/BUILD.gn
|
||||
@@ -41,6 +41,7 @@ import("//build/nocompile.gni")
|
||||
@ -10,7 +10,7 @@ index 575149b2f3246..74719a39cf4e4 100644
|
||||
import("//testing/libfuzzer/fuzzer_test.gni")
|
||||
import("//testing/test.gni")
|
||||
|
||||
@@ -1525,7 +1526,11 @@ component("base") {
|
||||
@@ -1526,7 +1527,11 @@ component("base") {
|
||||
"hash/md5_constexpr_internal.h",
|
||||
"hash/sha1.h",
|
||||
]
|
||||
@ -23,7 +23,7 @@ index 575149b2f3246..74719a39cf4e4 100644
|
||||
sources += [
|
||||
"hash/md5_nacl.cc",
|
||||
"hash/md5_nacl.h",
|
||||
@@ -1954,6 +1959,12 @@ component("base") {
|
||||
@@ -1955,6 +1960,12 @@ component("base") {
|
||||
defines += [ "COM_INIT_CHECK_HOOK_DISABLED" ]
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
diff --git third_party/blink/public/web/web_element.h third_party/blink/public/web/web_element.h
|
||||
index 103cbab74b515..3b763e5100340 100644
|
||||
index 97a83c2510a8e..426594b26de48 100644
|
||||
--- third_party/blink/public/web/web_element.h
|
||||
+++ third_party/blink/public/web/web_element.h
|
||||
@@ -82,6 +82,9 @@ class BLINK_EXPORT WebElement : public WebNode {
|
||||
@ -13,10 +13,10 @@ index 103cbab74b515..3b763e5100340 100644
|
||||
// Returns true if the element's contenteditable attribute is in the true
|
||||
// state or in the plaintext-only state:
|
||||
diff --git third_party/blink/renderer/core/exported/web_element.cc third_party/blink/renderer/core/exported/web_element.cc
|
||||
index f05470ff9c673..7ffee95e4540b 100644
|
||||
index df64535ec3091..304aa5beb342f 100644
|
||||
--- third_party/blink/renderer/core/exported/web_element.cc
|
||||
+++ third_party/blink/renderer/core/exported/web_element.cc
|
||||
@@ -118,6 +118,24 @@ void WebElement::SetAttribute(const WebString& attr_name,
|
||||
@@ -119,6 +119,24 @@ void WebElement::SetAttribute(const WebString& attr_name,
|
||||
IGNORE_EXCEPTION_FOR_TESTING);
|
||||
}
|
||||
|
||||
|
@ -74,7 +74,7 @@ index e857e2363da9e..3dd4db8ae4267 100644
|
||||
}
|
||||
|
||||
diff --git chrome/browser/ui/BUILD.gn chrome/browser/ui/BUILD.gn
|
||||
index e4c38df62e93e..6956a4a6e19ca 100644
|
||||
index f61a369f16ee3..a0313d74a02ee 100644
|
||||
--- chrome/browser/ui/BUILD.gn
|
||||
+++ chrome/browser/ui/BUILD.gn
|
||||
@@ -8,6 +8,7 @@ import("//build/config/compiler/compiler.gni")
|
||||
@ -113,7 +113,7 @@ index e4c38df62e93e..6956a4a6e19ca 100644
|
||||
"views/apps/app_info_dialog/arc_app_info_links_panel.cc",
|
||||
"views/apps/app_info_dialog/arc_app_info_links_panel.h",
|
||||
"views/apps/chrome_app_window_client_views_chromeos.cc",
|
||||
@@ -5117,8 +5125,6 @@ static_library("ui") {
|
||||
@@ -5118,8 +5126,6 @@ static_library("ui") {
|
||||
"views/accessibility/theme_tracking_non_accessible_image_view.h",
|
||||
"views/apps/app_dialog/app_dialog_view.cc",
|
||||
"views/apps/app_dialog/app_dialog_view.h",
|
||||
@ -122,7 +122,7 @@ index e4c38df62e93e..6956a4a6e19ca 100644
|
||||
"views/apps/app_info_dialog/app_info_dialog_container.cc",
|
||||
"views/apps/app_info_dialog/app_info_dialog_container.h",
|
||||
"views/apps/app_info_dialog/app_info_dialog_views.cc",
|
||||
@@ -6969,6 +6975,7 @@ static_library("ui") {
|
||||
@@ -6972,6 +6978,7 @@ static_library("ui") {
|
||||
if (enable_printing) {
|
||||
deps += [
|
||||
"//components/printing/browser",
|
||||
|
@ -1,5 +1,5 @@
|
||||
diff --git chrome/browser/renderer_context_menu/render_view_context_menu.cc chrome/browser/renderer_context_menu/render_view_context_menu.cc
|
||||
index 4f866d176dccf..c2abc6231c727 100644
|
||||
index de0d60b248414..7eae5ff63383a 100644
|
||||
--- chrome/browser/renderer_context_menu/render_view_context_menu.cc
|
||||
+++ chrome/browser/renderer_context_menu/render_view_context_menu.cc
|
||||
@@ -359,6 +359,18 @@ base::OnceCallback<void(RenderViewContextMenu*)>* GetMenuShownCallback() {
|
||||
@ -60,7 +60,7 @@ index 4f866d176dccf..c2abc6231c727 100644
|
||||
}
|
||||
|
||||
Profile* RenderViewContextMenu::GetProfile() const {
|
||||
@@ -3578,6 +3608,26 @@ void RenderViewContextMenu::RegisterExecutePluginActionCallbackForTesting(
|
||||
@@ -3590,6 +3620,26 @@ void RenderViewContextMenu::RegisterExecutePluginActionCallbackForTesting(
|
||||
execute_plugin_action_callback_ = std::move(cb);
|
||||
}
|
||||
|
||||
@ -123,8 +123,20 @@ index d9f97fbdced53..60a01f70592a3 100644
|
||||
// An observer that handles spelling suggestions, "Add to dictionary", and
|
||||
// "Use enhanced spell check" items.
|
||||
std::unique_ptr<SpellingMenuObserver> spelling_suggestions_menu_observer_;
|
||||
diff --git chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa.h chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa.h
|
||||
index cb51224f9892c..b5a3946999d8f 100644
|
||||
--- chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa.h
|
||||
+++ chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa.h
|
||||
@@ -29,6 +29,7 @@ class RenderViewContextMenuMacCocoa : public RenderViewContextMenuMac {
|
||||
|
||||
// RenderViewContextMenu:
|
||||
void Show() override;
|
||||
+ bool IsRunning() override;
|
||||
|
||||
private:
|
||||
// RenderViewContextMenuViewsMac:
|
||||
diff --git chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa.mm chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa.mm
|
||||
index b130e9768c2d6..049c5fb235d87 100644
|
||||
index b130e9768c2d6..3e46b2fe18d0a 100644
|
||||
--- chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa.mm
|
||||
+++ chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa.mm
|
||||
@@ -68,6 +68,10 @@ RenderViewContextMenuMacCocoa::~RenderViewContextMenuMacCocoa() {
|
||||
@ -138,8 +150,46 @@ index b130e9768c2d6..049c5fb235d87 100644
|
||||
views::Widget* widget = views::Widget::GetTopLevelWidgetForNativeView(
|
||||
source_web_contents_->GetNativeView());
|
||||
|
||||
@@ -93,6 +97,10 @@ void RenderViewContextMenuMacCocoa::Show() {
|
||||
views::ElementTrackerViews::GetContextForWidget(widget));
|
||||
}
|
||||
|
||||
+bool RenderViewContextMenuMacCocoa::IsRunning() {
|
||||
+ return menu_controller_ && [menu_controller_ isMenuOpen];
|
||||
+}
|
||||
+
|
||||
void RenderViewContextMenuMacCocoa::CancelToolkitMenu() {
|
||||
[menu_controller_ cancel];
|
||||
}
|
||||
diff --git chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_remote_cocoa.h chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_remote_cocoa.h
|
||||
index fb86992cee93f..fe674fe471cc4 100644
|
||||
--- chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_remote_cocoa.h
|
||||
+++ chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_remote_cocoa.h
|
||||
@@ -27,6 +27,7 @@ class RenderViewContextMenuMacRemoteCocoa : public RenderViewContextMenuMac {
|
||||
|
||||
// RenderViewContextMenu:
|
||||
void Show() override;
|
||||
+ bool IsRunning() override;
|
||||
|
||||
private:
|
||||
// RenderViewContextMenuViewsMac:
|
||||
diff --git chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_remote_cocoa.mm chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_remote_cocoa.mm
|
||||
index 9f6c5fd44f206..dc50bc909897f 100644
|
||||
--- chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_remote_cocoa.mm
|
||||
+++ chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_remote_cocoa.mm
|
||||
@@ -42,6 +42,10 @@ void RenderViewContextMenuMacRemoteCocoa::Show() {
|
||||
target_view_id_);
|
||||
}
|
||||
|
||||
+bool RenderViewContextMenuMacRemoteCocoa::IsRunning() {
|
||||
+ return runner_ && runner_->IsRunning();
|
||||
+}
|
||||
+
|
||||
void RenderViewContextMenuMacRemoteCocoa::CancelToolkitMenu() {
|
||||
runner_->Cancel();
|
||||
}
|
||||
diff --git chrome/browser/ui/views/renderer_context_menu/render_view_context_menu_views.cc chrome/browser/ui/views/renderer_context_menu/render_view_context_menu_views.cc
|
||||
index c88a77a0b49e2..d1af9a85c4ec6 100644
|
||||
index c88a77a0b49e2..31b7224a36ae8 100644
|
||||
--- chrome/browser/ui/views/renderer_context_menu/render_view_context_menu_views.cc
|
||||
+++ chrome/browser/ui/views/renderer_context_menu/render_view_context_menu_views.cc
|
||||
@@ -149,6 +149,9 @@ void RenderViewContextMenuViews::RunMenuAt(views::Widget* parent,
|
||||
@ -163,6 +213,97 @@ index c88a77a0b49e2..d1af9a85c4ec6 100644
|
||||
if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kKioskMode))
|
||||
return;
|
||||
|
||||
@@ -427,6 +434,11 @@ void RenderViewContextMenuViews::Show() {
|
||||
}
|
||||
}
|
||||
|
||||
+bool RenderViewContextMenuViews::IsRunning() {
|
||||
+ return static_cast<ToolkitDelegateViews*>(toolkit_delegate())
|
||||
+ ->IsMenuRunning();
|
||||
+}
|
||||
+
|
||||
views::Widget* RenderViewContextMenuViews::GetTopLevelWidget() {
|
||||
return views::Widget::GetTopLevelWidgetForNativeView(GetActiveNativeView());
|
||||
}
|
||||
diff --git chrome/browser/ui/views/renderer_context_menu/render_view_context_menu_views.h chrome/browser/ui/views/renderer_context_menu/render_view_context_menu_views.h
|
||||
index 55ba34c417e4a..e92f668868e74 100644
|
||||
--- chrome/browser/ui/views/renderer_context_menu/render_view_context_menu_views.h
|
||||
+++ chrome/browser/ui/views/renderer_context_menu/render_view_context_menu_views.h
|
||||
@@ -45,6 +45,7 @@ class RenderViewContextMenuViews : public RenderViewContextMenu {
|
||||
|
||||
// RenderViewContextMenuBase implementation.
|
||||
void Show() override;
|
||||
+ bool IsRunning() override;
|
||||
|
||||
protected:
|
||||
RenderViewContextMenuViews(content::RenderFrameHost& render_frame_host,
|
||||
diff --git chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views.cc chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views.cc
|
||||
index eb855deeb6040..3ff97b28fa4c6 100644
|
||||
--- chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views.cc
|
||||
+++ chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views.cc
|
||||
@@ -91,6 +91,10 @@ void ChromeWebContentsViewDelegateViews::ShowMenu(
|
||||
context_menu_->Show();
|
||||
}
|
||||
|
||||
+bool ChromeWebContentsViewDelegateViews::IsMenuRunning() {
|
||||
+ return context_menu_ && context_menu_->IsRunning();
|
||||
+}
|
||||
+
|
||||
void ChromeWebContentsViewDelegateViews::ShowContextMenu(
|
||||
content::RenderFrameHost& render_frame_host,
|
||||
const content::ContextMenuParams& params) {
|
||||
diff --git chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views.h chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views.h
|
||||
index 97c98c8738965..96c142806d7b2 100644
|
||||
--- chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views.h
|
||||
+++ chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views.h
|
||||
@@ -55,6 +55,7 @@ class ChromeWebContentsViewDelegateViews
|
||||
content::RenderFrameHost& render_frame_host,
|
||||
const content::ContextMenuParams& params) override;
|
||||
void ShowMenu(std::unique_ptr<RenderViewContextMenuBase> menu) override;
|
||||
+ bool IsMenuRunning() override;
|
||||
|
||||
private:
|
||||
// The context menu is reset every time we show it, but we keep a pointer to
|
||||
diff --git chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views_mac.h chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views_mac.h
|
||||
index 07e5b3613a2df..293282690bd5a 100644
|
||||
--- chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views_mac.h
|
||||
+++ chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views_mac.h
|
||||
@@ -55,6 +55,7 @@ class ChromeWebContentsViewDelegateViewsMac
|
||||
content::RenderFrameHost& render_frame_host,
|
||||
const content::ContextMenuParams& params) override;
|
||||
void ShowMenu(std::unique_ptr<RenderViewContextMenuBase> menu) override;
|
||||
+ bool IsMenuRunning() override;
|
||||
|
||||
private:
|
||||
content::RenderWidgetHostView* GetActiveRenderWidgetHostView() const;
|
||||
diff --git chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views_mac.mm chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views_mac.mm
|
||||
index 0e2cf71973741..e8d9c38b49b6c 100644
|
||||
--- chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views_mac.mm
|
||||
+++ chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views_mac.mm
|
||||
@@ -131,6 +131,10 @@ void ChromeWebContentsViewDelegateViewsMac::ShowMenu(
|
||||
context_menu_->Show();
|
||||
}
|
||||
|
||||
+bool ChromeWebContentsViewDelegateViewsMac::IsMenuRunning() {
|
||||
+ return context_menu_ && context_menu_->IsRunning();
|
||||
+}
|
||||
+
|
||||
content::RenderWidgetHostView*
|
||||
ChromeWebContentsViewDelegateViewsMac::GetActiveRenderWidgetHostView() const {
|
||||
return web_contents_->GetTopLevelRenderWidgetHostView();
|
||||
diff --git components/renderer_context_menu/context_menu_delegate.h components/renderer_context_menu/context_menu_delegate.h
|
||||
index 042428f77f4ad..e4efd98ca45d5 100644
|
||||
--- components/renderer_context_menu/context_menu_delegate.h
|
||||
+++ components/renderer_context_menu/context_menu_delegate.h
|
||||
@@ -45,6 +45,8 @@ class ContextMenuDelegate {
|
||||
// Displays the context menu.
|
||||
virtual void ShowMenu(std::unique_ptr<RenderViewContextMenuBase> menu) = 0;
|
||||
|
||||
+ virtual bool IsMenuRunning() = 0;
|
||||
+
|
||||
private:
|
||||
raw_ptr<content::WebContents> web_contents_ = nullptr;
|
||||
};
|
||||
diff --git components/renderer_context_menu/render_view_context_menu_base.cc components/renderer_context_menu/render_view_context_menu_base.cc
|
||||
index 8e45cecb17039..e40115e23ee82 100644
|
||||
--- components/renderer_context_menu/render_view_context_menu_base.cc
|
||||
@ -186,11 +327,15 @@ index 8e45cecb17039..e40115e23ee82 100644
|
||||
command_executed_ = true;
|
||||
RecordUsedItem(id);
|
||||
diff --git components/renderer_context_menu/render_view_context_menu_base.h components/renderer_context_menu/render_view_context_menu_base.h
|
||||
index 57b288bc885e6..112990e3a9ad3 100644
|
||||
index 57b288bc885e6..9909899e3b5fe 100644
|
||||
--- components/renderer_context_menu/render_view_context_menu_base.h
|
||||
+++ components/renderer_context_menu/render_view_context_menu_base.h
|
||||
@@ -87,6 +87,9 @@ class RenderViewContextMenuBase : public ui::SimpleMenuModel::Delegate,
|
||||
@@ -85,8 +85,13 @@ class RenderViewContextMenuBase : public ui::SimpleMenuModel::Delegate,
|
||||
// Programmatically closes the context menu.
|
||||
void Cancel();
|
||||
|
||||
+ virtual bool IsRunning() = 0;
|
||||
+
|
||||
const ui::SimpleMenuModel& menu_model() const { return menu_model_; }
|
||||
const content::ContextMenuParams& params() const { return params_; }
|
||||
+ content::WebContents* source_web_contents() const {
|
||||
@ -199,7 +344,7 @@ index 57b288bc885e6..112990e3a9ad3 100644
|
||||
|
||||
// Returns true if the specified command id is known and valid for
|
||||
// this menu. If the command is known |enabled| is set to indicate
|
||||
@@ -95,6 +98,9 @@ class RenderViewContextMenuBase : public ui::SimpleMenuModel::Delegate,
|
||||
@@ -95,6 +100,9 @@ class RenderViewContextMenuBase : public ui::SimpleMenuModel::Delegate,
|
||||
|
||||
// SimpleMenuModel::Delegate implementation.
|
||||
bool IsCommandIdChecked(int command_id) const override;
|
||||
@ -246,3 +391,30 @@ index 0527c57abd51c..70bebcbb50461 100644
|
||||
// Called when a user selects the specified context-menu item. This is
|
||||
// only called when the observer returns true for IsCommandIdSupported()
|
||||
// for that |command_id|.
|
||||
diff --git components/renderer_context_menu/views/toolkit_delegate_views.cc components/renderer_context_menu/views/toolkit_delegate_views.cc
|
||||
index 823f044316527..85439bf7ad2eb 100644
|
||||
--- components/renderer_context_menu/views/toolkit_delegate_views.cc
|
||||
+++ components/renderer_context_menu/views/toolkit_delegate_views.cc
|
||||
@@ -30,6 +30,10 @@ void ToolkitDelegateViews::RunMenuAt(views::Widget* parent,
|
||||
anchor_position, type);
|
||||
}
|
||||
|
||||
+bool ToolkitDelegateViews::IsMenuRunning() const {
|
||||
+ return menu_runner_ && menu_runner_->IsRunning();
|
||||
+}
|
||||
+
|
||||
void ToolkitDelegateViews::Init(ui::SimpleMenuModel* menu_model) {
|
||||
menu_adapter_ = std::make_unique<views::MenuModelAdapter>(menu_model);
|
||||
std::unique_ptr<views::MenuItemView> menu_view = menu_adapter_->CreateMenu();
|
||||
diff --git components/renderer_context_menu/views/toolkit_delegate_views.h components/renderer_context_menu/views/toolkit_delegate_views.h
|
||||
index eacdc12813204..9084effdaa121 100644
|
||||
--- components/renderer_context_menu/views/toolkit_delegate_views.h
|
||||
+++ components/renderer_context_menu/views/toolkit_delegate_views.h
|
||||
@@ -39,6 +39,7 @@ class ToolkitDelegateViews : public RenderViewContextMenuBase::ToolkitDelegate {
|
||||
const gfx::Point& point,
|
||||
ui::MenuSourceType type);
|
||||
views::MenuItemView* menu_view() { return menu_view_; }
|
||||
+ bool IsMenuRunning() const;
|
||||
|
||||
protected:
|
||||
// ToolkitDelegate:
|
||||
|
@ -422,7 +422,7 @@ index 3c12614c4d7d2..1dc97ecf5a11e 100644
|
||||
+#endif
|
||||
}
|
||||
diff --git chrome/browser/chrome_content_browser_client.cc chrome/browser/chrome_content_browser_client.cc
|
||||
index 675a9ab64ea08..d0c160a14b2a7 100644
|
||||
index 7acca810b6f4e..cc6e90f9a993e 100644
|
||||
--- chrome/browser/chrome_content_browser_client.cc
|
||||
+++ chrome/browser/chrome_content_browser_client.cc
|
||||
@@ -46,6 +46,7 @@
|
||||
@ -512,7 +512,7 @@ index 675a9ab64ea08..d0c160a14b2a7 100644
|
||||
}
|
||||
|
||||
base::FilePath ChromeContentBrowserClient::GetDefaultDownloadDirectory() {
|
||||
@@ -6592,7 +6599,7 @@ void ChromeContentBrowserClient::OnNetworkServiceCreated(
|
||||
@@ -6598,7 +6605,7 @@ void ChromeContentBrowserClient::OnNetworkServiceCreated(
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -521,7 +521,7 @@ index 675a9ab64ea08..d0c160a14b2a7 100644
|
||||
content::BrowserContext* context,
|
||||
bool in_memory,
|
||||
const base::FilePath& relative_partition_path,
|
||||
@@ -6610,6 +6617,8 @@ void ChromeContentBrowserClient::ConfigureNetworkContextParams(
|
||||
@@ -6616,6 +6623,8 @@ void ChromeContentBrowserClient::ConfigureNetworkContextParams(
|
||||
network_context_params->user_agent = GetUserAgentBasedOnPolicy(context);
|
||||
network_context_params->accept_language = GetApplicationLocale();
|
||||
}
|
||||
@ -530,7 +530,7 @@ index 675a9ab64ea08..d0c160a14b2a7 100644
|
||||
}
|
||||
|
||||
std::vector<base::FilePath>
|
||||
@@ -7732,10 +7741,10 @@ void ChromeContentBrowserClient::OnKeepaliveRequestStarted(
|
||||
@@ -7738,10 +7747,10 @@ void ChromeContentBrowserClient::OnKeepaliveRequestStarted(
|
||||
const auto now = base::TimeTicks::Now();
|
||||
const auto timeout = GetKeepaliveTimerTimeout(context);
|
||||
keepalive_deadline_ = std::max(keepalive_deadline_, now + timeout);
|
||||
@ -543,7 +543,7 @@ index 675a9ab64ea08..d0c160a14b2a7 100644
|
||||
FROM_HERE, keepalive_deadline_ - now,
|
||||
base::BindOnce(
|
||||
&ChromeContentBrowserClient::OnKeepaliveTimerFired,
|
||||
@@ -7754,7 +7763,8 @@ void ChromeContentBrowserClient::OnKeepaliveRequestFinished() {
|
||||
@@ -7760,7 +7769,8 @@ void ChromeContentBrowserClient::OnKeepaliveRequestFinished() {
|
||||
--num_keepalive_requests_;
|
||||
if (num_keepalive_requests_ == 0) {
|
||||
DVLOG(1) << "Stopping the keepalive timer";
|
||||
@ -553,7 +553,7 @@ index 675a9ab64ea08..d0c160a14b2a7 100644
|
||||
// This deletes the keep alive handle attached to the timer function and
|
||||
// unblock the shutdown sequence.
|
||||
}
|
||||
@@ -7923,7 +7933,7 @@ void ChromeContentBrowserClient::OnKeepaliveTimerFired(
|
||||
@@ -7929,7 +7939,7 @@ void ChromeContentBrowserClient::OnKeepaliveTimerFired(
|
||||
const auto now = base::TimeTicks::Now();
|
||||
const auto then = keepalive_deadline_;
|
||||
if (now < then) {
|
||||
|
@ -931,10 +931,10 @@ index b862ceac7225d..9575440a77d67 100644
|
||||
LocationBarView* location_bar_view = browser_view_->GetLocationBarView();
|
||||
CHECK(location_bar_view);
|
||||
diff --git chrome/browser/ui/views/page_action/page_action_icon_controller.cc chrome/browser/ui/views/page_action/page_action_icon_controller.cc
|
||||
index ad0147f9b8fe8..80aea21bb605a 100644
|
||||
index e9bc6c28db30f..38ddcb98139b0 100644
|
||||
--- chrome/browser/ui/views/page_action/page_action_icon_controller.cc
|
||||
+++ chrome/browser/ui/views/page_action/page_action_icon_controller.cc
|
||||
@@ -96,6 +96,12 @@ void PageActionIconController::Init(const PageActionIconParams& params,
|
||||
@@ -97,6 +97,12 @@ void PageActionIconController::Init(const PageActionIconParams& params,
|
||||
};
|
||||
|
||||
for (PageActionIconType type : params.types_enabled) {
|
||||
|
@ -1,5 +1,5 @@
|
||||
diff --git tools/gritsettings/resource_ids.spec tools/gritsettings/resource_ids.spec
|
||||
index f3ca54d7277ac..16a52e64f3078 100644
|
||||
index 06d0495497697..320803be93f6b 100644
|
||||
--- tools/gritsettings/resource_ids.spec
|
||||
+++ tools/gritsettings/resource_ids.spec
|
||||
@@ -1312,6 +1312,15 @@
|
||||
|
@ -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 a59f9bacf36ef..c432e25d58862 100644
|
||||
index 66a06bba31b24..e341d0f50a250 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 @@
|
||||
@ -35,7 +35,7 @@ index a59f9bacf36ef..c432e25d58862 100644
|
||||
}
|
||||
|
||||
#if BUILDFLAG(IS_WIN)
|
||||
@@ -2377,6 +2381,16 @@ void RenderWidgetHostViewAura::CreateAuraWindow(aura::client::WindowType type) {
|
||||
@@ -2374,6 +2378,16 @@ void RenderWidgetHostViewAura::CreateAuraWindow(aura::client::WindowType type) {
|
||||
window_->layer()->SetColor(GetBackgroundColor() ? *GetBackgroundColor()
|
||||
: SK_ColorWHITE);
|
||||
UpdateFrameSinkIdRegistration();
|
||||
|
@ -165,7 +165,7 @@ index 3c862290eab9c..0e85970c08486 100644
|
||||
LabelButtonImageContainer* image_container() {
|
||||
return image_container_.get();
|
||||
diff --git ui/views/controls/label.cc ui/views/controls/label.cc
|
||||
index 2c773355d2961..9ccba5a459bd5 100644
|
||||
index 5fc895ab7b5e2..f913b6964ce32 100644
|
||||
--- ui/views/controls/label.cc
|
||||
+++ ui/views/controls/label.cc
|
||||
@@ -51,12 +51,29 @@ enum LabelPropertyKey {
|
||||
@ -198,7 +198,7 @@ index 2c773355d2961..9ccba5a459bd5 100644
|
||||
} // namespace
|
||||
|
||||
namespace views {
|
||||
@@ -485,6 +502,15 @@ void Label::SetElideBehavior(gfx::ElideBehavior elide_behavior) {
|
||||
@@ -480,6 +497,15 @@ void Label::SetElideBehavior(gfx::ElideBehavior elide_behavior) {
|
||||
OnPropertyChanged(&elide_behavior_, kPropertyEffectsPreferredSizeChanged);
|
||||
}
|
||||
|
||||
@ -214,7 +214,7 @@ index 2c773355d2961..9ccba5a459bd5 100644
|
||||
std::u16string Label::GetTooltipText() const {
|
||||
return tooltip_text_;
|
||||
}
|
||||
@@ -789,6 +815,16 @@ std::unique_ptr<gfx::RenderText> Label::CreateRenderText() const {
|
||||
@@ -784,6 +810,16 @@ std::unique_ptr<gfx::RenderText> Label::CreateRenderText() const {
|
||||
render_text->SelectRange(stored_selection_range_);
|
||||
}
|
||||
|
||||
@ -791,7 +791,7 @@ index dcf4b60ad92c2..64fa80edefc1b 100644
|
||||
#if !BUILDFLAG(IS_CHROMEOS_LACROS)
|
||||
if (root_location != root_current_location &&
|
||||
diff --git ui/views/view.h ui/views/view.h
|
||||
index 4024ec9778c21..d4eeb4c2922e1 100644
|
||||
index e21731ab75726..1af07b1c6eb2c 100644
|
||||
--- ui/views/view.h
|
||||
+++ ui/views/view.h
|
||||
@@ -25,6 +25,7 @@
|
||||
|
@ -530,10 +530,10 @@ index 6383110804d44..e5bc85f63fab9 100644
|
||||
break;
|
||||
case ui::SHOW_STATE_END:
|
||||
diff --git ui/views/widget/widget.cc ui/views/widget/widget.cc
|
||||
index f2f1f54c474cf..2feb6a47c04e1 100644
|
||||
index e113e926b324c..572eccab19085 100644
|
||||
--- ui/views/widget/widget.cc
|
||||
+++ ui/views/widget/widget.cc
|
||||
@@ -409,7 +409,8 @@ void Widget::Init(InitParams params) {
|
||||
@@ -410,7 +410,8 @@ void Widget::Init(InitParams params) {
|
||||
}
|
||||
|
||||
params.child |= (params.type == InitParams::TYPE_CONTROL);
|
||||
@ -543,7 +543,7 @@ index f2f1f54c474cf..2feb6a47c04e1 100644
|
||||
is_headless_ = params.ShouldInitAsHeadless();
|
||||
is_autosized_ = params.autosize;
|
||||
|
||||
@@ -501,9 +502,14 @@ void Widget::Init(InitParams params) {
|
||||
@@ -502,9 +503,14 @@ void Widget::Init(InitParams params) {
|
||||
|
||||
if (show_state == ui::SHOW_STATE_MAXIMIZED) {
|
||||
Maximize();
|
||||
@ -558,7 +558,7 @@ index f2f1f54c474cf..2feb6a47c04e1 100644
|
||||
}
|
||||
|
||||
#if BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
@@ -517,7 +523,12 @@ void Widget::Init(InitParams params) {
|
||||
@@ -518,7 +524,12 @@ void Widget::Init(InitParams params) {
|
||||
} else if (delegate) {
|
||||
SetContentsView(delegate->TransferOwnershipOfContentsView());
|
||||
if (should_set_initial_bounds) {
|
||||
@ -572,7 +572,7 @@ index f2f1f54c474cf..2feb6a47c04e1 100644
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1696,10 +1707,16 @@ void Widget::OnNativeWidgetParentChanged(gfx::NativeView parent) {
|
||||
@@ -1704,10 +1715,16 @@ void Widget::OnNativeWidgetParentChanged(gfx::NativeView parent) {
|
||||
}
|
||||
|
||||
gfx::Size Widget::GetMinimumSize() const {
|
||||
@ -589,7 +589,7 @@ index f2f1f54c474cf..2feb6a47c04e1 100644
|
||||
return non_client_view_ ? non_client_view_->GetMaximumSize() : gfx::Size();
|
||||
}
|
||||
|
||||
@@ -1950,7 +1967,8 @@ bool Widget::SetInitialFocus(ui::WindowShowState show_state) {
|
||||
@@ -1958,7 +1975,8 @@ bool Widget::SetInitialFocus(ui::WindowShowState show_state) {
|
||||
return false;
|
||||
View* v = widget_delegate_->GetInitiallyFocusedView();
|
||||
if (!focus_on_creation_ || show_state == ui::SHOW_STATE_INACTIVE ||
|
||||
|
Loading…
x
Reference in New Issue
Block a user