Skip to content

Commit 974502c

Browse files
authored
#5900 Fix delay issue when adding secure messaging action buttons on Gmail context menu (#5901)
* Fixes issue #5900 * fix * wip: cleanup * pr reviews: better way to add context menu items in Gmail
1 parent 27b8b37 commit 974502c

File tree

4 files changed

+13
-8
lines changed

4 files changed

+13
-8
lines changed

extension/js/content_scripts/webmail/generic/webmail-element-replacer.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export abstract class WebmailElementReplacer {
1414
public abstract reinsertReplyBox: (replyMsgId: string) => void;
1515
public abstract scrollToReplyBox: (replyMsgId: string) => void;
1616
public abstract scrollToCursorInReplyBox: (replyMsgId: string, cursorOffsetTop: number) => void;
17+
public abstract addSecureActionsToMessageMenu: () => void;
1718

1819
public runIntervalFunctionsPeriodically = () => {
1920
const intervalFunctions = this.getIntervalFunctions();

extension/js/content_scripts/webmail/gmail/gmail-element-replacer.ts

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -147,11 +147,20 @@ export class GmailElementReplacer extends WebmailElementReplacer {
147147
}
148148
};
149149

150+
public addSecureActionsToMessageMenu = () => {
151+
$(document).on('click', 'div.aHU.hx', event => {
152+
const $actionsBtn = $(event.currentTarget).find(this.sel.msgActionsBtn);
153+
if ($actionsBtn.length && !$('.action_menu_message_button').length) {
154+
this.addMenuButton('reply', '#r');
155+
this.addMenuButton('forward', '#r3');
156+
}
157+
});
158+
};
159+
150160
private everything = () => {
151161
this.replaceArmoredBlocks().catch(Catch.reportErr);
152162
this.replaceAttachments().catch(Catch.reportErr);
153163
this.replaceComposeDraftLinks();
154-
this.replaceActionsMenu();
155164
this.replaceConvoBtns();
156165
this.replaceStandardReplyBox().catch(Catch.reportErr);
157166
this.evaluateStandardComposeRecipients().catch(Catch.reportErr);
@@ -290,13 +299,6 @@ export class GmailElementReplacer extends WebmailElementReplacer {
290299
);
291300
};
292301

293-
private replaceActionsMenu = () => {
294-
if ($('.action_menu_message_button').length <= 0) {
295-
this.addMenuButton('reply', '#r');
296-
this.addMenuButton('forward', '#r3');
297-
}
298-
};
299-
300302
private replaceConvoBtns = (force = false) => {
301303
const convoUpperIconsContainer = $('div.hj:visible');
302304
const convoUpperIcons = $('span.pYTkkf-JX-ank-Rtc0Jf');

extension/js/content_scripts/webmail/gmail/gmail-webmail-startup.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ export class GmailWebmailStartup {
4545
const messageRenderer = await MessageRenderer.newInstance(acctEmail, new Gmail(acctEmail), relayManager, factory);
4646
this.replacer = new GmailElementReplacer(factory, clientConfiguration, acctEmail, messageRenderer, injector, notifications, relayManager);
4747
await notifications.showInitial(acctEmail);
48+
this.replacer.addSecureActionsToMessageMenu();
4849
this.replacer.runIntervalFunctionsPeriodically();
4950
};
5051

extension/js/content_scripts/webmail/thunderbird/thunderbird-element-replacer.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ export class ThunderbirdElementReplacer extends WebmailElementReplacer {
1919
public reinsertReplyBox: (replyMsgId: string) => void;
2020
public scrollToReplyBox: (replyMsgId: string) => void;
2121
public scrollToCursorInReplyBox: (replyMsgId: string, cursorOffsetTop: number) => void;
22+
public addSecureActionsToMessageMenu: () => void;
2223
private emailBodyFromThunderbirdMail: string;
2324

2425
public getIntervalFunctions = (): IntervalFunction[] => {

0 commit comments

Comments
 (0)