TESTS: ✓ API presence ✓ silent ignore (requires a device that does not support vibration) ✓ simple value ✓ array of values ✓ array with extra parameter (even array) ✓ cancel with 0 ✓ cancel with [] ✓ cancel with new vibration - do nothing when hidden - cancel when dynamically hidden - reinstate when dynamically shown - invalid values NOTES: • Test using vendor prefix as in http://dvcs.w3.org/hg/webperf/file/25712d0f6bd5/tests/submission/Microsoft/PageVisibility/support/featuredetection.js • Testing transitions as in http://dvcs.w3.org/hg/webperf/file/25712d0f6bd5/tests/submission/Microsoft/PageVisibility/test_tab_switch.htm • When the visibilitychange event [PAGE-VISIBILITY] is dispatched at the Document, the user agent must run the following steps - If the hidden attribute [PAGE-VISIBILITY] is set to true, the user agent must suppress the vibration produced by running the pre-existing instance of the processing vibration patterns algorithm, if any. - If the hidden attribute [PAGE-VISIBILITY] is set to false, the user agent must restore the vibration produced by running the pre-existing instance of the processing vibration patterns algorithm, if any.