From d50e8bbf4c73342364f6b89a7c86ba28fb8f3bab Mon Sep 17 00:00:00 2001 From: Bernd Schoolmann Date: Tue, 29 Oct 2024 19:46:09 +0100 Subject: [PATCH 1/5] Add linux .desktop file (#11774) --- apps/desktop/resources/com.bitwarden.desktop.desktop | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 apps/desktop/resources/com.bitwarden.desktop.desktop diff --git a/apps/desktop/resources/com.bitwarden.desktop.desktop b/apps/desktop/resources/com.bitwarden.desktop.desktop new file mode 100644 index 00000000000..d61387f3e82 --- /dev/null +++ b/apps/desktop/resources/com.bitwarden.desktop.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Name=Bitwarden +Exec=bitwarden %u +Terminal=false +Type=Application +Icon=com.bitwarden.desktop +StartupWMClass=Bitwarden +GenericName=Password Manager +Comment=A secure and free password manager for all of your devices. +MimeType=x-scheme-handler/bitwarden; +Categories=System;Security; From 896d19551af906a7af367cd772fcd7c639939292 Mon Sep 17 00:00:00 2001 From: Cesar Gonzalez Date: Tue, 29 Oct 2024 16:55:40 -0500 Subject: [PATCH 2/5] [PM-14054] Fixing scroll-based repositioning of inline menu when inline menu is focused (#11770) --- .../src/autofill/content/bootstrap-autofill-overlay-menu.ts | 1 + .../src/autofill/content/bootstrap-autofill-overlay.ts | 1 + .../services/autofill-overlay-content.service.spec.ts | 6 +++++- .../autofill/services/autofill-overlay-content.service.ts | 5 ++++- 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/apps/browser/src/autofill/content/bootstrap-autofill-overlay-menu.ts b/apps/browser/src/autofill/content/bootstrap-autofill-overlay-menu.ts index 35930647921..cd22e1e5353 100644 --- a/apps/browser/src/autofill/content/bootstrap-autofill-overlay-menu.ts +++ b/apps/browser/src/autofill/content/bootstrap-autofill-overlay-menu.ts @@ -21,6 +21,7 @@ import AutofillInit from "./autofill-init"; domQueryService, domElementVisibilityService, inlineMenuFieldQualificationService, + inlineMenuContentService, ); windowContext.bitwardenAutofillInit = new AutofillInit( diff --git a/apps/browser/src/autofill/content/bootstrap-autofill-overlay.ts b/apps/browser/src/autofill/content/bootstrap-autofill-overlay.ts index 174a695b769..11c8e4afd66 100644 --- a/apps/browser/src/autofill/content/bootstrap-autofill-overlay.ts +++ b/apps/browser/src/autofill/content/bootstrap-autofill-overlay.ts @@ -24,6 +24,7 @@ import AutofillInit from "./autofill-init"; domQueryService, domElementVisibilityService, inlineMenuFieldQualificationService, + inlineMenuContentService, ); windowContext.bitwardenAutofillInit = new AutofillInit( diff --git a/apps/browser/src/autofill/services/autofill-overlay-content.service.spec.ts b/apps/browser/src/autofill/services/autofill-overlay-content.service.spec.ts index 91ad63955c7..49a0b3ca844 100644 --- a/apps/browser/src/autofill/services/autofill-overlay-content.service.spec.ts +++ b/apps/browser/src/autofill/services/autofill-overlay-content.service.spec.ts @@ -1,4 +1,4 @@ -import { mock } from "jest-mock-extended"; +import { mock, MockProxy } from "jest-mock-extended"; import { EVENTS } from "@bitwarden/common/autofill/constants"; import { CipherType } from "@bitwarden/common/vault/enums"; @@ -13,6 +13,7 @@ import { import AutofillField from "../models/autofill-field"; import AutofillForm from "../models/autofill-form"; import AutofillPageDetails from "../models/autofill-page-details"; +import { AutofillInlineMenuContentService } from "../overlay/inline-menu/abstractions/autofill-inline-menu-content.service"; import { createAutofillFieldMock } from "../spec/autofill-mocks"; import { flushPromises, @@ -35,6 +36,7 @@ describe("AutofillOverlayContentService", () => { let domElementVisibilityService: DomElementVisibilityService; let autofillInit: AutofillInit; let inlineMenuFieldQualificationService: InlineMenuFieldQualificationService; + let inlineMenuContentService: MockProxy; let autofillOverlayContentService: AutofillOverlayContentService; let sendExtensionMessageSpy: jest.SpyInstance; const sendResponseSpy = jest.fn(); @@ -44,10 +46,12 @@ describe("AutofillOverlayContentService", () => { inlineMenuFieldQualificationService = new InlineMenuFieldQualificationService(); domQueryService = new DomQueryService(); domElementVisibilityService = new DomElementVisibilityService(); + inlineMenuContentService = mock(); autofillOverlayContentService = new AutofillOverlayContentService( domQueryService, domElementVisibilityService, inlineMenuFieldQualificationService, + inlineMenuContentService, ); autofillInit = new AutofillInit( domQueryService, diff --git a/apps/browser/src/autofill/services/autofill-overlay-content.service.ts b/apps/browser/src/autofill/services/autofill-overlay-content.service.ts index 645795d9f27..ea3c5784949 100644 --- a/apps/browser/src/autofill/services/autofill-overlay-content.service.ts +++ b/apps/browser/src/autofill/services/autofill-overlay-content.service.ts @@ -28,6 +28,7 @@ import { } from "../enums/autofill-overlay.enum"; import AutofillField from "../models/autofill-field"; import AutofillPageDetails from "../models/autofill-page-details"; +import { AutofillInlineMenuContentService } from "../overlay/inline-menu/abstractions/autofill-inline-menu-content.service"; import { ElementWithOpId, FillableFormFieldElement, FormFieldElement } from "../types"; import { currentlyInSandboxedIframe, @@ -155,6 +156,7 @@ export class AutofillOverlayContentService implements AutofillOverlayContentServ private domQueryService: DomQueryService, private domElementVisibilityService: DomElementVisibilityService, private inlineMenuFieldQualificationService: InlineMenuFieldQualificationService, + private inlineMenuContentService?: AutofillInlineMenuContentService, ) {} /** @@ -1580,7 +1582,8 @@ export class AutofillOverlayContentService implements AutofillOverlayContentServ if (activeElement) { return ( activeElement === this.mostRecentlyFocusedField || - activeElement.contains(this.mostRecentlyFocusedField) + activeElement.contains(this.mostRecentlyFocusedField) || + this.inlineMenuContentService?.isElementInlineMenu(activeElement as HTMLElement) ); } From e1863e6c5c015c570cb13a10aa601689058f3bc4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 30 Oct 2024 10:41:24 +0100 Subject: [PATCH 3/5] [deps] Platform: Update Rust crate futures to v0.3.31 (#11531) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- apps/desktop/desktop_native/Cargo.lock | 4 ++-- apps/desktop/desktop_native/core/Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/desktop/desktop_native/Cargo.lock b/apps/desktop/desktop_native/Cargo.lock index 13023ed5c3c..a730ee36f87 100644 --- a/apps/desktop/desktop_native/Cargo.lock +++ b/apps/desktop/desktop_native/Cargo.lock @@ -710,9 +710,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "futures" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ "futures-channel", "futures-core", diff --git a/apps/desktop/desktop_native/core/Cargo.toml b/apps/desktop/desktop_native/core/Cargo.toml index 3180604918e..7df096d2494 100644 --- a/apps/desktop/desktop_native/core/Cargo.toml +++ b/apps/desktop/desktop_native/core/Cargo.toml @@ -30,7 +30,7 @@ arboard = { version = "=3.4.1", default-features = false, features = [ base64 = "=0.22.1" cbc = { version = "=0.1.2", features = ["alloc"] } dirs = "=5.0.1" -futures = "=0.3.30" +futures = "=0.3.31" interprocess = { version = "=2.2.1", features = ["tokio"] } libc = "=0.2.159" log = "=0.4.22" From 85fa0f6f36ac52a35c08ab0bc95a2a45bc1105e2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 30 Oct 2024 10:45:48 +0100 Subject: [PATCH 4/5] [deps] Platform: Update @types/jquery to v3.5.32 (#11315) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index ccf6ea3d2a9..d375daa4e81 100644 --- a/package-lock.json +++ b/package-lock.json @@ -101,7 +101,7 @@ "@types/firefox-webext-browser": "120.0.4", "@types/inquirer": "8.2.10", "@types/jest": "29.5.12", - "@types/jquery": "3.5.30", + "@types/jquery": "3.5.32", "@types/jsdom": "21.1.7", "@types/koa": "2.15.0", "@types/koa__multer": "2.0.7", @@ -9467,9 +9467,9 @@ "license": "MIT" }, "node_modules/@types/jquery": { - "version": "3.5.30", - "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.30.tgz", - "integrity": "sha512-nbWKkkyb919DOUxjmRVk8vwtDb0/k8FKncmUKFi+NY+QXqWltooxTrswvz4LspQwxvLdvzBN1TImr6cw3aQx2A==", + "version": "3.5.32", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.32.tgz", + "integrity": "sha512-b9Xbf4CkMqS02YH8zACqN1xzdxc3cO735Qe5AbSUFmyOiaWAbcpqh9Wna+Uk0vgACvoQHpWDg2rGdHkYPLmCiQ==", "dev": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index bf83d37b048..80bb9661f19 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "@types/firefox-webext-browser": "120.0.4", "@types/inquirer": "8.2.10", "@types/jest": "29.5.12", - "@types/jquery": "3.5.30", + "@types/jquery": "3.5.32", "@types/jsdom": "21.1.7", "@types/koa": "2.15.0", "@types/koa__multer": "2.0.7", From 7ce26f7aea6ec5d6a9e36b97115b43785d1d6221 Mon Sep 17 00:00:00 2001 From: Andreas Coroiu Date: Wed, 30 Oct 2024 14:00:08 +0100 Subject: [PATCH 5/5] Group macOS bindings (#11785) * fix: group `security-framework` and `security-framework-sys` dependency in renovate * reactor: rename to macOS/iOS bindings --- .github/renovate.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/renovate.json b/.github/renovate.json index 562622807c2..b044212e58a 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -35,6 +35,10 @@ "matchPackageNames": ["@types/jest", "jest", "ts-jest", "jest-preset-angular"], "matchUpdateTypes": "major" }, + { + "groupName": "macOS/iOS bindings", + "matchPackageNames": ["core-foundation", "security-framework", "security-framework-sys"] + }, { "matchPackageNames": [ "@ngtools/webpack",