Compatibility/Mobile/Libraries: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
 
(29 intermediate revisions by 2 users not shown)
Line 24: Line 24:
** http://bugs.jquery.com/ticket/13376
** http://bugs.jquery.com/ticket/13376
** https://bugzilla.mozilla.org/show_bug.cgi?id=840412 (apparently a regression)
** https://bugzilla.mozilla.org/show_bug.cgi?id=840412 (apparently a regression)
* "Firefox focus and blur events not firing when calling focus() and blur()"[cantfix][needs-bugzilla]
** http://bugs.jquery.com/ticket/13363 and http://jsfiddle.net/vKDe2/9/ (see note about possibly needing an iframe)
** http://bugs.jquery.com/ticket/10557
* "document.ready not firing on Firefox, Opera with XSLT and XML" [open][bugzilla-open]
* "document.ready not firing on Firefox, Opera with XSLT and XML" [open][bugzilla-open]
** http://bugs.jquery.com/ticket/13193
** http://bugs.jquery.com/ticket/13193
Line 34: Line 31:
** http://bugs.jquery.com/ticket/11110
** http://bugs.jquery.com/ticket/11110
** https://bugzilla.mozilla.org/show_bug.cgi?id=381328
** https://bugzilla.mozilla.org/show_bug.cgi?id=381328
* "Firefox focus and blur events not firing when calling focus() and blur()"[cantfix][needs-bugzilla]
** http://bugs.jquery.com/ticket/13363 and http://jsfiddle.net/vKDe2/9/ (see note about possibly needing an iframe)
** http://bugs.jquery.com/ticket/10557
** possibly https://bugzilla.mozilla.org/show_bug.cgi?id=874488?


=== jQuery Mobile ===
=== jQuery Mobile ===
Line 62: Line 63:
==== JS / DOM ====
==== JS / DOM ====


* https://github.com/miketaylr/sencha-touch-2.3.0-gpl/blob/master/microloader/development.js#L65 would fail for "Mobile;" tokens in FxOS and F4A. Also found in https://github.com/miketaylr/sencha-touch-2.3.0-gpl/blob/master/src/core/class/Class.js#L534-L551
* https://github.com/miketaylr/sencha-touch-2.3.0-gpl/blob/master/microloader/development.js#L65 would fail for "Mobile;" tokens in FxOS and F4A. Also found in https://github.com/miketaylr/sencha-touch-2.3.0-gpl/blob/master/src/core/class/Class.js#L534-L551. Changing the regex to /Mobile(\/|\s|;)/ should be enough to fix that though.


* https://github.com/miketaylr/sencha-touch-2.3.0-gpl/blob/master/microloader/development.js#L134-L135
* https://github.com/miketaylr/sencha-touch-2.3.0-gpl/blob/master/src/data/proxy/Sql.js If an app is using the WebSQL proxy... there's not much to be done.


* https://github.com/miketaylr/sencha-touch-2.3.0-gpl/blob/master/src/chart/interactions/Abstract.js#L175-L180 isMultiTouch, need to check Ext.os.is.MultiTouch to see if we might fail here (hopefully is doing actual feature detection).
* https://github.com/miketaylr/sencha-touch-2.3.0-gpl/blob/master/src/device/SQLite.js, more SQLite as a possible compat issue


* https://github.com/miketaylr/sencha-touch-2.3.0-gpl/blob/master/src/core/class/Loader.js#L24 (is this possible in Gecko out of the box?)
* https://github.com/miketaylr/sencha-touch-2.3.0-gpl/blob/master/src/env/OS.js#L16 Do we want to add FxOS?


* https://github.com/miketaylr/sencha-touch-2.3.0-gpl/blob/master/src/data/proxy/Sql.js If an app is using the WebSQL proxy... there's not much to be done.
* https://github.com/miketaylr/sencha-touch-2.3.0-gpl/blob/master/src/env/OS.js#L34 will probably fail for FxforAndroid, as the UA string has "Android;".
 
* https://github.com/miketaylr/sencha-touch-2.3.0-gpl/blob/master/src/fx/animation/Wipe.js#L44-L94 only including -webkit-gradients here.


* https://github.com/miketaylr/sencha-touch-2.3.0-gpl/blob/master/src/device/SQLite.js, more SQLite as a possible compat issue
* https://github.com/miketaylr/sencha-touch-2.3.0-gpl/blob/master/src/util/translatable/CssTransform.js#L20 missing other prefixes


* https://github.com/miketaylr/sencha-touch-2.3.0-gpl/blob/master/src/dom/Element.static.js#L313-L323 has a fallback for non window.orientation supporting devices (presumably for WinPhone compat). I wonder what version this was introduced in?
* https://github.com/miketaylr/sencha-touch-2.3.0-gpl/blob/master/src/Anim.js#L206 Starting at line 206, there are tons of -webkit-only transform related props.


* https://github.com/miketaylr/sencha-touch-2.3.0-gpl/blob/master/src/env/OS.js#L16 Do we want to add FxOS?
* Do we have a perf bug open for this? https://github.com/miketaylr/sencha-touch-2.3.0-gpl/blob/master/src/XTemplateCompiler.js#L15-L18


==== CSS ====
==== CSS ====
Line 83: Line 86:


