D28706: Restore old Audio prototype after exportFunction

Kai Uwe Broulik noreply at phabricator.kde.org
Thu Apr 9 17:32:11 BST 2020


broulik created this revision.
broulik added reviewers: Plasma, fvogt, ognarb.
Herald added a project: Plasma.
Herald added a subscriber: plasma-devel.
broulik requested review of this revision.

REVISION SUMMARY
  `exportFunction` doesn't carry over a prototype, nor can I assign a non-function with it afterwards.
  However, Firefox exports the "unsafe" stuff in `wrappedJSObject`, so I can actually get the original untrusted prototype, `exportFunction` my new function, and then set it back.
  I can't just use the prototype in content-script since it wouldn't be accessible from the webpage.
  Interestingly enough, I have to use `window.Audio` rather than `window.wrappedJSObject.Audio` for //creating// the player as the wrapped one doesn't appear to be working when used from this function.
  This one then still passes onto the website like normal and plays sound.
  
  BUG: 414512

TEST PLAN
  The websites mentioned in the bug report
  
  - https://playcanv.as/p/44MRmJRU/
  - https://robostorm.io/ (without any sound but that is also without p-b-i and in Chrome)
  
  work now

REPOSITORY
  R856 Plasma Browser Integration

REVISION DETAIL
  https://phabricator.kde.org/D28706

AFFECTED FILES
  extension/content-script.js

To: broulik, #plasma, fvogt, ognarb
Cc: plasma-devel, Orage, LeGast00n, The-Feren-OS-Dev, cblack, jraleigh, zachus, fbampaloukas, GB_2, ragreen, ZrenBot, ngraham, himcesjf, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, ahiemstra, mart
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20200409/bbf5c3af/attachment-0001.html>


More information about the Plasma-devel mailing list