appium-ios-remotexpc 5.18.2 → 5.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.
Files changed (27) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/build/src/lib/remote-xpc/constants.d.ts +3 -0
  3. package/build/src/lib/remote-xpc/constants.d.ts.map +1 -1
  4. package/build/src/lib/remote-xpc/constants.js +3 -0
  5. package/build/src/lib/remote-xpc/constants.js.map +1 -1
  6. package/build/src/lib/remote-xpc/handshake.d.ts +4 -0
  7. package/build/src/lib/remote-xpc/handshake.d.ts.map +1 -1
  8. package/build/src/lib/remote-xpc/handshake.js +17 -9
  9. package/build/src/lib/remote-xpc/handshake.js.map +1 -1
  10. package/build/src/lib/remote-xpc/http2-frame-parser.d.ts +7 -0
  11. package/build/src/lib/remote-xpc/http2-frame-parser.d.ts.map +1 -1
  12. package/build/src/lib/remote-xpc/http2-frame-parser.js +17 -0
  13. package/build/src/lib/remote-xpc/http2-frame-parser.js.map +1 -1
  14. package/build/src/lib/remote-xpc/remote-xpc-framed-transport.d.ts +25 -4
  15. package/build/src/lib/remote-xpc/remote-xpc-framed-transport.d.ts.map +1 -1
  16. package/build/src/lib/remote-xpc/remote-xpc-framed-transport.js +126 -19
  17. package/build/src/lib/remote-xpc/remote-xpc-framed-transport.js.map +1 -1
  18. package/build/src/lib/remote-xpc/xpc-protocol.d.ts +2 -0
  19. package/build/src/lib/remote-xpc/xpc-protocol.d.ts.map +1 -1
  20. package/build/src/lib/remote-xpc/xpc-protocol.js +2 -2
  21. package/build/src/lib/remote-xpc/xpc-protocol.js.map +1 -1
  22. package/package.json +1 -1
  23. package/src/lib/remote-xpc/constants.ts +3 -0
  24. package/src/lib/remote-xpc/handshake.ts +19 -9
  25. package/src/lib/remote-xpc/http2-frame-parser.ts +25 -1
  26. package/src/lib/remote-xpc/remote-xpc-framed-transport.ts +147 -21
  27. package/src/lib/remote-xpc/xpc-protocol.ts +3 -3