* https://github.com/miketaylr/sencha-touch-2.3.0-gpl/blob/master/resources/css-debug/apple.css#L1260 should be updated to -moz-user-select: none;
* https://github.com/miketaylr/sencha-touch-2.3.0-gpl/blob/master/resources/css-debug/apple.css#L1260 should be updated to -moz-user-select: none;
* https://github.com/miketaylr/sencha-touch-2.3.0-gpl/blob/master/resources/css-debug/apple.css#L1260 missing -moz-user-select: text;
* https://github.com/miketaylr/sencha-touch-2.3.0-gpl/blob/master/resources/css-debug/apple.css#L2234-L2238, -webkit-box only styles.
* https://github.com/miketaylr/sencha-touch-2.3.0-gpl/blob/master/resources/css-debug/apple.css#L2234-L2238, -webkit-box only styles.
* https://github.com/miketaylr/sencha-touch-2.3.0-gpl/blob/master/resources/css-debug/apple.css#L3382-L3399, -webkit-mask-* properties
* https://github.com/miketaylr/sencha-touch-2.3.0-gpl/blob/master/resources/css-debug/apple.css#L3382-L3399, -webkit-mask-* properties; If they're only used in places like this button, it degrades gracefully: https://cloudup.com/c5H15TZzUfE
* https://github.com/miketaylr/sencha-touch-2.3.0-gpl/blob/master/resources/css-debug/apple.css#L4443-L4454, only has -webkit-appearance: none, and a .x-ie class that gets background: transparent; instead.
* https://github.com/miketaylr/sencha-touch-2.3.0-gpl/blob/master/resources/css-debug/apple.css#L4443-L4454, only has -webkit-appearance: none, and a .x-ie class that gets background: transparent; instead.
* https://github.com/miketaylr/sencha-touch-2.3.0-gpl/blob/master/resources/css-debug/apple.css#L589-L608, there's an x-firefox class that's being used to hide .x-dock-body (width:0, height:0). Unsure why...
* https://github.com/miketaylr/sencha-touch-2.3.0-gpl/blob/master/resources/css-debug/apple.css#L589-L608, there's an x-firefox class that's being used to hide .x-dock-body (width:0, height:0). Unsure why...
==== Testing ====
Using the demos at https://miketaylr.com/bzla/tmp/examples/index.html for testing. Issues found so far:
* In Firefox Stable (but not Aurora), there's a paint issue when scrolling up, e.g., https://miketaylr.com/bzla/tmp/examples/nestedlist/index.html. The children get painted above the menu bar. But it's a non-issue in Aurora, so we can probably safely ignore.
* https://miketaylr.com/bzla/tmp/examples/forms/index.html, the Multiple Slider Thumbs component has issues in Firefox for Android stable, but not Aurora.


=== iScroll ===
=== iScroll ===
Line 94: Line 103:


0 results from commitgrep, http://miketaylr.github.io/commitgrep/iscroll.html
0 results from commitgrep, http://miketaylr.github.io/commitgrep/iscroll.html
* https://github.com/cubiq/iscroll/blob/master/src/utils.js#L84-L85, seems like we'll end up as "is.badAndroid": filed https://github.com/cubiq/iscroll/issues/558. (which has been fixed as of 9 Jan 2014).
Other than that, version 5 (and the demos) seems to work well. Version 4 and below are totally broken. So we should encourage sites to upgrade when possible.
=== Fastclick ===
https://github.com/ftlabs/fastclick
See https://bugzilla.mozilla.org/show_bug.cgi?id=975467, the root cause being us sending double click events in some Fastclick code.
=== App.js ===
http://code.kik.com/app/2/index.html
Note: "It is advised that you run your app in Chrome while simulating a mobile platform that you're targeting. Don't forget to turn on touch event emulation." in the docs.
[[Category:Mobile]]
[[Category:Web Compatibility]]

Latest revision as of 14:49, 29 May 2014

Mobile Frameworks and Libraries

This wiki exists to document some of the research that the Web Compat team is doing around compatibility with existing and new (mobile) libraries and frameworks (i.e., jQuery Mobile, Zepto). Feel free to add links to issues or bugs, or start a new section. The end goal is to document current compatibility with Firefox OS and Firefox for Android and advocate within Mozilla for fixes to libraries where compatibility can be improved upon.

The commitgrep tool may be useful in this line of research.

jQuery

jQuery Mobile

Zepto.js

  • "webkit will report a proper scrollTop() value on $('body') but will always be 0 on $('html') and FF will report a proper scrollTop() value on $('html') but will always be 0 on $('body')."

Sencha Touch

Tracking bug https://bugzilla.mozilla.org/show_bug.cgi?id=895485

Testing with Sencha Touch 2.3.0 (GPL): http://www.sencha.com/products/touch/download/sencha-touch-2.3.0/2920

"Sencha Touch is the only framework that enables developers to build powerful apps that work on iOS, Android, BlackBerry, Windows Phone, and Internet Explorer 10."

JS / DOM

CSS

Note: these would all be fixed in the themes/stylesheets/sencha-touch/base/src/_Foo.scss files (I think).

Testing

Using the demos at https://miketaylr.com/bzla/tmp/examples/index.html for testing. Issues found so far:

iScroll

Tracking bug: https://bugzilla.mozilla.org/show_bug.cgi?id=941076

0 results from commitgrep, http://miketaylr.github.io/commitgrep/iscroll.html

Other than that, version 5 (and the demos) seems to work well. Version 4 and below are totally broken. So we should encourage sites to upgrade when possible.

Fastclick

https://github.com/ftlabs/fastclick

See https://bugzilla.mozilla.org/show_bug.cgi?id=975467, the root cause being us sending double click events in some Fastclick code.

App.js

http://code.kik.com/app/2/index.html Note: "It is advised that you run your app in Chrome while simulating a mobile platform that you're targeting. Don't forget to turn on touch event emulation." in the docs.