Closed
Bug 1206538
Opened 9 years ago
Closed 9 years ago
Attempting to load image from SW cache fails after SW is active fails on first load.
Categories
(Core :: DOM: Service Workers, defect)
Core
DOM: Service Workers
Tracking
()
RESOLVED
WORKSFORME
People
(Reporter: marcos, Unassigned)
References
Details
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:42.0) Gecko/20100101 Firefox/42.0
Build ID: 20150919004025
Steps to reproduce:
1. I wait for the SW to install and become active.
2. Then I send an ArrayBuffer to the SW over postMessage().
3. That ArrayBuffer is then converted to a blob and stored in a cache.
4. Then I send a message back to the page saying "ok, I stored the image"
5. I create an Image element and set the source.
If I refresh, then it works fine; as the image is already in the SW cache.
Actual results:
The image fails to load and instead triggers the `onerror` handler.
Expected results:
I would expect that after install and activation, I should be able to store blobs in the SW without needing to reload the page. And that I should be able to load those images from dynamically created img elements.
Comment 1•9 years ago
|
||
Marcos, does the onerror handler provide any information? Do you have example code I can use to duplicate this?
In regards to avoiding the reload, please use self.skipWaiting() in your install event handler and self.clients.claim() in your activate event handler.
Comment 2•9 years ago
|
||
(In reply to Ben Kelly [:bkelly] from comment #1)
> Marcos, does the onerror handler provide any information?
No, as it never fires.
> Do you have
> example code I can use to duplicate this?
Please see:
https://github.com/mozilla/remote-newtab/blob/gh-pages/test/sw_spec.js#L35
Using this SW:
https://github.com/mozilla/remote-newtab/blob/gh-pages/sw.js
To run the actual test needs a bit of setup (npm install + our custom build of gecko which we are working on to do this "remote about:newtab" thing).
I'm happy to help get all that set up if you want to run the actual test.
> In regards to avoiding the reload, please use self.skipWaiting() in your
> install event handler and self.clients.claim() in your activate event
> handler.
Awesome, thank you! Will try this out!
Flags: needinfo?(marcos)
Comment 3•9 years ago
|
||
(In reply to Marcos Caceres [:marcosc] from comment #2)
> (In reply to Ben Kelly [:bkelly] from comment #1)
> > Marcos, does the onerror handler provide any information?
>
> No, as it never fires.
This seems opposite to what you wrote in comment 0 under "actual results".
> To run the actual test needs a bit of setup (npm install + our custom build
> of gecko which we are working on to do this "remote about:newtab" thing).
Can you attach a patch I can apply against central to get that?
Comment 4•9 years ago
|
||
(In reply to Ben Kelly [:bkelly] from comment #3)
> (In reply to Marcos Caceres [:marcosc] from comment #2)
> > (In reply to Ben Kelly [:bkelly] from comment #1)
> > > Marcos, does the onerror handler provide any information?
> >
> > No, as it never fires.
>
> This seems opposite to what you wrote in comment 0 under "actual results".
Oops... got confused with the other image caching bug (where onload always fires). Let me check what actually happens.
> > To run the actual test needs a bit of setup (npm install + our custom build
> > of gecko which we are working on to do this "remote about:newtab" thing).
>
> Can you attach a patch I can apply against central to get that?
Yes, I can try to slap something together.
Comment 5•9 years ago
|
||
This was caused by passing a rejected promise to respondWith().
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → WORKSFORME
You need to log in
before you can comment on or make changes to this bug.
Description
•