webext-messenger
Advanced tools
Comparing version 0.28.0 to 0.28.1
import { serializeError } from "serialize-error"; | ||
import { getContextName } from "webext-detect-page"; | ||
import { getContextName } from "webext-detect"; | ||
import { messenger } from "./sender.js"; | ||
@@ -4,0 +4,0 @@ import { isObject, MessengerError, __webextMessenger } from "./shared.js"; |
import pRetry from "p-retry"; | ||
import { isBackground } from "webext-detect-page"; | ||
import { isBackground } from "webext-detect"; | ||
import { deserializeError } from "serialize-error"; | ||
@@ -116,3 +116,6 @@ import { isObject, MessengerError, __webextMessenger } from "./shared.js"; | ||
}).catch((error) => { | ||
if (error?.message === _errorNonExistingTarget) { | ||
if (error && | ||
typeof error === "object" && | ||
"message" in error && | ||
error?.message === _errorNonExistingTarget) { | ||
throw new MessengerError(`The target ${JSON.stringify(target)} for ${type} was not found`); | ||
@@ -119,0 +122,0 @@ } |
@@ -1,2 +0,2 @@ | ||
import { isBackground, isContentScript } from "webext-detect-page"; | ||
import { isBackground, isContentScript } from "webext-detect"; | ||
export function compareTargets(to, thisTarget) { | ||
@@ -3,0 +3,0 @@ for (const [key, value] of Object.entries(to)) { |
import { assert, describe, test, vi } from "vitest"; | ||
import { getActionForMessage } from "./targetLogic.js"; | ||
import { isContentScript, isBackground } from "webext-detect-page"; | ||
vi.mock("webext-detect-page"); | ||
import { isContentScript, isBackground } from "webext-detect"; | ||
vi.mock("webext-detect"); | ||
const tab = { | ||
@@ -6,0 +6,0 @@ id: 1, |
@@ -1,2 +0,2 @@ | ||
import { getContextName, isBackground, isExtensionContext, } from "webext-detect-page"; | ||
import { getContextName, isBackground, isExtensionContext, isOffscreenDocument, } from "webext-detect"; | ||
import { messenger } from "./sender.js"; | ||
@@ -29,5 +29,8 @@ import { registerMethods } from "./receiver.js"; | ||
// If a message is received before this is ready, it will just have to be ignored. | ||
export const thisTarget = isBackground() | ||
? { page: "background" } | ||
: { | ||
export const thisTarget = (() => { | ||
if (isBackground()) | ||
return { page: "background" }; | ||
if (isOffscreenDocument()) | ||
return { page: "offscreen" }; | ||
return { | ||
get page() { | ||
@@ -42,5 +45,6 @@ // Extension pages have relative URLs to simplify comparison | ||
}; | ||
})(); | ||
let tabDataStatus = | ||
// The background page doesn't have a tab | ||
isBackground() ? "not-needed" : "needed"; | ||
// Exclude contexts that don't have a tab associated to them | ||
isBackground() || isOffscreenDocument() ? "not-needed" : "needed"; | ||
export function getTabDataStatus() { | ||
@@ -56,3 +60,3 @@ return tabDataStatus; | ||
if ("prerendering" in document && Boolean(document.prerendering)) { | ||
await pEvent(document, 'prerenderingchange'); | ||
await pEvent(document, "prerenderingchange"); | ||
} | ||
@@ -79,4 +83,3 @@ try { | ||
try { | ||
moreInfo = `(context: ${getContextName()}, url: ${globalThis.location | ||
?.href})`; | ||
moreInfo = `(context: ${getContextName()}, url: ${globalThis.location?.href})`; | ||
} | ||
@@ -83,0 +86,0 @@ catch { } |
{ | ||
"name": "webext-messenger", | ||
"version": "0.28.0", | ||
"version": "0.28.1", | ||
"description": "Browser Extension component messaging framework", | ||
@@ -30,6 +30,7 @@ "keywords": [], | ||
"p-event": "^6.0.1", | ||
"p-retry": "^6.2.0", | ||
"p-retry": "^6.2.1", | ||
"serialize-error": "^11.0.3", | ||
"type-fest": "^4.18.3", | ||
"webext-detect-page": "^5.0.1" | ||
"type-fest": "^4.29.1", | ||
"webext-detect": "^5.3.1", | ||
"webext-events": "^3.1.1" | ||
}, | ||
@@ -41,9 +42,9 @@ "@parcel/resolver-default": { | ||
"@parcel/config-webextension": "^2.11.0", | ||
"@sindresorhus/tsconfig": "^5.0.0", | ||
"@types/chrome": "^0.0.268", | ||
"@types/tape": "^5.6.4", | ||
"@types/webextension-polyfill": "^0.10.7", | ||
"@sindresorhus/tsconfig": "^7.0.0", | ||
"@types/chrome": "^0.0.287", | ||
"@types/tape": "^5.6.5", | ||
"@types/webextension-polyfill": "^0.12.1", | ||
"buffer": "^6.0.3", | ||
"eslint": "^8.57.0", | ||
"eslint-config-pixiebrix": "^0.39.0", | ||
"eslint-config-pixiebrix": "^0.41.1", | ||
"events": "^3.3.0", | ||
@@ -55,6 +56,6 @@ "npm-run-all": "^4.1.5", | ||
"stream-browserify": "^3.0.0", | ||
"tape": "^5.7.5", | ||
"typescript": "^5.4.5", | ||
"vitest": "^1.6.0", | ||
"webext-content-scripts": "^2.6.1", | ||
"tape": "^5.9.0", | ||
"typescript": "^5.7.2", | ||
"vitest": "^2.1.6", | ||
"webext-content-scripts": "^2.7.0", | ||
"webextension-polyfill": "^0.12.0" | ||
@@ -79,3 +80,4 @@ }, | ||
"https://fregante.github.io/pixiebrix-testing-ground/Will-call-background-methods", | ||
"https://fregante.github.io/pixiebrix-testing-ground/Will-call-other-CS-via-background" | ||
"https://fregante.github.io/pixiebrix-testing-ground/Will-call-other-CS-via-background", | ||
"https://fregante.github.io/pixiebrix-testing-ground/Will-call-offscreen-methods" | ||
] | ||
@@ -82,0 +84,0 @@ } |
@@ -22,5 +22,4 @@ # webext-messenger [![][badge-gzip]][link-bundlephobia] | ||
## npm publishing | ||
Collaborators can publish a new version of what's on main [via "workflow_dispatch"](https://github.blog/changelog/2020-07-06-github-actions-manual-triggers-with-workflow_dispatch/) under [Actions » Publish](https://github.com/pixiebrix/webext-messenger/actions/workflows/npm-publish.yml) |
37943
743
6
25
+ Addedwebext-detect@^5.3.1
+ Addedwebext-events@^3.1.1
+ Addedwebext-detect@5.3.2(transitive)
+ Addedwebext-events@3.1.1(transitive)
- Removedwebext-detect-page@^5.0.1
- Removedwebext-detect-page@5.0.1(transitive)
Updatedp-retry@^6.2.1
Updatedtype-fest@^4.29.1