RingMark Description
Ringmark is a 3rd party tool (developed by Facebook), that tests the features supported by web browsers. 51Degrees uses the results of these test to augment the browser profile data it collects. Properties which can be populated from Ringmark are shown in the following table.
51Degrees Property | Ringmark Feature Test | Specification |
---|---|---|
CssTransitions | transitions supported | W3C |
AnimationTiming | requestAnimationFrame supported | W3C |
cancelAnimationFrame supported | ||
BlobBuilder | Blob supported | W3C |
CssBackground | background shorthand, multiple images supported | W3C |
CSS box-shadow supported | ||
CSS border-radius supported | ||
CssBorderImage | border-image-source supported | W3C |
border-image-slice supported | ||
border-image-width supported | ||
border-image-outset supported | ||
border-image-repeat supported | ||
Shorthand border-image supported | ||
CSS border-image shorthand property supported | ||
CssCanvas | N/A | |
CssColor | CSS opacity supported | W3C |
RGBA color supported | ||
HSLA color supported | ||
CssColumn | N/A | |
CssFlexbox | alignContent supported | W3C |
alignItems supported | ||
alignSelf supported | ||
flex supported | ||
flexBasis supported | ||
flexDirection supported | ||
flexFlow supported | ||
flexGrow supported | ||
flexShrink supported | ||
flexWrap supported | ||
justifyContent supported | ||
order supported | ||
alignFlow supported | ||
alignPack supported | ||
alignOrder supported | ||
CssFont | font-face supported | W3C |
linear-gradient supported | ||
repeating-linear-gradient supported | ||
radial-gradient supported | ||
repeating-radial-gradient supported | ||
object-fit supported | ||
object-position supported | ||
imageOrientation supported | ||
imageResolution supported | ||
CssMediaQueries | matchMedia supported | W3C |
matchMedia expects passing results | ||
matchMedia expects failing results | ||
CssMinMax | min-width supported | W3C |
max-width supported | ||
min-height supported | ||
max-height supported | ||
CssPosition | Fixed Position supported | W3C |
CssText | textShadow supported | W3C |
wordWrap supported | ||
wordBreak supported | ||
CssTransforms | transform supported | W3C |
transformOrigin supported | ||
transformStyle supported | ||
perspective supported | ||
perspectiveOrigin supported | ||
backfaceVisibility supported | ||
CssUI | textOverflow | W3C |
boxSizing | ||
pointerEvents supported | ||
DataSet | Dataset supported | whatwg.org |
fixture.dataset property is DOMStringMap | ||
fixture.dataset.length expects 1 | ||
fixture.getAttribute('data-beta') === 'b' (set with dataset) | ||
fixture.dataset.alpha === 'a' (set with setAttribute) | ||
compatible get with getAttribute | ||
compatible set with setAttribute | ||
Expected: data-foo = foo | ||
Expected: data-foo-bar = fooBar | ||
Expected: data-- = - | ||
Expected: data--foo = Foo | ||
Expected: data---foo = -Foo | ||
Expected: data-Foo = foo | ||
Expected: data- = | ||
Expected: data-à = à | ||
hello | ||
helloWorld | ||
ohHai | ||
Expecting length === 0 | ||
DataUrl | Data URL Loading: success | ietf.org |
DeviceOrientation | DeviceOrientationEvent supported | W3C |
DeviceMotionEvent supported | ||
FileReader | FileReader supported | W3C |
onabort supported | ||
onerror supported | ||
onload supported | ||
onloadend supported | ||
onloadstart supported | ||
onprogress supported | ||
readAsText supported | ||
readAsDataURL supported | ||
readAsArrayBuffer supported | ||
FormData | FormData supported | W3C |
Expected value, 'alpha' | ||
Expected value, 'beta' | ||
Expected value, 'alpha' | ||
Expected value, 'beta' | ||
Expected value, 'delta' | ||
Fullscreen | requestFullScreen supported | W3C |
requestFullScreen or requestFullscreen is a function | ||
fullscreenElement supported | ||
fullscreenEnabled supported | ||
exitFullscreen is a function | ||
GeoLocation | navigator.geolocation supported | W3C |
getCurrentPosition supported | ||
watchPosition supported | ||
clearWatch supported | ||
History | history supported | whatwg.org |
history.pushState supported | ||
history.pushState is a function | ||
history.replaceState is a function | ||
event.state supported | ||
Html5 | article instanceof HTMLElement | whatwg.org |
article node created | ||
aside instanceof HTMLElement | ||
aside node created | ||
details instanceof HTMLElement | ||
details node created | ||
figure instanceof HTMLElement | ||
figure node created | ||
figcaption instanceof HTMLElement | ||
figcaption node created | ||
footer instanceof HTMLElement | ||
footer node created | ||
header instanceof HTMLElement | ||
header node created | ||
hgroup instanceof HTMLElement | ||
hgroup node created | ||
nav instanceof HTMLElement | ||
nav node created | ||
section instanceof HTMLElement | ||
section node created | ||
summary instanceof HTMLElement | ||
summary node created | ||
abbr instanceof HTMLElement | ||
abbr node created | ||
audio instanceof HTMLElement | ||
audio node created | ||
bdi instanceof HTMLElement | ||
bdi node created | ||
data instanceof HTMLElement | ||
data node created | ||
mark instanceof HTMLElement | ||
mark node created | ||
time instanceof HTMLElement | ||
time node created | ||
video instanceof HTMLElement | ||
video node created | ||
meter instanceof HTMLElement | ||
meter node created | ||
progress instanceof HTMLElement | ||
progress node created | ||
details.open supported | ||
details.open === false | ||
details height === 0 | ||
details height as expected | ||
mark background is yellow | ||
Iframe | Sandbox iframe supported | whatwg.org |
sandbox iframe is blocked | ||
IndexedDB | indexedDB supported | W3C |
IDBTransaction supported | ||
IDBRequest supported | ||
Json | JSON supported | ecmascript.org |
JSON.stringify supported | ||
JSON.parse supported | ||
{"string":"foo","bool":true,"num":1,"arr":[1,2,"Three"]} | ||
JSON.parse reviver supported(1) | ||
JSON.parse reviver supported(2) | ||
JSON.stringify (functional) supported | ||
JSON.stringify replacer supported(1 | ||
JSON.stringify replacer supported(2) | ||
PostMessage | postMessage supported | W3C |
onmessage supported | ||
onmessage event fired | ||
message content matched expected | ||
XHR onload callback event argument is instanceof ProgressEvent | ||
event.lengthComputable supported | ||
event.loaded supported | ||
event.total supported | ||
event.lengthComputable is boolean | ||
event.loaded is number | ||
event.total is number | ||
confirm supported | ||
prompt supported | ||
Selector | matchesSelector exists in some form as a property of document.body | W3C |
matchesSelector is a function | ||
Expected ( body, 'body' ) | ||
Expected ( body, 'html body' ) | ||
Expected ( body, 'html > body' ) | ||
document.querySelector exists in some form | ||
document.querySelector is a function | ||
querySelector('body') returns something (element) | ||
querySelector('body') returns an element with nodeType === 1 | ||
querySelectorAll exists in some form | ||
querySelectorAll is a function | ||
querySelectorAll('body') returns something with length (list) | ||
list instanceof NodeList | ||
list[ 0 ].matchesSelector('body') | ||
Svg | SVG createElementNS supported | W3C |
svg supported | ||
svg Namespace getCurrentTime | ||
svg Namespace ownerSVGElement supported | ||
TouchEvents | TouchEvent supported | W3C |
createTouch supported | ||
ontouchstart supported | ||
ontouchend supported | ||
ontouchcancel supported | ||
ontouchmove supported | ||
track.kind supported | ||
track.src supported | ||
track.srclang supported | ||
track.label supported | ||
track.default supported | ||
Video | video supported | whatwg.org |
MPEG-4 supported (codecs="avc1.42E01E, mp4a.40.8") | ||
H.264 supported (codecs="avc1.42E01E, mp4a.40.2") | ||
H.264 supported (codecs="avc1.42E01E") | ||
OGG supported (codecs="theora") | ||
WebM supported (codecs="vp8, vorbis") | ||
WebM supported (codecs="vp8") | ||
WebWorkers | Worker supported | W3C |
Netscape === Netscape | ||
Win32 === Win32 | ||
Worker correctly implements navigator | ||
hash in location | ||
href in location | ||
host in location | ||
hostname in location | ||
pathname in location | ||
port in location | ||
protocol in location | ||
search in location | ||
Worker implements location | ||
WorkerGlobalScope implements addEventListener | ||
WorkerGlobalScope implements removeEventListener | ||
WorkerGlobalScope implements dispatchEvent | ||
WorkerGlobalScope implements importScripts | ||
WorkerGlobalScope implements close | ||
WorkerGlobalScope implements location | ||
WorkerGlobalScope implements navigator | ||
WorkerGlobalScope implements postMessage | ||
WorkerGlobalScope implements self | ||
Worker implements global properties | ||
Worker supports complex data objects | ||
Blob Web Worker | ||
Xhr2 | xhr.upload is supported | W3C |
ArrayBuffer supported | ||
Blob supported | ||
URL supported | ||
xhr.upload.onabort supported | ||
xhr.upload.onabort is TreatNonCallableAsNull | ||
xhr.upload.onerror supported | ||
xhr.upload.onerror is TreatNonCallableAsNull | ||
xhr.upload.onerror supported | ||
xhr.upload.onerror is TreatNonCallableAsNull | ||
xhr.upload.onload supported | ||
xhr.upload.onload is TreatNonCallableAsNull | ||
xhr.upload.onloadstart supported | ||
xhr.upload.onloadstart is TreatNonCallableAsNull | ||
xhr.upload.onprogress supported | ||
xhr.upload.onprogress is TreatNonCallableAsNull | ||
ArrayBuffer data.response supported | ||
data.response.byteLength supported | ||
data.response.byteLength is number | ||
blob is an instance of Blob | ||
blob.size supported | ||
blob.type supported | ||
typeof blob.size is number | ||
blob.size of fixture png.png is 23115 | ||
typeof blob.type is string | ||
blob.type of fixture png.png is image/png | ||
Correct Blob type | ||
Text Response supported (strings) | ||
Blob Response supported (images) | ||
Document Response supported (XML, HTML documents) | ||
Masking | image masking supported | W3C |
Canvas | canvas getContext supported | whatwg.org |
canvas toDataURL supported | ||
CanvasRenderingContext2D supported | ||
context instanceof CanvasRenderingContext2D | ||
2D Text supported |
Notes
The 51Degrees property BrowserPropertySource should be checked for the value "Ringmark" to determine if the browser property information matched Ringmark.
Data from Ringmark is considered of secondary importance to caniuse.com.
RingMark does not populate the following properties which are set from other sources or default to Unknown.
- CssColumn
- CssCanvas
- CssOverflow
- Filewriter
- Filesaver