Hi Martin,

I've patched up the event path and ios detection code, but I'm not
understanding the overflow scrolling "not working" state.
Even using 0.3.2 from your bower.json setup, I can't seem to get the record
list to scroll in the ios simulator.

Maybe the scrolling has been not working for a while?

On Wed, Sep 10, 2014 at 2:43 AM, Martin Kleinschrodt <
[email protected]> wrote:

> Thanks, Daniel! This seems to fix the crashes in mobile Safari. However,
> the workaround currently does not become active in the iOS web view since
> its user agent string is slightly different from Safari. It looks like this:
>
> Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) AppleWebKit/537.51
> .2 (KHTML, like Gecko) Mobile/11D257 (349648880)
>
> So you might want to replace
> https://github.com/Polymer/polymer-gestures/blob/master/src/platform-events.js#L32
>  with
> something like
>
> var IS_IOS = navigator.userAgent.match('AppleWebkit') && !navigator.
> userAgent.match('Chrome') && 'ontouchstart' in window;
>
> Something that has also worked well for me is to check for the occurrence
> of known iOS devices:
>
> var IS_IOS = ['iPad', 'iPhone', 'iPod'].reduce(function(match, dev) {
>     return match || navigator.platform.indexOf(dev) !== -1;
> }, false);
>
> There is another issue in the iOS web view. After fixing the line above,
> this line throws an error:
> https://github.com/Polymer/polymer-gestures/blob/master/src/targetfind.js#L192
>
> Seems like you forgot to check if event.path is defined like you did in
> other places (e.g.:
> https://github.com/Polymer/polymer-gestures/blob/master/src/targetfind.js#L113).
> I tried adding it in, but then taps don't seem to be fired at all. I didn't
> dig any deeper than that though.
>
> Finally, I noticed your workaround seems to break native touch overflow
> scrolling (using -webkit-overflow-scrolling: touch). Maybe you're doing
> something with the touchmove event?
>
> Thanks again for the help! Hopefully we'll be able to get the remaining
> kinks out as well.
>
> On Wednesday, September 10, 2014 2:12:50 AM UTC+2, Daniel Freedman wrote:
>>
>> Martin, I've nailed down a workaround for iOS in
>> https://github.com/Polymer/polymer-gestures/pull/57.
>>
>> I'll make a new build of polymer in the master branch if you'd like to
>> test with it.
>>
>> Thanks for your patience!
>>
>> On Fri, Sep 5, 2014 at 12:14 PM, Martin Kleinschrodt <
>> [email protected]> wrote:
>>
>>> Thanks Daniel, thats great to hear. Any idea on how long this might take
>>> to fix? Meanwhile, can you think of a possible workaround?
>>>
>>> On 5. September 2014 at 02:38:55, Daniel Freedman ([email protected])
>>> wrote:
>>>
>>> Hi Martin,
>>>
>>> I've identified what I believe to be the root cause (touchevents on
>>> nodes stamped from a template + edge case timing of the removal of a node
>>> that is a tap target) and reported the crash case to Apple (
>>> https://bugs.webkit.org/show_bug.cgi?id=136506)
>>>
>>> The fix in Polymer is going to take me some more time to complete.
>>>
>>> In the mean time, I've filed https://github.com/
>>> Polymer/polymer-gestures/issues/56 to track for myself.
>>>
>>> Thanks!
>>>
>>>
>>> On Thu, Sep 4, 2014 at 1:06 AM, Martin Kleinschrodt <
>>> [email protected]> wrote:
>>>
>>>>  Thanks, guys! I really appreciate the help. Glad, Daniel could
>>>> reproduce this and it's not something stupid I did.
>>>>
>>>>  For what it's worth, I think your analysis is pretty spot on. It seems
>>>> there is some race condition going on since the problem occurs only part of
>>>> the time. All things considered, I now think the problem was most likely
>>>> introduced in polymer-gestures since TemplateBinding didn't see a lot of
>>>> changes between 0.3.4 and 0.3.5.
>>>>
>>>> On 3. September 2014 at 23:14:40, 'Daniel Freedman' via Polymer (
>>>> [email protected]) wrote:
>>>>
>>>>   I was able to make a repro case just with templates and tap handlers.
>>>>
>>>> It looks like this error is triggered when the a node with a touch
>>>> handler is being removed by a template model update while a touch event is
>>>> being dispatched.
>>>>
>>>> Minimal repro: https://gist.github.com/azakus/72d2b7d1ffde1e94283a
>>>>
>>>> Since this seems related to template stamping timing, I'll have to sit
>>>> down with the template polyfill authors to get a better understanding of
>>>> the exact timing of the polyfill.
>>>>
>>>> Thanks for your patience.
>>>>
>>>>
>>>> On Wed, Sep 3, 2014 at 10:23 AM, Daniel Freedman <[email protected]>
>>>> wrote:
>>>>
>>>>> Hi Martin,
>>>>>
>>>>> I'm not very familiar with iOS, but it looks like there was a bad
>>>>> dereference inside of the WebView (that 0xfffffff9 looks like the highest
>>>>> address on your process stack).
>>>>>
>>>>> I did get it to fail in the ios simulator as well, but mobile safari
>>>>> only reports a "bus error", which suggests that this is a bad pointer
>>>>> dereference.
>>>>>
>>>>> I have a hunch that this is related to a node being removed from the
>>>>> DOM that also has a touch listener on it, but that idea is just based on
>>>>> the fact that safari stops sending touch events when the origin node is
>>>>> removed.
>>>>>
>>>>> The WebCore::Document::touchEventsChangedTimerFired code is an IOS
>>>>> only extension to WebKit, so I'm not sure how to look at what that is 
>>>>> doing.
>>>>>
>>>>>
>>>>> On Wed, Sep 3, 2014 at 9:46 AM, Rob Dodson <[email protected]> wrote:
>>>>>
>>>>>> Hey Martin, sorry for the delay, I think we're still catching up a
>>>>>> bit from the long weekend :)
>>>>>> We're looking into this and hopefully will have a response soon.
>>>>>>
>>>>>> - Rob
>>>>>>
>>>>>>
>>>>>> On Wednesday, September 3, 2014 7:29:18 AM UTC-7, Martin Kleinschrodt
>>>>>> wrote:
>>>>>>>
>>>>>>> Anyone? I could really use some help on this...
>>>>>>>
>>>>>>> On Monday, September 1, 2014 11:39:55 AM UTC+2, Martin Kleinschrodt
>>>>>>> wrote:
>>>>>>>>
>>>>>>>> After some more experimentation, I narrowed it down a little more:
>>>>>>>> It seems the issue was introduced between versions 0.3.4 and 0.3.5. 
>>>>>>>> Also,
>>>>>>>> it seems that the problem is inside the polymer package, *not* the
>>>>>>>> platform layer as one might expect (I reproduced the crashes with
>>>>>>>> Polymer/polymer#0.3.5 + Polymer/platform#0.3.2). Then again, apparently
>>>>>>>> TemplateBinding and polymer-expressions are contained in the polymer
>>>>>>>> package, so maybe not that surprising after all. So it seems the 
>>>>>>>> culprit is
>>>>>>>> hiding in one of these changesets:
>>>>>>>>
>>>>>>>> https://github.com/Polymer/polymer-dev/compare/0.3.4...0.3.5
>>>>>>>> https://github.com/polymer/TemplateBinding/compare/0.3.4...0.3.5
>>>>>>>> https://github.com/polymer/polymer-expressions/compare/0.
>>>>>>>> 3.4...0.3.5
>>>>>>>> https://github.com/Polymer/polymer-gestures/compare/0.3.4...0.3.5
>>>>>>>>
>>>>>>>> Anything else I missed that is part of the polymer package?
>>>>>>>>
>>>>>>>> On Monday, September 1, 2014 10:56:18 AM UTC+2, Martin Kleinschrodt
>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>> Ever since updating from v0.3.2, my Polymer app crashes all the
>>>>>>>>> time. The problem is extremely hard to debug since I don't get any 
>>>>>>>>> error
>>>>>>>>> messages in the browser console but instead the app crashes 
>>>>>>>>> completely.
>>>>>>>>> This happens both in mobile safari and in the web view. The only clue 
>>>>>>>>> that
>>>>>>>>> I have is this log from my cordova app:
>>>>>>>>>
>>>>>>>>>   Process 15971 stopped
>>>>>>>>> * thread #6: tid = 0x5783c3, 0x36ae071a WebCore`WebCore::Document::
>>>>>>>>> touchEventsChangedTimerFired(WebCore::Timer<WebCore::Document>*)
>>>>>>>>> + 254, name = 'WebThread', stop reason = EXC_BAD_ACCESS (code=1,
>>>>>>>>> address=0xfffffff9)
>>>>>>>>>     frame #0: 0x36ae071a WebCore`WebCore::Document::
>>>>>>>>> touchEventsChangedTimerFired(WebCore::Timer<WebCore::Document>*)
>>>>>>>>> + 254
>>>>>>>>>  WebCore`WebCore::Document::touchEventsChangedTimerFired(
>>>>>>>>> WebCore::Timer<WebCore::Document>*) + 254:
>>>>>>>>> -> 0x36ae071a:  ldr.w  r8, [r0]
>>>>>>>>>    0x36ae071e:  cmp.w  r8, #0x0
>>>>>>>>>    0x36ae0722:  beq    0x36ae07e4                ;
>>>>>>>>> WebCore::Document::touchEventsChangedTimerFired(
>>>>>>>>> WebCore::Timer<WebCore::Document>*) + 456
>>>>>>>>>    0x36ae0724:  movs   r0, #0x0
>>>>>>>>>
>>>>>>>>> I don't know enough about WebCore to get anything from this, but
>>>>>>>>> based on when the crashes occur (usually after updating a model) I 
>>>>>>>>> suspect
>>>>>>>>> that the problem has something to do with either polymer-expressions 
>>>>>>>>> or
>>>>>>>>> TemplateBinding.
>>>>>>>>>
>>>>>>>>> I'm currently using Polymer 0.4.0 but I think the problem exists
>>>>>>>>> since 0.3.3.
>>>>>>>>>
>>>>>>>>> If you want to reproduce the problem yourself, go ahead and open
>>>>>>>>> http://maklesoft.github.io/padlock on your iPhone (or iOS
>>>>>>>>> simulator) and follow these steps:
>>>>>>>>>
>>>>>>>>> - Choose a master password (you can simply use an empty one)
>>>>>>>>> - Create a record
>>>>>>>>> - Go back
>>>>>>>>> - Create another record
>>>>>>>>> - Switch back and forth between the two records (tap a record to
>>>>>>>>> select it), at some point the app will crash (probably sooner rather 
>>>>>>>>> than
>>>>>>>>> later)
>>>>>>>>>
>>>>>>>>> Other ways to reproduce the crash
>>>>>>>>>
>>>>>>>>> - Delete a record
>>>>>>>>> - Add a field to a record
>>>>>>>>> - Add a category to a record
>>>>>>>>>
>>>>>>>>> I wish I could offer more information, but at this point I am
>>>>>>>>> pretty much clueless. If you want to dig through the code, you can 
>>>>>>>>> find it
>>>>>>>>> at
>>>>>>>>>
>>>>>>>>> https://github.com/maklesoft/padlock
>>>>>>>>>
>>>>>>>>> I probably don't have to mention that this is a show stopper for
>>>>>>>>> me. I wonder if anybody is having similar problems?
>>>>>>>>>
>>>>>>>>      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/8b2b71eb-
>>>>>> 2508-4aea-a7c2-de1ad34bec25%40googlegroups.com
>>>>>> <https://groups.google.com/d/msgid/polymer-dev/8b2b71eb-2508-4aea-a7c2-de1ad34bec25%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 a topic in the
>>>> Google Groups "Polymer" group.
>>>> To unsubscribe from this topic, visit https://groups.google.com/d/
>>>> topic/polymer-dev/YE0U38xqXig/unsubscribe.
>>>> To unsubscribe from this group and all its topics, send an email to
>>>> [email protected].
>>>> To view this discussion on the web visit https://groups.google.com/d/
>>>> msgid/polymer-dev/CAAUAVAi2HB-eveg06Q0Be3VAEgtgPZdX790%
>>>> 2BOSyzz2sowrCx2w%40mail.gmail.com
>>>> <https://groups.google.com/d/msgid/polymer-dev/CAAUAVAi2HB-eveg06Q0Be3VAEgtgPZdX790%2BOSyzz2sowrCx2w%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/64131832-e417-47b8-a554-d916d2d11c0b%40googlegroups.com
> <https://groups.google.com/d/msgid/polymer-dev/64131832-e417-47b8-a554-d916d2d11c0b%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/CAAUAVAgNWCcq6TX%2BO7ayg90-WQe%2B5wzaKJvHe%2BKDPE0T%3D6H7DQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to