From 89427c73fb7c09e9e2aaf457c3cd87710e95ae34 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Wed, 19 Apr 2023 15:57:29 +0200 Subject: [PATCH] opens the context menu even with images --- ...d-setting-to-invert-tap-and-long-tap.patch | 59 ++++++++++++++++++- 1 file changed, 57 insertions(+), 2 deletions(-) diff --git a/build/patches/00Add-setting-to-invert-tap-and-long-tap.patch b/build/patches/00Add-setting-to-invert-tap-and-long-tap.patch index 0b55c6c2..4568eb79 100644 --- a/build/patches/00Add-setting-to-invert-tap-and-long-tap.patch +++ b/build/patches/00Add-setting-to-invert-tap-and-long-tap.patch @@ -23,9 +23,11 @@ The feature can be activated from the accessibility settings. third_party/blink/public/common/features.h | 2 ++ .../renderer/core/html/html_anchor_element.cc | 12 ++++++- .../renderer/core/html/html_anchor_element.h | 2 +- + .../renderer/core/html/html_image_element.cc | 17 ++++++++++ + .../renderer/core/html/html_image_element.h | 2 ++ .../core/page/context_menu_controller.cc | 32 +++++++++++++------ .../core/page/context_menu_controller.h | 5 +-- - 20 files changed, 125 insertions(+), 14 deletions(-) + 22 files changed, 144 insertions(+), 14 deletions(-) diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/values/ids.xml --- a/chrome/android/java/res/values/ids.xml @@ -139,7 +141,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -7097,6 +7097,11 @@ const FeatureEntry kFeatureEntries[] = { +@@ -7100,6 +7100,11 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kMoveTopToolbarToBottomDescription, kOsAndroid, FEATURE_VALUE_TYPE(features::kMoveTopToolbarToBottom)}, @@ -387,6 +389,59 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.h b/third_ unsigned link_relations_ : 31; mutable LinkHash cached_visited_link_hash_; +diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_party/blink/renderer/core/html/html_image_element.cc +--- a/third_party/blink/renderer/core/html/html_image_element.cc ++++ b/third_party/blink/renderer/core/html/html_image_element.cc +@@ -36,6 +36,7 @@ + #include "third_party/blink/renderer/core/dom/events/event_dispatch_forbidden_scope.h" + #include "third_party/blink/renderer/core/dom/node_traversal.h" + #include "third_party/blink/renderer/core/dom/shadow_root.h" ++#include "third_party/blink/renderer/core/events/mouse_event.h" + #include "third_party/blink/renderer/core/frame/attribution_src_loader.h" + #include "third_party/blink/renderer/core/frame/deprecation/deprecation.h" + #include "third_party/blink/renderer/core/frame/local_dom_window.h" +@@ -63,6 +64,7 @@ + #include "third_party/blink/renderer/core/media_type_names.h" + #include "third_party/blink/renderer/core/page/chrome_client.h" + #include "third_party/blink/renderer/core/page/page.h" ++#include "third_party/blink/renderer/core/page/context_menu_controller.h" + #include "third_party/blink/renderer/core/paint/timing/paint_timing.h" + #include "third_party/blink/renderer/core/probe/core_probes.h" + #include "third_party/blink/renderer/core/style/content_data.h" +@@ -712,6 +714,21 @@ void HTMLImageElement::DidFinishLifecycleUpdate( + } + } + ++void HTMLImageElement::DefaultEventHandler(Event& event) { ++ if (base::FeatureList::IsEnabled(features::kShowAlwaysContextMenuOnLinks)) { ++ auto* mouse_event = DynamicTo(&event); ++ if (mouse_event && mouse_event->type() == event_type_names::kClick) { ++ if (Page* page = GetDocument().GetPage()) { ++ page->GetContextMenuController().HandleContextMenuEvent( ++ mouse_event, /*do_not_show_context_menu*/true); ++ return; ++ } ++ } ++ } ++ ++ HTMLElement::DefaultEventHandler(event); ++} ++ + bool HTMLImageElement::draggable() const { + // Image elements are draggable by default. + return !EqualIgnoringASCIICase(FastGetAttribute(html_names::kDraggableAttr), +diff --git a/third_party/blink/renderer/core/html/html_image_element.h b/third_party/blink/renderer/core/html/html_image_element.h +--- a/third_party/blink/renderer/core/html/html_image_element.h ++++ b/third_party/blink/renderer/core/html/html_image_element.h +@@ -227,6 +227,8 @@ class CORE_EXPORT HTMLImageElement final + void DidAddUserAgentShadowRoot(ShadowRoot&) override; + void AdjustStyle(ComputedStyleBuilder&) override; + ++ void DefaultEventHandler(Event&) override; ++ + private: + bool AreAuthorShadowsAllowed() const override { return false; } + diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/third_party/blink/renderer/core/page/context_menu_controller.cc --- a/third_party/blink/renderer/core/page/context_menu_controller.cc +++ b/third_party/blink/renderer/core/page/context_menu_controller.cc