package/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ ## [5.18.4](https://github.com/appium/appium-ios-remotexpc/compare/v5.18.3...v5.18.4) (2026-09-02)
2
+
3
+ ### Bug Fixes
4
+
5
+ * **remote-xpc:** reassemble inbound XPC messages in linear time ([#317](https://github.com/appium/appium-ios-remotexpc/issues/317)) ([b98cffb](https://github.com/appium/appium-ios-remotexpc/commit/b98cffb7b87f184527e1d164e58d6241a9db8843))
6
+
7
+ ## [5.18.3](https://github.com/appium/appium-ios-remotexpc/compare/v5.18.2...v5.18.3) (2026-09-02)
8
+
9
+ ### Bug Fixes
10
+
11
+ * **remote-xpc:** honor HTTP/2 frame size and flow control on outbound DATA frames ([#316](https://github.com/appium/appium-ios-remotexpc/issues/316)) ([0b640ad](https://github.com/appium/appium-ios-remotexpc/commit/0b640ada41fec828e31cc7aaa43342a2871f0308))
12
+
1
13
  ## [5.18.2](https://github.com/appium/appium-ios-remotexpc/compare/v5.18.1...v5.18.2) (2026-09-01)
2
14
 
3
15
  ### Miscellaneous Chores
@@ -10,6 +10,9 @@ export declare const Http2Constants: {
10
10
  readonly DEFAULT_WIN_SIZE_INCR: number;
11
11
  readonly SETTINGS_MAX_CONCURRENT_STREAMS: 3;
12
12
  readonly SETTINGS_INITIAL_WINDOW_SIZE: 4;
13
+ readonly SETTINGS_MAX_FRAME_SIZE: 5;
14
+ readonly DEFAULT_PEER_MAX_FRAME_SIZE: 16384;
15
+ readonly DEFAULT_PEER_WINDOW_SIZE: 65535;
13
16
  };
14
17
  export declare const XpcConstants: {
15
18
  readonly XPC_FLAGS_INIT_HANDSHAKE: 4194304;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/lib/remote-xpc/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,cAAc;;;;;;;;;;;;CAgBjB,CAAC;AAGX,eAAO,MAAM,YAAY;;;;;CAKf,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/lib/remote-xpc/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;CAmBjB,CAAC;AAGX,eAAO,MAAM,YAAY;;;;;CAKf,CAAC"}
@@ -15,6 +15,9 @@ export const Http2Constants = {
15
15
  DEFAULT_WIN_SIZE_INCR: 16 * 1024 * 1024 - 65535,
16
16
  SETTINGS_MAX_CONCURRENT_STREAMS: 0x03,
17
17
  SETTINGS_INITIAL_WINDOW_SIZE: 0x04,
18
+ SETTINGS_MAX_FRAME_SIZE: 0x05,
19
+ DEFAULT_PEER_MAX_FRAME_SIZE: 16384,
20
+ DEFAULT_PEER_WINDOW_SIZE: 65535,
18
21
  };
19
22
  // XPC Constants
20
23
  export const XpcConstants = {
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/lib/remote-xpc/constants.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE,OAAO,CAAC;IACrE,iBAAiB,EAAE,CAAC;IACpB,YAAY,EAAE,CAAC;IACf,aAAa,EAAE,CAAC;IAChB,gBAAgB,EAAE,GAAG;IACrB,QAAQ,EAAE,GAAG;IACb,uCAAuC,EAAE,GAAG;IAC5C,qEAAqE;IACrE,0EAA0E;IAC1E,0EAA0E;IAC1E,iBAAiB;IACjB,oCAAoC,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;IACtD,qBAAqB,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK;IAC/C,+BAA+B,EAAE,IAAI;IACrC,4BAA4B,EAAE,IAAI;CAC1B,CAAC;AAEX,gBAAgB;AAChB,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,wBAAwB,EAAE,UAAU;IACpC,oBAAoB,EAAE,UAAU;IAChC,sBAAsB,EAAE,UAAU;IAClC,uBAAuB,EAAE,UAAU;CAC3B,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/lib/remote-xpc/constants.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE,OAAO,CAAC;IACrE,iBAAiB,EAAE,CAAC;IACpB,YAAY,EAAE,CAAC;IACf,aAAa,EAAE,CAAC;IAChB,gBAAgB,EAAE,GAAG;IACrB,QAAQ,EAAE,GAAG;IACb,uCAAuC,EAAE,GAAG;IAC5C,qEAAqE;IACrE,0EAA0E;IAC1E,0EAA0E;IAC1E,iBAAiB;IACjB,oCAAoC,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;IACtD,qBAAqB,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK;IAC/C,+BAA+B,EAAE,IAAI;IACrC,4BAA4B,EAAE,IAAI;IAClC,uBAAuB,EAAE,IAAI;IAC7B,2BAA2B,EAAE,KAAK;IAClC,wBAAwB,EAAE,KAAK;CACvB,CAAC;AAEX,gBAAgB;AAChB,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,wBAAwB,EAAE,UAAU;IACpC,oBAAoB,EAAE,UAAU;IAChC,sBAAsB,EAAE,UAAU;IAClC,uBAAuB,EAAE,UAAU;CAC3B,CAAC"}
@@ -5,9 +5,13 @@ export type MessageId = number;
5
5
  declare class Handshake {
6
6
  private _socket;
7
7
  private readonly _nextMessageId;
8
+ private readonly _dataBytesSent;
8
9
  constructor(socket: Socket);
10
+ /** DATA payload bytes sent per stream, so the transport can debit its send windows. */
11
+ get dataBytesSent(): Readonly<Record<ChannelId, number>>;
9
12
  sendFrame(frame: Buffer): Promise<void>;
10
13
  sendRequest(data: XPCDictionary): Promise<void>;
14
+ private sendData;
11
15
  perform(): Promise<void>;
12
16
  }
13
17
  export default Handshake;
@@ -1 +1 @@
1
- {"version":3,"file":"handshake.d.ts","sourceRoot":"","sources":["../../../../src/lib/remote-xpc/handshake.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,MAAM,EAAC,MAAM,UAAU,CAAC;AAErC,OAAO,EAAC,KAAK,aAAa,EAAC,MAAM,aAAa,CAAC;AAK/C,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAC/B,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAE/B,cAAM,SAAS;IACb,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA+B;gBAElD,MAAM,EAAE,MAAM;IAQpB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBvC,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAa/C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CA2E/B;AAED,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"handshake.d.ts","sourceRoot":"","sources":["../../../../src/lib/remote-xpc/handshake.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,MAAM,EAAC,MAAM,UAAU,CAAC;AAErC,OAAO,EAAC,KAAK,aAAa,EAAC,MAAM,aAAa,CAAC;AAK/C,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAC/B,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAE/B,cAAM,SAAS;IACb,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA+B;IAC9D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4B;gBAE/C,MAAM,EAAE,MAAM;IAY1B,uFAAuF;IACvF,IAAI,aAAa,IAAI,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAEvD;IAEK,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBvC,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;YAWvC,QAAQ;IAMhB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAuE/B;AAED,eAAe,SAAS,CAAC"}
@@ -4,12 +4,21 @@ import { encodeMessage } from './xpc-protocol.js';
4
4
  class Handshake {
5
5
  _socket;
6
6
  _nextMessageId;
7
+ _dataBytesSent;
7
8
  constructor(socket) {
8
9
  this._socket = socket;
9
10
  this._nextMessageId = {
10
11
  [Http2Constants.ROOT_CHANNEL]: 0,
11
12
  [Http2Constants.REPLY_CHANNEL]: 0,
12
13
  };
14
+ this._dataBytesSent = {
15
+ [Http2Constants.ROOT_CHANNEL]: 0,
16
+ [Http2Constants.REPLY_CHANNEL]: 0,
17
+ };
18
+ }
19
+ /** DATA payload bytes sent per stream, so the transport can debit its send windows. */
20
+ get dataBytesSent() {
21
+ return { ...this._dataBytesSent };
13
22
  }
14
23
  async sendFrame(frame) {
15
24
  return new Promise((resolve, reject) => {
@@ -34,9 +43,12 @@ class Handshake {
34
43
  id: BigInt(this._nextMessageId[Http2Constants.ROOT_CHANNEL]),
35
44
  body: data,
36
45
  };
37
- const encodedMessage = encodeMessage(requestMessage);
38
- const dataFrame = new DataFrame(Http2Constants.ROOT_CHANNEL, encodedMessage, []);
39
- await this.sendFrame(dataFrame.serialize());
46
+ await this.sendData(Http2Constants.ROOT_CHANNEL, requestMessage);
47
+ }
48
+ async sendData(streamId, message) {
49
+ const encoded = encodeMessage(message);
50
+ this._dataBytesSent[streamId] += encoded.length;
51
+ await this.sendFrame(new DataFrame(streamId, encoded, []).serialize());
40
52
  }
41
53
  async perform() {
42
54
  try {
@@ -79,9 +91,7 @@ class Handshake {
79
91
  id: 0,
80
92
  body: null,
81
93
  };
82
- const encodedDataMessage = encodeMessage(dataMessage);
83
- const dataFrame = new DataFrame(Http2Constants.ROOT_CHANNEL, encodedDataMessage, []);
84
- await this.sendFrame(dataFrame.serialize());
94
+ await this.sendData(Http2Constants.ROOT_CHANNEL, dataMessage);
85
95
  this._nextMessageId[Http2Constants.ROOT_CHANNEL]++;
86
96
  // Step 8: Open REPLY_CHANNEL with INIT_HANDSHAKE flags.
87
97
  const replyMessage = {
@@ -89,9 +99,7 @@ class Handshake {
89
99
  id: 0,
90
100
  body: null,
91
101
  };
92
- const encodedReplyMessage = encodeMessage(replyMessage);
93
- const replyDataFrame = new DataFrame(Http2Constants.REPLY_CHANNEL, encodedReplyMessage, []);
94
- await this.sendFrame(replyDataFrame.serialize());
102
+ await this.sendData(Http2Constants.REPLY_CHANNEL, replyMessage);
95
103
  this._nextMessageId[Http2Constants.REPLY_CHANNEL]++;
96
104
  // Step 9: Send SETTINGS ACK frame.
97
105
  const ackFrame = new SettingsFrame(0, null, ['ACK']);
@@ -1 +1 @@
1
- {"version":3,"file":"handshake.js","sourceRoot":"","sources":["../../../../src/lib/remote-xpc/handshake.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handshake.js","sourceRoot":"","sources":["../../../../src/lib/remote-xpc/handshake.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,13 @@ export interface ParsedDataFrame {
6
6
  export type ParsedFrame = {
7
7
  readonly type: 'data';
8
8
  readonly frame: ParsedDataFrame;
9
+ } | {
10
+ readonly type: 'settings';
11
+ readonly settings: Record<number, number>;
12
+ } | {
13
+ readonly type: 'windowUpdate';
14
+ readonly streamId: number;
15
+ readonly increment: number;
9
16
  } | {
10
17
  readonly type: 'other';
11
18
  };
@@ -1 +1 @@
1
- {"version":3,"file":"http2-frame-parser.d.ts","sourceRoot":"","sources":["../../../../src/lib/remote-xpc/http2-frame-parser.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,WAAW,GAAG;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;CAAC,GAAG;IAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAC,CAAC;AAE9G;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAA2B;IAEzC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE;CAkBrC;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAKrF"}
1
+ {"version":3,"file":"http2-frame-parser.d.ts","sourceRoot":"","sources":["../../../../src/lib/remote-xpc/http2-frame-parser.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,WAAW,GACnB;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;CAAC,GACxD;IAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAC,GACtE;IAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAC,GACtF;IAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAC,CAAC;AAE7B;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAA2B;IAEzC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE;CAkBrC;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAKrF"}
@@ -1,7 +1,11 @@
1
+ import { Http2Constants } from './constants.js';
1
2
  import { InvalidDataError, WindowUpdateFrame } from './handshake-frames.js';
2
3
  const FRAME_HEADER_SIZE = 9;
3
4
  const FRAME_TYPE_DATA = 0x00;
5
+ const FRAME_TYPE_SETTINGS = 0x04;
6
+ const FRAME_TYPE_WINDOW_UPDATE = 0x08;
4
7
  const FLAG_PADDED = 0x08;
8
+ const SETTINGS_ENTRY_SIZE = 6;
5
9
  /**
6
10
  * Incrementally parse HTTP/2 frames from a byte stream (RFC 7540).
7
11
  */
@@ -38,6 +42,12 @@ function parseFrame(buffer) {
38
42
  const flags = buffer[4];
39
43
  const streamId = buffer.readUInt32BE(5) & 0x7fffffff;
40
44
  const body = buffer.subarray(FRAME_HEADER_SIZE, FRAME_HEADER_SIZE + length);
45
+ if (type === FRAME_TYPE_SETTINGS && !(flags & Http2Constants.FLAG_ACK)) {
46
+ return { type: 'settings', settings: parseSettings(body) };
47
+ }
48
+ if (type === FRAME_TYPE_WINDOW_UPDATE) {
49
+ return { type: 'windowUpdate', streamId, increment: body.readUInt32BE(0) & 0x7fffffff };
50
+ }
41
51
  if (type !== FRAME_TYPE_DATA) {
42
52
  return { type: 'other' };
43
53
  }
@@ -47,6 +57,13 @@ function parseFrame(buffer) {
47
57
  frame: { streamId, data, bodyLen: length },
48
58
  };
49
59
  }
60
+ /** SETTINGS body is a list of 16-bit identifier / 32-bit value pairs (RFC 7540 §6.5.1). */
61
+ function parseSettings(body) {
62
+ return Object.fromEntries(Array.from({ length: Math.floor(body.length / SETTINGS_ENTRY_SIZE) }, (_, i) => {
63
+ const offset = i * SETTINGS_ENTRY_SIZE;
64
+ return [body.readUInt16BE(offset), body.readUInt32BE(offset + 2)];
65
+ }));
66
+ }
50
67
  /**
51
68
  * Strip HTTP/2 DATA frame padding (RFC 7540 §6.1).
52
69
  * @throws {InvalidDataError} when padding length is invalid
@@ -1 +1 @@
1
- {"version":3,"file":"http2-frame-parser.js","sourceRoot":"","sources":["../../../../src/lib/remote-xpc/http2-frame-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http2-frame-parser.js","sourceRoot":"","sources":["../../../../src/lib/remote-xpc/http2-frame-parser.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,11 @@ export declare class RemoteXpcFramedTransport extends EventEmitter {
15
15
  private connected;
16
16
  private closing;
17
17
  private desynced;
18
+ private peerMaxFrameSize;
19
+ private peerInitialWindowSize;
20
+ private connectionSendWindow;
21
+ private streamSendWindows;
22
+ private sendQueue;
18
23
  constructor(address: [string, number]);
19
24
  get isConnected(): boolean;
20
25
  /**
@@ -29,6 +34,17 @@ export declare class RemoteXpcFramedTransport extends EventEmitter {
29
34
  get localAddress(): string | undefined;
30
35
  connect(options: RemoteXpcFramedTransportConnectOptions): Promise<void>;
31
36
  sendDataFrame(payload: Buffer, streamId?: number): void;
37
+ /**
38
+ * Writes queued payloads as DATA frames no larger than the peer's max frame size
39
+ * or its send windows. Stops at the first blocked payload so ordering holds.
40
+ */
41
+ private flushPendingSends;
42
+ /** Stream 0 is the connection-level window. */
43
+ private sendWindow;
44
+ private adjustSendWindow;
45
+ private consumeSendWindow;
46
+ /** A new INITIAL_WINDOW_SIZE shifts every open stream's window by the delta (RFC 7540 §6.9.2). */
47
+ private applyPeerSettings;
32
48
  close(): Promise<void>;
33
49
  private waitForSocketConnect;
34
50
  /**
@@ -38,11 +54,16 @@ export declare class RemoteXpcFramedTransport extends EventEmitter {
38
54
  private registerSocketHandlers;
39
55
  private handleData;
40
56
  /**
41
- * Reassembles XPC messages for one HTTP/2 stream; streams buffer separately so
42
- * interleaving cannot fabricate a desync. Framed-but-undecodable messages are
43
- * skipped, and a retained tail is copied so it cannot pin the parser's buffer.
57
+ * Accumulates one XPC message per HTTP/2 stream as a chunk list, joined once when
58
+ * complete. Retained chunks are copied so a stalled stream cannot pin the frame
59
+ * parser's buffer; the header is probed from at most its first 24 bytes.
44
60
  */
45
61
  private ingestXpcData;
62
+ /**
63
+ * Emits every complete message at the front of `buffer`; an incomplete remainder
64
+ * is re-queued as a copy so it cannot pin the buffer it was sliced from.
65
+ */
66
+ private drainXpcMessages;
46
67
  /**
47
68
  * Latches the whole connection closed: framing alignment is lost and the peer's
48
69
  * remaining bytes cannot be trusted on any stream. Teardown starts before the
@@ -56,6 +77,6 @@ export declare class RemoteXpcFramedTransport extends EventEmitter {
56
77
  */
57
78
  private decodeAndEmit;
58
79
  private shutdownSocket;
59
- private resetParsers;
80
+ private resetConnectionState;
60
81
  }
61
82
  //# sourceMappingURL=remote-xpc-framed-transport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"remote-xpc-framed-transport.d.ts","sourceRoot":"","sources":["../../../../src/lib/remote-xpc/remote-xpc-framed-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAezC,MAAM,WAAW,sCAAsC;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;GAGG;AACH,qBAAa,wBAAyB,SAAQ,YAAY;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAS;gBAEb,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;IAKrC,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;;;;;;;OAQG;IACH,IAAI,YAAY,IAAI,MAAM,GAAG,SAAS,CAErC;IAEK,OAAO,CAAC,OAAO,EAAE,sCAAsC,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B7E,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,SAAI,GAAG,IAAI;IAO5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAe5B,OAAO,CAAC,oBAAoB;IAyB5B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAgC9B,OAAO,CAAC,UAAU;IA+BlB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IA0BrB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IASpB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,cAAc;IA6CtB,OAAO,CAAC,YAAY;CAKrB"}
1
+ {"version":3,"file":"remote-xpc-framed-transport.d.ts","sourceRoot":"","sources":["../../../../src/lib/remote-xpc/remote-xpc-framed-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAgBzC,MAAM,WAAW,sCAAsC;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AASD;;;GAGG;AACH,qBAAa,wBAAyB,SAAQ,YAAY;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,cAAc,CAAwC;IAC9D,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,gBAAgB,CAAsD;IAC9E,OAAO,CAAC,qBAAqB,CAAmD;IAChF,OAAO,CAAC,oBAAoB,CAAmD;IAC/E,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,SAAS,CAA6C;gBAElD,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;IAKrC,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;;;;;;;OAQG;IACH,IAAI,YAAY,IAAI,MAAM,GAAG,SAAS,CAErC;IAEK,OAAO,CAAC,OAAO,EAAE,sCAAsC,GAAG,OAAO,CAAC,IAAI,CAAC;IAmC7E,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,SAAI,GAAG,IAAI;IAQlD;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAuBzB,+CAA+C;IAC/C,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,iBAAiB;IAKzB,kGAAkG;IAClG,OAAO,CAAC,iBAAiB;IAenB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAe5B,OAAO,CAAC,oBAAoB;IAyB5B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAgC9B,OAAO,CAAC,UAAU;IAyClB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IA+BrB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAqBxB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IASpB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,cAAc;IA6CtB,OAAO,CAAC,oBAAoB;CAU7B"}
@@ -1,10 +1,11 @@
1
1
  import { EventEmitter } from 'node:events';
2
2
  import net from 'node:net';
3
3
  import { getLogger } from '../logger.js';
4
+ import { Http2Constants } from './constants.js';
4
5
  import { DataFrame } from './handshake-frames.js';
5
6
  import Handshake from './handshake.js';
6
7
  import { Http2FrameParser, buildWindowUpdateFrames } from './http2-frame-parser.js';
7
- import { decodeMessage, probeXpcFraming } from './xpc-protocol.js';
8
+ import { decodeMessage, probeXpcFraming, XPC_WRAPPER_HEADER_SIZE } from './xpc-protocol.js';
8
9
  const log = getLogger('RemoteXpcFramedTransport');
9
10
  const DEFAULT_SOCKET_CLOSE_TIMEOUT_MS = 1000;
10
11
  const DEFAULT_SOCKET_END_TIMEOUT_MS = 500;
@@ -20,6 +21,11 @@ export class RemoteXpcFramedTransport extends EventEmitter {
20
21
  connected = false;
21
22
  closing = false;
22
23
  desynced = false;
24
+ peerMaxFrameSize = Http2Constants.DEFAULT_PEER_MAX_FRAME_SIZE;
25
+ peerInitialWindowSize = Http2Constants.DEFAULT_PEER_WINDOW_SIZE;
26
+ connectionSendWindow = Http2Constants.DEFAULT_PEER_WINDOW_SIZE;
27
+ streamSendWindows = new Map();
28
+ sendQueue = [];
23
29
  constructor(address) {
24
30
  super();
25
31
  this.address = address;
@@ -43,7 +49,7 @@ export class RemoteXpcFramedTransport extends EventEmitter {
43
49
  if (this.connected) {
44
50
  return;
45
51
  }
46
- this.resetParsers();
52
+ this.resetConnectionState();
47
53
  const socket = net.createConnection({
48
54
  host: this.address[0],
49
55
  port: this.address[1],
@@ -58,7 +64,11 @@ export class RemoteXpcFramedTransport extends EventEmitter {
58
64
  await new Promise((resolve) => setTimeout(resolve, options.handshakeDelayMs));
59
65
  }
60
66
  try {
61
- await new Handshake(socket).perform();
67
+ const handshake = new Handshake(socket);
68
+ await handshake.perform();
69
+ for (const [streamId, bytes] of Object.entries(handshake.dataBytesSent)) {
70
+ this.consumeSendWindow(Number(streamId), bytes);
71
+ }
62
72
  this.connected = true;
63
73
  }
64
74
  catch (error) {
@@ -70,7 +80,63 @@ export class RemoteXpcFramedTransport extends EventEmitter {
70
80
  if (!this.socket?.writable) {
71
81
  throw new Error('RemoteXPC socket is not writable');
72
82
  }
73
- this.socket.write(new DataFrame(streamId, payload, []).serialize());
83
+ this.sendQueue.push({ streamId, payload });
84
+ this.flushPendingSends();
85
+ }
86
+ /**
87
+ * Writes queued payloads as DATA frames no larger than the peer's max frame size
88
+ * or its send windows. Stops at the first blocked payload so ordering holds.
89
+ */
90
+ flushPendingSends() {
91
+ const socket = this.socket;
92
+ while (socket?.writable && this.sendQueue.length > 0) {
93
+ const send = this.sendQueue[0];
94
+ const size = Math.min(send.payload.length, this.peerMaxFrameSize, this.sendWindow(0), this.sendWindow(send.streamId));
95
+ if (size <= 0 && send.payload.length > 0) {
96
+ return;
97
+ }
98
+ socket.write(new DataFrame(send.streamId, send.payload.subarray(0, size), []).serialize());
99
+ this.consumeSendWindow(send.streamId, size);
100
+ if (size === send.payload.length) {
101
+ this.sendQueue.shift();
102
+ }
103
+ else {
104
+ send.payload = send.payload.subarray(size);
105
+ }
106
+ }
107
+ }
108
+ /** Stream 0 is the connection-level window. */
109
+ sendWindow(streamId) {
110
+ return streamId === 0
111
+ ? this.connectionSendWindow
112
+ : (this.streamSendWindows.get(streamId) ?? this.peerInitialWindowSize);
113
+ }
114
+ adjustSendWindow(streamId, delta) {
115
+ if (streamId === 0) {
116
+ this.connectionSendWindow += delta;
117
+ }
118
+ else {
119
+ this.streamSendWindows.set(streamId, this.sendWindow(streamId) + delta);
120
+ }
121
+ }
122
+ consumeSendWindow(streamId, bytes) {
123
+ this.adjustSendWindow(0, -bytes);
124
+ this.adjustSendWindow(streamId, -bytes);
125
+ }
126
+ /** A new INITIAL_WINDOW_SIZE shifts every open stream's window by the delta (RFC 7540 §6.9.2). */
127
+ applyPeerSettings(settings) {
128
+ const maxFrameSize = settings[Http2Constants.SETTINGS_MAX_FRAME_SIZE];
129
+ if (maxFrameSize !== undefined) {
130
+ this.peerMaxFrameSize = maxFrameSize;
131
+ }
132
+ const initialWindowSize = settings[Http2Constants.SETTINGS_INITIAL_WINDOW_SIZE];
133
+ if (initialWindowSize !== undefined) {
134
+ const delta = initialWindowSize - this.peerInitialWindowSize;
135
+ this.peerInitialWindowSize = initialWindowSize;
136
+ for (const [streamId, window] of this.streamSendWindows) {
137
+ this.streamSendWindows.set(streamId, window + delta);
138
+ }
139
+ }
74
140
  }
75
141
  async close() {
76
142
  this.closing = true;
@@ -152,6 +218,16 @@ export class RemoteXpcFramedTransport extends EventEmitter {
152
218
  return;
153
219
  }
154
220
  for (const frame of frames) {
221
+ if (frame.type === 'settings') {
222
+ this.applyPeerSettings(frame.settings);
223
+ this.flushPendingSends();
224
+ continue;
225
+ }
226
+ if (frame.type === 'windowUpdate') {
227
+ this.adjustSendWindow(frame.streamId, frame.increment);
228
+ this.flushPendingSends();
229
+ continue;
230
+ }
155
231
  if (frame.type !== 'data') {
156
232
  continue;
157
233
  }
@@ -167,30 +243,56 @@ export class RemoteXpcFramedTransport extends EventEmitter {
167
243
  }
168
244
  }
169
245
  /**
170
- * Reassembles XPC messages for one HTTP/2 stream; streams buffer separately so
171
- * interleaving cannot fabricate a desync. Framed-but-undecodable messages are
172
- * skipped, and a retained tail is copied so it cannot pin the parser's buffer.
246
+ * Accumulates one XPC message per HTTP/2 stream as a chunk list, joined once when
247
+ * complete. Retained chunks are copied so a stalled stream cannot pin the frame
248
+ * parser's buffer; the header is probed from at most its first 24 bytes.
173
249
  */
174
250
  ingestXpcData(streamId, chunk) {
175
- if (this.desynced) {
251
+ if (this.desynced || chunk.length === 0) {
176
252
  return;
177
253
  }
178
- const buffered = this.pendingXpcData.get(streamId);
179
- let pending = buffered ? Buffer.concat([buffered, chunk]) : chunk;
180
- this.pendingXpcData.delete(streamId);
181
- while (pending.length > 0) {
182
- const framing = probeXpcFraming(pending);
183
- if (framing.status === 'incomplete') {
184
- this.pendingXpcData.set(streamId, Buffer.from(pending));
254
+ const pending = this.pendingXpcData.get(streamId) ?? { chunks: [], length: 0 };
255
+ const length = pending.length + chunk.length;
256
+ if (pending.byteLength === undefined) {
257
+ const head = Buffer.concat([...pending.chunks, chunk], Math.min(length, XPC_WRAPPER_HEADER_SIZE));
258
+ const framing = probeXpcFraming(head);
259
+ if (framing.status === 'desynced') {
260
+ this.handleDesync(framing.reason);
185
261
  return;
186
262
  }
263
+ pending.byteLength = framing.byteLength;
264
+ }
265
+ if (pending.byteLength === undefined || length < pending.byteLength) {
266
+ pending.chunks.push(Buffer.from(chunk));
267
+ pending.length = length;
268
+ this.pendingXpcData.set(streamId, pending);
269
+ return;
270
+ }
271
+ this.pendingXpcData.delete(streamId);
272
+ this.drainXpcMessages(streamId, pending.chunks.length === 0 ? chunk : Buffer.concat([...pending.chunks, chunk], length));
273
+ }
274
+ /**
275
+ * Emits every complete message at the front of `buffer`; an incomplete remainder
276
+ * is re-queued as a copy so it cannot pin the buffer it was sliced from.
277
+ */
278
+ drainXpcMessages(streamId, buffer) {
279
+ let rest = buffer;
280
+ while (rest.length > 0) {
281
+ const framing = probeXpcFraming(rest);
187
282
  if (framing.status === 'desynced') {
188
283
  this.handleDesync(framing.reason);
189
284
  return;
190
285
  }
191
- const message = pending.subarray(0, framing.byteLength);
192
- pending = pending.subarray(framing.byteLength);
193
- this.decodeAndEmit(message);
286
+ if (framing.status === 'incomplete') {
287
+ this.pendingXpcData.set(streamId, {
288
+ chunks: [Buffer.from(rest)],
289
+ length: rest.length,
290
+ byteLength: framing.byteLength,
291
+ });
292
+ return;
293
+ }
294
+ this.decodeAndEmit(rest.subarray(0, framing.byteLength));
295
+ rest = rest.subarray(framing.byteLength);
194
296
  }
195
297
  }
196
298
  /**
@@ -264,10 +366,15 @@ export class RemoteXpcFramedTransport extends EventEmitter {
264
366
  }
265
367
  });
266
368
  }
267
- resetParsers() {
369
+ resetConnectionState() {
268
370
  this.frameParser = new Http2FrameParser();
269
371
  this.pendingXpcData.clear();
270
372
  this.desynced = false;
373
+ this.peerMaxFrameSize = Http2Constants.DEFAULT_PEER_MAX_FRAME_SIZE;
374
+ this.peerInitialWindowSize = Http2Constants.DEFAULT_PEER_WINDOW_SIZE;
375
+ this.connectionSendWindow = Http2Constants.DEFAULT_PEER_WINDOW_SIZE;
376
+ this.streamSendWindows.clear();
377
+ this.sendQueue = [];
271
378
  }
272
379
  }
273
380
  //# sourceMappingURL=remote-xpc-framed-transport.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"remote-xpc-framed-transport.js","sourceRoot":"","sources":["../../../../src/lib/remote-xpc/remote-xpc-framed-transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remote-xpc-framed-transport.js","sourceRoot":"","sources":["../../../../src/lib/remote-xpc/remote-xpc-framed-transport.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ export interface DecodedXpcMessage {
16
16
  /** Framing state of the wrapper at the front of a buffer. `desynced` is unrecoverable. */
17
17
  export type XpcFramingProbe = {
18
18
  status: 'incomplete';
19
+ byteLength?: number;
19
20
  } | {
20
21
  status: 'desynced';
21
22
  reason: string;
@@ -29,6 +30,7 @@ export type XpcFramingProbe = {
29
30
  * { flags: Number, id: bigint, body: Object|null }
30
31
  */
31
32
  export declare function encodeMessage(message: XPCMessage): Buffer;
33
+ export declare const XPC_WRAPPER_HEADER_SIZE = 24;
32
34
  /**
33
35
  * Upper bound on a declared body length: the initial receive window, which the peer
34
36
  * cannot exceed on a stream because WINDOW_UPDATEs go out only for even streams and
@@ -1 +1 @@
1
- {"version":3,"file":"xpc-protocol.d.ts","sourceRoot":"","sources":["../../../../src/lib/remote-xpc/xpc-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,aAAa,EAAW,MAAM,aAAa,CAAC;AASnE,eAAO,MAAM,SAAS,EAAE;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAa7C,CAAC;AAGF,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,UAAU,CAAC;IACpB,uEAAuE;IACvE,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,0FAA0F;AAC1F,MAAM,MAAM,eAAe,GACvB;IAAC,MAAM,EAAE,YAAY,CAAA;CAAC,GACtB;IAAC,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,GACpC;IAAC,MAAM,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAC,CAAC;AA0GvC;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAkCzD;AAGD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,QAA8D,CAAC;AAE7F;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAc9D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAiB/D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAuC/D"}
1
+ {"version":3,"file":"xpc-protocol.d.ts","sourceRoot":"","sources":["../../../../src/lib/remote-xpc/xpc-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,aAAa,EAAW,MAAM,aAAa,CAAC;AASnE,eAAO,MAAM,SAAS,EAAE;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAa7C,CAAC;AAGF,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,UAAU,CAAC;IACpB,uEAAuE;IACvE,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,0FAA0F;AAC1F,MAAM,MAAM,eAAe,GACvB;IAAC,MAAM,EAAE,YAAY,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAC,GAC3C;IAAC,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,GACpC;IAAC,MAAM,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAC,CAAC;AA0GvC;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAkCzD;AAED,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,QAA8D,CAAC;AAE7F;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAc9D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAiB/D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAuC/D"}
@@ -140,7 +140,7 @@ export function encodeMessage(message) {
140
140
  writer.writeBuffer(bodyBuffer);
141
141
  return writer.concat();
142
142
  }
143
- const XPC_WRAPPER_HEADER_SIZE = 24;
143
+ export const XPC_WRAPPER_HEADER_SIZE = 24;
144
144
  /**
145
145
  * Upper bound on a declared body length: the initial receive window, which the peer
146
146
  * cannot exceed on a stream because WINDOW_UPDATEs go out only for even streams and
@@ -185,7 +185,7 @@ export function probeXpcFraming(buffer) {
185
185
  }
186
186
  const byteLength = XPC_WRAPPER_HEADER_SIZE + Number(bodyLength);
187
187
  if (buffer.length < byteLength) {
188
- return { status: 'incomplete' };
188
+ return { status: 'incomplete', byteLength };
189
189
  }
190
190
  return { status: 'ok', byteLength };
191
191
  }
@@ -1 +1 @@
1
- {"version":3,"file":"xpc-protocol.js","sourceRoot":"","sources":["../../../../src/lib/remote-xpc/xpc-protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xpc-protocol.js","sourceRoot":"","sources":["../../../../src/lib/remote-xpc/xpc-protocol.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "appium-ios-remotexpc",
3
- "version": "5.18.2",
3
+ "version": "5.18.4",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "bugs": {
@@ -15,6 +15,9 @@ export const Http2Constants = {
15
15
  DEFAULT_WIN_SIZE_INCR: 16 * 1024 * 1024 - 65535,
16
16
  SETTINGS_MAX_CONCURRENT_STREAMS: 0x03,
17
17
  SETTINGS_INITIAL_WINDOW_SIZE: 0x04,
18
+ SETTINGS_MAX_FRAME_SIZE: 0x05,
19
+ DEFAULT_PEER_MAX_FRAME_SIZE: 16384,
20
+ DEFAULT_PEER_WINDOW_SIZE: 65535,
18
21
  } as const;
19
22
 
20
23
  // XPC Constants
@@ -11,6 +11,7 @@ export type MessageId = number;
11
11
  class Handshake {
12
12
  private _socket: Socket;
13
13
  private readonly _nextMessageId: Record<ChannelId, MessageId>;
14
+ private readonly _dataBytesSent: Record<ChannelId, number>;
14
15
 
15
16
  constructor(socket: Socket) {
16
17
  this._socket = socket;
@@ -18,6 +19,15 @@ class Handshake {
18
19
  [Http2Constants.ROOT_CHANNEL]: 0,
19
20
  [Http2Constants.REPLY_CHANNEL]: 0,
20
21
  };
22
+ this._dataBytesSent = {
23
+ [Http2Constants.ROOT_CHANNEL]: 0,
24
+ [Http2Constants.REPLY_CHANNEL]: 0,
25
+ };
26
+ }
27
+
28
+ /** DATA payload bytes sent per stream, so the transport can debit its send windows. */
29
+ get dataBytesSent(): Readonly<Record<ChannelId, number>> {
30
+ return {...this._dataBytesSent};
21
31
  }
22
32
 
23
33
  async sendFrame(frame: Buffer): Promise<void> {
@@ -45,9 +55,13 @@ class Handshake {
45
55
  body: data,
46
56
  };
47
57
 
48
- const encodedMessage: Buffer = encodeMessage(requestMessage);
49
- const dataFrame: DataFrame = new DataFrame(Http2Constants.ROOT_CHANNEL, encodedMessage, []);
50
- await this.sendFrame(dataFrame.serialize());
58
+ await this.sendData(Http2Constants.ROOT_CHANNEL, requestMessage);
59
+ }
60
+
61
+ private async sendData(streamId: ChannelId, message: XPCMessage): Promise<void> {
62
+ const encoded: Buffer = encodeMessage(message);
63
+ this._dataBytesSent[streamId] += encoded.length;
64
+ await this.sendFrame(new DataFrame(streamId, encoded, []).serialize());
51
65
  }
52
66
 
53
67
  async perform(): Promise<void> {
@@ -98,9 +112,7 @@ class Handshake {
98
112
  id: 0,
99
113
  body: null,
100
114
  };
101
- const encodedDataMessage: Buffer = encodeMessage(dataMessage);
102
- const dataFrame: DataFrame = new DataFrame(Http2Constants.ROOT_CHANNEL, encodedDataMessage, []);
103
- await this.sendFrame(dataFrame.serialize());
115
+ await this.sendData(Http2Constants.ROOT_CHANNEL, dataMessage);
104
116
  this._nextMessageId[Http2Constants.ROOT_CHANNEL]++;
105
117
 
106
118
  // Step 8: Open REPLY_CHANNEL with INIT_HANDSHAKE flags.
@@ -109,9 +121,7 @@ class Handshake {
109
121
  id: 0,
110
122
  body: null,
111
123
  };
112
- const encodedReplyMessage: Buffer = encodeMessage(replyMessage);
113
- const replyDataFrame: DataFrame = new DataFrame(Http2Constants.REPLY_CHANNEL, encodedReplyMessage, []);
114
- await this.sendFrame(replyDataFrame.serialize());
124
+ await this.sendData(Http2Constants.REPLY_CHANNEL, replyMessage);
115
125
  this._nextMessageId[Http2Constants.REPLY_CHANNEL]++;
116
126
 
117
127
  // Step 9: Send SETTINGS ACK frame.
@@ -1,8 +1,12 @@
1
+ import {Http2Constants} from './constants.js';
1
2
  import {InvalidDataError, WindowUpdateFrame} from './handshake-frames.js';
2
3
 
3
4
  const FRAME_HEADER_SIZE = 9;
4
5
  const FRAME_TYPE_DATA = 0x00;
6
+ const FRAME_TYPE_SETTINGS = 0x04;
7
+ const FRAME_TYPE_WINDOW_UPDATE = 0x08;
5
8
  const FLAG_PADDED = 0x08;
9
+ const SETTINGS_ENTRY_SIZE = 6;
6
10
 
7
11
  export interface ParsedDataFrame {
8
12
  readonly streamId: number;
@@ -10,7 +14,11 @@ export interface ParsedDataFrame {
10
14
  readonly bodyLen: number;
11
15
  }
12
16
 
13
- export type ParsedFrame = {readonly type: 'data'; readonly frame: ParsedDataFrame} | {readonly type: 'other'};
17
+ export type ParsedFrame =
18
+ | {readonly type: 'data'; readonly frame: ParsedDataFrame}
19
+ | {readonly type: 'settings'; readonly settings: Record<number, number>}
20
+ | {readonly type: 'windowUpdate'; readonly streamId: number; readonly increment: number}
21
+ | {readonly type: 'other'};
14
22
 
15
23
  /**
16
24
  * Incrementally parse HTTP/2 frames from a byte stream (RFC 7540).
@@ -55,6 +63,12 @@ function parseFrame(buffer: Buffer): ParsedFrame {
55
63
  const streamId = buffer.readUInt32BE(5) & 0x7fffffff;
56
64
  const body = buffer.subarray(FRAME_HEADER_SIZE, FRAME_HEADER_SIZE + length);
57
65
 
66
+ if (type === FRAME_TYPE_SETTINGS && !(flags & Http2Constants.FLAG_ACK)) {
67
+ return {type: 'settings', settings: parseSettings(body)};
68
+ }
69
+ if (type === FRAME_TYPE_WINDOW_UPDATE) {
70
+ return {type: 'windowUpdate', streamId, increment: body.readUInt32BE(0) & 0x7fffffff};
71
+ }
58
72
  if (type !== FRAME_TYPE_DATA) {
59
73
  return {type: 'other'};
60
74
  }
@@ -67,6 +81,16 @@ function parseFrame(buffer: Buffer): ParsedFrame {
67
81
  };
68
82
  }
69
83
 
84
+ /** SETTINGS body is a list of 16-bit identifier / 32-bit value pairs (RFC 7540 §6.5.1). */
85
+ function parseSettings(body: Buffer): Record<number, number> {
86
+ return Object.fromEntries(
87
+ Array.from({length: Math.floor(body.length / SETTINGS_ENTRY_SIZE)}, (_, i) => {
88
+ const offset = i * SETTINGS_ENTRY_SIZE;
89
+ return [body.readUInt16BE(offset), body.readUInt32BE(offset + 2)];
90
+ }),
91
+ );
92
+ }
93
+
70
94
  /**
71
95
  * Strip HTTP/2 DATA frame padding (RFC 7540 §6.1).
72
96
  * @throws {InvalidDataError} when padding length is invalid
@@ -3,10 +3,11 @@ import net from 'node:net';
3
3
 
4
4
  import {getLogger} from '../logger.js';
5
5
  import type {XPCDictionary} from '../types.js';
6
+ import {Http2Constants} from './constants.js';
6
7
  import {DataFrame} from './handshake-frames.js';
7
8
  import Handshake from './handshake.js';
8
9
  import {Http2FrameParser, buildWindowUpdateFrames} from './http2-frame-parser.js';
9
- import {decodeMessage, probeXpcFraming} from './xpc-protocol.js';
10
+ import {decodeMessage, probeXpcFraming, XPC_WRAPPER_HEADER_SIZE} from './xpc-protocol.js';
10
11
 
11
12
  const log = getLogger('RemoteXpcFramedTransport');
12
13
 
@@ -18,6 +19,13 @@ export interface RemoteXpcFramedTransportConnectOptions {
18
19
  handshakeDelayMs?: number;
19
20
  }
20
21
 
22
+ /** Owned copies of one in-flight XPC message's chunks; `byteLength` is unset until the header is readable. */
23
+ interface PendingXpcMessage {
24
+ chunks: Buffer[];
25
+ length: number;
26
+ byteLength?: number;
27
+ }
28
+
21
29
  /**
22
30
  * Shared RemoteXPC transport: owns TCP socket lifecycle, HTTP/2/XPC handshake,
23
31
  * DATA frame parsing, window updates, and XPC message reassembly.
@@ -26,10 +34,15 @@ export class RemoteXpcFramedTransport extends EventEmitter {
26
34
  private readonly address: [string, number];
27
35
  private socket: net.Socket | null = null;
28
36
  private frameParser = new Http2FrameParser();
29
- private pendingXpcData = new Map<number, Buffer>();
37
+ private pendingXpcData = new Map<number, PendingXpcMessage>();
30
38
  private connected = false;
31
39
  private closing = false;
32
40
  private desynced = false;
41
+ private peerMaxFrameSize: number = Http2Constants.DEFAULT_PEER_MAX_FRAME_SIZE;
42
+ private peerInitialWindowSize: number = Http2Constants.DEFAULT_PEER_WINDOW_SIZE;
43
+ private connectionSendWindow: number = Http2Constants.DEFAULT_PEER_WINDOW_SIZE;
44
+ private streamSendWindows = new Map<number, number>();
45
+ private sendQueue: {streamId: number; payload: Buffer}[] = [];
33
46
 
34
47
  constructor(address: [string, number]) {
35
48
  super();
@@ -58,7 +71,7 @@ export class RemoteXpcFramedTransport extends EventEmitter {
58
71
  return;
59
72
  }
60
73
 
61
- this.resetParsers();
74
+ this.resetConnectionState();
62
75
  const socket = net.createConnection({
63
76
  host: this.address[0],
64
77
  port: this.address[1],
@@ -76,7 +89,11 @@ export class RemoteXpcFramedTransport extends EventEmitter {
76
89
  }
77
90
 
78
91
  try {
79
- await new Handshake(socket).perform();
92
+ const handshake = new Handshake(socket);
93
+ await handshake.perform();
94
+ for (const [streamId, bytes] of Object.entries(handshake.dataBytesSent)) {
95
+ this.consumeSendWindow(Number(streamId), bytes);
96
+ }
80
97
  this.connected = true;
81
98
  } catch (error) {
82
99
  await this.close();
@@ -88,7 +105,71 @@ export class RemoteXpcFramedTransport extends EventEmitter {
88
105
  if (!this.socket?.writable) {
89
106
  throw new Error('RemoteXPC socket is not writable');
90
107
  }
91
- this.socket.write(new DataFrame(streamId, payload, []).serialize());
108
+ this.sendQueue.push({streamId, payload});
109
+ this.flushPendingSends();
110
+ }
111
+
112
+ /**
113
+ * Writes queued payloads as DATA frames no larger than the peer's max frame size
114
+ * or its send windows. Stops at the first blocked payload so ordering holds.
115
+ */
116
+ private flushPendingSends(): void {
117
+ const socket = this.socket;
118
+ while (socket?.writable && this.sendQueue.length > 0) {
119
+ const send = this.sendQueue[0];
120
+ const size = Math.min(
121
+ send.payload.length,
122
+ this.peerMaxFrameSize,
123
+ this.sendWindow(0),
124
+ this.sendWindow(send.streamId),
125
+ );
126
+ if (size <= 0 && send.payload.length > 0) {
127
+ return;
128
+ }
129
+ socket.write(new DataFrame(send.streamId, send.payload.subarray(0, size), []).serialize());
130
+ this.consumeSendWindow(send.streamId, size);
131
+ if (size === send.payload.length) {
132
+ this.sendQueue.shift();
133
+ } else {
134
+ send.payload = send.payload.subarray(size);
135
+ }
136
+ }
137
+ }
138
+
139
+ /** Stream 0 is the connection-level window. */
140
+ private sendWindow(streamId: number): number {
141
+ return streamId === 0
142
+ ? this.connectionSendWindow
143
+ : (this.streamSendWindows.get(streamId) ?? this.peerInitialWindowSize);
144
+ }
145
+
146
+ private adjustSendWindow(streamId: number, delta: number): void {
147
+ if (streamId === 0) {
148
+ this.connectionSendWindow += delta;
149
+ } else {
150
+ this.streamSendWindows.set(streamId, this.sendWindow(streamId) + delta);
151
+ }
152
+ }
153
+
154
+ private consumeSendWindow(streamId: number, bytes: number): void {
155
+ this.adjustSendWindow(0, -bytes);
156
+ this.adjustSendWindow(streamId, -bytes);
157
+ }
158
+
159
+ /** A new INITIAL_WINDOW_SIZE shifts every open stream's window by the delta (RFC 7540 §6.9.2). */
160
+ private applyPeerSettings(settings: Record<number, number>): void {
161
+ const maxFrameSize = settings[Http2Constants.SETTINGS_MAX_FRAME_SIZE];
162
+ if (maxFrameSize !== undefined) {
163
+ this.peerMaxFrameSize = maxFrameSize;
164
+ }
165
+ const initialWindowSize = settings[Http2Constants.SETTINGS_INITIAL_WINDOW_SIZE];
166
+ if (initialWindowSize !== undefined) {
167
+ const delta = initialWindowSize - this.peerInitialWindowSize;
168
+ this.peerInitialWindowSize = initialWindowSize;
169
+ for (const [streamId, window] of this.streamSendWindows) {
170
+ this.streamSendWindows.set(streamId, window + delta);
171
+ }
172
+ }
92
173
  }
93
174
 
94
175
  async close(): Promise<void> {
@@ -181,6 +262,16 @@ export class RemoteXpcFramedTransport extends EventEmitter {
181
262
  }
182
263
 
183
264
  for (const frame of frames) {
265
+ if (frame.type === 'settings') {
266
+ this.applyPeerSettings(frame.settings);
267
+ this.flushPendingSends();
268
+ continue;
269
+ }
270
+ if (frame.type === 'windowUpdate') {
271
+ this.adjustSendWindow(frame.streamId, frame.increment);
272
+ this.flushPendingSends();
273
+ continue;
274
+ }
184
275
  if (frame.type !== 'data') {
185
276
  continue;
186
277
  }
@@ -199,33 +290,63 @@ export class RemoteXpcFramedTransport extends EventEmitter {
199
290
  }
200
291
 
201
292
  /**
202
- * Reassembles XPC messages for one HTTP/2 stream; streams buffer separately so
203
- * interleaving cannot fabricate a desync. Framed-but-undecodable messages are
204
- * skipped, and a retained tail is copied so it cannot pin the parser's buffer.
293
+ * Accumulates one XPC message per HTTP/2 stream as a chunk list, joined once when
294
+ * complete. Retained chunks are copied so a stalled stream cannot pin the frame
295
+ * parser's buffer; the header is probed from at most its first 24 bytes.
205
296
  */
206
297
  private ingestXpcData(streamId: number, chunk: Buffer): void {
207
- if (this.desynced) {
298
+ if (this.desynced || chunk.length === 0) {
208
299
  return;
209
300
  }
210
301
 
211
- const buffered = this.pendingXpcData.get(streamId);
212
- let pending = buffered ? Buffer.concat([buffered, chunk]) : chunk;
213
- this.pendingXpcData.delete(streamId);
302
+ const pending = this.pendingXpcData.get(streamId) ?? {chunks: [], length: 0};
303
+ const length = pending.length + chunk.length;
214
304
 
215
- while (pending.length > 0) {
216
- const framing = probeXpcFraming(pending);
217
- if (framing.status === 'incomplete') {
218
- this.pendingXpcData.set(streamId, Buffer.from(pending));
305
+ if (pending.byteLength === undefined) {
306
+ const head = Buffer.concat([...pending.chunks, chunk], Math.min(length, XPC_WRAPPER_HEADER_SIZE));
307
+ const framing = probeXpcFraming(head);
308
+ if (framing.status === 'desynced') {
309
+ this.handleDesync(framing.reason);
219
310
  return;
220
311
  }
312
+ pending.byteLength = framing.byteLength;
313
+ }
314
+ if (pending.byteLength === undefined || length < pending.byteLength) {
315
+ pending.chunks.push(Buffer.from(chunk));
316
+ pending.length = length;
317
+ this.pendingXpcData.set(streamId, pending);
318
+ return;
319
+ }
320
+
321
+ this.pendingXpcData.delete(streamId);
322
+ this.drainXpcMessages(
323
+ streamId,
324
+ pending.chunks.length === 0 ? chunk : Buffer.concat([...pending.chunks, chunk], length),
325
+ );
326
+ }
327
+
328
+ /**
329
+ * Emits every complete message at the front of `buffer`; an incomplete remainder
330
+ * is re-queued as a copy so it cannot pin the buffer it was sliced from.
331
+ */
332
+ private drainXpcMessages(streamId: number, buffer: Buffer): void {
333
+ let rest = buffer;
334
+ while (rest.length > 0) {
335
+ const framing = probeXpcFraming(rest);
221
336
  if (framing.status === 'desynced') {
222
337
  this.handleDesync(framing.reason);
223
338
  return;
224
339
  }
225
-
226
- const message = pending.subarray(0, framing.byteLength);
227
- pending = pending.subarray(framing.byteLength);
228
- this.decodeAndEmit(message);
340
+ if (framing.status === 'incomplete') {
341
+ this.pendingXpcData.set(streamId, {
342
+ chunks: [Buffer.from(rest)],
343
+ length: rest.length,
344
+ byteLength: framing.byteLength,
345
+ });
346
+ return;
347
+ }
348
+ this.decodeAndEmit(rest.subarray(0, framing.byteLength));
349
+ rest = rest.subarray(framing.byteLength);
229
350
  }
230
351
  }
231
352
 
@@ -306,9 +427,14 @@ export class RemoteXpcFramedTransport extends EventEmitter {
306
427
  });
307
428
  }
308
429
 
309
- private resetParsers(): void {
430
+ private resetConnectionState(): void {
310
431
  this.frameParser = new Http2FrameParser();
311
432
  this.pendingXpcData.clear();
312
433
  this.desynced = false;
434
+ this.peerMaxFrameSize = Http2Constants.DEFAULT_PEER_MAX_FRAME_SIZE;
435
+ this.peerInitialWindowSize = Http2Constants.DEFAULT_PEER_WINDOW_SIZE;
436
+ this.connectionSendWindow = Http2Constants.DEFAULT_PEER_WINDOW_SIZE;
437
+ this.streamSendWindows.clear();
438
+ this.sendQueue = [];
313
439
  }
314
440
  }
@@ -38,7 +38,7 @@ export interface DecodedXpcMessage {
38
38
 
39
39
  /** Framing state of the wrapper at the front of a buffer. `desynced` is unrecoverable. */
40
40
  export type XpcFramingProbe =
41
- | {status: 'incomplete'}
41
+ | {status: 'incomplete'; byteLength?: number}
42
42
  | {status: 'desynced'; reason: string}
43
43
  | {status: 'ok'; byteLength: number};
44
44
 
@@ -187,7 +187,7 @@ export function encodeMessage(message: XPCMessage): Buffer {
187
187
  return writer.concat();
188
188
  }
189
189
 
190
- const XPC_WRAPPER_HEADER_SIZE = 24;
190
+ export const XPC_WRAPPER_HEADER_SIZE = 24;
191
191
  /**
192
192
  * Upper bound on a declared body length: the initial receive window, which the peer
193
193
  * cannot exceed on a stream because WINDOW_UPDATEs go out only for even streams and
@@ -234,7 +234,7 @@ export function probeXpcFraming(buffer: Buffer): XpcFramingProbe {
234
234
  }
235
235
  const byteLength = XPC_WRAPPER_HEADER_SIZE + Number(bodyLength);
236
236
  if (buffer.length < byteLength) {
237
- return {status: 'incomplete'};
237
+ return {status: 'incomplete', byteLength};
238
238
  }
239
239
  return {status: 'ok', byteLength};
240
240
  }