plnkr / feedback

Feedback on Plunker
19 stars 11 forks source link

Error when using MediaRecorder #525

Closed guest271314 closed 4 years ago

guest271314 commented 4 years ago

Describe the bug Multiple errors thrown when using MediaStream, MediaRecorder and ondataavailable BlobEvent

To Reproduce Steps to reproduce the behavior:

Pass a live MediaStream to MediaRecorder, attach ondataavailable event and handler to MediaRecorder, execute MediaRecorder.start(), record the stream for several seconds then execute MediaRecorder.stop().

Errors / logs in developer tools

previewer.73d846dc7be809aebf0c.js:14 MediaStream {id: "f0148236-0da4-4d1a-96a3-32c310b03ceb", active: true, onaddtrack: null, onremovetrack: null, onactive: null, …}
previewer.73d846dc7be809aebf0c.js:1 Uncaught (in promise) DOMException: Failed to execute 'postMessage' on 'Window': MediaStream object could not be cloned.
    at sendMessage (https://cdn.plnkr.co/build/v1.0.0-222-g99f69ad/previewer.73d846dc7be809aebf0c.js:1:158386)
    at t.sendMessage (https://cdn.plnkr.co/build/v1.0.0-222-g99f69ad/previewer.73d846dc7be809aebf0c.js:1:70702)
    at t.value (https://cdn.plnkr.co/build/v1.0.0-222-g99f69ad/previewer.73d846dc7be809aebf0c.js:1:71333)
    at Object.n.<computed> [as onConsole] (https://cdn.plnkr.co/build/v1.0.0-222-g99f69ad/previewer.73d846dc7be809aebf0c.js:1:71636)
    at https://cdn.plnkr.co/build/v1.0.0-222-g99f69ad/previewer.73d846dc7be809aebf0c.js:1:158085
sendMessage @ previewer.73d846dc7be809aebf0c.js:1
(anonymous) @ previewer.73d846dc7be809aebf0c.js:1
value @ previewer.73d846dc7be809aebf0c.js:1
n.<computed> @ previewer.73d846dc7be809aebf0c.js:1
(anonymous) @ previewer.73d846dc7be809aebf0c.js:1
Promise.then (async)
(anonymous) @ previewer.73d846dc7be809aebf0c.js:1
(anonymous) @ previewer.73d846dc7be809aebf0c.js:14
setTimeout (async)
a.<computed> @ previewer.73d846dc7be809aebf0c.js:14
button.onclick @ (index):24
previewer.73d846dc7be809aebf0c.js:14 Event {isTrusted: true, type: "start", target: MediaRecorder, currentTarget: MediaRecorder, eventPhase: 2, …}
previewer.73d846dc7be809aebf0c.js:1 Uncaught (in promise) DOMException: Failed to execute 'postMessage' on 'Window': Event object could not be cloned.
    at sendMessage (https://cdn.plnkr.co/build/v1.0.0-222-g99f69ad/previewer.73d846dc7be809aebf0c.js:1:158386)
    at t.sendMessage (https://cdn.plnkr.co/build/v1.0.0-222-g99f69ad/previewer.73d846dc7be809aebf0c.js:1:70702)
    at t.value (https://cdn.plnkr.co/build/v1.0.0-222-g99f69ad/previewer.73d846dc7be809aebf0c.js:1:71333)
    at Object.n.<computed> [as onConsole] (https://cdn.plnkr.co/build/v1.0.0-222-g99f69ad/previewer.73d846dc7be809aebf0c.js:1:71636)
    at https://cdn.plnkr.co/build/v1.0.0-222-g99f69ad/previewer.73d846dc7be809aebf0c.js:1:158085
sendMessage @ previewer.73d846dc7be809aebf0c.js:1
(anonymous) @ previewer.73d846dc7be809aebf0c.js:1
value @ previewer.73d846dc7be809aebf0c.js:1
n.<computed> @ previewer.73d846dc7be809aebf0c.js:1
(anonymous) @ previewer.73d846dc7be809aebf0c.js:1
Promise.then (async)
(anonymous) @ previewer.73d846dc7be809aebf0c.js:1
(anonymous) @ previewer.73d846dc7be809aebf0c.js:14
setTimeout (async)
a.<computed> @ previewer.73d846dc7be809aebf0c.js:14
recorder.onstart.recorder.onstop @ (index):28
previewer.73d846dc7be809aebf0c.js:14 BlobEvent {isTrusted: true, data: Blob, timecode: 1585614674243.819, type: "dataavailable", target: MediaRecorder, …}
previewer.73d846dc7be809aebf0c.js:14 blob:https://run.plnkr.co/3baeba94-2a08-4b6d-aab9-572c71cbaf44
previewer.73d846dc7be809aebf0c.js:14 Event {isTrusted: true, type: "stop", target: MediaRecorder, currentTarget: MediaRecorder, eventPhase: 2, …}
previewer.73d846dc7be809aebf0c.js:1 Uncaught (in promise) DOMException: Failed to execute 'postMessage' on 'Window': BlobEvent object could not be cloned.
    at sendMessage (https://cdn.plnkr.co/build/v1.0.0-222-g99f69ad/previewer.73d846dc7be809aebf0c.js:1:158386)
    at t.sendMessage (https://cdn.plnkr.co/build/v1.0.0-222-g99f69ad/previewer.73d846dc7be809aebf0c.js:1:70702)
    at t.value (https://cdn.plnkr.co/build/v1.0.0-222-g99f69ad/previewer.73d846dc7be809aebf0c.js:1:71333)
    at Object.n.<computed> [as onConsole] (https://cdn.plnkr.co/build/v1.0.0-222-g99f69ad/previewer.73d846dc7be809aebf0c.js:1:71636)
    at https://cdn.plnkr.co/build/v1.0.0-222-g99f69ad/previewer.73d846dc7be809aebf0c.js:1:158085
sendMessage @ previewer.73d846dc7be809aebf0c.js:1
(anonymous) @ previewer.73d846dc7be809aebf0c.js:1
value @ previewer.73d846dc7be809aebf0c.js:1
n.<computed> @ previewer.73d846dc7be809aebf0c.js:1
(anonymous) @ previewer.73d846dc7be809aebf0c.js:1
Promise.then (async)
(anonymous) @ previewer.73d846dc7be809aebf0c.js:1
(anonymous) @ previewer.73d846dc7be809aebf0c.js:14
setTimeout (async)
a.<computed> @ previewer.73d846dc7be809aebf0c.js:14
recorder.ondataavailable @ (index):30
previewer.73d846dc7be809aebf0c.js:1 Uncaught (in promise) DOMException: Failed to execute 'postMessage' on 'Window': Event object could not be cloned.
    at sendMessage (https://cdn.plnkr.co/build/v1.0.0-222-g99f69ad/previewer.73d846dc7be809aebf0c.js:1:158386)
    at t.sendMessage (https://cdn.plnkr.co/build/v1.0.0-222-g99f69ad/previewer.73d846dc7be809aebf0c.js:1:70702)
    at t.value (https://cdn.plnkr.co/build/v1.0.0-222-g99f69ad/previewer.73d846dc7be809aebf0c.js:1:71333)
    at Object.n.<computed> [as onConsole] (https://cdn.plnkr.co/build/v1.0.0-222-g99f69ad/previewer.73d846dc7be809aebf0c.js:1:71636)
    at https://cdn.plnkr.co/build/v1.0.0-222-g99f69ad/previewer.73d846dc7be809aebf0c.js:1:158085

Expected behavior No errors to be thrown for a console feature that is not being used.

Screenshots If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

Additional context Appears to be related to the new console feature as evidenced by the logs at [as onConsole] trying to clone objects that cannot be cloned?

It would be useful if the console feature could be disabled, as it is impacting the code being run, even when not being opened or used in the plnkr editor preview page.

ggoodman commented 4 years ago

Looks like the same root cause as #524. Thanks for reporting. I'm still trying to figure out what to do with this one.

guest271314 commented 4 years ago

I'm still trying to figure out what to do with this one.

One solution is to provide the means to disable the console feature entirely, as #524 requests.

guest271314 commented 4 years ago

The errors are piling up.

        const parser = new WebMFileParser(url, function(data) {
          console.log(data);
        });
        console.log(parser);

yields

previewer.73d846dc7be809aebf0c.js:1 Uncaught (in promise) DOMException: Failed to execute 'postMessage' on 'Window': function(data) {
          console.log(data);
        } could not be cloned.
    at sendMessage (https://cdn.plnkr.co/build/v1.0.0-222-g99f69ad/previewer.73d846dc7be809aebf0c.js:1:158386)
    at t.sendMessage (https://cdn.plnkr.co/build/v1.0.0-222-g99f69ad/previewer.73d846dc7be809aebf0c.js:1:70702)
    at t.value (https://cdn.plnkr.co/build/v1.0.0-222-g99f69ad/previewer.73d846dc7be809aebf0c.js:1:71333)
    at Object.n.<computed> [as onConsole] (https://cdn.plnkr.co/build/v1.0.0-222-g99f69ad/previewer.73d846dc7be809aebf0c.js:1:71636)
    at https://cdn.plnkr.co/build/v1.0.0-222-g99f69ad/previewer.73d846dc7be809aebf0c.js:1:158085

Why is the code attempting to transfer objects that are not transferable?

ggoodman commented 4 years ago

@guest271314 I've temporarily disabled the console. Can you verify that this has fixed the issues you're seeing?

guest271314 commented 4 years ago

@ggoodman Yes.