Hello Jim,

 Sorry about this. I've dug around a bit and I believe the root cause is
due to platinum-sw depending on sw-toolbox ^2.0.4
<https://github.com/PolymerElements/platinum-sw/blob/master/bower.json#L27>,
while the fix <https://github.com/GoogleChrome/sw-toolbox/pull/39> to
bypass the default route for non-GET requests didn't make it into
sw-toolbox until version 3.0.x.

 Can you try temporarily modifying your bower.json to pull in version
"polymerelements/platinum-sw#bump-sw-toolbox" in your platinum-sw
dependency? We'll be cutting a new official release for platinum-sw that
includes the updated dependency, but it would be great to hear confirmation
from you that this resolves it for you.

Cheers,
-j

On Fri, Feb 5, 2016 at 1:07 AM, Jim Trainor <[email protected]>
wrote:

> This question now posted on stackoverflow:
>
>
> http://stackoverflow.com/questions/35214589/polymer-polymer-sw-service-worker-transparent-409-put-response
>
> I’d really love to get the bottom of this. My entire application works
> great offline… except for this :( … so I have to disable the service
> worker. This is important because offline-ready applications  with
> fully-baked cache implementations that exist outside the domain of the
> service-worker have to deal with 409 error cleanly (as mine does, on all
> browsers, with or without service worker support!).  The service work in my
> case just takes care of caching the site’s static content and that much
> works great. It has to stay out of the way of the rest of the application.
>
> p.s. I upgraded to platinum-sw 2.0.0. Same behaviour.
>
>
> On Mon, Feb 1, 2016 at 7:43 PM, Jim Trainor <[email protected]>
> wrote:
>
>> Handling only GET requests makes sense.  But the PUT requests are being
>> touched somewhere/somehow it appears.  If I disable platium-sw-cache using
>> the “disabled” property my own code gets the 409 response as expected.
>> When enabled, my code never sees the 409 response.  So something appears to
>> be amiss.
>>
>> On Mon, Feb 1, 2016 at 5:18 PM, Jeffrey Posnick <[email protected]> wrote:
>>
>>> Under the hood, <platinum-sw-fetch> ends up calling toolbox.router.get()
>>> <https://github.com/GoogleChrome/sw-toolbox/pull/11>,  to register what
>>> should be a GET-only handler. I would expect PUT requests to be bypassed as
>>> if there were no service worker involvement.
>>>
>>> I'll look into it more and see if I can reproduce. I'm also CC:ing Mat,
>>> who authored sw-toolbox, the underlying library.
>>>
>>> Cheers,
>>> -j
>>>
>>> On Sun, Jan 31, 2016 at 4:29 PM, Rob Dodson <[email protected]>
>>> wrote:
>>>
>>>> +Jeff, who may know more
>>>>
>>>> On Sun, Jan 31, 2016 at 1:02 PM, Jim Trainor <
>>>> [email protected]> wrote:
>>>>
>>>>> I'm using platinum-sw and I have a platinum-sw-fetch handler
>>>>> configured to ignore paths that are in my application's xhr request api.  
>>>>> I
>>>>> have configured a platinum-sw-fetch handler expecting to handle both http
>>>>> GET and PUT requests by simply passing them through the client using a
>>>>> "fetch" call.
>>>>>
>>>>> <platinum-sw-register ... >
>>>>>  <platinum-sw-fetch handler="doNativeFetch" path="/myservice(.*)"
>>>>> ></platinum-sw-fetch>
>>>>> .
>>>>> .
>>>>> .
>>>>> </platinum-sw-register>
>>>>>
>>>>>
>>>>> var doNativeFetch = function doNativeFetch(request, values, options) {
>>>>>  console.log('doNativeFetch request', request, values, options);
>>>>>  return fetch(request);
>>>>> };
>>>>>
>>>>>
>>>>> This works as expected for GET requests. I see GET request to 
>>>>> "/myservice/..." logged by my custome doNativeFetch handler, the service 
>>>>> worker doesn't cache these requests as expected.  Http PUT requests also 
>>>>> work (from the clients perspective) but they do *not* appear to be 
>>>>> directed to my doNativeFetch handler - I never see my "doNativeFetch" log 
>>>>> message.  This causes a problem when my server returns an 409 status to a 
>>>>> PUT request (in response to a client's attempt to write state data).  My 
>>>>> application code expectes to handle this 409 error when it occurs.  But I 
>>>>> never see the error when I run with the platinum-sw service worker 
>>>>> enabled.  Instead I see the following in Chrome's console:
>>>>>
>>>>>
>>>>> (Here is clients http request)
>>>>> XHR finished loading: PUT "https://abc.example.com/myservice/12345";.
>>>>>
>>>>> (Immediately followed by this, which appears to be the service layer
>>>>> intercept, no my doNativeFetch handler).
>>>>> PUT https://abc.example.com/myservice/12345 409 (OK)  <<< expected,
>>>>> good so far!
>>>>> The FetchEvent for "https://abc.example.com/myservice/12345"; resulted
>>>>> in a network error response: an object that was not a Response was
>>>>> passed to respondWith()  <<< the 409 is not passed-thru, where do I
>>>>> hook into respondWith?
>>>>>
>>>>> (Immediately followed by this, which is my client layer code getting
>>>>> a net::ERR_FAILED rather than the 409 http response - bad!).
>>>>> PUT https://abc.example.com/myservice/12345 net::ERR_FAILED   <<<<
>>>>> problem, client doesn't get the 409
>>>>>
>>>>>
>>>>> ... after much digging, I am a loss as to how to proceed with this. The 
>>>>> most basic issue is that my custom platinum-sw-fetch handler is never 
>>>>> called for the PUT request.  How to I configure a platinum-sw-fetch 
>>>>> handler that will intercept a PUT request and allow me to pass a 409 
>>>>> error through to the calling client?  Or is that the wrong stategy 
>>>>> entirely?  Perhaps somewhere I provide a FetchEvent.respondWith 
>>>>> implementation? But where and how?
>>>>>
>>>>>
>>>>>
>>>>> Follow Polymer on Google+: plus.google.com/107187849809354688692
>>>>> ---
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "Polymer" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to [email protected].
>>>>> To view this discussion on the web visit
>>>>> https://groups.google.com/d/msgid/polymer-dev/ae19fc55-5732-4343-b29a-4c8281023a84%40googlegroups.com
>>>>> <https://groups.google.com/d/msgid/polymer-dev/ae19fc55-5732-4343-b29a-4c8281023a84%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>>
>>>
>>
> Follow Polymer on Google+: plus.google.com/107187849809354688692
> ---
> You received this message because you are subscribed to the Google Groups
> "Polymer" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/polymer-dev/CACDv4tBs0Q87sPur9GmgsVKqjKNsmtJO%2B%3DSnV3Ed54RLqWJjQg%40mail.gmail.com
> <https://groups.google.com/d/msgid/polymer-dev/CACDv4tBs0Q87sPur9GmgsVKqjKNsmtJO%2B%3DSnV3Ed54RLqWJjQg%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

Follow Polymer on Google+: plus.google.com/107187849809354688692
--- 
You received this message because you are subscribed to the Google Groups 
"Polymer" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/polymer-dev/CAFt5L5aMjHUogmm27ZeS1kR1we6fBH%2BCThLHTQJXEMqiGjnnng%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to