extension 3.18.3 → 3.18.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/browsers.cjs CHANGED
@@ -4130,6 +4130,8 @@ var __webpack_modules__ = {
4130
4130
  const client = new MessagingClient();
4131
4131
  await client.connect(port);
4132
4132
  this.client = client;
4133
+ this.invalidateConnectionScopedCaches();
4134
+ client.on('reconnected', ()=>this.invalidateConnectionScopedCaches());
4133
4135
  return client;
4134
4136
  } catch (error) {
4135
4137
  if (isErrorWithCode('ECONNREFUSED', error)) {
@@ -4144,6 +4146,10 @@ var __webpack_modules__ = {
4144
4146
  console.error(messages.MSw(this.options.browser));
4145
4147
  throw lastError;
4146
4148
  }
4149
+ invalidateConnectionScopedCaches() {
4150
+ this.cachedAddonsActor = void 0;
4151
+ this.cachedSupportsReload = null;
4152
+ }
4147
4153
  async installAddons(compilation) {
4148
4154
  const { devtools } = this.options;
4149
4155
  const rawExtensions = (0, runtime_options.fT)(this.options.extension);
package/dist/cli.cjs CHANGED
@@ -4203,6 +4203,8 @@ var __webpack_modules__ = {
4203
4203
  const client = new MessagingClient();
4204
4204
  await client.connect(port);
4205
4205
  this.client = client;
4206
+ this.invalidateConnectionScopedCaches();
4207
+ client.on('reconnected', ()=>this.invalidateConnectionScopedCaches());
4206
4208
  return client;
4207
4209
  } catch (error) {
4208
4210
  if (isErrorWithCode('ECONNREFUSED', error)) {
@@ -4217,6 +4219,10 @@ var __webpack_modules__ = {
4217
4219
  console.error(messages.MSw(this.options.browser));
4218
4220
  throw lastError;
4219
4221
  }
4222
+ invalidateConnectionScopedCaches() {
4223
+ this.cachedAddonsActor = void 0;
4224
+ this.cachedSupportsReload = null;
4225
+ }
4220
4226
  async installAddons(compilation) {
4221
4227
  const { devtools } = this.options;
4222
4228
  const rawExtensions = (0, runtime_options.fT)(this.options.extension);
@@ -5802,7 +5808,7 @@ var __webpack_modules__ = {
5802
5808
  eval: 'Evaluates an expression in a running extension context (requires --allow-eval)',
5803
5809
  storage: 'Reads or writes chrome.storage in a running extension (requires --allow-control)',
5804
5810
  reload: 'Reloads a running extension or tab (requires --allow-control)',
5805
- open: 'Opens an extension surface — popup, options, or sidebar (requires --allow-control)',
5811
+ open: 'Opens an extension surface — popup, options, sidebar, action, or command (requires --allow-control)',
5806
5812
  inspect: 'Inspects a page/content DOM via the agent bridge (CDP-free; requires --allow-control)',
5807
5813
  publish: 'Publishes to extension.dev and prints a shareable URL (requires EXTENSION_DEV_TOKEN)',
5808
5814
  install: 'Installs a managed browser binary into Extension.js cache',
@@ -8029,22 +8035,28 @@ Cross-Browser Compatibility
8029
8035
  } : void 0
8030
8036
  });
8031
8037
  });
8032
- commonOptions(program.command('open').arguments('<surface> [project-path]').description('Open an extension surface — popup, options, or sidebar (requires --allow-control)')).action(async function(surface, projectPathArg, opts) {
8038
+ commonOptions(program.command('open').arguments('<surface> [project-path]').description('Open an extension surface — popup, options, sidebar, action, or command (requires --allow-control)').option('--name <command>', 'with `open command`: the chrome.commands name to trigger')).action(async function(surface, projectPathArg, opts) {
8033
8039
  const allowed = [
8034
8040
  'popup',
8035
8041
  'options',
8036
- 'sidebar'
8042
+ 'sidebar',
8043
+ 'action',
8044
+ 'command'
8037
8045
  ];
8038
- if (!allowed.includes(surface)) fail(`unknown surface: ${surface} (use popup, options, or sidebar)`);
8046
+ if (!allowed.includes(surface)) fail(`unknown surface: ${surface} (use popup, options, sidebar, action, or command)`);
8047
+ const inBackground = 'action' === surface || 'command' === surface;
8048
+ const context = inBackground ? 'background' : surface;
8049
+ const args = {
8050
+ surface
8051
+ };
8052
+ if ('command' === surface && opts.name) args.name = opts.name;
8039
8053
  await runCommand({
8040
8054
  projectPathArg,
8041
8055
  op: 'open',
8042
8056
  target: {
8043
- context: surface
8044
- },
8045
- args: {
8046
- surface
8057
+ context
8047
8058
  },
8059
+ args,
8048
8060
  opts
8049
8061
  });
8050
8062
  });
@@ -29,6 +29,12 @@ export declare class RemoteFirefox {
29
29
  });
30
30
  private resolveRdpPort;
31
31
  private connectClient;
32
+ /**
33
+ * Drop caches that are only valid for the current RDP connection. Actor IDs
34
+ * (addonsActor and its probed capability) belong to a specific Firefox
35
+ * connection; once we reconnect they must be re-resolved via getRoot.
36
+ */
37
+ private invalidateConnectionScopedCaches;
32
38
  installAddons(compilation: CompilationLike): Promise<void>;
33
39
  markNeedsReinstall(): void;
34
40
  private ensureCapabilities;
@@ -17,7 +17,7 @@ export declare const commandDescriptions: {
17
17
  readonly eval: "Evaluates an expression in a running extension context (requires --allow-eval)";
18
18
  readonly storage: "Reads or writes chrome.storage in a running extension (requires --allow-control)";
19
19
  readonly reload: "Reloads a running extension or tab (requires --allow-control)";
20
- readonly open: "Opens an extension surface — popup, options, or sidebar (requires --allow-control)";
20
+ readonly open: "Opens an extension surface — popup, options, sidebar, action, or command (requires --allow-control)";
21
21
  readonly inspect: "Inspects a page/content DOM via the agent bridge (CDP-free; requires --allow-control)";
22
22
  readonly publish: "Publishes to extension.dev and prints a shareable URL (requires EXTENSION_DEV_TOKEN)";
23
23
  readonly install: "Installs a managed browser binary into Extension.js cache";
package/package.json CHANGED
@@ -38,7 +38,7 @@
38
38
  "extension": "./bin/extension.cjs"
39
39
  },
40
40
  "name": "extension",
41
- "version": "3.18.3",
41
+ "version": "3.18.4",
42
42
  "description": "Create cross-browser extensions with no build configuration.",
43
43
  "homepage": "https://extension.js.org/",
44
44
  "bugs": {
@@ -100,9 +100,9 @@
100
100
  "cross-spawn": "^7.0.6",
101
101
  "edge-location": "2.2.0",
102
102
  "firefox-location2": "3.0.0",
103
- "extension-create": "3.18.3",
104
- "extension-develop": "3.18.3",
105
- "extension-install": "3.18.3",
103
+ "extension-create": "3.18.4",
104
+ "extension-develop": "3.18.4",
105
+ "extension-install": "3.18.4",
106
106
  "commander": "^14.0.3",
107
107
  "pintor": "0.3.0",
108
108
  "semver": "^7.7.3",