fix(gerrit): fix hovercards under Firefox

Firefox doesn't implement the IE6 fromElement/toElement, and it's
not in the MouseEvent spec (at the moment).

Replace with the worse-named but better-specified target and
relatedTarget attributes instead.

Upstream change: https://gerrit-review.googlesource.com/q/I9eeb26c032a38de9d7185749373c7982c796acb2

Change-Id: I9f9a1eb9342bc80b91b5b364a04cc5fa9a7ccaeb
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1442
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
This commit is contained in:
Luke Granger-Brown 2020-07-26 01:17:00 +01:00 committed by lukegb
parent c3608fdf87
commit a5c7e03dbd
8 changed files with 42 additions and 6 deletions

View file

@ -1,7 +1,7 @@
From c88d8c133d2f50451c7fb73592db4a000b87f15f Mon Sep 17 00:00:00 2001
From: Luke Granger-Brown <git@lukegb.com>
Date: Thu, 2 Jul 2020 23:02:09 +0100
Subject: [PATCH 1/6] Use detzip in download_bower.py
Subject: [PATCH 1/7] Use detzip in download_bower.py
---
tools/js/download_bower.py | 2 +-

View file

@ -1,7 +1,7 @@
From 1310ad5e56248bf216774cd13e828ba76e0c6f65 Mon Sep 17 00:00:00 2001
From: Luke Granger-Brown <git@lukegb.com>
Date: Thu, 2 Jul 2020 23:02:32 +0100
Subject: [PATCH 2/6] Syntax highlight nix
Subject: [PATCH 2/7] Syntax highlight nix
---
.../app/elements/diff/gr-syntax-layer/gr-syntax-layer.js | 1 +

View file

@ -1,7 +1,7 @@
From a8dad8e63a1be32f473e96c6c7530a70d368369f Mon Sep 17 00:00:00 2001
From: Luke Granger-Brown <git@lukegb.com>
Date: Thu, 2 Jul 2020 23:02:43 +0100
Subject: [PATCH 3/6] Syntax highlight rules.pl
Subject: [PATCH 3/7] Syntax highlight rules.pl
---
.../elements/diff/gr-syntax-layer/gr-syntax-layer.js | 10 ++++++++++

View file

@ -1,7 +1,7 @@
From 61035d1e81884390708675ab994e0e7210659883 Mon Sep 17 00:00:00 2001
From: Luke Granger-Brown <git@lukegb.com>
Date: Thu, 2 Jul 2020 23:03:02 +0100
Subject: [PATCH 4/6] Add titles to CLs over HTTP
Subject: [PATCH 4/7] Add titles to CLs over HTTP
---
.../gerrit/httpd/raw/IndexHtmlUtil.java | 14 +++-

View file

@ -1,7 +1,7 @@
From 73edc92dfa584117f6a4373388c9bc47e50a5713 Mon Sep 17 00:00:00 2001
From: Luke Granger-Brown <git@lukegb.com>
Date: Sat, 11 Jul 2020 00:45:57 +0000
Subject: [PATCH 5/6] When using local fonts, always assume Gerrit is mounted
Subject: [PATCH 5/7] When using local fonts, always assume Gerrit is mounted
at the root.
---

View file

@ -1,7 +1,7 @@
From f3b85ab3ac139d8ec51c09aa5e0d430d65e35a96 Mon Sep 17 00:00:00 2001
From: Luke Granger-Brown <git@lukegb.com>
Date: Sat, 11 Jul 2020 00:46:13 +0000
Subject: [PATCH 6/6] Always use Google Fonts.
Subject: [PATCH 6/7] Always use Google Fonts.
We're not a corporate, and we're not behind the GFW. Always use Google Fonts,
because even though we no longer get the caching benefits (boo, browsers),

View file

@ -0,0 +1,35 @@
From 460d4806feef7fdddc8e3b63dec4fa1854fd2561 Mon Sep 17 00:00:00 2001
From: Luke Granger-Brown <lukegb@google.com>
Date: Sat, 25 Jul 2020 23:54:18 +0000
Subject: [PATCH 7/7] Fix gr-hovercard-behavior under Firefox
Firefox doesn't implement toElement/fromElement (they're not in the
spec, and were implemented by Chrome apparently for compatibility with
IE), but does implement target and relatedTarget, which are part of
the UI Events spec
(https://w3c.github.io/uievents/#interface-mouseevent).
Bug: Issue 13175
Change-Id: I9eeb26c032a38de9d7185749373c7982c796acb2
---
.../app/elements/shared/gr-hovercard/gr-hovercard-behavior.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/polygerrit-ui/app/elements/shared/gr-hovercard/gr-hovercard-behavior.js b/polygerrit-ui/app/elements/shared/gr-hovercard/gr-hovercard-behavior.js
index 04c3166dd5..3d5937b1fa 100644
--- a/polygerrit-ui/app/elements/shared/gr-hovercard/gr-hovercard-behavior.js
+++ b/polygerrit-ui/app/elements/shared/gr-hovercard/gr-hovercard-behavior.js
@@ -209,8 +209,8 @@ export const hovercardBehaviorMixin = superClass => class extends superClass {
// from the hovercard but now hovering over the target (to stop an annoying
// flicker effect), just return.
if (opt_e) {
- if (opt_e.toElement === this ||
- (opt_e.fromElement === this && opt_e.toElement === this._target)) {
+ if (opt_e.relatedTarget === this ||
+ (opt_e.target === this && opt_e.relatedTarget === this._target)) {
return;
}
}
--
2.27.0

View file

@ -48,6 +48,7 @@ pkgs.buildBazelPackage {
./0004-Add-titles-to-CLs-over-HTTP.patch
./0005-When-using-local-fonts-always-assume-Gerrit-is-mount.patch
./0006-Always-use-Google-Fonts.patch
./0007-Fix-gr-hovercard-behavior-under-Firefox.patch
];
bazelTarget = "release";