Open Bug 1623947 Opened 5 years ago Updated 2 years ago

_fromCallArguments has to try to deserialize the argument's value even for not serializable types

Categories

(Remote Protocol :: CDP, enhancement, P3)

enhancement

Tracking

(Not tracked)

People

(Reporter: whimboo, Unassigned)

References

(Blocks 2 open bugs)

Details

Chrome works like that:

>>> var result = Runtime.callFunctionOn({ functionDeclaration: "arg => arg", executionContextId: 1, arguments: [{ unserializableValue: "Symbol('42')"}]});
>>> result
Promise {
  {
    result: {
      type: 'symbol',
      description: 'Symbol(42)',
      objectId: '{"injectedScriptId":1,"id":1}'
    }
  },
  inspect: [AsyncFunction]
}

In Firefox we fail with:

0:16.54 GECKO(32639) 1584721195163	RemoteAgent	TRACE	<-(connection {4992ac68-fb6e-8a47-aa0a-3d3eb2570b01}) {"id":3,"error":{"message":"Couldn't parse value object in call argument","data":"_fromCallArgument@chrome://remote/content/d ... chrome://remote/content/sessions/ContentProcessSession.jsm:27:25\n@chrome://remote/content/sessions/frame-script.js:12:1\n"}}

Code to reproduce:

    const { result } = await Runtime.callFunctionOn({
      functionDeclaration: "arg => arg",
      arguments: [ { unserializableValue: "Symbol('42') }],
      executionContextId,
    });
Component: CDP: Runtime → CDP
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.