New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
v3.0 release notes #805
Comments
In |
Good spot, thanks Ryan. |
Added a note re. new detects – linking to #1230. |
Went through our commit history since v2.6.2 and added everything I felt was relevant. We’ve been busy! |
Nice job, can't wait for this release to finally drop. We should move to a 6 week release cycle after 3.0.0 so we never have an enormous gap like this again. |
Have just updated this again, so I can write docs for relevant bits. Currently totalling 87 contributors on the diff between this and 2.x… might do a massive name check of everyone when we finally release. |
Updated again with the changes since May. |
Updated again with changes since August. |
Is there a release date for v3? |
A notepad for what we need to stick in the release notes for v3.0:
Detects
battery-api
→batteryapi
,flexbox-legacy
→flexboxlegacy
, etc (Removed dashes from some non-core detects' names. #719, Removed dashes from property names corresponding to feature detects. #782)Modernizr.contentsecuritypolicy
has been removed, as the JS API it was testing is deprecated (fix or remove CSP detect #1461)Modernizr.touch
has been removed in favour oftouchevents
andpointerevents
(Modernizr.touch detects touch events not touch devices #548)Modernizr.pointerevents
now detects DOM PointerEvent support, rather than CSSpointer-events
(Modernizr.touch changes, as per #548 #800)pointer-events
is now calledcsspointerevents
(Modernizr.touch changes, as per #548 #800)fontface
detect (Adds UA blacklist to @font-face test as a stopgap for false positives #1147)Modernizr.flexbox
returnstrue
ifflex-basis
is supported – which represents a “reasonable” modern spec implementation (Chrome, FF, Safari and IE11 all pass this)Modernizr.flexwrap
has been added to detect features missing from Firefox’s implementationModernizr.flexboxtweener
has been added to detect the implementation used by IE10Modernizr.flexboxlegacy
remains unchangedwebgl
detect is now more reliable, usingHTMLCanvasElement.supportsContext()
where available (watch/implement Expose HTMLCanvasElement supportsContext #689)Modernizr.webglextensions
rather thanModernizr.webgl
datauri
detect now has a.over32kb
subproperty which will betrue
if the browser supports data URIs longer than 32 kB (data-uri test does not take into account IE8 32KB limit #321)audio
detect now also checks support for the Ogg Opus codec, exposed asModernizr.audio.opus
(Opus codec #699)audiodata
detect has been removed, because the implementation was very poor; this spec has been deprecated in favour of the Web Audio API (Remove audiodata test #1019)video
detect now has anhls
subproperty representing support for the HLS video format (Add HLS support detection to Modernizr.video #1317)todataurljpeg
,todataurlpng
andtodataurlwebp
are no longer asynchronous (canvas.toDataURL tests improvement #802)fullscreen
detect has been updated to usewindow.exitFullScreen
rather thanwindow.cancelFullScreen
as per the latest spec (fullscreen FD out of date #739)indexeddb
detect now has adeletedatabase
subproperty, representing support for theindexedDB.deleteDatabase()
method which isn’t implemented in some browsers (add deleteDatabase as a subprop detect to indexedDB. #1238)webp
detect now haslossy
,lossless
andalpha
subproperties, representing support for various variants of the WebP format; the rootwebp
property still represents basic lossy support (Combine WebP tests #1229)cssvwunit
,cssvminunit
andcssvmaxunit
which could give incorrect results when scrollbars are present (cssvwunit feature detection broken on Firefox in the presence of a scrollbar #1045)emoji
detect where the test could stop working once minified (emoji
test breaks UTF-8 encoding in minified Production build #899)regions
detect where wrong result could be given when page is zoomed (Regions check returns false negative if page is zoomed (in/out) #940)csstransforms3d
detect where wrong result could be given when page is zoomed (Modernizr.csstransforms3d false for Chrome 23 #760)cssscrollbar
detect in IE9 (css-scrollbars detect returning true for IE 9 #698)indexeddb
would throw an error if indexedDB was disabled via a browser flag (Fix exception when looking up indexedDB when disabled in Firefox. #798)fileinput
detect (mobile false positives on input[type=file] #772)history
detect (false positive in history management support detection #733, False negative in History API support check on Windows Phone 8.1 #1471)cookies
detect in IE9 (Cookie detection in Internet Explorer 9 doesn't work #666)csstransforms3d
in WebKit browsers when certain styles are present on the page (csstransforms3d false negative in Webkit #740)cssmask
detect (a typo meant it was ineffective) (Fix css mask and user-select detects. #671)userselect
detect (a typo meant it was ineffective) (Fix css mask and user-select detects. #671)displaytable
detect when page is in RTL (dir="rtl" causes display table test to fail #716)xhr2
detect in Firefox 3.6 (make xhr2 test more accurate with FF3.6 #1178)customprotocolhandler
detect in Android 2.x (improve custom-protocol-handler.js #992)csstransforms
detect, because it’s excessively buggy (Modernizr.csstransforms false positives on Android 2.x devices #903)backgroundblendmode
detect (Typo in background blend mode test. #1420)APIs
Function.prototype.bind
polyfill (this was documented, but was somewhat hidden); this has been removed (ChangefnBind
to a normal lib function instead of a polyfill #1278)testProp()
,testAllProps()
andprefixed()
now useCSS.supports()
under the hood for most CSS feature detects where available, improving performance and accuracy (Use CSS.supports() internally #818)Modernizr.load
has been deprecated in favour of using yepnope.js directly; from v3.0, yepnope.js must be included in the page in order forModernizr.load
to work: calling.load()
will simply pass the arguments on toyepnope()
; this will be removed fully in a future release (remove Modernizr.load - fixes #1182 #1241)Modernizr.on()
API, for handling asynchronous detects (first-class support for asynchronous tests #622)prefixedCSS()
API, which functions likeprefixed()
but returns the prefixed property name in kebab-case (hyphenated, as used in CSS) instead of camelCase (Method to provide hyphenated versions of prefixed CSS properties #848)testProp()
,testAllProps()
,prefixed()
andprefixedCSS()
now accept property names in either camelCase or kebab-case; forprefixed*()
the format of the response depends on which function you call:prefixed()
always returns camelCase,prefixedCSS()
always returns kebab-case) (Method to provide hyphenated versions of prefixed CSS properties #848)noPrefixes
build option, which forces feature detects to only returntrue
if the feature is supported without a vendor prefix (Restrict detects to unprefixed features #1082)enableJSClass
build option, which determines whether or not to addjs
/no-js
classes to the<html>
element when Modernizr runs;true
by default (Option to stop Modernizr converting "no-js" to "js" #1385)hasEvent()
previously used "appropriate" elements for certain tests:submit
would be tested against a<form>
element,error
would be tested against an<img>
element, etc; this is no longer the case – for consistency, all will be tested against a<div>
, unless otherwise specified by the optionalelem
argument (hasEvent() - add tagName capability and fail faster #636)hasEvent()
's optionalelem
argument can now be an element or simply a tag name, e.g.Modernizr.hasEvent('click', 'a')
(hasEvent() - add tagName capability and fail faster #636)classPrefix
is specified as a build option, it will be applied tono-js
/js
classes as well (previously this only applied to feature classes) (className prefix is not applied when removing "no-js" classname #1031)classPrefix
wasn’t applied to the class set for the first-executed feature detect (classPrefix is not applied to first feature #1053)testProp()
andtestAllProps()
now accept up to 3 arguments:testProp(prop, [value, [skipValueTest]])
; if avalue
is provided, Modernizr will ensure that value is supported for the named CSS property, delegating toCSS.supports()
where available; ifskipValueTest
istrue
(default isfalse
), the value test won’t be conducted whenCSS.supports()
isn’t availableaddTest()
will now set subproperties if given a property name containing a period (.
), which can be used for defining custom structured detects, or for extending existing detects (e.g. adding custom codec detects toModernizr.audio
) (Add support for dot properties in addTest - for #1088 #1089) _(buggy:addTest()
dot properties only work internally #1355)_Modernizr.prefixed()
with anobj
argument which doesn’t support binding would throw an exception (Binding issue using prefixed #1014)Modernizr.mq()
inside a hidden iframe would throw an error in Firefox (Modernizr crashes on Firefox with hidden iframe #886)The text was updated successfully, but these errors were encountered: