From 3a67fdef9120c894416b6a0c0e2412357ef2707f Mon Sep 17 00:00:00 2001 From: Armen Zambrano G Date: Wed, 14 Nov 2018 10:12:57 -0500 Subject: [PATCH] Remove code for APIs that are not in use anymore --- package.json | 8 - src/app.js | 9 - src/bz.js | 40 - src/bz/regressions.js | 27 - src/bz/release.js | 56 - src/crashes.js | 151 - src/fetch/html.js | 11 - src/fetch/redash.js | 10 - src/meta/feature.js | 148 - src/perf.js | 227 +- src/perf/speedometer.js | 140 - src/release.js | 33 - src/release/archive.js | 51 - src/release/calendar.js | 54 - src/release/channels.js | 1 - src/release/history.js | 96 - src/release/updates.js | 30 - src/status.js | 17 - src/status/caniuse.js | 55 - src/status/chrome.js | 105 - test/mocks/calendarIcs.js | 3946 -- test/mocks/chromeStatus.json | 97777 ------------------------------- test/mocks/platformStatus.json | 2219 - test/mocks/updateXml.js | 8 - test/server.js | 102 - test/status/caniuse.js | 11 - test/status/chrome.js | 11 - yarn.lock | 219 +- 28 files changed, 7 insertions(+), 105555 deletions(-) delete mode 100644 src/bz/regressions.js delete mode 100644 src/bz/release.js delete mode 100644 src/crashes.js delete mode 100644 src/fetch/html.js delete mode 100644 src/fetch/redash.js delete mode 100644 src/meta/feature.js delete mode 100644 src/perf/speedometer.js delete mode 100644 src/release/archive.js delete mode 100644 src/release/calendar.js delete mode 100644 src/release/channels.js delete mode 100644 src/release/history.js delete mode 100644 src/release/updates.js delete mode 100644 src/status.js delete mode 100644 src/status/caniuse.js delete mode 100644 src/status/chrome.js delete mode 100644 test/mocks/calendarIcs.js delete mode 100644 test/mocks/chromeStatus.json delete mode 100644 test/mocks/platformStatus.json delete mode 100644 test/mocks/updateXml.js delete mode 100644 test/server.js delete mode 100644 test/status/caniuse.js delete mode 100644 test/status/chrome.js diff --git a/package.json b/package.json index 70f6643..6c043d3 100644 --- a/package.json +++ b/package.json @@ -26,22 +26,14 @@ "license": "MPL-2.0", "dependencies": { "async-redis": "^1.1.4", - "browserslist": "^2.2.2", - "caniuse-db": "^1.0.30000712", - "cheerio": "^1.0.0-rc.2", - "chrono-node": "^1.3.5", - "dotenv": "^4.0.0", "googleapis": "^27.0.0", - "ical-with-secure-request": "^0.6.0", "isomorphic-fetch": "^2.2.1", - "json2csv": "^3.11.0", "koa": "^2.3.0", "koa-compress": "^3.0.0", "koa-cors": "0.0.16", "koa-logger": "^2.0.1", "koa-response-time": "^2.0.0", "koa-router": "^7.2.1", - "lodash": "^4.17.2", "moment": "^2.19.3", "qs": "^6.5.0", "query-string": "^5.0.1", diff --git a/src/app.js b/src/app.js index 9222bce..3cf75fc 100644 --- a/src/app.js +++ b/src/app.js @@ -1,5 +1,4 @@ import { Z_SYNC_FLUSH } from 'zlib'; -import dotenv from 'dotenv'; import responseTime from 'koa-response-time'; import Router from 'koa-router'; import cors from 'koa-cors'; @@ -7,13 +6,8 @@ import Koa from 'koa'; import compress from 'koa-compress'; import { createClient } from 'async-redis'; -dotenv.config(); - /* eslint-disable import/first */ -import { router as release } from './release'; -import { router as crashes } from './crashes'; import { router as bz } from './bz'; -import { router as status } from './status'; import { router as perf } from './perf'; import { router as android } from './android/routes'; /* eslint-enable import/first */ @@ -47,10 +41,7 @@ api.get('/cache/flush', async (ctx) => { }; }); -api.use('/release', release.routes()); -api.use('/crashes', crashes.routes()); api.use('/bz', bz.routes()); -api.use('/status', status.routes()); api.use('/perf', perf.routes()); api.use('/android', android.routes()); diff --git a/src/bz.js b/src/bz.js index aba2f4e..7d63331 100644 --- a/src/bz.js +++ b/src/bz.js @@ -1,11 +1,7 @@ import Router from 'koa-router'; import moment from 'moment'; -import _ from 'lodash/fp'; import { stringify } from 'qs'; import fetchJson from './fetch/json'; -import { getRelease } from './bz/release'; -// import { getHistory } from './release/history'; -// import { getMissedCount } from './bz/regressions'; export const router = new Router(); @@ -104,40 +100,4 @@ router ctx.body = timeline; return ctx.body; - }) - - .get('/status', async (ctx) => { - const { ids } = ctx.request.query; - ctx.body = await getRelease(ids); - }) - - .get('/regressions/missed', async (ctx) => { - // const history = await getHistory({ - // major: true, - // tailVersion: 5, - // }); - // history.reverse(); - // const counts = await Promise.all( - // history.map((release) => { - // const version = release.version; - // return getMissedCount(version, release.date); - // }) - // ); - ctx.body = [ - { count: 86, version: 40 }, - { count: 93, version: 41 }, - { count: 109, version: 42 }, - { count: 92, version: 43 }, - { count: 87, version: 44 }, - { count: 76, version: 45 }, - { count: 0, version: 46 }, - { count: 0, version: 47 }, - ]; - // counts.map(({ count, query }, idx) => { - // return { - // count, - // query, - // version: history[idx].version, - // }; - // }); }); diff --git a/src/bz/regressions.js b/src/bz/regressions.js deleted file mode 100644 index 98eaa6b..0000000 --- a/src/bz/regressions.js +++ /dev/null @@ -1,27 +0,0 @@ -import fetchJson from '../fetch/json'; -import { parse as parseVersion } from '../meta/version'; - -const base = 'https://bugzilla.mozilla.org/rest/bug'; -function patchQuery(input, replace) { - return Object.keys(replace).reduce((query, key) => query.replace(new RegExp(key, 'g'), replace[key]), input); -} - -const queryMissed = `keywords=regression%2C &keywords_type=allwords&list_id=13007736& -o1=anywordssubstr&o2=equals&chfield=cf_status_firefox46&chfieldfrom=2016-04-25& -chfieldvalue=affected&v1=unaffected%2C %3F%2C ---%2C wontfix&v2=affected&f1=cf_status_firefox45& -resolution=FIXED&resolution=SUPPORT&resolution=MOVED&query_format=advanced&f2=cf_status_firefox46`; - -export async function getMissedCount(version, date) { - version = parseVersion(version).major; - const prior = version - 1; - const query = patchQuery(queryMissed, { - cf_status_firefox46: `cf_status_firefox${version}`, - cf_status_firefox45: `cf_status_firefox${prior}`, - '2016-04-25': date, - }); - const response = await fetchJson(`${base}?${query}&include_fields=id`); - return { - query, - count: response.bugs.length, - }; -} diff --git a/src/bz/release.js b/src/bz/release.js deleted file mode 100644 index 6183efc..0000000 --- a/src/bz/release.js +++ /dev/null @@ -1,56 +0,0 @@ -import qs from 'qs'; -import fetchJson from '../fetch/json'; -import getVersions from '../release/versions'; - -const base = 'https://bugzilla.mozilla.org/rest/bug'; - -export async function getRelease(bugs) { - const fields = ['id', 'cf_tracking_firefox_relnote', 'target_milestone', 'assigned_to', 'flags']; - const latest = parseInt((await getVersions()).nightly, 10); - for (let i = latest - 10; i <= latest; i += 1) { - fields.push(`cf_status_firefox${i}`); - } - if (!bugs.length) { - return []; - } - const query = qs.stringify({ - id: bugs.join(','), - include_fields: fields.join(','), - }); - const response = await fetchJson(`${base}?${query}`); - return response.bugs.map((bug) => { - let version = null; - if (bug.cf_tracking_firefox_relnote !== '---') { - version = parseInt(bug.cf_tracking_firefox_relnote, 10); - } - if (!version) { - for (let i = latest - 10; i <= latest; i += 1) { - const field = `cf_status_firefox${i}`; - if (/^(fixed|verified)/.test(bug[field])) { - version = i; - break; - } - } - } - if (!version && bug.target_milestone !== '---') { - version = parseInt(bug.target_milestone.replace('mozilla', ''), 10); - } - let contact = null; - if (!version) { - if (bug.flags) { - const ni = bug.flags.find(flag => flag.name === 'needinfo'); - if (ni) { - contact = ni.requestee; - } - } - if (!contact && bug.assigned_to_detail) { - contact = bug.assigned_to_detail.real_name.replace(/.*(:[a-z0-9]+).*/, '$1'); - } - } - return { - id: bug.id, - contact, - version: version || null, - }; - }); -} diff --git a/src/crashes.js b/src/crashes.js deleted file mode 100644 index 8c19c88..0000000 --- a/src/crashes.js +++ /dev/null @@ -1,151 +0,0 @@ -import Router from 'koa-router'; -import moment from 'moment'; -import { - standardDeviation, - geometricMean, - mean, -} from 'simple-statistics'; -import { - uniq, - flatten, - sumBy, - zipObject, - without, - countBy, - sortBy, - toPairs, - find, -} from 'lodash'; -import qs from 'qs'; -import { parse as parseVersion } from './meta/version'; -import fetchJson from './fetch/json'; -import fetchRedash from './fetch/redash'; -import { getHistory } from './release/history'; - -const dateBlacklist = [ - '2016-05-01', - '2016-05-03', - '2016-05-04', - '2016-05-07', - '2016-05-08', - '2016-06-03', - '2016-07-04', -]; - -export const router = new Router(); - -const bandwidth = 7; -const weeklyAverage = (result, idx, results) => { - if (idx < bandwidth) { - return result; - } - const weekRate = results - .slice(idx - bandwidth, idx + bandwidth).map(past => past.dirty); - const avg = mean(weekRate); - result.rate = avg; - return result; -}; - -router - .get('/', async (ctx) => { - const raw = await fetchRedash(331); - const reduced = raw.query_result.data.rows - .map(row => ({ - date: row.activity_date, - dirty: row.main_crash_rate, - })) - .filter(({ date }) => dateBlacklist.indexOf(date) < 0) - .map(weeklyAverage); - ctx.body = reduced; - }) - - .get('/beta', async (ctx) => { - const raw = await fetchRedash(475); - const results = raw.query_result.data.rows.map(row => ({ - date: row.activity_date, - rate: row.main_crash_rate, - })); - ctx.body = results; - }) - - .get('/xp', async (ctx) => { - const nonXpRates = await fetchRedash(689); - const xpRates = await fetchRedash(690); - const raw = await fetchRedash(331); - ctx.body = [ - nonXpRates.query_result.data.rows - .map(row => ({ - date: row.activity_date, - rate: row.main_crash_rate, - })) - .filter(({ date }) => dateBlacklist.indexOf(date) < 0), - xpRates.query_result.data.rows - .map(row => ({ - date: row.activity_date, - rate: row.main_crash_rate, - })) - .filter(({ date }) => dateBlacklist.indexOf(date) < 0), - raw.query_result.data.rows - .map(row => ({ - date: row.activity_date, - rate: row.main_crash_rate, - })) - .filter(({ rate, date }) => rate > 3 && dateBlacklist.indexOf(date) < 0), - ]; - }) - - .get('/beta/builds', async (ctx) => { - const history = await getHistory({ - channel: 'beta', - tailVersion: 5, - }); - const betaRaw = (await fetchRedash(2856)).query_result.data.rows; - const builds = betaRaw.reduce((lookup, row) => { - const buildDate = moment(row.build_id, 'YYYYMMDD'); - const release = find(history, ({ date }) => { - const diff = moment(date, 'YYYY MM DD').diff(buildDate, 'day'); - return diff >= 0 && diff <= 2; - }); - const result = { - date: buildDate.format('YYYY-MM-DD'), - release: release && release.date, - candidate: release - ? parseVersion(release.version).candidate - : 'rc', - build: row.build_id, - version: row.build_version, - hours: row.usage_kilohours, - rate: row.main_crash_rate, - contentRate: row.content_crash_rate, - dates: [], - }; - lookup.push(result); - return lookup; - }, []); - - const releases = builds.reduce((lookup, result) => { - let entry = find(lookup, ({ version }) => version === result.version); - if (!entry) { - entry = { - version: result.version, - builds: [], - }; - lookup.push(entry); - } - entry.builds.push(result); - return lookup; - }, []); - releases.forEach((release) => { - release.hours = sumBy(release.builds, 'hours'); - const rates = release.builds - .map(({ rate }) => rate) - .filter(rate => rate > 0); - const contentRates = release.builds - .map(({ contentRate }) => contentRate) - .filter(contentRate => contentRate > 0); - release.rate = rates.length > 0 ? geometricMean(rates) : 0; - release.variance = rates.length > 0 ? standardDeviation(rates) : 0; - release.contentRate = contentRates.length > 0 ? geometricMean(contentRates) : 0; - }); - ctx.body = releases; - }); diff --git a/src/fetch/html.js b/src/fetch/html.js deleted file mode 100644 index 4388a6f..0000000 --- a/src/fetch/html.js +++ /dev/null @@ -1,11 +0,0 @@ -import cheerio from 'cheerio'; -import fetchText from './text'; - -export default async function fetchHtml(url, options = {}) { - const { xml = false } = options; - const text = await fetchText(url, options); - if (!text) { - return null; - } - return cheerio.load(text, { xmlMode: xml }); -} diff --git a/src/fetch/redash.js b/src/fetch/redash.js deleted file mode 100644 index eddc562..0000000 --- a/src/fetch/redash.js +++ /dev/null @@ -1,10 +0,0 @@ -import assert from 'assert'; -import fetchJson from './json'; - -export default async function fetchRedash(query, options = {}) { - assert.ok(process.env.REDASH_API_KEY, 'process.env.REDASH_API_KEY missing'); - options.headers = options.headers || {}; - options.headers.Authorization = `Key ${process.env.REDASH_API_KEY}`; - options.ttl = 'day'; - return fetchJson(`https://sql.telemetry.mozilla.org/api/queries/${query}/results.json`, options); -} diff --git a/src/meta/feature.js b/src/meta/feature.js deleted file mode 100644 index 9664a91..0000000 --- a/src/meta/feature.js +++ /dev/null @@ -1,148 +0,0 @@ -import browserslist from 'browserslist'; - -const mapCategory = [ - { - status: 'misc', - alts: [/misc/, /other/], - }, - { - status: 'dom', - alts: [/^dom/, /custom/], - }, - { - status: 'media', - alts: [/media/, /realtime/], - }, - { - status: 'input', - alts: [/input/], - }, - { - status: 'graphic', - alts: [/graphic/, /svg/, /canvas/], - }, - { - status: 'js', - alts: [/script$/, /^js/], - }, - { - status: 'sec', - alts: [/security/], - }, - { - status: 'net', - alts: [/network/, /connect/], - }, - { - status: 'css', - alts: [/^css/, /style/], - }, - { - status: 'storage', - alts: [/offline/, /storage/, /file/], - }, - { - status: 'perf', - alts: [/performance/], - }, - { - status: 'input', - alts: [/^dom/, /html5/], - }, -]; - -export function resolveCategory(test) { - for (let i = 0; i < mapCategory.length; i += 1) { - const alts = mapCategory[i].alts; - for (let j = 0; j < alts.length; j += 1) { - if (alts[j].test(test.toLowerCase())) { - return mapCategory[i].status; - } - } - } - return mapCategory[0].status; -} - -const mapStatus = [ - { - status: 'nope', - alts: [/^no/, /signal/, /unknown/], - }, - { - status: 'shipped', - alts: [/^enabled/, /^shipped/, /^done/, /^prefix/, /^partial/], - }, - { - status: 'in-development', - alts: [/develop/, /experiment/, /preview/, /behind/, /propos/], - }, - { - status: 'concerns', - alts: [/concern/, /mixed/], - }, - { - status: 'under-consideration', - alts: [/consider/, /support/], - }, -]; - -export function resolveStatus(test) { - if (!test) { - return mapStatus[0].status; - } - for (let i = 0; i < mapStatus.length; i += 1) { - const alts = mapStatus[i].alts; - for (let j = 0; j < alts.length; j += 1) { - if (alts[j].test(test.toLowerCase())) { - return mapStatus[i].status; - } - } - } - return mapStatus[0].status; -} - -export function extractLatestPlatforms() { - return browserslist('> 1%, last 1 version').reduce((result, str) => { - const [platform, version] = str.split(/\s+/); - result[platform] = +version; - return result; - }, {}); -} - -export const latestPlatforms = extractLatestPlatforms(); - -export const platforms = ['firefox', 'chrome', 'ie', 'safari']; - -export function scoreFeature(feature) { - feature.completeness = 0; - feature.recency = 0; - platforms.forEach((platform) => { - const factor = /firefox|chrome/.test(platform) ? 3 : 0; - const entry = feature[platform]; - const latest = latestPlatforms[platform]; - const diff = latest - entry.version; - switch (entry.status) { - case 'shipped': - if (entry.version) { - if (diff <= factor) { - if (factor) { - feature.recency += factor / (factor - diff) || 0; - } else { - feature.recency += 1; - } - } - } - feature.completeness += 1; - break; - case 'in-development': - feature.recency += diff < 0 ? 1 : 0; - feature.completeness += 0.5; - break; - case 'under-consideration': - feature.completeness += 0.25; - break; - default: - } - }); - return feature; -} diff --git a/src/perf.js b/src/perf.js index a1e8b49..7bc615f 100644 --- a/src/perf.js +++ b/src/perf.js @@ -1,23 +1,12 @@ import Router from 'koa-router'; -import json2csv from 'json2csv'; import moment from 'moment'; -import chrono from 'chrono-node'; -import _ from 'lodash/fp'; import { stringify } from 'query-string'; import { median, quantile } from 'simple-statistics'; -import { getEvolution, getLatestEvolution } from './perf/tmo'; -import fetchSpeedometerData from './perf/speedometer'; +import { getLatestEvolution } from './perf/tmo'; import { fetchTelemetryEvolution } from './perf/tmo-wrapper'; import fetchJson from './fetch/json'; -import channels from './release/channels'; -import getVersions from './release/versions'; -import { getReleaseDate } from './release/history'; -import { sanitize } from './meta/version'; -import getCalendar from './release/calendar'; import { getSpreadsheetValues } from './utils/google'; import config from './configuration'; -// Project Dawn -// channels.splice(2, 1); export const router = new Router(); @@ -34,49 +23,6 @@ const summarizeHistogram = (hist) => { }; }; -const summaryKeys = ['p50', 'p95', 'submissions', 'count']; - -const windowRadius = 7; - -const averageEvolution = (evolution) => { - evolution.forEach((summary, idx) => { - summaryKeys.forEach((key) => { - const windo = evolution - .slice(Math.max(0, idx - windowRadius), idx + windowRadius + 1) - .map(entry => entry[key]); - summary[`${key}Avg`] = median(windo); - }); - }); - return evolution; -}; - -const summarizeIpcTable = async (metric) => { - const evolutions = await getLatestEvolution({ - metric, - channel: 'nightly', - application: 'Firefox', - }); - return evolutions - .filter(({ evolution }) => evolution) - .map(({ key, evolution }) => { - const lastDate = moment().add(-1, 'days').toDate(); - const firstDate = moment(lastDate).add(-7, 'days').toDate(); - const range = evolution.dateRange(firstDate, lastDate); - if (!range) { - return null; - } - const hist = range.histogram(); - return { - key, - count: hist.count, - submissions: hist.submissions, - mean: hist.mean(), - median: hist.percentile(50), - }; - }) - .filter(row => row); -}; - let notesCache = null; router @@ -105,62 +51,6 @@ router ); } }) - .get('/benchmark/startup', async (ctx) => { - const list = await getSpreadsheetValues({ - id: config.quantumSpreadsheetId, - range: 'startup!A1:E200', - }); - list.forEach((entry) => { - entry.date = moment(chrono.parseDate(entry.date)).valueOf(); - entry.firstPaint = parseFloat(entry.firstPaint); - entry.heroElement = parseFloat(entry.heroElement); - }); - ctx.body = list; - }) - .get('/benchmark/pageload', async (ctx) => { - const list = await getSpreadsheetValues({ - id: config.quantumSpreadsheetId, - range: 'pageLoad!A1:F300', - }); - const ids = _.uniq(_.pluck('id', list)); - list.forEach((entry) => { - entry.id = ids.indexOf(entry.id); - entry.date = moment(chrono.parseDate(entry.date)).valueOf(); - entry.firstPaint = parseFloat(entry.firstPaint); - entry.heroElement = parseFloat(entry.heroElement); - }); - ctx.body = list; - }) - .get('/benchmark/hasal', async (ctx) => { - const list = (await getSpreadsheetValues({ - id: config.quantumSpreadsheetId, - range: 'hasal!A1:F300', - })).filter(entry => entry.diff != null); - const ids = _.uniq(_.pluck('id', list)); - list.forEach((entry) => { - entry.id = ids.indexOf(entry.id); - entry.date = moment(chrono.parseDate(entry.date)).valueOf(); - entry.diff = parseFloat(entry.diff); - }); - ctx.body = list; - }) - .get('/benchmark/speedometer', async (ctx) => { - try { - ctx.body = await fetchSpeedometerData(ctx.request.query); - } catch (e) { - if (e.name === 'Error') { - // Keep track of the issue on the backend logs - console.warn(e.message); - // This is an error from the caller - ctx.throw(400, e); - } else { - // Re-throwing the error will allow seeing in the backend - // the actual issue - throw (e); - } - } - // ctx.body = await fetchSpeedometerData(ctx.request.query); - }) .get('/herder', async (ctx) => { const { framework } = ctx.request.query; let { signatures } = ctx.request.query; @@ -224,105 +114,6 @@ router delete query.name; await fetchTelemetryEvolution(ctx, name, query); }) - .get('/version-evolutions', async (ctx) => { - const query = ctx.request.query; - const { metric } = query; - delete query.metric; - const channelVersions = await getVersions(); - const calendar = await getCalendar(); - const start = parseInt(channelVersions.nightly, 10); - const oldestRelease = start - 3; - const versions = []; - const nightlyToRelease = channels.slice().reverse(); - let endDate = null; - let oldestNightlyStart = null; - const channelDates = []; - for (let version = start; version >= start - 5; version -= 1) { - const evolutions = await Promise.all(nightlyToRelease.map((channel) => { - if (version > parseInt(channelVersions[channel], 10) || (version > 55 && channel === 1)) { - return null; - } - return getEvolution(Object.assign({}, { - metric, - channel, - filters: query, - useSubmissionDate: channel !== 'nightly' && channel !== 'aurora', - version, - })); - })); - if (!evolutions[0]) { - if (version === start) { - // eslint-disable-next-line - continue; - } - } - if (channelDates.length) { - nightlyToRelease.forEach((channel, channelIdx) => { - if (!evolutions[channelIdx] || !channelDates[channelIdx]) { - return; - } - evolutions[channelIdx] = evolutions[channelIdx].dateRange( - oldestNightlyStart || evolutions[channelIdx].dates()[0], - channelDates[channelIdx], - ); - if (evolutions[channelIdx] && !evolutions[channelIdx].dates().length) { - evolutions[channelIdx] = null; - } - }); - } - nightlyToRelease.forEach((channel, channelIdx) => { - if (!evolutions[channelIdx]) { - return; - } - channelDates[channelIdx] = evolutions[channelIdx].dates()[0]; - }); - if (oldestRelease === version) { - oldestNightlyStart = channelDates[0]; - } - const nightlyDate = moment(evolutions.find(evolution => evolution).dates()[0]).format('YYYY-MM-DD'); - const versionStr = sanitize(version); - let releaseDate = (await getReleaseDate(versionStr)).date; - if (!releaseDate) { - const planned = calendar.find(release => release.version === versionStr); - if (planned) { - releaseDate = planned.date; - } - } - versions.push({ - version: versionStr, - start: nightlyDate, - release: releaseDate, - end: endDate, - channels: nightlyToRelease.map((channel, i) => { - if (!evolutions[i]) { - return null; - } - const submissionsAvg = median(evolutions[i].map(date => date.submissions)); - const countAvg = median(evolutions[i].map(date => date.count)); - const cutoff = submissionsAvg * 0.5; - const dates = averageEvolution(evolutions[i] - .map((histogram, j, date) => { - if (histogram.submissions < cutoff) { - return null; - } - return Object.assign(summarizeHistogram(histogram), { - date: moment(date).format('YYYY-MM-DD'), - }); - }) - .filter(entry => entry && entry.p50)); - return { - channel, - submissionsAvg, - countAvg, - dates, - }; - }), - }); - endDate = releaseDate; - } - - ctx.body = versions; - }) .get('/tracking', async (ctx) => { const opts = ctx.request.query; const evolution = await getLatestEvolution(opts); @@ -332,20 +123,4 @@ router } const histogram = evolution.histogram(); ctx.body = summarizeHistogram(histogram); - }) - .get('/ipc', async (ctx) => { - const summary = await summarizeIpcTable('IPC_SYNC_MAIN_LATENCY_MS'); - ctx.body = json2csv({ data: summary }); - }) - .get('/ipc/write', async (ctx) => { - const summary = await summarizeIpcTable('IPC_WRITE_MAIN_THREAD_LATENCY_MS'); - ctx.body = json2csv({ data: summary }); - }) - .get('/ipc/read', async (ctx) => { - const summary = await summarizeIpcTable('IPC_READ_MAIN_THREAD_LATENCY_MS'); - ctx.body = json2csv({ data: summary }); - }) - .get('/ipc/mm', async (ctx) => { - const summary = await summarizeIpcTable('IPC_SYNC_MESSAGE_MANAGER_LATENCY_MS'); - ctx.body = json2csv({ data: summary }); }); diff --git a/src/perf/speedometer.js b/src/perf/speedometer.js deleted file mode 100644 index 02f584f..0000000 --- a/src/perf/speedometer.js +++ /dev/null @@ -1,140 +0,0 @@ -import { stringify } from 'query-string'; -import fetchJson from '../fetch/json'; - -const AWFY = 'https://arewefastyet.com'; -const MACHINE = { 32: '37', 64: '36' }; - -const generateUrl = (architecture) => { - const machine = MACHINE[architecture]; - return { - dataUrl: `${AWFY}/data.php?file=bk-aggregate-speedometer-misc-score-${machine}.json`, - viewUrl: `${AWFY}#machine=${machine}&view=single&suite=speedometer-misc&subtest=score`, - }; -}; - -const BROWSER_TO_ID = { - Nightly: 14, - Beta: 62, - Canary: 3, -}; - -const ID_TO_BROWSER = Object.keys(BROWSER_TO_ID).reduce((res, name) => { - res[BROWSER_TO_ID[name]] = name; - return res; -}, {}); - -const absoluteValues = (graph, browsers) => { - // Initialize returning structure - const result = browsers.reduce((res, name) => { - res[name] = { - label: name, - data: [], - }; - return res; - }, {}); - - const modeIds = browsers.map(name => BROWSER_TO_ID[name]); - - graph.timelist.forEach((date, idx) => { - // XXX: This flattens all data points for the same day to one data point - const dayDate = new Date(date * 1000).toISOString().substring(0, 10); - graph.lines.forEach((line) => { - if (line && line.data[idx] && modeIds.includes(line.modeid)) { - result[ID_TO_BROWSER[line.modeid]].data.push({ - date: dayDate, - value: line.data[idx][0], - }); - } - }); - }); - - return result; -}; - -// In September 2017, we adjusted the benchmark and caused Canary and Firefox -// to have a new baseline. For this graph we need to drop data before then -const skipBump = (originalData, skipDataBefore) => { - const newData = {}; - Object.keys(originalData).forEach((name) => { - const { label, data } = originalData[name]; - newData[name] = { - label, - data: data.filter((el) => { - const date = new Date(el.date); - let newEl = null; - if (date >= new Date(skipDataBefore)) { - newEl = el; - } - return newEl; - }), - }; - }); - - return newData; -}; - -// XXX: In the future we should do many more validations -const validateParameters = ({ architecture, browser }) => { - if (!browser || !architecture) { - const message = 'This API requires various parameters. Please refer to the code.'; - throw Error(message); - } -}; - -// architecture and browser are required in order to determine what data to show -// If you pass targetRatio it will add a target line based on Chrome's data -// If you pass a baseValue we will add a target line based on that value -// omitOldBaseline skips data points before Sep. 2017 -const fetchSpeedometerData = async ({ - architecture, browser, targetRatio, baseValue, skipDataBefore, -}) => { - validateParameters({ - architecture, browser, targetRatio, baseValue, skipDataBefore, - }); - // If only one browser specified turn it into an array of one - const browsers = (typeof browser === 'string') ? [browser] : browser; - const { dataUrl, viewUrl } = generateUrl(architecture); - const { graph } = await fetchJson(dataUrl); - let data = absoluteValues(graph, browsers); - - if (skipDataBefore) { - data = skipBump(data, skipDataBefore); - } - - // We will add one more series representing the target based on Canary's series - if (baseValue && targetRatio) { - // XXX: We should have a parameter to define this - const targetBrowser = 'Nightly'; - const targetData = data[targetBrowser].data; - const targetValue = baseValue * targetRatio; - data.Target = { - label: `Target ${targetRatio * 100}%`, - data: [ - { date: targetData[0].date, value: targetValue }, - { date: targetData[targetData.length - 1].date, value: targetValue }, - ], - }; - // We don't need Canary's data for this mode - delete data.Canary; - } else if (targetRatio) { - const canary = data.Canary.data; - data.Target = { - label: `Target ${targetRatio * 100}%`, - data: canary.map(el => ({ - date: el.date, - value: el.value * targetRatio, - })), - }; - } - return { - meta: { - dataUrl, - viewUrl, - }, - data, - }; -}; - -// XXX: Add propTypes support - -export default fetchSpeedometerData; diff --git a/src/release.js b/src/release.js index 53b903a..b857201 100644 --- a/src/release.js +++ b/src/release.js @@ -1,8 +1,5 @@ import Router from 'koa-router'; -import { getUpdates } from './release/updates'; import getVersions from './release/versions'; -import { getHistory, getReleaseDate } from './release/history'; -import getCalendar from './release/calendar'; export const router = new Router(); @@ -10,34 +7,4 @@ router .get('/', async (ctx) => { ctx.body = await getVersions(); - }) - - .get('/latest', async (ctx) => { - const versions = await getVersions(); - for (const channel in versions) { - const release = await getReleaseDate(versions[channel], { channel }); - versions[channel] = release; - } - ctx.body = versions; - }) - - .get('/history', async (ctx) => { - const { - product = 'firefox', - channel = 'release', - tailVersion = 0, - major = false, - } = ctx.request.query; - ctx.body = await getHistory({ - channel, product, tailVersion, major, - }); - }) - - .get('/updates', async (ctx) => { - ctx.body = await getUpdates(); - }) - - .get('/calendar', async (ctx) => { - const query = ctx.request.query; - ctx.body = await getCalendar(query); }); diff --git a/src/release/archive.js b/src/release/archive.js deleted file mode 100644 index 0db5b39..0000000 --- a/src/release/archive.js +++ /dev/null @@ -1,51 +0,0 @@ -import moment from 'moment'; -// import semver from 'semver'; -import fetchHtml from '../fetch/html'; -import { parse as parseVersion } from '../meta/version'; - -const archives = { - firefox: 'https://archive.mozilla.org/pub/firefox/releases/', - fennec: 'https://archive.mozilla.org/pub/mobile/releases/', -}; - -export async function getArchive(product = 'firefox', { - channel = 'release', -} = {}) { - const url = archives[product]; - const $ = await fetchHtml(url); - const versions = []; - $('tr a').each((i, element) => { - const version = $(element).text().slice(0, -1); - const parsed = parseVersion(version); - if (!channel || parsed.channel === channel) { - versions.push(version); - } - }); - versions.reverse(); - return versions; -} - -export async function getReleaseDate(fuzzyVersion, { - product = 'firefox', - channel = 'release', -} = {}) { - let version = fuzzyVersion; - if (typeof version === 'number') { - version = `${version}.0`; - if (channel !== 'release') { - version += `${channel.charAt(0)}1`; - } - } - const url = `${archives[product]}${version}/`; - // assert.ok(parseVersion(version).major, `Invalid number version number: ${version}`); - const $ = await fetchHtml(url); - // Invalid version - if (!$) { - return null; - } - const date = moment($('tr:last-child td:last-child').text().trim(), 'DD-MMM-YYYY HH:mm'); - return { - date: date.isValid() ? date.format('YYYY-MM-DD') : null, - version, - }; -} diff --git a/src/release/calendar.js b/src/release/calendar.js deleted file mode 100644 index c3c4c06..0000000 --- a/src/release/calendar.js +++ /dev/null @@ -1,54 +0,0 @@ -import moment from 'moment'; -import ical from 'ical-with-secure-request'; -import fetchText from '../fetch/text'; -import { parse } from '../meta/version'; - -export default async function getCalendar({ - channel = 'release', days = 0, -} = {}) { - const url = 'https://calendar.google.com/calendar/ical/mozilla.com_2d37383433353432352d3939%40resource.calendar.google.com/public/basic.ics'; - const ics = await fetchText(url); - const parsed = ical.parseICS(ics); - const dates = Object.keys(parsed).reduce((data, key) => { - const entry = parsed[key]; - let regex; - let version; - let assignedChannel; - // skip reference to Aurora due to merge into Beta to avoid duplicate entries - if (moment().diff(entry.start, 'days') >= days || entry.summary === 'MERGE: B58, A59, N60') { - return data; - } - if (channel === 'nightly') { - regex = /N[0-9]*/; - } else if (channel === 'beta') { - regex = /B[0-9]*/; - } else { - regex = /firefox\s+(ESR)?\s*([\d.]+)\s+release/i; - } - - const summary = entry.summary.match(regex); - if (!summary) { - return data; - } - - if (channel === 'nightly' || channel === 'beta') { - version = summary.join('').replace(/N|B/, ''); - } else { - // the calendar summary text is similar for both release and esr; for esr - // it'll contain 'ESR', otherwise it'll be undefined (for release) - assignedChannel = summary[1] ? 'esr' : 'release'; - if (channel !== assignedChannel) { - return data; - } - version = summary[2]; - } - data.push({ - version, - channel: !assignedChannel ? channel : assignedChannel, - date: moment(entry.start).format('YYYY-MM-DD'), - }); - return data; - }, []); - dates.sort((a, b) => ((a.date < b.date) ? -1 : 1)); - return dates; -} diff --git a/src/release/channels.js b/src/release/channels.js deleted file mode 100644 index fe5a46b..0000000 --- a/src/release/channels.js +++ /dev/null @@ -1 +0,0 @@ -export default ['release', 'beta', 'aurora', 'nightly']; diff --git a/src/release/history.js b/src/release/history.js deleted file mode 100644 index 2ab7624..0000000 --- a/src/release/history.js +++ /dev/null @@ -1,96 +0,0 @@ -import moment from 'moment'; -import { sortBy, maxBy, filter, find } from 'lodash'; -import { partition, flow } from 'lodash/fp'; -import fetchJson from '../fetch/json'; -import { parse as parseVersion } from '../meta/version'; - -const feeds = { - firefox: { - release: [ - 'https://product-details.mozilla.org/1.0/firefox_history_major_releases.json', - 'https://product-details.mozilla.org/1.0/firefox_history_stability_releases.json', - ], - beta: 'https://product-details.mozilla.org/1.0/firefox_history_development_releases.json', - }, - fennec: { - release: [ - 'https://product-details.mozilla.org/1.0/mobile_history_major_releases.json', - 'https://product-details.mozilla.org/1.0/mobile_history_stability_releases.json', - ], - beta: 'https://product-details.mozilla.org/1.0/mobile_history_development_releases.json', - }, -}; - -export async function getHistory({ - channel = 'release', - product = 'firefox', - major = false, - tailVersion = null, - tailDate = null, -}) { - const history = {}; - if (channel === 'release') { - Object.assign( - history, - await fetchJson(feeds[product].release[0]), - await fetchJson(feeds[product].release[1]), - ); - } else { - Object.assign( - history, - await fetchJson(feeds[product].beta), - ); - } - let results = Object.keys(history).reduce((reduced, version) => { - const parsed = parseVersion(version); - if (major && !parsed.isMajor) { - return reduced; - } - if (parsed.channel !== channel) { - return reduced; - } - reduced.push({ - version: parsed, - date: history[version], - }); - return reduced; - }, []); - if (!results.length) { - console.warn('No results for %s/%s, major: %s', product, channel, major); - } else if (tailVersion) { - const tail = maxBy(results, 'version.major').version.major - tailVersion; - results = filter(results, ({ version }) => version.major > tail); - } - results = sortBy(results, 'date', a => Date.parse(a)) - .map(({ version, date }) => ({ - version: version.clean, - date, - })); - if (tailDate) { - const split = flow(partition(({ date }) => new Date(date) > new Date(tailDate)))(results); - results = split[0].concat([split[1].slice(-1)]); - } - return results; -} - -export async function getReleaseDate(version, { - product = 'firefox', - channel = 'release', -} = {}) { - if (typeof version === 'number') { - version = `${version}.0`; - if (channel !== 'release') { - version += `${channel.charAt(0)}1`; - } - } - const parsed = parseVersion(version); - const history = await getHistory({ - product, - channel: channel || parsed.channel, - }); - const found = find(history, entry => parsed.full === entry.version); - return { - date: found ? moment(found.date).format('YYYY-MM-DD') : null, - version, - }; -} diff --git a/src/release/updates.js b/src/release/updates.js deleted file mode 100644 index 097a0f4..0000000 --- a/src/release/updates.js +++ /dev/null @@ -1,30 +0,0 @@ -import moment from 'moment'; -import fetchHtml from '../fetch/html'; -import channels from './channels'; -import getVersions from './versions'; - -export async function getUpdate(channel = 'release') { - const versions = await getVersions(); - const latest = versions[channel] || versions.beta; - // https://aus5.mozilla.org/update/3/%PRODUCT%/%VERSION%/%BUILD_ID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/update.xml - const url = `https://aus5.mozilla.org/update/3/Firefox/${latest}/0/Darwin_x86_64-gcc3-u-i386-x86_64/en-US/${channel}/Darwin%2015.4.0/default/default/update.xml?force=1`; - const $ = await fetchHtml(url); - const field = $('update'); - if (!field.length) { - return {}; - } - const date = moment(field.prop('buildid'), 'YYYYMMDDHHmmss'); - return { - version: field.prop('appversion'), - build_id: field.prop('buildid'), - date: date.format('YYYY-MM-DD'), - }; -} - -export async function getUpdates() { - const result = {}; - for (const channel of channels) { - result[channel] = await getUpdate(channel); - } - return result; -} diff --git a/src/status.js b/src/status.js deleted file mode 100644 index b8dc487..0000000 --- a/src/status.js +++ /dev/null @@ -1,17 +0,0 @@ -import Router from 'koa-router'; -import { getChromePopular } from './status/chrome'; -import { getInDevelopment } from './status/caniuse'; - -export const router = new Router(); - -router - - .get('/caniuse', async (ctx) => { - const features = await getInDevelopment(); - ctx.body = features; - }) - - .get('/chrome/popular', async (ctx) => { - const features = await getChromePopular(); - ctx.body = features; - }); diff --git a/src/status/caniuse.js b/src/status/caniuse.js deleted file mode 100644 index d0a8b1a..0000000 --- a/src/status/caniuse.js +++ /dev/null @@ -1,55 +0,0 @@ -import { flow, map, sortBy, toPairs, some, filter, find } from 'lodash/fp'; -import caniuse from 'caniuse-db/data.json'; -import fetchJson from '../fetch/json'; -import { resolveCategory, latestPlatforms, scoreFeature, platforms } from '../meta/feature'; - -const firefoxBase = 'https://platform-status.mozilla.org/api/status'; - -export async function getInDevelopment() { - const firefoxStatus = await fetchJson(firefoxBase); - return flow( - toPairs, - map(([ref, feature]) => { - const result = { - id: ref, - name: feature.title, - category: resolveCategory(feature.categories.join(' ')), - link: `http://caniuse.com/#feat=${ref}`, - caniuse: { - ref, - usage: feature.usage_perc_y + feature.usage_perc_a, - }, - }; - platforms.forEach((platform) => { - result[platform] = { status: 'nope' }; - const versions = feature.stats[platform]; - flow( - toPairs, - sortBy(([idx]) => parseFloat(idx)), - some(([idx, state]) => { - result[platform].alt = state; - const version = parseFloat(idx); - if (/[ay]/.test(state) && version <= latestPlatforms[platform]) { - result[platform].status = 'shipped'; - result[platform].version = version; - return true; - } - if (/[ayd]/.test(state) && !result[platform].version) { - result[platform].status = 'in-development'; - result[platform].version = version; - } - return false; - }), - )(versions); - }); - const firefoxRef = find({ caniuse_ref: ref })(firefoxStatus); - if (firefoxRef) { - result.firefox.ref = firefoxRef.slug; - } - return result; - }), - map(scoreFeature), - filter(({ completeness }) => completeness < 4 && completeness >= 0.5), - // filter(({ recency }) => recency >= 0.5) - )(caniuse.data); -} diff --git a/src/status/chrome.js b/src/status/chrome.js deleted file mode 100644 index b15044a..0000000 --- a/src/status/chrome.js +++ /dev/null @@ -1,105 +0,0 @@ -import { flow, find, findKey, filter, map } from 'lodash/fp'; -import caniuse from 'caniuse-db/data.json'; -import browserslist from 'browserslist'; -import fetchJson from '../fetch/json'; -import { resolveStatus, resolveCategory, scoreFeature } from '../meta/feature'; -import { getRelease } from '../bz/release'; - -const base = 'https://www.chromestatus.com/features.json'; -const firefoxBase = 'https://platform-status.mozilla.org/api/status'; - -export async function getChromePopular() { - const firefoxStatus = await fetchJson(firefoxBase); - const chromeStatus = await fetchJson(base); - const latest = browserslist('last 1 version').reduce((result, str) => { - const [platform, version] = str.split(/\s+/); - result[platform] = +version; - return result; - }, {}); - const queuedIds = []; - const features = flow( - filter(({ browsers }) => browsers.webdev && browsers.webdev.view.val <= 2), - filter(({ browsers }) => ( - !/opposed/i.test(browsers.ff.view.text) && - !/pursuing|deprecat|removed/i.test(browsers.chrome.status.text) - )), - map((chromestatus) => { - const { - chrome, ff, edge, safari, - } = chromestatus.browsers; - const result = { - id: chromestatus.id, - link: `https://www.chromestatus.com/feature/${chromestatus.id}`, - name: chromestatus.name, - category: resolveCategory(chromestatus.category), - chrome: { - status: resolveStatus(chrome.status.text), - alt: chrome.status.text, - updated: new Date(chrome.updated).valueOf(), - }, - firefox: { - status: resolveStatus(ff && ff.view.text), - alt: ff && ff.view.text, - }, - ie: { - status: resolveStatus(edge && edge.view.text), - alt: edge && edge.view.text, - }, - safari: { - status: resolveStatus(safari && safari.view.text), - alt: safari && safari.view.text, - }, - }; - if (result.chrome.status === 'shipped' && chrome.milestone_str) { - result.chrome.version = chrome.milestone_str; - if (result.chrome.version > latest.chrome) { - result.chrome.status = 'in-development'; - } - } - const firefoxRef = find({ chrome_ref: chromestatus.id })(firefoxStatus); - if (firefoxRef) { - result.name = firefoxRef.title; - result.firefox.ref = firefoxRef.slug; - result.firefox.status = resolveStatus(firefoxRef.firefox_status); - result.safari.status = resolveStatus(firefoxRef.webkit_status); - result.ie.status = resolveStatus(firefoxRef.ie_status); - if (firefoxRef.firefox_version) { - result.firefox.version = firefoxRef.firefox_version; - } - } else if (/show_bug\.cgi/.test((ff && ff.view.url) || '')) { - const id = ff.view.url.match(/id=([^$#]+)/)[1]; - queuedIds.push({ - id, - feature: result, - }); - } - let caniuseRef = findKey({ chrome_id: chromestatus.id })(caniuse.data); - if (!caniuseRef && firefoxRef && firefoxRef.caniuse_ref) { - caniuseRef = firefoxRef.caniuse_ref; - } - if (caniuseRef) { - const ref = caniuse.data[caniuseRef]; - result.caniuse = { - ref: caniuseRef, - usage: ref.usage_perc_y + ref.usage_perc_a, - }; - } - return result; - }), - )(chromeStatus); - - (await getRelease(queuedIds.map(({ id }) => id))).forEach(({ id, version }) => { - if (version) { - const ref = find({ id: String(id) })(queuedIds); - if (ref) { - if (ref.feature.firefox.status !== 'shipped') { - ref.feature.firefox.bz = true; - } - ref.feature.firefox.status = version > latest.firefox ? 'in-development' : 'shipped'; - ref.feature.firefox.version = version; - } - } - }); - - return flow(map(scoreFeature), filter(({ completeness }) => completeness >= 0.5))(features); -} diff --git a/test/mocks/calendarIcs.js b/test/mocks/calendarIcs.js deleted file mode 100644 index 9dcf6f4..0000000 --- a/test/mocks/calendarIcs.js +++ /dev/null @@ -1,3946 +0,0 @@ -/* eslint-disable */ -export default ` -BEGIN:VCALENDAR -PRODID:-//Google Inc//Google Calendar 70.9054//EN -VERSION:2.0 -CALSCALE:GREGORIAN -METHOD:PUBLISH -X-WR-CALNAME:Public - Firefox Merge/Release Schedule -X-WR-TIMEZONE:America/Los_Angeles -X-WR-CALDESC:Firefox merge days and release schedule -BEGIN:VEVENT -DTSTART;VALUE=DATE:20191022 -DTEND;VALUE=DATE:20191023 -DTSTAMP:20180705T134535Z -UID:75ook0btpa7abk7mr64unh2brs@google.com -CREATED:20180626T112646Z -DESCRIPTION: -LAST-MODIFIED:20180626T113526Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:Firefox 70 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20191021 -DTEND;VALUE=DATE:20191022 -DTSTAMP:20180705T134535Z -UID:1l2bn5eq9m3f5opt3v227tlpfe@google.com -CREATED:20180626T112637Z -DESCRIPTION: -LAST-MODIFIED:20180626T113525Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:MERGE: B71\, N72\, End Soft Code Freeze -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20191210 -DTEND;VALUE=DATE:20191211 -DTSTAMP:20180705T134535Z -UID:40hrr9kcndsenvpkmtthgjs2d1@google.com -CREATED:20180626T112738Z -DESCRIPTION: -LAST-MODIFIED:20180626T112738Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 71 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20191209 -DTEND;VALUE=DATE:20191210 -DTSTAMP:20180705T134535Z -UID:5j50nfip1mf7r5ccs3dg2toi6d@google.com -CREATED:20180626T112729Z -DESCRIPTION: -LAST-MODIFIED:20180626T112729Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B72\, N73\, End Soft Code Freeze -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20190903 -DTEND;VALUE=DATE:20190904 -DTSTAMP:20180705T134535Z -UID:1sktdo31orqg4pj930o1ld2osr@google.com -CREATED:20180626T112548Z -DESCRIPTION: -LAST-MODIFIED:20180626T112548Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 69 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20190902 -DTEND;VALUE=DATE:20190903 -DTSTAMP:20180705T134535Z -UID:32doltsk7kf5pde7do5cue8e1g@google.com -CREATED:20180626T112530Z -DESCRIPTION: -LAST-MODIFIED:20180626T112530Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B70\, N71\, End Soft Code Freeze -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20190708 -DTEND;VALUE=DATE:20190709 -DTSTAMP:20180705T134535Z -UID:77oaj66somfaeqqpgtcij4697o@google.com -CREATED:20180626T112453Z -DESCRIPTION: -LAST-MODIFIED:20180626T112453Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B69\, N70\, End Soft Code Freeze -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20190709 -DTEND;VALUE=DATE:20190710 -DTSTAMP:20180705T134535Z -UID:4umsoj1p0gvsm9abu91p9g60jo@google.com -CREATED:20180626T112428Z -DESCRIPTION: -LAST-MODIFIED:20180626T112428Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 68 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20190514 -DTEND;VALUE=DATE:20190515 -DTSTAMP:20180705T134535Z -UID:72fhpi1e4f3hdjmfqouto7e35l@google.com -CREATED:20180626T112351Z -DESCRIPTION: -LAST-MODIFIED:20180626T112351Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 67 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20190513 -DTEND;VALUE=DATE:20190514 -DTSTAMP:20180705T134535Z -UID:46qq3t28cigtdikperf67foovd@google.com -CREATED:20180626T112342Z -DESCRIPTION: -LAST-MODIFIED:20180626T112342Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B68\, N69\, End Soft Code Freeze -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20190319 -DTEND;VALUE=DATE:20190320 -DTSTAMP:20180705T134535Z -UID:7iio0msaqn69o9k06971a7sg7h@google.com -CREATED:20180626T112305Z -DESCRIPTION: -LAST-MODIFIED:20180626T112305Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 66 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20190318 -DTEND;VALUE=DATE:20190319 -DTSTAMP:20180705T134535Z -UID:48uo58hkqgttrfobh5hu1ftle4@google.com -CREATED:20180626T112241Z -DESCRIPTION: -LAST-MODIFIED:20180626T112241Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B67\, N68\, End Soft Code Freeze -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20190129 -DTEND;VALUE=DATE:20190130 -DTSTAMP:20180705T134535Z -UID:17k5abc3l1959nssm7fl013p6b@google.com -CREATED:20180626T112141Z -DESCRIPTION: -LAST-MODIFIED:20180626T112141Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 65 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20190128 -DTEND;VALUE=DATE:20190129 -DTSTAMP:20180705T134535Z -UID:32ue46lchpn3g3ibhduk9hvsg3@google.com -CREATED:20180626T112108Z -DESCRIPTION: -LAST-MODIFIED:20180626T112108Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B66\, N67\, End Soft Code Freeze -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20181211 -DTEND;VALUE=DATE:20181212 -DTSTAMP:20180705T134535Z -UID:oeh5ah2s0btq3r65cu5ngjtfa0@google.com -CREATED:20170421T120522Z -DESCRIPTION: -LAST-MODIFIED:20180626T111645Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:Firefox 64 release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20181210 -DTEND;VALUE=DATE:20181211 -DTSTAMP:20180705T134535Z -UID:t0v8ush5hdrnbutinaqu6mhe6g@google.com -CREATED:20170421T120518Z -DESCRIPTION: -LAST-MODIFIED:20180626T111633Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:MERGE: B65\, N66\, End Soft Code Freeze -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20181022 -DTEND;VALUE=DATE:20181023 -DTSTAMP:20180705T134535Z -UID:683ob0ucomqlmha4i8s9f7tfm4@google.com -CREATED:20170421T120354Z -DESCRIPTION: -LAST-MODIFIED:20180626T102609Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:MERGE: B64\, N65\, End Soft Code Freeze -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20181023 -DTEND;VALUE=DATE:20181024 -DTSTAMP:20180705T134535Z -UID:0qntk0qt8tsm72r9q9f6t3g1p8@google.com -CREATED:20170421T120400Z -DESCRIPTION: -LAST-MODIFIED:20180626T102559Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:Firefox 63 release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20180904 -DTEND;VALUE=DATE:20180905 -DTSTAMP:20180705T134535Z -UID:5stkvkvqn27cdloqmgecjsigdo@google.com -CREATED:20170421T120326Z -DESCRIPTION: -LAST-MODIFIED:20180504T175813Z -LOCATION: -SEQUENCE:3 -STATUS:CONFIRMED -SUMMARY:MERGE: B63\, N64\, End Soft Code Freeze -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20180905 -DTEND;VALUE=DATE:20180906 -DTSTAMP:20180705T134535Z -UID:7abp5a0jf4ef9oek0v4tsedv3o@google.com -CREATED:20170421T120337Z -DESCRIPTION: -LAST-MODIFIED:20180503T165441Z -LOCATION: -SEQUENCE:2 -STATUS:CONFIRMED -SUMMARY:Firefox 62 release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20180625 -DTEND;VALUE=DATE:20180626 -DTSTAMP:20180705T134535Z -UID:5f2rr39vjg0g36n63so4p79tno@google.com -CREATED:20170421T120139Z -DESCRIPTION: -LAST-MODIFIED:20180313T160104Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B62\, N63\, End Soft Code Freeze -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20180507 -DTEND;VALUE=DATE:20180508 -DTSTAMP:20180705T134535Z -UID:2dnnot6jvgormbqvq4d9rglqfc@google.com -CREATED:20170421T100614Z -DESCRIPTION: -LAST-MODIFIED:20180313T160011Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:MERGE: B61\, N62\, End Soft Code Freeze -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20180426 -DTEND;VALUE=DATE:20180427 -DTSTAMP:20180705T134535Z -UID:7tmr0u4grdkri1alhkjakrc4hb@google.com -CREATED:20180313T155910Z -DESCRIPTION:Please don’t:\n* Land a medium-high risk patch\n* Flip prefs th - at enable new Features\n -LAST-MODIFIED:20180313T155910Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:First Merge/Soft Code Freeze for 61 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20180509 -DTEND;VALUE=DATE:20180510 -DTSTAMP:20180705T134535Z -UID:30mdss2miv9fet9qmk9n36d5qo@google.com -CREATED:20170421T100622Z -DESCRIPTION: -LAST-MODIFIED:20180208T091521Z -LOCATION: -SEQUENCE:2 -STATUS:CONFIRMED -SUMMARY:Firefox 60 release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20180122 -DTEND;VALUE=DATE:20180123 -DTSTAMP:20180705T134535Z -UID:brsef0qk2b4i0qb1r8tcppj3tk@google.com -CREATED:20170213T112337Z -DESCRIPTION:m-c => m-b Final Merge (post-Jan 11th merge) -LAST-MODIFIED:20180206T230205Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:MERGE: B59\, N60\, End Soft Code Freeze -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20180111 -DTEND;VALUE=DATE:20180112 -DTSTAMP:20180705T134535Z -UID:62e8t8htu2mbvsf57o3st66vtr@google.com -CREATED:20171207T190947Z -DESCRIPTION:Early merge. \nm-r = 58\, m-b = 59\, m-c remains 59. \nThere wi - ll be daily (or thereabouts) merges from m-c to m-b until the final merge d - ay\n -LAST-MODIFIED:20180206T230150Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:First Merge/Start Soft Code Freeze -TRANSP:OPAQUE -X-APPLE-TRAVEL-ADVISORY-BEHAVIOR:AUTOMATIC -BEGIN:VALARM -ACTION:AUDIO -TRIGGER:-PT15H -X-WR-ALARMUID:371C75FD-B7BF-4517-8B5B-6ED487AE9586 -UID:371C75FD-B7BF-4517-8B5B-6ED487AE9586 -ATTACH;VALUE=URI:Basso -X-APPLE-DEFAULT-ALARM:TRUE -ACKNOWLEDGED:20180110T142234Z -END:VALARM -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20180312 -DTEND;VALUE=DATE:20180313 -DTSTAMP:20180705T134535Z -UID:o3qafcictlooqr8vfuqvnck2dk@google.com -CREATED:20170421T100504Z -DESCRIPTION: -LAST-MODIFIED:20180206T230102Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:MERGE: B60\, N61\, End Soft Code Freeze -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20180301 -DTEND;VALUE=DATE:20180302 -DTSTAMP:20180705T134535Z -UID:2sqv9rb34d1ni4bohork4ifegn@google.com -CREATED:20180206T171421Z -DESCRIPTION:Please don’t:\n* Land a medium-high risk patch\n* Flip prefs th - at enable new Features\n -LAST-MODIFIED:20180206T225916Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:First Merge/Soft Code Freeze for 60 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20180313 -DTEND;VALUE=DATE:20180314 -DTSTAMP:20180705T134535Z -UID:sjkcg05k7tvpjtbjeuushc6m5g@google.com -CREATED:20170421T100525Z -DESCRIPTION: -LAST-MODIFIED:20180108T184318Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:Firefox 59 release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20160308 -DTEND;VALUE=DATE:20160309 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=bzloeffler@googlemail.com:mailto:bzloeffler@googlemail.com -UID:vohj43h8v7k7vvj9mqt2ea2gkk@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20160915T053046Z -DESCRIPTION: -LAST-MODIFIED:20171212T080625Z -LOCATION:Public - Firefox Merge/Release Schedule -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox ESR 38.7 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150112 -DTEND;VALUE=DATE:20150113 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=george.ruch74@gmail.com:mailto:george.ruch74@gmail.com -UID:q4kqpslg41gjjbm3rqod84fctk@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161103T175809Z -DESCRIPTION:Merge Day\nBeta: 36\nAurora: 37\nNightly: 38 -LAST-MODIFIED:20171210T145854Z -LOCATION:Public - Firefox Merge/Release Schedule -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B36\, A37\, N38 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150112 -DTEND;VALUE=DATE:20150113 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=george.ruch74@gmail.com:mailto:george.ruch74@gmail.com -UID:4iva105q2saj9q92g7ti6bpdh4@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161103T175809Z -DESCRIPTION:Merge Day\nBeta: 36\nAurora: 37\nNightly: 38 -LAST-MODIFIED:20171210T145854Z -LOCATION:Public - Firefox Merge/Release Schedule -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B36\, A37\, N38 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150112 -DTEND;VALUE=DATE:20150113 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=george.ruch74@gmail.com:mailto:george.ruch74@gmail.com -UID:iej5nqhdjigi2eial8buh4nabk@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161103T175809Z -DESCRIPTION:Merge Day\nBeta: 36\nAurora: 37\nNightly: 38 -LAST-MODIFIED:20171210T145854Z -LOCATION:Public - Firefox Merge/Release Schedule -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B36\, A37\, N38 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150223 -DTEND;VALUE=DATE:20150224 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=george.ruch74@gmail.com:mailto:george.ruch74@gmail.com -UID:llhmsp27d8iotg571u4llvetjo@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161103T175809Z -DESCRIPTION:Beta: 37\nAurora: 38\nNightly: 39 -LAST-MODIFIED:20171210T145853Z -LOCATION:Public - Firefox Merge/Release Schedule -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B37\, A38\, N39 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150223 -DTEND;VALUE=DATE:20150224 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=george.ruch74@gmail.com:mailto:george.ruch74@gmail.com -UID:rd05of9117i9vulcp7goo52pe0@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161103T194832Z -DESCRIPTION:Beta: 37\nAurora: 38\nNightly: 39 -LAST-MODIFIED:20171210T145853Z -LOCATION:Public - Firefox Merge/Release Schedule -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B37\, A38\, N39 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150224 -DTEND;VALUE=DATE:20150225 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=george.ruch74@gmail.com:mailto:george.ruch74@gmail.com -UID:4smfh8blbr8oubfii1k1sv4d2g@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161103T175809Z -DESCRIPTION: -LAST-MODIFIED:20171210T145853Z -LOCATION:Public - Firefox Merge/Release Schedule -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 36 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150630 -DTEND;VALUE=DATE:20150701 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=george.ruch74@gmail.com:mailto:george.ruch74@gmail.com -UID:it0g02mvdj08ghnq16n9kcncmg@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161103T175809Z -DESCRIPTION: -LAST-MODIFIED:20171210T145852Z -LOCATION:Public - Firefox Merge/Release Schedule -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox ESR 31.8 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150629 -DTEND;VALUE=DATE:20150630 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=george.ruch74@gmail.com:mailto:george.ruch74@gmail.com -UID:iu70o2d4946s1fssfitpbrr8cs@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161103T175809Z -DESCRIPTION:Beta: 40\nAurora: 41\nNightly: 42 -LAST-MODIFIED:20171210T145851Z -LOCATION:Public - Firefox Merge/Release Schedule -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B40\, A41\, N42 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150630 -DTEND;VALUE=DATE:20150701 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=george.ruch74@gmail.com:mailto:george.ruch74@gmail.com -UID:fi4h9g05tvb643hedqgnuvkp4s@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161103T175809Z -DESCRIPTION: -LAST-MODIFIED:20171210T145851Z -LOCATION:Public - Firefox Merge/Release Schedule -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 39 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150921 -DTEND;VALUE=DATE:20150922 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=george.ruch74@gmail.com:mailto:george.ruch74@gmail.com -UID:88o7vnueb3jp5tpmafsrtsgjsk@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161103T175809Z -DESCRIPTION:Beta: 42\nAurora: 43\nNightly: 44 -LAST-MODIFIED:20171210T145851Z -LOCATION:Public - Firefox Merge/Release Schedule -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B42\, A43\, N44 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150921 -DTEND;VALUE=DATE:20150922 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=george.ruch74@gmail.com:mailto:george.ruch74@gmail.com -UID:d1qdohrdbh6d54ber0r35fqajk@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161103T175809Z -DESCRIPTION:Beta: 42\nAurora: 43\nNightly: 44 -LAST-MODIFIED:20171210T145850Z -LOCATION:Public - Firefox Merge/Release Schedule -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B42\, A43\, N44 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150922 -DTEND;VALUE=DATE:20150923 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=george.ruch74@gmail.com:mailto:george.ruch74@gmail.com -UID:l0gsck96ed4s914po9tkn9peh0@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161103T194831Z -DESCRIPTION: -LAST-MODIFIED:20171210T145849Z -LOCATION:Public - Firefox Merge/Release Schedule -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 41 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20151215 -DTEND;VALUE=DATE:20151216 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=george.ruch74@gmail.com:mailto:george.ruch74@gmail.com -UID:vhgr605prccv50shftft3dq94k@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161103T175809Z -DESCRIPTION: -LAST-MODIFIED:20171210T145848Z -LOCATION:Public - Firefox Merge/Release Schedule -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 43 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20151215 -DTEND;VALUE=DATE:20151216 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=george.ruch74@gmail.com:mailto:george.ruch74@gmail.com -UID:okfd3ovjqpfuqt303r84n5i698@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161103T175809Z -DESCRIPTION: -LAST-MODIFIED:20171210T145848Z -LOCATION:Public - Firefox Merge/Release Schedule -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 43 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20160308 -DTEND;VALUE=DATE:20160309 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=george.ruch74@gmail.com:mailto:george.ruch74@gmail.com -UID:f39pildb752aj3101nfdvqlpk8@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161103T175809Z -DESCRIPTION: -LAST-MODIFIED:20171210T145847Z -LOCATION:Public - Firefox Merge/Release Schedule -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox ESR 38.7 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20160308 -DTEND;VALUE=DATE:20160309 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=darkimpulsedestiny@gmail.com:mailto:darkimpulsedestiny@gmail.c - om -UID:tg1nging45c089cc7a36rhjkk8@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161102T194336Z -DESCRIPTION: -LAST-MODIFIED:20171210T124842Z -LOCATION:Public - Firefox Merge/Release Schedule -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox ESR 38.7 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20151215 -DTEND;VALUE=DATE:20151216 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=darkimpulsedestiny@gmail.com:mailto:darkimpulsedestiny@gmail.c - om -UID:acmh4rhkreckprl2in21fjmgqs@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161102T194618Z -DESCRIPTION: -LAST-MODIFIED:20171210T124549Z -LOCATION:Public - Firefox Merge/Release Schedule -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 43 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20151214 -DTEND;VALUE=DATE:20151215 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=darkimpulsedestiny@gmail.com:mailto:darkimpulsedestiny@gmail.c - om -UID:rsvlb65rivg5mab4chas3sbphc@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161102T194336Z -DESCRIPTION:Beta: 44\nAurora: 45\nNightly: 46 -LAST-MODIFIED:20171210T124457Z -LOCATION:Public - Firefox Merge/Release Schedule -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B44\, A45\, N46 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150922 -DTEND;VALUE=DATE:20150923 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=darkimpulsedestiny@gmail.com:mailto:darkimpulsedestiny@gmail.c - om -UID:ncqo8pt02sinij0eue83sk3rgg@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161102T194336Z -DESCRIPTION: -LAST-MODIFIED:20171210T123539Z -LOCATION:Public - Firefox Merge/Release Schedule -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 41 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150921 -DTEND;VALUE=DATE:20150922 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=darkimpulsedestiny@gmail.com:mailto:darkimpulsedestiny@gmail.c - om -UID:pvg4hqrno5kovlqpcp5jgho7sc@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161102T194336Z -DESCRIPTION:Beta: 42\nAurora: 43\nNightly: 44 -LAST-MODIFIED:20171210T123445Z -LOCATION:Public - Firefox Merge/Release Schedule -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B42\, A43\, N44 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150921 -DTEND;VALUE=DATE:20150922 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=darkimpulsedestiny@gmail.com:mailto:darkimpulsedestiny@gmail.c - om -UID:sc7vh5rkcbqvk8019j8vam5278@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161102T194605Z -DESCRIPTION:Beta: 42\nAurora: 43\nNightly: 44 -LAST-MODIFIED:20171210T123441Z -LOCATION:Public - Firefox Merge/Release Schedule -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B42\, A43\, N44 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150630 -DTEND;VALUE=DATE:20150701 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=darkimpulsedestiny@gmail.com:mailto:darkimpulsedestiny@gmail.c - om -UID:htvbhbrin7is31m6gtjq5vcer0@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161102T194336Z -DESCRIPTION: -LAST-MODIFIED:20171210T123037Z -LOCATION:Public - Firefox Merge/Release Schedule -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 39 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150112 -DTEND;VALUE=DATE:20150113 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=darkimpulsedestiny@gmail.com:mailto:darkimpulsedestiny@gmail.c - om -UID:6nbpidt68qkaqug9p89jdjo5g4@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161102T194336Z -DESCRIPTION:Merge Day\nBeta: 36\nAurora: 37\nNightly: 38 -LAST-MODIFIED:20171210T113447Z -LOCATION:Public - Firefox Merge/Release Schedule -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B36\, A37\, N38 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20180123 -DTEND;VALUE=DATE:20180124 -DTSTAMP:20180705T134535Z -UID:sjka58ook5hfv2p499fd3k7hqo@google.com -CREATED:20170213T112347Z -DESCRIPTION: -LAST-MODIFIED:20171207T163825Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:Firefox 58 release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20171114 -DTEND;VALUE=DATE:20171115 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=dhardison@mozilla.com:mailto:dhardison@mozilla.com -UID:247617e-cf0ske3c1la798sddenbvfk4d8@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=DECLINED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170413T135252Z -DESCRIPTION: -LAST-MODIFIED:20171113T145858Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 57 release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20171114 -DTEND;VALUE=DATE:20171115 -DTSTAMP:20180705T134535Z -UID:cf0ske3c1la798sddenbvfk4d8@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170213T112231Z -DESCRIPTION: -LAST-MODIFIED:20171113T014151Z -LOCATION:Public - Firefox Merge/Release Schedule -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 57 release -TRANSP:OPAQUE -X-APPLE-TRAVEL-ADVISORY-BEHAVIOR:AUTOMATIC -BEGIN:VALARM -ACTION:AUDIO -TRIGGER:-PT15H -X-WR-ALARMUID:F097E748-7C5E-4C01-8BAF-052B618D25C2 -UID:F097E748-7C5E-4C01-8BAF-052B618D25C2 -ATTACH;VALUE=URI:Basso -X-APPLE-DEFAULT-ALARM:TRUE -ACKNOWLEDGED:20171113T014149Z -END:VALARM -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20171113 -DTEND;VALUE=DATE:20171114 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=dhardison@mozilla.com:mailto:dhardison@mozilla.com -UID:247617e-ucuepd8dvs684pgrheqmtn2eh0@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=DECLINED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170413T135308Z -DESCRIPTION: -LAST-MODIFIED:20171112T194304Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B58\, A59\, N60 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20171113 -DTEND;VALUE=DATE:20171114 -DTSTAMP:20180705T134535Z -UID:ucuepd8dvs684pgrheqmtn2eh0@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170213T112211Z -DESCRIPTION: -LAST-MODIFIED:20171020T124643Z -LOCATION:Public - Firefox Merge/Release Schedule -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B58\, N59 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20170928 -DTEND;VALUE=DATE:20170929 -DTSTAMP:20180705T134535Z -UID:5ru327ianug6d53u8v65lm0ej4@google.com -CREATED:20170213T112119Z -DESCRIPTION: -LAST-MODIFIED:20170927T032632Z -LOCATION: -SEQUENCE:2 -STATUS:CONFIRMED -SUMMARY:Firefox 56 release -TRANSP:OPAQUE -X-APPLE-TRAVEL-ADVISORY-BEHAVIOR:AUTOMATIC -BEGIN:VALARM -ACTION:AUDIO -TRIGGER:-PT15H -X-WR-ALARMUID:07BE62F3-5561-46B1-9230-CE1ED8E558D8 -UID:07BE62F3-5561-46B1-9230-CE1ED8E558D8 -ATTACH;VALUE=URI:Basso -X-APPLE-DEFAULT-ALARM:TRUE -ACKNOWLEDGED:20170927T032604Z -END:VALARM -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20170921 -DTEND;VALUE=DATE:20170922 -DTSTAMP:20180705T134535Z -UID:uupjc6jo9sa0slc2g8fiekf8b0@google.com -CREATED:20170213T112106Z -DESCRIPTION: -LAST-MODIFIED:20170920T145530Z -LOCATION: -SEQUENCE:3 -STATUS:CONFIRMED -SUMMARY:MERGE: B57\, N58 -TRANSP:OPAQUE -X-APPLE-TRAVEL-ADVISORY-BEHAVIOR:AUTOMATIC -BEGIN:VALARM -ACTION:AUDIO -TRIGGER:-PT15H -X-WR-ALARMUID:4E7EF29B-293B-488D-8C8F-5A814FC6C557 -UID:4E7EF29B-293B-488D-8C8F-5A814FC6C557 -ATTACH;VALUE=URI:Basso -X-APPLE-DEFAULT-ALARM:TRUE -ACKNOWLEDGED:20170920T145436Z -END:VALARM -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20170808 -DTEND;VALUE=DATE:20170809 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=dhardison@mozilla.com:mailto:dhardison@mozilla.com -UID:247617e-dmhs1j94q3k50a30u03jkjk8n4@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=DECLINED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170413T135252Z -DESCRIPTION: -LAST-MODIFIED:20170807T140222Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 55 release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20170808 -DTEND;VALUE=DATE:20170809 -DTSTAMP:20180705T134535Z -UID:dmhs1j94q3k50a30u03jkjk8n4@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170213T111945Z -DESCRIPTION: -LAST-MODIFIED:20170807T014648Z -LOCATION:Public - Firefox Merge/Release Schedule -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 55 release -TRANSP:OPAQUE -X-APPLE-TRAVEL-ADVISORY-BEHAVIOR:AUTOMATIC -BEGIN:VALARM -ACTION:AUDIO -TRIGGER:-PT15H -X-WR-ALARMUID:6105E6F0-01D0-4DF0-B4A2-88802EE908FA -UID:6105E6F0-01D0-4DF0-B4A2-88802EE908FA -ATTACH;VALUE=URI:Basso -X-APPLE-DEFAULT-ALARM:TRUE -ACKNOWLEDGED:20170807T014652Z -END:VALARM -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20170802 -DTEND;VALUE=DATE:20170803 -DTSTAMP:20180705T134535Z -UID:c91ami0gu0n0qeqklrjd88o4go@google.com -CREATED:20170213T112028Z -DESCRIPTION:Early merge\, creating Nightly 57 a few days early\, and moving - 56 to beta. Anything that lands on m-c on or after Wed. August 2 will lan - d on 57. You can request uplift to 56 beta though. The 56 beta 1 build will - still happen on Monday Aug 7. Thanks - lizzard -LAST-MODIFIED:20170801T020916Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:MERGE: B56\, N57 -TRANSP:OPAQUE -X-APPLE-TRAVEL-ADVISORY-BEHAVIOR:AUTOMATIC -BEGIN:VALARM -ACTION:AUDIO -TRIGGER:-PT15H -X-WR-ALARMUID:DC54B73C-377B-46ED-8954-1B2AA0D1A491 -UID:DC54B73C-377B-46ED-8954-1B2AA0D1A491 -ATTACH;VALUE=URI:Basso -X-APPLE-DEFAULT-ALARM:TRUE -ACKNOWLEDGED:20170801T020911Z -END:VALARM -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20170613 -DTEND;VALUE=DATE:20170614 -DTSTAMP:20180705T134535Z -UID:p6i0ps75gonmeetmmq342a4am8@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170213T111822Z -DESCRIPTION: -LAST-MODIFIED:20170612T022041Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 54 release -TRANSP:OPAQUE -X-APPLE-TRAVEL-ADVISORY-BEHAVIOR:AUTOMATIC -BEGIN:VALARM -ACTION:AUDIO -TRIGGER:-PT15H -X-WR-ALARMUID:2789A198-61D5-4943-A139-EBF027243F03 -UID:2789A198-61D5-4943-A139-EBF027243F03 -ATTACH;VALUE=URI:Basso -X-APPLE-DEFAULT-ALARM:TRUE -ACKNOWLEDGED:20170612T022043Z -END:VALARM -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20170612 -DTEND;VALUE=DATE:20170613 -DTSTAMP:20180705T134535Z -UID:bhib71jmg9ra09423kfi4ebogo@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170213T111758Z -DESCRIPTION: -LAST-MODIFIED:20170611T033702Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B55\, N56 -TRANSP:OPAQUE -X-APPLE-TRAVEL-ADVISORY-BEHAVIOR:AUTOMATIC -BEGIN:VALARM -ACTION:AUDIO -TRIGGER:-PT15H -X-WR-ALARMUID:9CF888E7-3978-4CF8-9169-4C1A3EB22550 -UID:9CF888E7-3978-4CF8-9169-4C1A3EB22550 -ATTACH;VALUE=URI:Basso -X-APPLE-DEFAULT-ALARM:TRUE -ACKNOWLEDGED:20170611T033658Z -END:VALARM -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20180626 -DTEND;VALUE=DATE:20180627 -DTSTAMP:20180705T134535Z -UID:3ns59v94kmpb7u5fv2o8i3dg9s@google.com -CREATED:20170421T120145Z -DESCRIPTION: -LAST-MODIFIED:20170421T120145Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 61 release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20170418 -DTEND;VALUE=DATE:20170419 -DTSTAMP:20180705T134535Z -UID:22kccc8pglseuvil27a7pl1h98@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170213T111741Z -DESCRIPTION: -LAST-MODIFIED:20170421T095901Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:MERGE: B54\, N55 -TRANSP:OPAQUE -X-APPLE-TRAVEL-ADVISORY-BEHAVIOR:AUTOMATIC -BEGIN:VALARM -ACTION:AUDIO -TRIGGER:-PT15H -X-WR-ALARMUID:A1320381-0D28-4C38-901C-4F9591D52BAA -UID:A1320381-0D28-4C38-901C-4F9591D52BAA -ATTACH;VALUE=URI:Basso -X-APPLE-DEFAULT-ALARM:TRUE -ACKNOWLEDGED:20170417T020920Z -END:VALARM -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20170419 -DTEND;VALUE=DATE:20170420 -DTSTAMP:20180705T134535Z -UID:fcgcjvujc5rhfgopcb29eofcj4@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170213T111633Z -DESCRIPTION: -LAST-MODIFIED:20170418T022623Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:Firefox 53 Release -TRANSP:OPAQUE -X-APPLE-TRAVEL-ADVISORY-BEHAVIOR:AUTOMATIC -BEGIN:VALARM -ACTION:AUDIO -TRIGGER:-PT15H -X-WR-ALARMUID:22620884-4BBB-464F-A471-F9D515B5CBA9 -UID:22620884-4BBB-464F-A471-F9D515B5CBA9 -ATTACH;VALUE=URI:Basso -X-APPLE-DEFAULT-ALARM:TRUE -ACKNOWLEDGED:20170418T022622Z -END:VALARM -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20170613 -DTEND;VALUE=DATE:20170614 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=dhardison@mozilla.com:mailto:dhardison@mozilla.com -UID:247617e-p6i0ps75gonmeetmmq342a4am8@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=DECLINED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170413T135303Z -DESCRIPTION: -LAST-MODIFIED:20170413T135304Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 54 release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20151029 -DTEND;VALUE=DATE:20151030 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=dhardison@mozilla.com:mailto:dhardison@mozilla.com -UID:247617e-prr2so4okrh38csho4g2h9on6s@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170413T135303Z -DESCRIPTION:Beta: 43\nAurora: 44\nNightly: 45 -LAST-MODIFIED:20170413T135303Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:MERGE: B43\, A44\, N45 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20160308 -DTEND;VALUE=DATE:20160309 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=dhardison@mozilla.com:mailto:dhardison@mozilla.com -UID:247617e-i67sk1b64cl2b1id001p8a5phs@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170413T135258Z -DESCRIPTION: -LAST-MODIFIED:20170413T135258Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox ESR 38.7 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20170419 -DTEND;VALUE=DATE:20170420 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=dhardison@mozilla.com:mailto:dhardison@mozilla.com -UID:247617e-fcgcjvujc5rhfgopcb29eofcj4@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=DECLINED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170413T135255Z -DESCRIPTION: -LAST-MODIFIED:20170413T135256Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:Firefox 53 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150224 -DTEND;VALUE=DATE:20150225 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=dhardison@mozilla.com:mailto:dhardison@mozilla.com -UID:247617e-eao3v4krubue76ahg3ht15vd0c@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170413T135254Z -DESCRIPTION: -LAST-MODIFIED:20170413T135255Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 36 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20170612 -DTEND;VALUE=DATE:20170613 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=dhardison@mozilla.com:mailto:dhardison@mozilla.com -UID:247617e-bhib71jmg9ra09423kfi4ebogo@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=DECLINED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170413T135249Z -DESCRIPTION: -LAST-MODIFIED:20170413T135250Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B55\, A56\, N57 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150629 -DTEND;VALUE=DATE:20150630 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=dhardison@mozilla.com:mailto:dhardison@mozilla.com -UID:247617e-7lv8ogl9da6308p492rvanelm8@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170413T135248Z -DESCRIPTION:Beta: 40\nAurora: 41\nNightly: 42 -LAST-MODIFIED:20170413T135248Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B40\, A41\, N42 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20151103 -DTEND;VALUE=DATE:20151104 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=dhardison@mozilla.com:mailto:dhardison@mozilla.com -UID:247617e-7h0gjghiehmttp3malrbnvcf0c@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170413T135247Z -DESCRIPTION: -LAST-MODIFIED:20170413T135248Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 42 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150511 -DTEND;VALUE=DATE:20150512 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=dhardison@mozilla.com:mailto:dhardison@mozilla.com -UID:247617e-60dd31tcqqclaqpihs5noncmrg@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170413T135246Z -DESCRIPTION:Aurora: 40\nNightly: 41\n(Beta will not merge until May 26) -LAST-MODIFIED:20170413T135246Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:MERGE: A40\, N41 (CHANGE) -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20170418 -DTEND;VALUE=DATE:20170419 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=dhardison@mozilla.com:mailto:dhardison@mozilla.com -UID:247617e-22kccc8pglseuvil27a7pl1h98@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=DECLINED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170413T135241Z -DESCRIPTION: -LAST-MODIFIED:20170413T135243Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:MERGE: B54\, A55\, N56 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150223 -DTEND;VALUE=DATE:20150224 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=dhardison@mozilla.com:mailto:dhardison@mozilla.com -UID:247617e-v9erde3e89ulbdb6347r95b6e8@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170413T132159Z -DESCRIPTION:Beta: 37\nAurora: 38\nNightly: 39 -LAST-MODIFIED:20170413T132159Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B37\, A38\, N39 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150512 -DTEND;VALUE=DATE:20150513 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=dhardison@mozilla.com:mailto:dhardison@mozilla.com -UID:247617e-tn3udgij7i67a5ofaovtbrp9ec@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170413T132157Z -DESCRIPTION: -LAST-MODIFIED:20170413T132157Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:Firefox 38 Release (CHANGE) -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150331 -DTEND;VALUE=DATE:20150401 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=dhardison@mozilla.com:mailto:dhardison@mozilla.com -UID:247617e-ppr0c8h6fb1se4rc9ggatnmugc@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170413T132152Z -DESCRIPTION: -LAST-MODIFIED:20170413T132152Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:Firefox 37 Release (CHANGE) -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150810 -DTEND;VALUE=DATE:20150811 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=dhardison@mozilla.com:mailto:dhardison@mozilla.com -UID:247617e-nu6dcgujd7vkrp3p3bsvf7p66o@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170413T132150Z -DESCRIPTION:Beta: 41\nAurora: 42\nNightly: 43 -LAST-MODIFIED:20170413T132150Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B41\, A42\, N43 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150811 -DTEND;VALUE=DATE:20150812 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=dhardison@mozilla.com:mailto:dhardison@mozilla.com -UID:247617e-hld6l3henp21ek9t5jganm077g@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170413T132139Z -DESCRIPTION: -LAST-MODIFIED:20170413T132139Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 40 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20151215 -DTEND;VALUE=DATE:20151216 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=dhardison@mozilla.com:mailto:dhardison@mozilla.com -UID:247617e-c3nc4aal9709pbjva14coabv6s@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170413T132130Z -DESCRIPTION: -LAST-MODIFIED:20170413T132130Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 43 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150630 -DTEND;VALUE=DATE:20150701 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=dhardison@mozilla.com:mailto:dhardison@mozilla.com -UID:247617e-bn5uavc2d9sbikha9489ivnen8@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170413T132129Z -DESCRIPTION: -LAST-MODIFIED:20170413T132129Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 39 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150512 -DTEND;VALUE=DATE:20150513 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=dhardison@mozilla.com:mailto:dhardison@mozilla.com -UID:247617e-9aft9c5067u9fqv0c2h9g8hmns@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170413T132126Z -DESCRIPTION: -LAST-MODIFIED:20170413T132126Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:Firefox ESR 38.0 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20151214 -DTEND;VALUE=DATE:20151215 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=dhardison@mozilla.com:mailto:dhardison@mozilla.com -UID:247617e-7nhftp4ik371jrfq5jjtr6k7e8@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170413T132124Z -DESCRIPTION:Beta: 44\nAurora: 45\nNightly: 46 -LAST-MODIFIED:20170413T132124Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B44\, A45\, N46 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150113 -DTEND;VALUE=DATE:20150114 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=dhardison@mozilla.com:mailto:dhardison@mozilla.com -UID:247617e-7fmts7ld0jo67v8il6rapilb84@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170413T132124Z -DESCRIPTION: -LAST-MODIFIED:20170413T132124Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 35 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150921 -DTEND;VALUE=DATE:20150922 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=dhardison@mozilla.com:mailto:dhardison@mozilla.com -UID:247617e-7e1r4tc2a18g1heku4b0rf1400@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170413T132123Z -DESCRIPTION:Beta: 42\nAurora: 43\nNightly: 44 -LAST-MODIFIED:20170413T132124Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B42\, A43\, N44 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150112 -DTEND;VALUE=DATE:20150113 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=dhardison@mozilla.com:mailto:dhardison@mozilla.com -UID:247617e-6m3sp28bsvulq186c9vojrn9t4@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170413T132122Z -DESCRIPTION:Merge Day\nBeta: 36\nAurora: 37\nNightly: 38 -LAST-MODIFIED:20170413T132122Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B36\, A37\, N38 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150922 -DTEND;VALUE=DATE:20150923 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=dhardison@mozilla.com:mailto:dhardison@mozilla.com -UID:247617e-46tr7o6jh69r9rr23k2kpoalt8@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170413T132117Z -DESCRIPTION: -LAST-MODIFIED:20170413T132117Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 41 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150630 -DTEND;VALUE=DATE:20150701 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=dhardison@mozilla.com:mailto:dhardison@mozilla.com -UID:247617e-2f113erbpiffavu8krel8v5u78@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170413T132113Z -DESCRIPTION: -LAST-MODIFIED:20170413T132113Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox ESR 31.8 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150330 -DTEND;VALUE=DATE:20150331 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=dhardison@mozilla.com:mailto:dhardison@mozilla.com -UID:247617e-20ppq9irl09gcd3jrdsg19l82o@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20170413T132111Z -DESCRIPTION:Beta: 38\nAurora: 39\nNightly: 40 -LAST-MODIFIED:20170413T132112Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:MERGE: B38\, A39\, N40 (CHANGE) -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20170306 -DTEND;VALUE=DATE:20170307 -DTSTAMP:20180705T134535Z -UID:ufs2ug3et4q09n3sne578c5gok@google.com -CREATED:20170213T111526Z -DESCRIPTION: -LAST-MODIFIED:20170223T173022Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B53\, A54\, N55 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20170307 -DTEND;VALUE=DATE:20170308 -DTSTAMP:20180705T134535Z -UID:p99pfcds2k869cjpb032blvjvo@google.com -CREATED:20170213T111545Z -DESCRIPTION: -LAST-MODIFIED:20170213T122936Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 52 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150331 -DTEND;VALUE=DATE:20150401 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=george.ruch74@gmail.com:mailto:george.ruch74@gmail.com -UID:soppkac6jpfs1uvakan50beuik@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161103T194832Z -DESCRIPTION: -LAST-MODIFIED:20161103T194832Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:Firefox 37 Release (CHANGE) -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150512 -DTEND;VALUE=DATE:20150513 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=george.ruch74@gmail.com:mailto:george.ruch74@gmail.com -UID:koe4a7oaa381g3p77bq0l56eak@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161103T194830Z -DESCRIPTION: -LAST-MODIFIED:20161103T194830Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:Firefox 38 Release (CHANGE) -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150331 -DTEND;VALUE=DATE:20150401 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=george.ruch74@gmail.com:mailto:george.ruch74@gmail.com -UID:51fnc12jnbkv7i7a8hho3jjnro@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161103T175809Z -DESCRIPTION: -LAST-MODIFIED:20161103T175817Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:Firefox 37 Release (CHANGE) -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150810 -DTEND;VALUE=DATE:20150811 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=george.ruch74@gmail.com:mailto:george.ruch74@gmail.com -UID:sif9limroc51av8bggvutq2q1s@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161103T175809Z -DESCRIPTION:Beta: 41\nAurora: 42\nNightly: 43 -LAST-MODIFIED:20161103T175816Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B41\, A42\, N43 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150330 -DTEND;VALUE=DATE:20150331 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=george.ruch74@gmail.com:mailto:george.ruch74@gmail.com -UID:qf5e8uq3atq6pu93p777imndv0@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161103T175809Z -DESCRIPTION:Beta: 38\nAurora: 39\nNightly: 40 -LAST-MODIFIED:20161103T175814Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:MERGE: B38\, A39\, N40 (CHANGE) -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150811 -DTEND;VALUE=DATE:20150812 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=george.ruch74@gmail.com:mailto:george.ruch74@gmail.com -UID:bkosam3or6tql1q2ij7drp5n1o@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161103T175809Z -DESCRIPTION: -LAST-MODIFIED:20161103T175813Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 40 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20151029 -DTEND;VALUE=DATE:20151030 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=george.ruch74@gmail.com:mailto:george.ruch74@gmail.com -UID:kpbqfufds7um8sud8ejvfuito4@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161103T175809Z -DESCRIPTION:Beta: 43\nAurora: 44\nNightly: 45 -LAST-MODIFIED:20161103T175813Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:MERGE: B43\, A44\, N45 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20151103 -DTEND;VALUE=DATE:20151104 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=george.ruch74@gmail.com:mailto:george.ruch74@gmail.com -UID:jott22f64v8l3me8rv4i0cbbf8@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161103T175809Z -DESCRIPTION: -LAST-MODIFIED:20161103T175813Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 42 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20151029 -DTEND;VALUE=DATE:20151030 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=george.ruch74@gmail.com:mailto:george.ruch74@gmail.com -UID:j8eih9hucr7nn0t95sqfo094uc@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161103T175809Z -DESCRIPTION:Beta: 43\nAurora: 44\nNightly: 45 -LAST-MODIFIED:20161103T175812Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:MERGE: B43\, A44\, N45 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150511 -DTEND;VALUE=DATE:20150512 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=george.ruch74@gmail.com:mailto:george.ruch74@gmail.com -UID:v597l6d065ktc6khd7uqev7n2o@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161103T175809Z -DESCRIPTION:Aurora: 40\nNightly: 41\n(Beta will not merge until May 26) -LAST-MODIFIED:20161103T175812Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:MERGE: A40\, N41 (CHANGE) -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20151103 -DTEND;VALUE=DATE:20151104 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=george.ruch74@gmail.com:mailto:george.ruch74@gmail.com -UID:0ca0ep12q0q3onulk6j8mmmt7k@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161103T175809Z -DESCRIPTION: -LAST-MODIFIED:20161103T175812Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 42 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150512 -DTEND;VALUE=DATE:20150513 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=george.ruch74@gmail.com:mailto:george.ruch74@gmail.com -UID:j8c3e2korje1tbk9j7g6ffk30s@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161103T175809Z -DESCRIPTION: -LAST-MODIFIED:20161103T175811Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:Firefox 38 Release (CHANGE) -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150223 -DTEND;VALUE=DATE:20150224 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=darkimpulsedestiny@gmail.com:mailto:darkimpulsedestiny@gmail.c - om -UID:tblufd4krvskplla8br4r8f2vo@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161102T194619Z -DESCRIPTION:Beta: 37\nAurora: 38\nNightly: 39 -LAST-MODIFIED:20161102T194619Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B37\, A38\, N39 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150331 -DTEND;VALUE=DATE:20150401 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=darkimpulsedestiny@gmail.com:mailto:darkimpulsedestiny@gmail.c - om -UID:lminjp2an7u3hmtcglfkdv01l4@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161102T194619Z -DESCRIPTION: -LAST-MODIFIED:20161102T194619Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:Firefox 37 Release (CHANGE) -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150330 -DTEND;VALUE=DATE:20150331 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=darkimpulsedestiny@gmail.com:mailto:darkimpulsedestiny@gmail.c - om -UID:u2qb9b14t3i56o2cmmnlm7b310@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161102T194618Z -DESCRIPTION:Beta: 38\nAurora: 39\nNightly: 40 -LAST-MODIFIED:20161102T194619Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:MERGE: B38\, A39\, N40 (CHANGE) -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150224 -DTEND;VALUE=DATE:20150225 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=darkimpulsedestiny@gmail.com:mailto:darkimpulsedestiny@gmail.c - om -UID:ahpms7hgflsb42o0un7t8bdg74@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161102T194617Z -DESCRIPTION: -LAST-MODIFIED:20161102T194618Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 36 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20151103 -DTEND;VALUE=DATE:20151104 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=darkimpulsedestiny@gmail.com:mailto:darkimpulsedestiny@gmail.c - om -UID:ia2dv740ca93aj4t0ooetvpmgk@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161102T194617Z -DESCRIPTION: -LAST-MODIFIED:20161102T194617Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 42 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150811 -DTEND;VALUE=DATE:20150812 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=darkimpulsedestiny@gmail.com:mailto:darkimpulsedestiny@gmail.c - om -UID:om55ps8o1mibd85el0b82ef5h8@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161102T194605Z -DESCRIPTION: -LAST-MODIFIED:20161102T194607Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 40 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150112 -DTEND;VALUE=DATE:20150113 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=darkimpulsedestiny@gmail.com:mailto:darkimpulsedestiny@gmail.c - om -UID:2j0itncnb4fqt74i4it7hgsoko@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161102T194606Z -DESCRIPTION:Merge Day\nBeta: 36\nAurora: 37\nNightly: 38 -LAST-MODIFIED:20161102T194606Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B36\, A37\, N38 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150223 -DTEND;VALUE=DATE:20150224 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=darkimpulsedestiny@gmail.com:mailto:darkimpulsedestiny@gmail.c - om -UID:et8gh88rd7lo8b45q6b76dkad8@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161102T194605Z -DESCRIPTION:Beta: 37\nAurora: 38\nNightly: 39 -LAST-MODIFIED:20161102T194606Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B37\, A38\, N39 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150810 -DTEND;VALUE=DATE:20150811 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=darkimpulsedestiny@gmail.com:mailto:darkimpulsedestiny@gmail.c - om -UID:4gp7d332juooq4vk2bgig0uui4@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161102T194336Z -DESCRIPTION:Beta: 41\nAurora: 42\nNightly: 43 -LAST-MODIFIED:20161102T194343Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B41\, A42\, N43 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150511 -DTEND;VALUE=DATE:20150512 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=darkimpulsedestiny@gmail.com:mailto:darkimpulsedestiny@gmail.c - om -UID:a2jfkam2q9oqfr4ib638m3aeeg@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161102T194336Z -DESCRIPTION:Aurora: 40\nNightly: 41\n(Beta will not merge until May 26) -LAST-MODIFIED:20161102T194342Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:MERGE: A40\, N41 (CHANGE) -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20151029 -DTEND;VALUE=DATE:20151030 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=darkimpulsedestiny@gmail.com:mailto:darkimpulsedestiny@gmail.c - om -UID:h3g57od3g2n27g0bb6tl04rov4@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161102T194336Z -DESCRIPTION:Beta: 43\nAurora: 44\nNightly: 45 -LAST-MODIFIED:20161102T194341Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:MERGE: B43\, A44\, N45 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150810 -DTEND;VALUE=DATE:20150811 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=darkimpulsedestiny@gmail.com:mailto:darkimpulsedestiny@gmail.c - om -UID:colv4rcvdhlu06v4io00cvunhk@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161102T194336Z -DESCRIPTION:Beta: 41\nAurora: 42\nNightly: 43 -LAST-MODIFIED:20161102T194341Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B41\, A42\, N43 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150331 -DTEND;VALUE=DATE:20150401 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=darkimpulsedestiny@gmail.com:mailto:darkimpulsedestiny@gmail.c - om -UID:6tnu0jitatl8nfqk0hal5e9acc@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161102T194336Z -DESCRIPTION: -LAST-MODIFIED:20161102T194341Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:Firefox 37 Release (CHANGE) -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20151103 -DTEND;VALUE=DATE:20151104 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=darkimpulsedestiny@gmail.com:mailto:darkimpulsedestiny@gmail.c - om -UID:6e2nplcrkbg9ejtvdh1mltqon0@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161102T194336Z -DESCRIPTION: -LAST-MODIFIED:20161102T194340Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 42 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150223 -DTEND;VALUE=DATE:20150224 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=darkimpulsedestiny@gmail.com:mailto:darkimpulsedestiny@gmail.c - om -UID:ccnqa794ia6cac01p0505fsb60@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161102T194336Z -DESCRIPTION:Beta: 37\nAurora: 38\nNightly: 39 -LAST-MODIFIED:20161102T194340Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B37\, A38\, N39 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150512 -DTEND;VALUE=DATE:20150513 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=darkimpulsedestiny@gmail.com:mailto:darkimpulsedestiny@gmail.c - om -UID:j6459pk02coko5smv4uemn2oak@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161102T194336Z -DESCRIPTION: -LAST-MODIFIED:20161102T194340Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:Firefox 38 Release (CHANGE) -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150112 -DTEND;VALUE=DATE:20150113 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=darkimpulsedestiny@gmail.com:mailto:darkimpulsedestiny@gmail.c - om -UID:ock8a55cq9s7juaie5br1rufhs@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161102T194336Z -DESCRIPTION:Merge Day\nBeta: 36\nAurora: 37\nNightly: 38 -LAST-MODIFIED:20161102T194339Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B36\, A37\, N38 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150330 -DTEND;VALUE=DATE:20150331 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=darkimpulsedestiny@gmail.com:mailto:darkimpulsedestiny@gmail.c - om -UID:d7p49tirmtq5oh4u4m6sc9krl4@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161102T194336Z -DESCRIPTION:Beta: 38\nAurora: 39\nNightly: 40 -LAST-MODIFIED:20161102T194338Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:MERGE: B38\, A39\, N40 (CHANGE) -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20161115 -DTEND;VALUE=DATE:20161116 -DTSTAMP:20180705T134535Z -UID:m8asgs0t9n44nts2rbf0m9nsbk@google.com -CREATED:20160204T204309Z -DESCRIPTION: -LAST-MODIFIED:20161028T162540Z -LOCATION: -SEQUENCE:2 -STATUS:CONFIRMED -SUMMARY:Firefox ESR 45.5 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20161115 -DTEND;VALUE=DATE:20161116 -DTSTAMP:20180705T134535Z -UID:lj8q6lbbib98g2d529tl9gn5p4@google.com -CREATED:20160204T203944Z -DESCRIPTION: -LAST-MODIFIED:20161028T161849Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:Firefox 50 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20161114 -DTEND;VALUE=DATE:20161115 -DTSTAMP:20180705T134535Z -UID:ibodl049ub0nsud6g3hjel57f0@google.com -CREATED:20160204T203538Z -DESCRIPTION: -LAST-MODIFIED:20161028T161753Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:MERGE: B51\, A52\, N53 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20160308 -DTEND;VALUE=DATE:20160309 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=mkato@mozilla-japan.org:mailto:mkato@mozilla-japan.org -UID:321qg6bvfak8o303ahj4eqltb0@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161018T020627Z -DESCRIPTION: -LAST-MODIFIED:20161018T020628Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox ESR 38.7 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150630 -DTEND;VALUE=DATE:20150701 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=mkato@mozilla-japan.org:mailto:mkato@mozilla-japan.org -UID:mn3i95odblrsrkqm4h59tismj4@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161018T020626Z -DESCRIPTION: -LAST-MODIFIED:20161018T020627Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox ESR 31.8 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150223 -DTEND;VALUE=DATE:20150224 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=mkato@mozilla-japan.org:mailto:mkato@mozilla-japan.org -UID:l35d5mujijkukap9rt992jaosk@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161018T020625Z -DESCRIPTION:Beta: 37\nAurora: 38\nNightly: 39 -LAST-MODIFIED:20161018T020626Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B37\, A38\, N39 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150630 -DTEND;VALUE=DATE:20150701 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=mkato@mozilla-japan.org:mailto:mkato@mozilla-japan.org -UID:fc34bbf444or8av2ceup1q598g@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161018T020625Z -DESCRIPTION: -LAST-MODIFIED:20161018T020625Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 39 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150922 -DTEND;VALUE=DATE:20150923 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=mkato@mozilla-japan.org:mailto:mkato@mozilla-japan.org -UID:f0ddsp0cq1pn6lr217sg3v9jes@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161018T020624Z -DESCRIPTION: -LAST-MODIFIED:20161018T020624Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 41 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150511 -DTEND;VALUE=DATE:20150512 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=mkato@mozilla-japan.org:mailto:mkato@mozilla-japan.org -UID:2t13gqc3tmh53aqskvrgpcqdao@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161018T020623Z -DESCRIPTION:Aurora: 40\nNightly: 41\n(Beta will not merge until May 26) -LAST-MODIFIED:20161018T020624Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:MERGE: A40\, N41 (CHANGE) -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150331 -DTEND;VALUE=DATE:20150401 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=mkato@mozilla-japan.org:mailto:mkato@mozilla-japan.org -UID:f79e85kpqgd5a0uuhd1ut02v1g@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161018T020623Z -DESCRIPTION: -LAST-MODIFIED:20161018T020623Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:Firefox 37 Release (CHANGE) -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20151214 -DTEND;VALUE=DATE:20151215 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=mkato@mozilla-japan.org:mailto:mkato@mozilla-japan.org -UID:dn1t24n5g4pv58d4hhlr6net24@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161018T020621Z -DESCRIPTION:Beta: 44\nAurora: 45\nNightly: 46 -LAST-MODIFIED:20161018T020621Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B44\, A45\, N46 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20151103 -DTEND;VALUE=DATE:20151104 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=mkato@mozilla-japan.org:mailto:mkato@mozilla-japan.org -UID:mja5dtvk61gkkedkma7s552bic@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161018T020137Z -DESCRIPTION: -LAST-MODIFIED:20161018T020149Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 42 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150331 -DTEND;VALUE=DATE:20150401 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=mkato@mozilla-japan.org:mailto:mkato@mozilla-japan.org -UID:a5taeps1p9bo4asedskf07nfdo@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161018T020137Z -DESCRIPTION: -LAST-MODIFIED:20161018T020146Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:Firefox 37 Release (CHANGE) -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150921 -DTEND;VALUE=DATE:20150922 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=mkato@mozilla-japan.org:mailto:mkato@mozilla-japan.org -UID:he300vu0m2mvnuc0vc88u2fm9s@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161018T020137Z -DESCRIPTION:Beta: 42\nAurora: 43\nNightly: 44 -LAST-MODIFIED:20161018T020146Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B42\, A43\, N44 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150921 -DTEND;VALUE=DATE:20150922 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=mkato@mozilla-japan.org:mailto:mkato@mozilla-japan.org -UID:c2mk60d7khob5m8qbqur4oqqeo@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161018T020138Z -DESCRIPTION:Beta: 42\nAurora: 43\nNightly: 44 -LAST-MODIFIED:20161018T020145Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B42\, A43\, N44 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150112 -DTEND;VALUE=DATE:20150113 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=mkato@mozilla-japan.org:mailto:mkato@mozilla-japan.org -UID:m7nkvkfrqjknnaiijkl7i2qmm0@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161018T020137Z -DESCRIPTION:Merge Day\nBeta: 36\nAurora: 37\nNightly: 38 -LAST-MODIFIED:20161018T020144Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B36\, A37\, N38 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150223 -DTEND;VALUE=DATE:20150224 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=mkato@mozilla-japan.org:mailto:mkato@mozilla-japan.org -UID:2p5quu5km680d0skasidabpbtk@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161018T020137Z -DESCRIPTION:Beta: 37\nAurora: 38\nNightly: 39 -LAST-MODIFIED:20161018T020143Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B37\, A38\, N39 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20151215 -DTEND;VALUE=DATE:20151216 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=mkato@mozilla-japan.org:mailto:mkato@mozilla-japan.org -UID:d0khqveolqadsvnlc0vdh02418@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161018T020137Z -DESCRIPTION: -LAST-MODIFIED:20161018T020143Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 43 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20151103 -DTEND;VALUE=DATE:20151104 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=mkato@mozilla-japan.org:mailto:mkato@mozilla-japan.org -UID:821jq9vfhgk0bgc6humbv4tiig@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161018T020137Z -DESCRIPTION: -LAST-MODIFIED:20161018T020143Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 42 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150330 -DTEND;VALUE=DATE:20150331 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=mkato@mozilla-japan.org:mailto:mkato@mozilla-japan.org -UID:juj69ub193afbdo615saj1ti3s@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161018T020137Z -DESCRIPTION:Beta: 38\nAurora: 39\nNightly: 40 -LAST-MODIFIED:20161018T020143Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:MERGE: B38\, A39\, N40 (CHANGE) -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20151215 -DTEND;VALUE=DATE:20151216 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=mkato@mozilla-japan.org:mailto:mkato@mozilla-japan.org -UID:vejknkj67cqc98fj5f80tv9b6o@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161018T020137Z -DESCRIPTION: -LAST-MODIFIED:20161018T020142Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 43 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150810 -DTEND;VALUE=DATE:20150811 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=mkato@mozilla-japan.org:mailto:mkato@mozilla-japan.org -UID:ghmb46al8ptcb7u06g06779iu8@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161018T020137Z -DESCRIPTION:Beta: 41\nAurora: 42\nNightly: 43 -LAST-MODIFIED:20161018T020142Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B41\, A42\, N43 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150224 -DTEND;VALUE=DATE:20150225 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=mkato@mozilla-japan.org:mailto:mkato@mozilla-japan.org -UID:feledopo5iirs9hu26ivqplpmc@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161018T020137Z -DESCRIPTION: -LAST-MODIFIED:20161018T020142Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 36 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150811 -DTEND;VALUE=DATE:20150812 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=mkato@mozilla-japan.org:mailto:mkato@mozilla-japan.org -UID:rp8ge5ir106h8obmpkjj4c4l94@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161018T020137Z -DESCRIPTION: -LAST-MODIFIED:20161018T020141Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 40 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150629 -DTEND;VALUE=DATE:20150630 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=mkato@mozilla-japan.org:mailto:mkato@mozilla-japan.org -UID:24o1kieeov5ak7g3eenemu8fk0@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161018T020137Z -DESCRIPTION:Beta: 40\nAurora: 41\nNightly: 42 -LAST-MODIFIED:20161018T020141Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B40\, A41\, N42 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150112 -DTEND;VALUE=DATE:20150113 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=mkato@mozilla-japan.org:mailto:mkato@mozilla-japan.org -UID:3p3mr4r3qekqnvbq0dssp4l05o@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161018T020137Z -DESCRIPTION:Merge Day\nBeta: 36\nAurora: 37\nNightly: 38 -LAST-MODIFIED:20161018T020141Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B36\, A37\, N38 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150112 -DTEND;VALUE=DATE:20150113 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=mkato@mozilla-japan.org:mailto:mkato@mozilla-japan.org -UID:njqs96ngddn40vl6m9bah9po2s@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161018T020137Z -DESCRIPTION:Merge Day\nBeta: 36\nAurora: 37\nNightly: 38 -LAST-MODIFIED:20161018T020141Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B36\, A37\, N38 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20151029 -DTEND;VALUE=DATE:20151030 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=mkato@mozilla-japan.org:mailto:mkato@mozilla-japan.org -UID:gn7tmuo5a4dngiik1n0htl9r6g@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161018T020137Z -DESCRIPTION:Beta: 43\nAurora: 44\nNightly: 45 -LAST-MODIFIED:20161018T020140Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:MERGE: B43\, A44\, N45 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150330 -DTEND;VALUE=DATE:20150331 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=mkato@mozilla-japan.org:mailto:mkato@mozilla-japan.org -UID:ftil6jf7b5hk3bais4coi2k264@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161018T020137Z -DESCRIPTION:Beta: 38\nAurora: 39\nNightly: 40 -LAST-MODIFIED:20161018T020140Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:MERGE: B38\, A39\, N40 (CHANGE) -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150512 -DTEND;VALUE=DATE:20150513 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=mkato@mozilla-japan.org:mailto:mkato@mozilla-japan.org -UID:eb71fb6sjhmb8lfo356tc7fbtk@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20161018T020137Z -DESCRIPTION: -LAST-MODIFIED:20161018T020138Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:Firefox 38 Release (CHANGE) -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20151103 -DTEND;VALUE=DATE:20151104 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=bzloeffler@googlemail.com:mailto:bzloeffler@googlemail.com -UID:prpf0clavjr6o1sqii04kj8l54@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20160915T055909Z -DESCRIPTION: -LAST-MODIFIED:20160915T055909Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 42 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150512 -DTEND;VALUE=DATE:20150513 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=bzloeffler@googlemail.com:mailto:bzloeffler@googlemail.com -UID:malafo0hd3vrubc6vsebka1it8@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20160915T055908Z -DESCRIPTION: -LAST-MODIFIED:20160915T055909Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:Firefox 38 Release (CHANGE) -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150331 -DTEND;VALUE=DATE:20150401 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=bzloeffler@googlemail.com:mailto:bzloeffler@googlemail.com -UID:6qsj2g47l8agv0l3n8mtf5rci4@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20160915T055906Z -DESCRIPTION: -LAST-MODIFIED:20160915T055908Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:Firefox 37 Release (CHANGE) -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150630 -DTEND;VALUE=DATE:20150701 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=bzloeffler@googlemail.com:mailto:bzloeffler@googlemail.com -UID:sp0kjbs7kr35g1p3f4bc4kr6e0@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20160915T055907Z -DESCRIPTION: -LAST-MODIFIED:20160915T055908Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox ESR 31.8 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20151029 -DTEND;VALUE=DATE:20151030 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=bzloeffler@googlemail.com:mailto:bzloeffler@googlemail.com -UID:5s0pvbafae02r58tup2fbu8ut8@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20160915T055907Z -DESCRIPTION:Beta: 43\nAurora: 44\nNightly: 45 -LAST-MODIFIED:20160915T055907Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:MERGE: B43\, A44\, N45 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20151215 -DTEND;VALUE=DATE:20151216 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=bzloeffler@googlemail.com:mailto:bzloeffler@googlemail.com -UID:rp7ddnec9pqfk08e79hosm894s@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20160915T055906Z -DESCRIPTION: -LAST-MODIFIED:20160915T055907Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 43 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150112 -DTEND;VALUE=DATE:20150113 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=bzloeffler@googlemail.com:mailto:bzloeffler@googlemail.com -UID:tpc57p89l3t9h13tjusd26l2pk@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20160915T055905Z -DESCRIPTION:Merge Day\nBeta: 36\nAurora: 37\nNightly: 38 -LAST-MODIFIED:20160915T055905Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B36\, A37\, N38 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150330 -DTEND;VALUE=DATE:20150331 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=bzloeffler@googlemail.com:mailto:bzloeffler@googlemail.com -UID:39m1n3vl8jvvu28q2fngl60jrs@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20160915T055903Z -DESCRIPTION:Beta: 38\nAurora: 39\nNightly: 40 -LAST-MODIFIED:20160915T055903Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:MERGE: B38\, A39\, N40 (CHANGE) -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150922 -DTEND;VALUE=DATE:20150923 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=bzloeffler@googlemail.com:mailto:bzloeffler@googlemail.com -UID:hk36qutfls4fd76b5vnt8pf2o4@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20160915T053046Z -DESCRIPTION: -LAST-MODIFIED:20160915T053053Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 41 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150112 -DTEND;VALUE=DATE:20150113 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=bzloeffler@googlemail.com:mailto:bzloeffler@googlemail.com -UID:r9vkkr4c5jdf0vl6e93daqsi5c@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20160915T053046Z -DESCRIPTION:Merge Day\nBeta: 36\nAurora: 37\nNightly: 38 -LAST-MODIFIED:20160915T053052Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B36\, A37\, N38 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150811 -DTEND;VALUE=DATE:20150812 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=bzloeffler@googlemail.com:mailto:bzloeffler@googlemail.com -UID:hnf4j152u5lkko4fjq6smhftuc@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20160915T053046Z -DESCRIPTION: -LAST-MODIFIED:20160915T053051Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 40 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150921 -DTEND;VALUE=DATE:20150922 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=bzloeffler@googlemail.com:mailto:bzloeffler@googlemail.com -UID:2o5rlaaeouhk9pam242sjvr08c@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20160915T053046Z -DESCRIPTION:Beta: 42\nAurora: 43\nNightly: 44 -LAST-MODIFIED:20160915T053050Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B42\, A43\, N44 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150223 -DTEND;VALUE=DATE:20150224 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=bzloeffler@googlemail.com:mailto:bzloeffler@googlemail.com -UID:3f71re0fupuf8lok8vebc00qhs@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20160915T053046Z -DESCRIPTION:Beta: 37\nAurora: 38\nNightly: 39 -LAST-MODIFIED:20160915T053048Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B37\, A38\, N39 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150810 -DTEND;VALUE=DATE:20150811 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=bzloeffler@googlemail.com:mailto:bzloeffler@googlemail.com -UID:fdvf8jv1fqvomsel4fh3t265gk@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20160915T053046Z -DESCRIPTION:Beta: 41\nAurora: 42\nNightly: 43 -LAST-MODIFIED:20160915T053046Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B41\, A42\, N43 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20160919 -DTEND;VALUE=DATE:20160920 -DTSTAMP:20180705T134535Z -UID:9t29ktfruomcpalqso3fbaagg4@google.com -CREATED:20160204T203453Z -DESCRIPTION: -LAST-MODIFIED:20160912T165237Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:MERGE: B50\, A51\, N52 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20160920 -DTEND;VALUE=DATE:20160921 -DTSTAMP:20180705T134535Z -UID:o6ikdl5r8bmv83rq8ujkbggo24@google.com -CREATED:20160204T203933Z -DESCRIPTION: -LAST-MODIFIED:20160912T165207Z -LOCATION: -SEQUENCE:3 -STATUS:CONFIRMED -SUMMARY:Firefox 49 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20160920 -DTEND;VALUE=DATE:20160921 -DTSTAMP:20180705T134535Z -UID:3mbn8pjsg8bngknflop5mq6aq8@google.com -CREATED:20160204T204258Z -DESCRIPTION: -LAST-MODIFIED:20160912T165205Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:Firefox ESR 45.4 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20160426 -DTEND;VALUE=DATE:20160427 -DTSTAMP:20180705T134535Z -UID:0ntieqp4d4ngbv8371k14esuqg@google.com -CREATED:20160204T204159Z -DESCRIPTION: -LAST-MODIFIED:20160405T235917Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:Firefox ESR 45.1 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20160426 -DTEND;VALUE=DATE:20160427 -DTSTAMP:20180705T134535Z -UID:3547q0p4bu7428ptueris8jibs@google.com -CREATED:20160204T204129Z -DESCRIPTION: -LAST-MODIFIED:20160405T235914Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:Firefox ESR 38.8 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20160426 -DTEND;VALUE=DATE:20160427 -DTSTAMP:20180705T134535Z -UID:4q0s8mtf96arqdhnmdbtebfp38@google.com -CREATED:20160204T203858Z -DESCRIPTION: -LAST-MODIFIED:20160405T235912Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:Firefox 46 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20160425 -DTEND;VALUE=DATE:20160426 -DTSTAMP:20180705T134535Z -UID:vntsb1j4vmqrl856gsjlsn2e4s@google.com -CREATED:20160204T202743Z -DESCRIPTION: -LAST-MODIFIED:20160405T235910Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:MERGE: B47\, A48\, N49 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20160802 -DTEND;VALUE=DATE:20160803 -DTSTAMP:20180705T134535Z -UID:4pu4krodgdt51heudp7e72u2fo@google.com -CREATED:20160204T204245Z -DESCRIPTION: -LAST-MODIFIED:20160204T204245Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox ESR 45.3 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20160607 -DTEND;VALUE=DATE:20160608 -DTSTAMP:20180705T134535Z -UID:he10h0htn5pbhh4ah73euu6bq4@google.com -CREATED:20160204T204209Z -DESCRIPTION: -LAST-MODIFIED:20160204T204209Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox ESR 45.2 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20160308 -DTEND;VALUE=DATE:20160309 -DTSTAMP:20180705T134535Z -UID:r8006q2tlabt98064s9kt34ro4@google.com -CREATED:20160204T204147Z -DESCRIPTION: -LAST-MODIFIED:20160204T204147Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox ESR 45.0 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20160308 -DTEND;VALUE=DATE:20160309 -DTSTAMP:20180705T134535Z -UID:i67sk1b64cl2b1id001p8a5phs@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20160204T204050Z -DESCRIPTION: -LAST-MODIFIED:20160204T204116Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox ESR 38.7 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20170124 -DTEND;VALUE=DATE:20170125 -DTSTAMP:20180705T134535Z -UID:6ld81nd6kfr4o0av0st5921bjk@google.com -CREATED:20160204T204015Z -DESCRIPTION: -LAST-MODIFIED:20160204T204015Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 51 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20161213 -DTEND;VALUE=DATE:20161214 -DTSTAMP:20180705T134535Z -UID:f47fmhjdbp5dsr5fth50bcgrjg@google.com -CREATED:20160204T203958Z -DESCRIPTION: -LAST-MODIFIED:20160204T203958Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 50.0.1 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20160802 -DTEND;VALUE=DATE:20160803 -DTSTAMP:20180705T134535Z -UID:s1tlo92q5m5kr7rlob2lf3gfj0@google.com -CREATED:20160204T203922Z -DESCRIPTION: -LAST-MODIFIED:20160204T203922Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 48 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20160607 -DTEND;VALUE=DATE:20160608 -DTSTAMP:20180705T134535Z -UID:qb79mko0fplnfmqga26nvfin5o@google.com -CREATED:20160204T203909Z -DESCRIPTION: -LAST-MODIFIED:20160204T203909Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 47 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20160308 -DTEND;VALUE=DATE:20160309 -DTSTAMP:20180705T134535Z -UID:mg7p7dmp063hauemvd2dvnnoo0@google.com -CREATED:20160204T203844Z -DESCRIPTION: -LAST-MODIFIED:20160204T203844Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 45 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20170123 -DTEND;VALUE=DATE:20170124 -DTSTAMP:20180705T134535Z -UID:75t26hn2e63c7mjmo196mgkras@google.com -CREATED:20160204T203556Z -DESCRIPTION: -LAST-MODIFIED:20160204T203556Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B52\, A53\, N54 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20160801 -DTEND;VALUE=DATE:20160802 -DTSTAMP:20180705T134535Z -UID:5k7noq14gj2bl98brn4g8qnvt4@google.com -CREATED:20160204T203431Z -DESCRIPTION: -LAST-MODIFIED:20160204T203431Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B49\, A50\, N51 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20160606 -DTEND;VALUE=DATE:20160607 -DTSTAMP:20180705T134535Z -UID:08re80spk6edifj7r4r7o2k9bg@google.com -CREATED:20160204T202842Z -DESCRIPTION: -LAST-MODIFIED:20160204T202842Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B48\, A49\, N50 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20160307 -DTEND;VALUE=DATE:20160308 -DTSTAMP:20180705T134535Z -UID:5dju15995ebg3vkeag5644ko7s@google.com -CREATED:20160204T202521Z -DESCRIPTION: -LAST-MODIFIED:20160204T202521Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B46\, A47\, N48 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20160126 -DTEND;VALUE=DATE:20160127 -DTSTAMP:20180705T134535Z -UID:h9p8bg03lop7jvj1235e7ko5so@google.com -CREATED:20160204T202043Z -DESCRIPTION: -LAST-MODIFIED:20160204T202043Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox ESR 38.6 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20160126 -DTEND;VALUE=DATE:20160127 -DTSTAMP:20180705T134535Z -UID:4r0elfs1o4e2213tvv6vtm6rko@google.com -CREATED:20160204T202009Z -DESCRIPTION: -LAST-MODIFIED:20160204T202020Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 44 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20160125 -DTEND;VALUE=DATE:20160126 -DTSTAMP:20180705T134535Z -UID:qu7lkulqp617m0f9fo281ni008@google.com -CREATED:20160204T201955Z -DESCRIPTION: -LAST-MODIFIED:20160204T201955Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B45\, A46\, N47 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20151029 -DTEND;VALUE=DATE:20151030 -DTSTAMP:20180705T134535Z -UID:prr2so4okrh38csho4g2h9on6s@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20141216T152727Z -DESCRIPTION:Beta: 43\nAurora: 44\nNightly: 45 -LAST-MODIFIED:20151029T133748Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:MERGE: B43\, A44\, N45 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20151214 -DTEND;VALUE=DATE:20151215 -DTSTAMP:20180705T134535Z -UID:7nhftp4ik371jrfq5jjtr6k7e8@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20141216T152856Z -DESCRIPTION:Beta: 44\nAurora: 45\nNightly: 46 -LAST-MODIFIED:20150706T163522Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B44\, A45\, N46 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150921 -DTEND;VALUE=DATE:20150922 -DTSTAMP:20180705T134535Z -UID:7e1r4tc2a18g1heku4b0rf1400@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20141216T152656Z -DESCRIPTION:Beta: 42\nAurora: 43\nNightly: 44 -LAST-MODIFIED:20150706T163522Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B42\, A43\, N44 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150810 -DTEND;VALUE=DATE:20150811 -DTSTAMP:20180705T134535Z -UID:nu6dcgujd7vkrp3p3bsvf7p66o@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20141216T152633Z -DESCRIPTION:Beta: 41\nAurora: 42\nNightly: 43 -LAST-MODIFIED:20150706T163522Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B41\, A42\, N43 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20151215 -DTEND;VALUE=DATE:20151216 -DTSTAMP:20180705T134535Z -UID:3moi9h55gqgua9moe10ul1sa24@google.com -CREATED:20150127T181122Z -DESCRIPTION: -LAST-MODIFIED:20150706T163522Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox ESR 38.5 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20151103 -DTEND;VALUE=DATE:20151104 -DTSTAMP:20180705T134535Z -UID:jjhn6lqa6c3gkbju5g1sgm4u3s@google.com -CREATED:20150127T181109Z -DESCRIPTION: -LAST-MODIFIED:20150706T163522Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox ESR 38.4 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150922 -DTEND;VALUE=DATE:20150923 -DTSTAMP:20180705T134535Z -UID:n8vpqsqat29hsafh50spj5sov0@google.com -CREATED:20150127T181043Z -DESCRIPTION: -LAST-MODIFIED:20150706T163522Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox ESR 38.3 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150811 -DTEND;VALUE=DATE:20150812 -DTSTAMP:20180705T134535Z -UID:3qbb2crmo4r35pnul0mtvmr1u0@google.com -CREATED:20150127T181030Z -DESCRIPTION: -LAST-MODIFIED:20150706T163522Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox ESR 38.2 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20151215 -DTEND;VALUE=DATE:20151216 -DTSTAMP:20180705T134535Z -UID:c3nc4aal9709pbjva14coabv6s@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20141212T192247Z -DESCRIPTION: -LAST-MODIFIED:20150706T163522Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 43 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20151103 -DTEND;VALUE=DATE:20151104 -DTSTAMP:20180705T134535Z -UID:7h0gjghiehmttp3malrbnvcf0c@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20141212T192237Z -DESCRIPTION: -LAST-MODIFIED:20150706T163522Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 42 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150922 -DTEND;VALUE=DATE:20150923 -DTSTAMP:20180705T134535Z -UID:46tr7o6jh69r9rr23k2kpoalt8@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20141212T192228Z -DESCRIPTION: -LAST-MODIFIED:20150706T163522Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 41 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150811 -DTEND;VALUE=DATE:20150812 -DTSTAMP:20180705T134535Z -UID:hld6l3henp21ek9t5jganm077g@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20141212T192219Z -DESCRIPTION: -LAST-MODIFIED:20150706T163522Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 40 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150511 -DTEND;VALUE=DATE:20150512 -DTSTAMP:20180705T134535Z -UID:60dd31tcqqclaqpihs5noncmrg@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20141216T152539Z -DESCRIPTION:Aurora: 40\nNightly: 41\n(Beta will not merge until May 26) -LAST-MODIFIED:20150511T173817Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:MERGE: A40\, N41 (CHANGE) -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150330 -DTEND;VALUE=DATE:20150331 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=marinaclehmann@googlemail.com:mailto:marinaclehmann@googlemail - .com -UID:m8m149fc39jttltjppvo1e9h14@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20150411T142401Z -DESCRIPTION:Beta: 38\nAurora: 39\nNightly: 40 -LAST-MODIFIED:20150411T142401Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:MERGE: B38\, A39\, N40 (CHANGE) -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150223 -DTEND;VALUE=DATE:20150224 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=marinaclehmann@googlemail.com:mailto:marinaclehmann@googlemail - .com -UID:b3ogi69bepm7j73nl1o8dhg8jo@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20150411T135616Z -DESCRIPTION:Beta: 37\nAurora: 38\nNightly: 39 -LAST-MODIFIED:20150411T135622Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B37\, A38\, N39 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150224 -DTEND;VALUE=DATE:20150225 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=marinaclehmann@googlemail.com:mailto:marinaclehmann@googlemail - .com -UID:p0a0nkn4tbtt6gia9ks5tpgbp4@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20150411T135616Z -DESCRIPTION: -LAST-MODIFIED:20150411T135620Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 36 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150112 -DTEND;VALUE=DATE:20150113 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=marinaclehmann@googlemail.com:mailto:marinaclehmann@googlemail - .com -UID:39vt4cs54misnmdnv8o8ucuum8@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20150411T135616Z -DESCRIPTION:Merge Day\nBeta: 36\nAurora: 37\nNightly: 38 -LAST-MODIFIED:20150411T135619Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B36\, A37\, N38 -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150113 -DTEND;VALUE=DATE:20150114 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=marinaclehmann@googlemail.com:mailto:marinaclehmann@googlemail - .com -UID:4v9eaaslt54gsv6k4qj0q8t4d4@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20150411T135616Z -DESCRIPTION: -LAST-MODIFIED:20150411T135618Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 35 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150331 -DTEND;VALUE=DATE:20150401 -DTSTAMP:20180705T134535Z -ORGANIZER;CN=marinaclehmann@googlemail.com:mailto:marinaclehmann@googlemail - .com -UID:ea2e4pokm5mjkcc3t7psqh91b4@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20150411T135616Z -DESCRIPTION: -LAST-MODIFIED:20150411T135618Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:Firefox 37 Release (CHANGE) -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150224 -DTEND;VALUE=DATE:20150225 -DTSTAMP:20180705T134535Z -UID:eao3v4krubue76ahg3ht15vd0c@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20141212T192137Z -DESCRIPTION: -LAST-MODIFIED:20150223T170006Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 36 Release -TRANSP:OPAQUE -BEGIN:VALARM -ACTION:AUDIO -TRIGGER:-PT15H -X-WR-ALARMUID:18105CE5-F7BA-411C-A196-7285FAC6288D -UID:18105CE5-F7BA-411C-A196-7285FAC6288D -ATTACH;VALUE=URI:Basso -X-APPLE-DEFAULT-ALARM:TRUE -ACKNOWLEDGED:20150223T170004Z -END:VALARM -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150224 -DTEND;VALUE=DATE:20150225 -DTSTAMP:20180705T134535Z -UID:l1jj8glhrpv44q90lvtu92uqlc@google.com -CREATED:20150127T180829Z -DESCRIPTION: -LAST-MODIFIED:20150223T170003Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox ESR 31.5 Release -TRANSP:OPAQUE -BEGIN:VALARM -ACTION:AUDIO -TRIGGER:-PT15H -X-WR-ALARMUID:BAD1476F-8A16-485A-92D9-2D878D4A5493 -UID:BAD1476F-8A16-485A-92D9-2D878D4A5493 -ATTACH;VALUE=URI:Basso -X-APPLE-DEFAULT-ALARM:TRUE -ACKNOWLEDGED:20150223T170002Z -END:VALARM -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150223 -DTEND;VALUE=DATE:20150224 -DTSTAMP:20180705T134535Z -UID:v9erde3e89ulbdb6347r95b6e8@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20141216T152433Z -DESCRIPTION:Beta: 37\nAurora: 38\nNightly: 39 -LAST-MODIFIED:20150223T162220Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B37\, A38\, N39 -TRANSP:OPAQUE -BEGIN:VALARM -ACTION:AUDIO -TRIGGER:-PT15H -X-WR-ALARMUID:A4ABBBBB-B8C3-4B99-8BB0-09E44ED174D9 -UID:A4ABBBBB-B8C3-4B99-8BB0-09E44ED174D9 -ATTACH;VALUE=URI:Basso -X-APPLE-DEFAULT-ALARM:TRUE -ACKNOWLEDGED:20150223T160237Z -END:VALARM -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150512 -DTEND;VALUE=DATE:20150513 -DTSTAMP:20180705T134535Z -UID:9aft9c5067u9fqv0c2h9g8hmns@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20150127T180923Z -DESCRIPTION: -LAST-MODIFIED:20150218T180252Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:Firefox ESR 38.0 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150512 -DTEND;VALUE=DATE:20150513 -DTSTAMP:20180705T134535Z -UID:s7qh4lmcj36tqvhse9r33hqsbs@google.com -CREATED:20150127T180942Z -DESCRIPTION: -LAST-MODIFIED:20150218T180246Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:Firefox ESR 31.7 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150331 -DTEND;VALUE=DATE:20150401 -DTSTAMP:20180705T134535Z -UID:t05jtvf6fslj01ds1csc59vpnc@google.com -CREATED:20150127T180846Z -DESCRIPTION: -LAST-MODIFIED:20150218T175347Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:Firefox ESR 31.6 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150512 -DTEND;VALUE=DATE:20150513 -DTSTAMP:20180705T134535Z -UID:tn3udgij7i67a5ofaovtbrp9ec@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20141212T192159Z -DESCRIPTION: -LAST-MODIFIED:20150211T175904Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:Firefox 38 Release (CHANGE) -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150331 -DTEND;VALUE=DATE:20150401 -DTSTAMP:20180705T134535Z -UID:ppr0c8h6fb1se4rc9ggatnmugc@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20141212T192149Z -DESCRIPTION: -LAST-MODIFIED:20150211T175830Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:Firefox 37 Release (CHANGE) -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150330 -DTEND;VALUE=DATE:20150331 -DTSTAMP:20180705T134535Z -UID:20ppq9irl09gcd3jrdsg19l82o@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20141216T152509Z -DESCRIPTION:Beta: 38\nAurora: 39\nNightly: 40 -LAST-MODIFIED:20150211T175819Z -LOCATION: -SEQUENCE:1 -STATUS:CONFIRMED -SUMMARY:MERGE: B38\, A39\, N40 (CHANGE) -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150630 -DTEND;VALUE=DATE:20150701 -DTSTAMP:20180705T134535Z -UID:2f113erbpiffavu8krel8v5u78@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20150127T180959Z -DESCRIPTION: -LAST-MODIFIED:20150127T181005Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox ESR 31.8 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150113 -DTEND;VALUE=DATE:20150114 -DTSTAMP:20180705T134535Z -UID:7fmts7ld0jo67v8il6rapilb84@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20141212T192121Z -DESCRIPTION: -LAST-MODIFIED:20150112T170151Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 35 Release -TRANSP:OPAQUE -BEGIN:VALARM -ACTION:AUDIO -TRIGGER:-PT15H -X-WR-ALARMUID:43496838-B5A4-4C0F-BAD9-CE325A41426B -UID:43496838-B5A4-4C0F-BAD9-CE325A41426B -ATTACH;VALUE=URI:Basso -X-APPLE-DEFAULT-ALARM:TRUE -ACKNOWLEDGED:20150112T170149Z -END:VALARM -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150112 -DTEND;VALUE=DATE:20150113 -DTSTAMP:20180705T134535Z -UID:6m3sp28bsvulq186c9vojrn9t4@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20141216T152308Z -DESCRIPTION:Merge Day\nBeta: 36\nAurora: 37\nNightly: 38 -LAST-MODIFIED:20150112T042113Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B36\, A37\, N38 -TRANSP:OPAQUE -BEGIN:VALARM -ACTION:AUDIO -TRIGGER:-PT15H -X-WR-ALARMUID:FE2BA909-68FC-467E-929E-BC07C21391A6 -UID:FE2BA909-68FC-467E-929E-BC07C21391A6 -ATTACH;VALUE=URI:Basso -X-APPLE-DEFAULT-ALARM:TRUE -ACKNOWLEDGED:20150112T040035Z -END:VALARM -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150630 -DTEND;VALUE=DATE:20150701 -DTSTAMP:20180705T134535Z -UID:bn5uavc2d9sbikha9489ivnen8@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20141212T192210Z -DESCRIPTION: -LAST-MODIFIED:20141219T144411Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:Firefox 39 Release -TRANSP:OPAQUE -END:VEVENT -BEGIN:VEVENT -DTSTART;VALUE=DATE:20150629 -DTEND;VALUE=DATE:20150630 -DTSTAMP:20180705T134535Z -UID:7lv8ogl9da6308p492rvanelm8@google.com -ATTENDEE;CUTYPE=RESOURCE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Public - - Firefox Merge/Release Schedule;X-NUM-GUESTS=0:mailto:mozilla.com_2d3738343 - 3353432352d3939@resource.calendar.google.com -CREATED:20141216T152606Z -DESCRIPTION:Beta: 40\nAurora: 41\nNightly: 42 -LAST-MODIFIED:20141219T144405Z -LOCATION: -SEQUENCE:0 -STATUS:CONFIRMED -SUMMARY:MERGE: B40\, A41\, N42 -TRANSP:OPAQUE -END:VEVENT -END:VCALENDAR -`; diff --git a/test/mocks/chromeStatus.json b/test/mocks/chromeStatus.json deleted file mode 100644 index bb44861..0000000 --- a/test/mocks/chromeStatus.json +++ /dev/null @@ -1,97777 +0,0 @@ -[ - { - "category": "Security", - "updated": { - "when": "2018-06-06 19:35:36.103375", - "by": "ericbidelman@google.com" - }, - "first_of_milestone": true, - "name": "CSP: `report-to` directive", - "comments": "", - "standards": { - "status": { - "text": "Working draft or equivalent", - "val": 3 - }, - "footprint": { - "val": 2 - }, - "spec": "https://w3c.github.io/webappsec-csp/#directive-report-to", - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "No active development", - "val": 1, - "milestone_str": "No active development" - }, - "owners": [ - "mkwst@chromium.org", - "andypaicu@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink>SecurityFeature" - ], - "flag": false, - "bug": "https://bugs.chromium.org/p/chromium/issues/detail?id=726634", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "Public support", - "val": 3 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "The `report-to` directive wires CSP violation reports up to the Reporting API which allows the browser to bundle multiple reports when sending them to the server rather than creating a POST for each individual report. This allows reports to be collected in a way that is friendlier for users' batteries. This change also deprecates the existing `report-uri` directive.", - "id": 5826576096690176, - "resources": { - "docs": [ - "https://wicg.github.io/reporting/" - ] - } - }, - { - "category": "CSS", - "updated": { - "when": "2017-06-14 18:29:09.522950", - "by": "ericbidelman@google.com" - }, - "name": "CSS Flexbox: New intrinsic size algorithm", - "tags": [ - "Flexbox", - "flex" - ], - "comments": "", - "standards": { - "status": { - "text": "Editor's draft", - "val": 4 - }, - "footprint": { - "val": 4 - }, - "spec": "https://drafts.csswg.org/css-flexbox/#intrinsic-sizes", - "visibility": { - "text": "Only a very small number of web developers will care about", - "val": 4 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://bugzilla.mozilla.org/show_bug.cgi?id=1055887", - "text": "Public support", - "val": 3 - } - }, - "chrome": { - "status": { - "text": "No active development", - "val": 1, - "milestone_str": "No active development" - }, - "owners": [ - "cbiesinger@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "bug": "http://crbug.com/240765", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "The CSS Flexbox specification changed the algorithm for calculating a flexbox's intrinsic size (see below for the spec link). The new algorithm produces better results when there are flex items that actually flex, because it takes flex factors and flex-basis into account, whereas so far we just sum up the preferred sizes of each flex item.", - "id": 6021353392046080, - "resources": {} - }, - { - "category": "CSS", - "updated": { - "when": "2017-06-27 02:08:22.032420", - "by": "ericbidelman@google.com" - }, - "name": "CSS Generated Content for Paged Media Module", - "comments": "", - "standards": { - "status": { - "text": "Working draft or equivalent", - "val": 3 - }, - "footprint": { - "val": 3 - }, - "spec": "http://dev.w3.org/csswg/css-gcpm/", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "No active development", - "val": 1, - "milestone_str": "No active development" - }, - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink>CSS" - ], - "flag": false, - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "CSS properties helpful for printed publication. We only implement paged-x / paged-y from the whole spec.", - "id": 5400251359821824, - "resources": {} - }, - { - "category": "CSS", - "updated": { - "when": "2018-02-05 03:36:10.715290", - "by": "victoriaytsu@google.com" - }, - "name": "CSS Selectors 4 Pseudo-Class :is()", - "comments": "", - "standards": { - "status": { - "text": "Editor's draft", - "val": 4 - }, - "footprint": { - "val": 3 - }, - "spec": "https://drafts.csswg.org/selectors-4/#zero-matches", - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "No active development", - "val": 1, - "milestone_str": "No active development" - }, - "owners": [ - "victoriaytsu@google.com" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink>CSS" - ], - "flag": false, - "bug": "https://bugs.chromium.org/p/chromium/issues/detail?id=808904", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "The Specificity-adjustment pseudo-class, :is(), is a functional pseudo-class with the same syntax and functionality as :matches(). Unlike :matches(), neither the :is() pseudo-class, nor any of its arguments contribute to the specificity of the selector — its specificity is always zero.", - "id": 4600991135563776, - "resources": { - "docs": [ - "https://docs.google.com/document/d/1ZUNf4eXIABKYtOb2IWdzkHqMSC9GWgX5740McqQ5ur0/edit?usp=sharing" - ] - } - }, - { - "category": "CSS", - "updated": { - "when": "2017-06-27 02:09:36.587320", - "by": "ericbidelman@google.com" - }, - "name": "CSS filter() image function", - "comments": "It is currently implemented prefixed in WebKit and can be tested in the last WebKit nightly builds. The filter() function is currently part of the Filter Effects specification. And has the support of the SVG and CSS WG.", - "standards": { - "status": { - "text": "Working draft or equivalent", - "val": 3 - }, - "footprint": { - "val": 3 - }, - "spec": "https://www.w3.org/TR/filter-effects/#FilterCSSImageValue", - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "No active development", - "val": 1, - "milestone_str": "No active development" - }, - "owners": [ - "dschulze@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink>CSS" - ], - "flag": false, - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "In development", - "val": 2 - } - }, - "webdev": { - "view": { - "text": "Positive", - "val": 2 - } - } - }, - "summary": "The function allows filtering an CSS input image with a set of filter functions. The used filter functions are the same as for the CSS filter property. The filter() function can be animated as well.", - "id": 5425136400334848, - "resources": {} - }, - { - "category": "Multimedia", - "updated": { - "when": "2018-01-10 14:47:50.559540", - "by": "orphis@chromium.org" - }, - "name": "Deprecate and Remove URL.createObjectURL for MediaStream", - "comments": "", - "standards": { - "status": { - "text": "Working draft or equivalent", - "val": 3 - }, - "footprint": { - "val": 4 - }, - "spec": "https://w3c.github.io/mediacapture-main/", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://bugzilla.mozilla.org/show_bug.cgi?id=1334564", - "text": "In development", - "val": 2 - } - }, - "chrome": { - "status": { - "text": "No active development", - "val": 1, - "milestone_str": "No active development" - }, - "owners": [ - "orphis@chromium.org", - "guidou@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink>MediaStream" - ], - "flag": false, - "bug": "https://bugs.chromium.org/p/chromium/issues/detail?id=800767", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "url": "https://bugs.webkit.org/show_bug.cgi?id=167518", - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "This functionality has been deprecated in 2013 and superseded by assigning streams to srcObject.", - "id": 5618491470118912, - "resources": {} - }, - { - "category": "JavaScript", - "updated": { - "when": "2018-01-11 21:03:49.210650", - "by": "ericbidelman@google.com" - }, - "name": "Disable scripts for Data Saver users on slow connections", - "comments": "", - "standards": { - "status": { - "text": "Editor's draft", - "val": 4 - }, - "footprint": { - "val": 2 - }, - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "No active development", - "val": 1, - "milestone_str": "No active development" - }, - "owners": [ - "dougarnett@chromium.org", - "bengr@chromium.org", - "aposner@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "bug": "https://bugs.chromium.org/p/chromium/issues/detail?id=801275", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "If a Data Saver user is on a 2G-speed or slower network according to the NetInfo API, Chrome disables scripts and sends an intervention header on every resource request. Users are shown a UI at the bottom of the screen indicating the page has been modified to save data. Users can enable scripts on the page by tapping “Show original” in the UI.", - "id": 4775088607985664, - "resources": { - "docs": [ - "https://wicg.github.io/netinfo/#dfn-effective-connection-types" - ] - } - }, - { - "category": "Misc", - "updated": { - "when": "2017-06-14 18:28:59.435080", - "by": "ericbidelman@google.com" - }, - "name": "Disallow spaces and other bad characters in hostnames", - "comments": "", - "standards": { - "status": { - "text": "Editor's draft", - "val": 4 - }, - "footprint": { - "val": 5 - }, - "spec": "https://url.spec.whatwg.org/", - "visibility": { - "text": "So small it doesn't need to be covered in this dashboard.", - "val": 5 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "No active development", - "val": 1, - "milestone_str": "No active development" - }, - "owners": [ - "brettw@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "bug": "https://bugs.chromium.org/p/chromium/issues/detail?id=652808", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "Chrome currently allows some technically invalid characters in hostnames, which it percent-escapes. These host names will now be marked as invalid.", - "id": 5724389597249536, - "resources": { - "docs": [ - "https://docs.google.com/document/d/1KezMGpTwMJSYW3Jb9cvvi4fRuZ0r5AGbS-Phe-A6WeQ" - ] - } - }, - { - "category": "Misc", - "updated": { - "when": "2017-06-14 22:41:02.220800", - "by": "aposner@google.com" - }, - "name": "Image replacement for Data Saver users on slow connections", - "comments": "", - "standards": { - "status": { - "text": "Editor's draft", - "val": 4 - }, - "footprint": { - "val": 2 - }, - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "No active development", - "val": 1, - "milestone_str": "No active development" - }, - "owners": [ - "sclittle@chromium.org", - "bengr@chromium.org", - "aposner@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "If a Data Saver user is on a 2G-speed or slower network according to the NetInfo API, Chrome replaces images with placeholders and sends an intervention header on every resource request. Placeholders are the same dimensions as the original image to maintain site layout. Users are shown a UI at the bottom of the screen indicating the page has been modified to save data. Users can load the image by long-pressing on the placeholder, or load all images by tapping “Show original” in the UI.", - "id": 6072546726248448, - "resources": { - "docs": [ - "https://wicg.github.io/netinfo/#dfn-effective-connection-types" - ] - } - }, - { - "category": "Multimedia", - "updated": { - "when": "2018-04-09 12:08:35.879950", - "by": "fbeaufort@google.com" - }, - "name": "Media Capabilities: encoding", - "comments": "", - "standards": { - "status": { - "text": "Editor's draft", - "val": 4 - }, - "footprint": { - "val": 2 - }, - "spec": "https://wicg.github.io/media-capabilities/", - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "No active development", - "val": 1, - "milestone_str": "No active development" - }, - "owners": [ - "mcasas@chromium.org", - "chcunningham@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink>Media>Capabilities" - ], - "flag": false, - "bug": "https://crbug.com/709181", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "This is an API for querying the user agent about a device's encoding capabilities for the purpose of recording or transmitting.", - "id": 5123719190020096, - "resources": { - "samples": [ - "https://codepen.io/miguelao/full/bWNwej" - ] - } - }, - { - "category": "JavaScript", - "updated": { - "when": "2017-08-23 18:46:18.958670", - "by": "jkarlin@chromium.org" - }, - "name": "PauseFrame", - "tags": [ - "pause", - "iframe", - "frame" - ], - "comments": "", - "standards": { - "status": { - "text": "Public discussion", - "val": 5 - }, - "footprint": { - "val": 2 - }, - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "No active development", - "val": 1, - "milestone_str": "No active development" - }, - "owners": [ - "jkarlin@chromium.org", - "rschoen@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink>Scheduling" - ], - "flag": false, - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "Positive", - "val": 2 - } - } - }, - "summary": "Allows for pausing of frames (via JavaScript API as well as browser intervention). When a frame is paused, it doesn't run script and it doesn't load resources. It waits patiently to be resumed.", - "id": 5141555102875648, - "resources": { - "docs": [ - "https://github.com/jkarlin/pause-frame" - ], - "samples": [ - "https://github.com/jkarlin/pause-frame" - ] - } - }, - { - "category": "CSS", - "updated": { - "when": "2018-05-23 14:30:32.339550", - "by": "jmedley@google.com" - }, - "name": "RTCQuicTransport & RTCQuicStream", - "comments": "", - "standards": { - "status": { - "text": "Editor's draft", - "val": 4 - }, - "footprint": { - "val": 2 - }, - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "No active development", - "val": 1, - "milestone_str": "No active development" - }, - "owners": [ - "shampson@chromium.org", - "steveanton@chromium.org", - "deadbeef@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "Positive", - "val": 2 - } - } - }, - "summary": "Implement the RTCQuicTransport and RTCQuicStream, a standalone API using the QUIC transport protocol to exchange arbitrary data with remote peers. This provides a generic multiple-way transport that doesn't use the full PeerConnection stack designed for media purposes.", - "id": 6311472179183616, - "resources": { - "docs": [ - "https://docs.google.com/document/d/12oNEcgjAjQERMvATCVCWpoTxNU47NRUzxCK5g0FysTk/edit?usp=sharing" - ] - } - }, - { - "category": "JavaScript", - "updated": { - "when": "2017-12-13 18:21:32.360950", - "by": "jmedley@google.com" - }, - "name": "Remove Content Type Sniffing for Worker Scripts", - "comments": "This is one step in the long-term process to eliminate content type sniffing. Since worker scripts are a relatively new feature they have not yet acquired legacy baggage of other features, which allows us to remove this particular feature combination without much risk, and before unsuitable usage could becomes a legacy.\r\n\r\nAlso, there's a trivial work-around for any affected developer: Just serve your scripts with a proper MIME type.", - "standards": { - "status": { - "text": "Public discussion", - "val": 5 - }, - "footprint": { - "val": 5 - }, - "visibility": { - "text": "Only a very small number of web developers will care about", - "val": 4 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://github.com/whatwg/html/issues/3255", - "text": "Public support", - "val": 3 - } - }, - "chrome": { - "status": { - "text": "No active development", - "val": 1, - "milestone_str": "No active development" - }, - "owners": [ - "vogelheim@chromium.org", - "mkwst@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "bug": "https://bugs.chromium.org/p/chromium/issues/detail?id=794548", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "Remove 'content type sniffing' for worker scripts. That is, fail the execution of JavaScript resource unless they have a valid script MIME type.", - "id": 6037497138118656, - "resources": { - "docs": [ - "https://github.com/whatwg/html/issues/3255" - ] - } - }, - { - "category": "Offline / Storage", - "updated": { - "when": "2017-09-17 08:25:45.424880", - "by": "Patket@microsoft.com" - }, - "name": "Remove full text search (FTS) support from WebSQL", - "tags": [ - "websql", - "fts" - ], - "comments": "Firefox and Edge have never shipped (and do not plan to ship) WebSQL.", - "standards": { - "status": { - "text": "Editor's draft", - "val": 4 - }, - "footprint": { - "val": 2 - }, - "spec": "https://dev.w3.org/html5/webdatabase/", - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "url": "http://caniuse.com/#feat=sql-storage", - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "No active development", - "val": 1, - "milestone_str": "No active development" - }, - "owners": [ - "pwnall@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink>Storage>WebSQL" - ], - "flag": false, - "bug": "https://bugs.chromium.org/p/chromium/issues/detail?id=742518&desc=3", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "url": "http://caniuse.com/#feat=sql-storage", - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "url": "https://github.com/WebKit/webkit/commit/36ce0a5e2dc2def273c011bef04e58da8129a7d6", - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "WebSQL is a discontinued standard that was only implemented by WebKit and Blink as a thin layer on top of SQLite. The implementation has exposed SQLITE-specific constructs, such as a full text search extension (FTS3).\r\n\r\nMaintaining WebSQL's FTS support has been troublesome, and Safari removed it.", - "id": 5704730961510400, - "resources": { - "docs": [ - "https://www.html5rocks.com/en/tutorials/webdatabase/websql-indexeddb/" - ], - "samples": [ - "https://gist.github.com/nolanlawson/0264938033aca2201012" - ] - } - }, - { - "category": "CSS", - "updated": { - "when": "2017-10-31 01:57:58.645500", - "by": "hayato@google.com" - }, - "name": "Remove window.event for Shadow DOM", - "comments": "", - "standards": { - "status": { - "text": "Public discussion", - "val": 5 - }, - "footprint": { - "val": 2 - }, - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "No active development", - "val": 1, - "milestone_str": "No active development" - }, - "owners": [ - "hayato@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink>DOM>ShadowDOM" - ], - "flag": false, - "bug": "http://crbug.com/779461", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "The contex is: https://github.com/whatwg/dom/issues/334\r\nWe are trying to standardize certain Microsoft event extensions. One of them is window.event. Blink *supports* window.event.\r\n\r\nIn the discussion, we agreed that window.event should be *undefined* if an Event's target is in a shadow tree.\r\nThat is effectivery equivalent to *removing* window.event for Shadow DOM.\r\n", - "id": 5084727350394880, - "resources": {} - }, - { - "category": "JavaScript", - "updated": { - "when": "2017-11-09 19:35:40.155530", - "by": "adamk@chromium.org" - }, - "name": "Tail calls elimination (ES6)", - "tags": [ - "TCO", - "tail-call", - "tail call elimination", - "proper tail calls" - ], - "comments": "https://kangax.github.io/compat-table/es6/#test-proper_tail_calls_(tail_call_optimisation)", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 2 - }, - "spec": "http://www.ecma-international.org/ecma-262/6.0/#sec-tail-position-calls", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://bugzilla.mozilla.org/show_bug.cgi?id=723959", - "text": "Mixed public signals", - "val": 4 - } - }, - "chrome": { - "status": { - "text": "No active development", - "val": 1, - "milestone_str": "No active development" - }, - "owners": [ - "ishell@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink>JavaScript>Language" - ], - "flag": false, - "bug": "https://bugs.chromium.org/p/v8/issues/detail?id=4698", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "url": "https://dev.windows.com/en-us/microsoft-edge/platform/status/tailcallses6", - "text": "Mixed public signals", - "val": 4 - } - }, - "safari": { - "view": { - "url": "https://bugs.webkit.org/show_bug.cgi?id=146477", - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "Positive", - "val": 2 - } - } - }, - "summary": "Guarantee \"no stack consumption\" for function invocations in tail call positions.", - "id": 5516876633341952, - "resources": { - "docs": [ - "https://en.wikipedia.org/wiki/Tail_call", - "https://youtu.be/PSGEjv3Tqo0?t=698" - ] - } - }, - { - "category": "Security", - "updated": { - "when": "2018-03-28 17:32:09.832420", - "by": "ericbidelman@google.com" - }, - "name": "Treat `http://localhost` as a secure context", - "comments": "", - "standards": { - "status": { - "text": "Editor's draft", - "val": 4 - }, - "footprint": { - "val": 1 - }, - "spec": "https://tools.ietf.org/html/draft-west-let-localhost-be-localhost", - "visibility": { - "text": "Likely in mainstream tech news", - "val": 1 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://www.ietf.org/mail-archive/web/dnsop/current/msg20669.htm", - "text": "Public support", - "val": 3 - } - }, - "chrome": { - "status": { - "text": "No active development", - "val": 1, - "milestone_str": "No active development" - }, - "owners": [ - "mkwst@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink>SecurityFeature>SecureContexts" - ], - "flag": false, - "bug": "https://crbug.com/589141", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "Strongly positive", - "val": 1 - } - } - }, - "summary": "Developers generally expect `http://localhost` to have the same transport security characteristics as TLS, as it should resolve to a loopback address, and will therefore never hit the network. Chrome will ensure that this expectation is accurate by implementing https://tools.ietf.org/html/draft-west-let-localhost-be-localhost, and carves out `http://localhost` accordingly. ", - "id": 6269417340010496, - "resources": {} - }, - { - "category": "Multimedia", - "updated": { - "when": "2017-06-14 18:28:42.846700", - "by": "ericbidelman@google.com" - }, - "name": "UIEvents Keyboard Events", - "comments": "", - "standards": { - "status": { - "text": "Working draft or equivalent", - "val": 3 - }, - "footprint": { - "val": 3 - }, - "spec": "http://www.w3.org/TR/uievents/", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "No active development", - "val": 1, - "milestone_str": "No active development" - }, - "owners": [ - "garykac@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "url": "http://status.modern.ie/uieventskeyboardqueryapis", - "text": "Public skepticism", - "val": 6 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "Positive", - "val": 2 - } - } - }, - "summary": "locale in KeyboardEvent.\r\nqueryKeyCap() and queryLocale() static methods.", - "id": 5593215650496512, - "resources": {} - }, - { - "category": "JavaScript", - "updated": { - "when": "2018-05-09 19:58:14.137170", - "by": "bradnelson@google.com" - }, - "name": "WebAssembly ECMAScript Module Integration", - "tags": [ - "wasm", - "webassembly", - "modules" - ], - "comments": "", - "standards": { - "status": { - "text": "Public discussion", - "val": 5 - }, - "footprint": { - "val": 2 - }, - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Public support", - "val": 3 - } - }, - "chrome": { - "status": { - "text": "No active development", - "val": 1, - "milestone_str": "No active development" - }, - "owners": [ - "gdeepti@chromium.org", - "titzer@chromium.org", - "domenic@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink>JavaScript>WebAssembly" - ], - "flag": false, - "bug": "https://bugs.chromium.org/p/chromium/issues/detail?id=841494", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "Public support", - "val": 3 - } - }, - "safari": { - "view": { - "text": "Public support", - "val": 3 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "Allow JS to import WebAssembly modules and the reverse.\r\n", - "id": 5987156463976448, - "resources": { - "docs": [ - "https://github.com/WebAssembly/esm-integration/tree/master/proposals/esm-integration" - ] - } - }, - { - "category": "JavaScript", - "updated": { - "when": "2018-05-22 14:44:11.313290", - "by": "jmedley@google.com" - }, - "name": "WebAssembly Sign Extension Opcodes", - "tags": [ - "wasm", - "webassembly", - "threads" - ], - "comments": "", - "standards": { - "status": { - "text": "Editor's draft", - "val": 4 - }, - "footprint": { - "val": 3 - }, - "spec": "https://github.com/WebAssembly/sign-extension-ops", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://bugzilla.mozilla.org/show_bug.cgi?id=1428971", - "text": "In development", - "val": 2 - } - }, - "chrome": { - "status": { - "text": "No active development", - "val": 1, - "milestone_str": "No active development" - }, - "owners": [ - "binji@chromium.org", - "hablich@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "url": "https://github.com/Microsoft/ChakraCore/pull/3741/files", - "text": "In development", - "val": 2 - } - }, - "safari": { - "view": { - "text": "Public support", - "val": 3 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "Add sign extension opcodes to WebAssembly. This makes some code sequences shorter and allows us to provide only zero extended versions of atomic opcodes for threads.\r\n", - "id": 4961472689995776, - "resources": { - "docs": [ - "https://github.com/WebAssembly/sign-extension-ops/blob/master/proposals/sign-extension-ops/Overview.md", - "https://github.com/WebAssembly/design/issues/1178" - ] - } - }, - { - "category": "Multimedia", - "updated": { - "when": "2017-06-14 18:29:01.462430", - "by": "ericbidelman@google.com" - }, - "name": "WebAudio: OfflineAudioDestinationNode", - "comments": "", - "standards": { - "status": { - "text": "Editor's draft", - "val": 4 - }, - "footprint": { - "val": 4 - }, - "spec": "https://webaudio.github.io/web-audio-api/", - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "No active development", - "val": 1, - "milestone_str": "No active development" - }, - "owners": [ - "rtoy@chromium.org", - "hongchan@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink>WebAudio" - ], - "flag": false, - "bug": "http://crbug.com/622895", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "Add OfflineAudioDestinationNode for an OfflineAudioContext. This clarifies and distinguishes the destination for an offline context from an online (real-time) context.", - "id": 5739682608447488, - "resources": { - "docs": [ - "https://github.com/WebAudio/web-audio-api/issues/824", - "https://github.com/WebAudio/web-audio-api/pull/856" - ] - } - }, - { - "category": "CSS", - "updated": { - "when": "2017-09-25 22:53:12.273640", - "by": "jfernandez@chromium.org" - }, - "name": "overflow-wrap: break-spaces", - "comments": "", - "standards": { - "status": { - "text": "Editor's draft", - "val": 4 - }, - "footprint": { - "val": 4 - }, - "spec": "https://drafts.csswg.org/css-text-3/#valdef-overflow-wrap-break-spaces", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://bugzilla.mozilla.org/show_bug.cgi?id=1351432", - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "No active development", - "val": 1, - "milestone_str": "No active development" - }, - "owners": [ - "jfernandez@igalia.com" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink>CSS", - "Blink>Layout" - ], - "flag": false, - "bug": "https://bugs.chromium.org/p/chromium/issues/detail?id=767634", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "url": "https://bugs.webkit.org/show_bug.cgi?id=177327", - "text": "In development", - "val": 2 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "The overflow-wrap:break-spaces value allows authors to specify that any sequence of preserved white space that would otherwise overflow the line and hang as per Trimming and Positioning must be broken.", - "id": 4842781306519552, - "resources": {} - }, - { - "category": "Network / Connectivity", - "updated": { - "when": "2018-04-25 00:27:34.227930", - "by": "Patket@microsoft.com" - }, - "name": "stale-while-revalidate", - "comments": "", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 3 - }, - "spec": "http://tools.ietf.org/html/rfc5861", - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://bugzilla.mozilla.org/show_bug.cgi?id=995651", - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "No active development", - "val": 1, - "milestone_str": "No active development" - }, - "owners": [ - "kenjibaheux@chromium.org", - "ricea@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "bug": "https://code.google.com/p/chromium/issues/detail?id=348877", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "Positive", - "val": 2 - } - } - }, - "summary": "stale-while-revalidate (s-w-r for short) is an HTTP header that defines an extra window of time during which a cache (proxy, user agents) can use a stale asset as long as it revalidates it asynchronously.\r\n\r\nThis improves subsequent page load latencies as stale assets are non longer in the critical path.", - "id": 5050913014153216, - "resources": {} - }, - { - "category": "CSS", - "updated": { - "when": "2018-07-04 04:03:51.327540", - "by": "kojii@chromium.org" - }, - "first_of_milestone": true, - "name": "'left' and 'right' values for the 'text-underline-position' property", - "comments": "Edge supports old syntax, no public signals to update.", - "standards": { - "status": { - "text": "Working draft or equivalent", - "val": 3 - }, - "footprint": { - "val": 4 - }, - "spec": "https://drafts.csswg.org/css-text-decor-3/#text-underline-position-property", - "visibility": { - "text": "Only a very small number of web developers will care about", - "val": 4 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://bugzilla.mozilla.org/show_bug.cgi?id=770780", - "text": "Public support", - "val": 3 - } - }, - "chrome": { - "status": { - "text": "Proposed", - "val": 2, - "milestone_str": "Proposed" - }, - "owners": [ - "kojii@chromium.org", - "ericwilligers@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink>Fonts" - ], - "flag": false, - "bug": "https://bugs.chromium.org/p/chromium/issues/detail?id=313888", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "url": "https://bugs.webkit.org/show_bug.cgi?id=48936", - "text": "Public support", - "val": 3 - } - }, - "webdev": { - "view": { - "text": "Positive", - "val": 2 - } - } - }, - "summary": "This feature adds support for 'left' and 'right' values for the 'text-underline-position' property. This property shipped in https://www.chromestatus.com/features/5766823203045376 but this part was left for the later work.", - "id": 5749634488074240, - "resources": {} - }, - { - "category": "CSS", - "updated": { - "when": "2018-01-29 12:43:35.177570", - "by": "jfernandez@chromium.org" - }, - "name": "'legacy\" CSS Value for the alignment behavior of HTML’s
element ", - "comments": "", - "standards": { - "status": { - "text": "Editor's draft", - "val": 4 - }, - "footprint": { - "val": 4 - }, - "spec": "https://drafts.csswg.org/css-align/#valdef-justify-items-legacy", - "visibility": { - "text": "So small it doesn't need to be covered in this dashboard.", - "val": 5 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://bugzilla.mozilla.org/show_bug.cgi?id=1363875", - "text": "In development", - "val": 2 - } - }, - "chrome": { - "status": { - "text": "Proposed", - "val": 2, - "milestone_str": "Proposed" - }, - "owners": [ - "jfernandez@igalia.com" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink>CSS" - ], - "flag": false, - "bug": "https://bugs.chromium.org/p/chromium/issues/detail?id=726148", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "url": "https://bugs.webkit.org/show_bug.cgi?id=172712", - "text": "In development", - "val": 2 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "The CSS Box Alignment spec defines a special syntax for the justify-items CSS property so that it's possible to implement the legacy alignment behavior of HTML’s
element and align attribute.\r\n\r\nIn order to declare an element to use this kind of alignment, a new CSS value has been defined: 'legacy'.", - "id": 5751109557682176, - "resources": {} - }, - { - "category": "DOM", - "updated": { - "when": "2018-04-25 00:29:12.415570", - "by": "Patket@microsoft.com" - }, - "name": "'noopener' should always disown the opener", - "comments": "", - "standards": { - "status": { - "text": "Editor's draft", - "val": 4 - }, - "footprint": { - "val": 4 - }, - "spec": "https://github.com/whatwg/html/issues/1826", - "visibility": { - "text": "Only a very small number of web developers will care about", - "val": 4 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Proposed", - "val": 2, - "milestone_str": "Proposed" - }, - "owners": [ - "lfg@chromium.org" - ], - "prefixed": true, - "origintrial": false, - "blink_components": [ - "Blink>Bindings" - ], - "flag": false, - "bug": "https://crbug.com/651661", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "Public support", - "val": 3 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "When targeting links with rel=noopener the opener should always be disowned. That means this:\r\n\r\nClick me first\r\nClick me second\r\n\r\nwill open two different windows. The same behavior is expected when using window.open('', 'foo', 'noopener').", - "id": 5641309343711232, - "resources": {} - }, - { - "category": "Security", - "updated": { - "when": "2017-09-23 09:03:06.777830", - "by": "Patket@microsoft.com" - }, - "name": "", - "comments": "", - "standards": { - "status": { - "text": "Public discussion", - "val": 5 - }, - "footprint": { - "val": 4 - }, - "visibility": { - "text": "Only a very small number of web developers will care about", - "val": 4 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://github.com/whatwg/html/pull/3011#issuecomment-331181807", - "text": "Public support", - "val": 3 - } - }, - "chrome": { - "status": { - "text": "Proposed", - "val": 2, - "milestone_str": "Proposed" - }, - "owners": [ - "mkwst@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Internals>Network>Cookies" - ], - "flag": false, - "bug": "https://bugs.chromium.org/p/chromium/issues/detail?id=767813", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "url": "https://mobile.twitter.com/patrickkettner/status/911282308337983489", - "text": "Public support", - "val": 3 - } - }, - "safari": { - "view": { - "url": "https://mobile.twitter.com/johnwilander/status/911299622366150656", - "text": "Mixed public signals", - "val": 4 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "`` provides a mechanism for manipulating a host's cookies via markup. Ideally, we would require access to a host's HTTP headers, or script-execution capabilities to modify this data.", - "id": 6170540112871424, - "resources": { - "docs": [ - "https://github.com/whatwg/html/pull/3011#issuecomment-331187136" - ] - } - }, - { - "category": "User input", - "updated": { - "when": "2017-09-22 09:48:33.809730", - "by": "beccahughes@chromium.org" - }, - "name": "Activation Delegation", - "comments": "", - "standards": { - "status": { - "text": "Editor's draft", - "val": 4 - }, - "footprint": { - "val": 4 - }, - "spec": "https://github.com/WICG/gesture-delegation", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "Proposed", - "val": 2, - "milestone_str": "Proposed" - }, - "owners": [ - "beccahughes@chromium.org", - "mlamouri@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink>Input" - ], - "flag": false, - "bug": "https://bugs.chromium.org/p/chromium/issues/detail?id=766090", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "Add a allowedActivationDelegation attribute to ).", - "id": 5222955109842944, - "resources": { - "docs": [ - "https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#attr-srcdoc" - ] - } - }, - { - "category": "CSS", - "updated": { - "when": "2017-06-14 18:29:06.721420", - "by": "ericbidelman@google.com" - }, - "first_of_milestone": true, - "name": "CSS Filters", - "comments": "", - "standards": { - "status": { - "text": "Working draft or equivalent", - "val": 3 - }, - "footprint": { - "val": 2 - }, - "spec": "http://dev.w3.org/fxtf/filters/", - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://bugzilla.mozilla.org/show_bug.cgi?id=1057180", - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 19 - }, - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 19, - "flag": false, - "intervention": false - }, - "opera": { - "android": 15, - "desktop": 15 - }, - "edge": { - "view": { - "url": "http://dev.modern.ie/platform/status/filters/", - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "Strongly positive", - "val": 1 - } - } - }, - "summary": "Apply (SVG-like) filter effects to arbitrary DOM elements.", - "id": 5822463824887808, - "resources": { - "docs": [ - "https://developer.mozilla.org/en-US/docs/Web/CSS/filter" - ], - "samples": [ - "http://simpl.info/cssfilters/" - ] - } - }, - { - "category": "CSS", - "updated": { - "when": "2017-06-14 18:29:05.180300", - "by": "ericbidelman@google.com" - }, - "name": "CSS calc()", - "comments": "", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 2 - }, - "spec": "http://www.w3.org/TR/css3-values", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 19 - }, - "owners": [ - "mikelawther@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 19, - "flag": false, - "android": 28, - "bug": "http://www.w3.org/TR/css3-values/#calc", - "intervention": false - }, - "opera": { - "android": 21, - "desktop": 15 - }, - "edge": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "Strongly positive", - "val": 1 - } - } - }, - "summary": "Method of allowing calculated values for length units, i.e. width: calc(100% - 3em)", - "id": 5765241438732288, - "resources": { - "docs": [ - "https://developer.mozilla.org/en-US/docs/Web/CSS/calc" - ] - } - }, - { - "category": "Misc", - "updated": { - "when": "2018-04-25 05:47:59.254490", - "by": "Patket@microsoft.com" - }, - "name": "iframe[sandbox] attribute", - "comments": "", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 3 - }, - "spec": "http://whatwg.org/html#attr-iframe-sandbox", - "visibility": { - "text": "Only a very small number of web developers will care about", - "val": 4 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 19 - }, - "owners": [ - "abarth@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 19, - "flag": false, - "intervention": false - }, - "opera": { - "android": 15, - "desktop": 15 - }, - "edge": { - "view": { - "url": "https://dev.modern.ie/platform/status/iframesrcdocattribute", - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "Strongly positive", - "val": 1 - } - } - }, - "summary": "Method of running external site pages with reduced privileges (i.e. no JavaScript) in iframes ()", - "id": 5715536319086592, - "resources": { - "docs": [ - "https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#attr-sandbox" - ] - } - }, - { - "category": "Device", - "updated": { - "when": "2017-06-14 18:28:36.256430", - "by": "ericbidelman@google.com" - }, - "first_of_milestone": true, - "name": "GamePad API", - "comments": "", - "standards": { - "status": { - "text": "Working draft or equivalent", - "val": 3 - }, - "footprint": { - "val": 2 - }, - "spec": "https://dvcs.w3.org/hg/gamepad/raw-file/default/gamepad.html", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://bugzilla.mozilla.org/show_bug.cgi?id=878828", - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 18 - }, - "owners": [ - "scottmg@chromium.org", - "bajones@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 18, - "flag": false, - "bug": "http://crbug.com/344556", - "intervention": false - }, - "opera": { - "android": 15, - "desktop": 15 - }, - "edge": { - "view": { - "url": "http://status.modern.ie/gamepadapi", - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "url": "https://developer.apple.com/library/prerelease/content/releasenotes/General/WhatsNewInSafari/Articles/Safari_10_1.html", - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "Gives JS access to a game controller via USB.", - "id": 5118776383111168, - "resources": { - "docs": [ - "https://developer.mozilla.org/en-US/docs/Web/Guide/API/Gamepad" - ] - } - }, - { - "category": "DOM", - "updated": { - "when": "2017-06-14 18:28:34.707280", - "by": "ericbidelman@google.com" - }, - "name": "Mutation Observers", - "comments": "", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 2 - }, - "spec": "http://dom.spec.whatwg.org/#mutation-observers", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Versions/14#DOM", - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 18 - }, - "owners": [ - "rafaelw@chromium.org", - "adamk@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 18, - "flag": false, - "android": 18, - "bug": "http://wkbug.com/68729", - "intervention": false - }, - "opera": { - "android": 15, - "desktop": 15 - }, - "edge": { - "view": { - "url": "http://msdn.microsoft.com/library/ie/dn265034", - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "Positive", - "val": 2 - } - } - }, - "summary": "Provides notifications when DOM nodes are rearranged or modified.", - "id": 5021194726146048, - "resources": { - "docs": [ - "https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver" - ], - "samples": [ - "http://simpl.info/mutationobserver/" - ] - } - }, - { - "category": "User input", - "updated": { - "when": "2017-06-14 18:29:10.960620", - "by": "ericbidelman@google.com" - }, - "name": "Touch Events", - "comments": "Defacto standard for touch input for many years, W3C standard in REC. Has a number of known issues, see https://docs.google.com/a/chromium.org/document/d/12-HPlSIF7-ISY8TQHtuQ3IqDi-isZVI0Yzv5zwl90VU/edit", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 2 - }, - "spec": "http://www.w3.org/TR/touch-events/", - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 18 - }, - "owners": [ - "rbyers@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 18, - "flag": false, - "intervention": false - }, - "opera": { - "android": 15, - "desktop": 15 - }, - "edge": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "Positive", - "val": 2 - } - } - }, - "summary": "Touchscreen input API, originally introduced by Apple on iOS", - "id": 6156165603917824, - "resources": { - "docs": [ - "https://developer.mozilla.org/en-US/docs/Web/API/Touch_events" - ] - } - }, - { - "category": "Misc", - "updated": { - "when": "2018-05-01 20:06:36.966630", - "by": "foolip@chromium.org" - }, - "first_of_milestone": true, - "name": "Prefixed Fullscreen API", - "comments": "", - "standards": { - "status": { - "text": "Public discussion", - "val": 5 - }, - "footprint": { - "val": 3 - }, - "visibility": { - "text": "Likely in mainstream tech news", - "val": 1 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 15 - }, - "owners": [ - "jeremya@chromium.org" - ], - "prefixed": true, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 15, - "flag": false, - "intervention": false - }, - "opera": { - "android": 12, - "desktop": 12 - }, - "edge": { - "view": { - "url": "http://www.sitepoint.com/internet-explorer-11-review/", - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "Positive", - "val": 2 - } - } - }, - "summary": "Programmatically instruct content on the page to be presented in the browser's fullscreen mode. This entry is for the prefixed variants of the API, webkitRequestFullscreen. The status for other browsers is also for their prefixed variants.", - "id": 5259513871466496, - "resources": { - "docs": [ - "https://developer.mozilla.org/en-US/docs/Web/API/Fullscreen_API" - ], - "samples": [ - "http://simpl.info/fullscreen/" - ] - } - }, - { - "category": "Security", - "updated": { - "when": "2017-06-14 18:28:37.645450", - "by": "ericbidelman@google.com" - }, - "first_of_milestone": true, - "name": "Content Security Policy Level 1", - "comments": "", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 2 - }, - "spec": "http://www.w3.org/TR/CSP1/", - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 14 - }, - "owners": [ - "mkwst@chromium.org", - "abarth@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 14, - "flag": false, - "bug": "http://crbug.com/160081", - "intervention": false - }, - "opera": { - "android": 15, - "desktop": 15 - }, - "edge": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "Mixed signals", - "val": 3 - } - } - }, - "summary": "Allows you to create a whitelist of sources of trusted content, and instructs the browser to only execute or render resources from those sources.", - "id": 5205088045891584, - "resources": {} - }, - { - "category": "Multimedia", - "updated": { - "when": "2017-06-14 18:29:12.021220", - "by": "ericbidelman@google.com" - }, - "name": "Quota Management API", - "comments": "", - "standards": { - "status": { - "text": "Working draft or equivalent", - "val": 3 - }, - "footprint": { - "val": 2 - }, - "spec": "http://www.w3.org/TR/quota-api/", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Public support", - "val": 3 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 14 - }, - "owners": [ - "kinuko@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 14, - "flag": false, - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "url": "http://status.modern.ie/quotamanagementapi", - "text": "Public skepticism", - "val": 6 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "Positive", - "val": 2 - } - } - }, - "summary": "This API can be used to check how much quota an app/origin is using.", - "id": 6218562888794112, - "resources": {} - }, - { - "category": "File APIs", - "updated": { - "when": "2018-04-25 05:44:21.006320", - "by": "Patket@microsoft.com" - }, - "name": "a[download] attribute", - "comments": "", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 4 - }, - "spec": "http://whatwg.org/html#downloading-resources", - "visibility": { - "text": "Only a very small number of web developers will care about", - "val": 4 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://developer.mozilla.org/en-US/Firefox/Releases/20#HTML", - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 14 - }, - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 14, - "flag": false, - "intervention": false - }, - "opera": { - "android": 15, - "desktop": 15 - }, - "edge": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "text": "Public skepticism", - "val": 6 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "When used on an , this attribute signifies that the resource it points to should be downloaded by the browser rather than navigating to it. ", - "id": 6473924464345088, - "resources": { - "docs": [ - "https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-download" - ] - } - }, - { - "category": "File APIs", - "updated": { - "when": "2017-06-22 20:11:07.749680", - "by": "ericbidelman@google.com" - }, - "first_of_milestone": true, - "name": "File System API (Chromium)", - "comments": "Mozilla submitted a different API proposal to WebApps WG (http://w3c.github.io/filesystem-api/). Discussions ongoing http://www.w3.org/2013/11/11-webapps-minutes.html#item04", - "standards": { - "status": { - "text": "Working draft or equivalent", - "val": 3 - }, - "footprint": { - "val": 1 - }, - "spec": "http://dev.w3.org/2009/dap/file-system/file-dir-sys.html", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Mixed public signals", - "val": 4 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 13 - }, - "owners": [ - "ericu@chromium.org" - ], - "prefixed": true, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 13, - "flag": false, - "intervention": false - }, - "opera": { - "android": 15, - "desktop": 15 - }, - "edge": { - "view": { - "text": "Public skepticism", - "val": 6 - } - }, - "safari": { - "view": { - "text": "Opposed", - "val": 7 - } - }, - "webdev": { - "view": { - "text": "Positive", - "val": 2 - } - } - }, - "summary": "With the FileSystem API, a web app can create, read, navigate, and write to a sandboxed section of the user's local file system.", - "id": 5452478162141184, - "resources": { - "docs": [ - "http://www.html5rocks.com/en/tutorials/file/filesystem/", - "https://developer.mozilla.org/en-US/docs/Web/API/FileSystem" - ], - "samples": [ - "http://www.htmlfivewow.com/demos/terminal/terminal.html" - ] - } - }, - { - "category": "Performance", - "updated": { - "when": "2017-06-14 18:28:42.692530", - "by": "ericbidelman@google.com" - }, - "name": "Navigation Timing API", - "comments": "", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 2 - }, - "spec": "https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/NavigationTiming/Overview.html", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 13 - }, - "owners": [ - "simonjames@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 13, - "flag": false, - "intervention": false - }, - "opera": { - "android": 15, - "desktop": 15 - }, - "edge": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "text": "Public skepticism", - "val": 6 - } - }, - "webdev": { - "view": { - "text": "Positive", - "val": 2 - } - } - }, - "summary": "Allows web applications to access timing information related to navigation and elements.", - "id": 5584144679567360, - "resources": { - "docs": [ - "https://developer.mozilla.org/en-US/docs/Navigation_timing" - ], - "samples": [ - "http://simpl.info/navigationtiming/" - ] - } - }, - { - "category": "Performance", - "updated": { - "when": "2017-06-14 18:28:36.847560", - "by": "ericbidelman@google.com" - }, - "name": "Typed Arrays", - "comments": "", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 2 - }, - "spec": "http://www.khronos.org/registry/typedarray/specs/latest/", - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 13 - }, - "owners": [ - "kbr@chromium.org", - "dslomov@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 13, - "flag": false, - "android": 13, - "intervention": false - }, - "opera": { - "android": 11, - "desktop": 11 - }, - "edge": { - "view": { - "url": "http://msdn.microsoft.com/en-us/library/ie/br212485", - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "Buffers for holding binary data and working with WebGL & Audio API: ArrayBuffer, Float32Array , Int16Array, Uint8Array, etc.)", - "id": 5135818813341696, - "resources": { - "docs": [ - "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays" - ] - } - }, - { - "category": "Multimedia", - "updated": { - "when": "2018-04-25 05:42:25.317430", - "by": "Patket@microsoft.com" - }, - "name": "Web SQL Database", - "comments": "Demo: simpl.info/websql", - "standards": { - "status": { - "text": "No public standards discussion", - "val": 6 - }, - "footprint": { - "val": 1 - }, - "spec": "http://www.w3.org/TR/webdatabase/", - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Opposed", - "val": 7 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 13 - }, - "owners": [ - "michaeln@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 13, - "flag": false, - "intervention": false - }, - "opera": { - "android": 10, - "desktop": 10 - }, - "edge": { - "view": { - "url": "http://status.modern.ie/websqldatabase", - "text": "Opposed", - "val": 7 - } - }, - "safari": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "Positive", - "val": 2 - } - } - }, - "summary": "API exposing an SQLite database ", - "id": 6330987952734208, - "resources": {} - }, - { - "category": "Misc", - "updated": { - "when": "2018-04-25 05:41:35.913300", - "by": "Patket@microsoft.com" - }, - "first_of_milestone": true, - "name": "
/", - "comments": "", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 3 - }, - "spec": "http://whatwg.org/html#the-details-element", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://bugzilla.mozilla.org/show_bug.cgi?id=591737", - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 12 - }, - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 12, - "flag": false, - "intervention": false - }, - "opera": { - "android": 15, - "desktop": 15 - }, - "edge": { - "view": { - "url": "https://wpdev.uservoice.com/forums/257854-microsoft-edge-developer/suggestions/6261266-details-summary-elements", - "text": "In development", - "val": 2 - } - }, - "safari": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "Interactive widget to show/hide content.", - "id": 5348024557502464, - "resources": { - "docs": [ - "https://developer.mozilla.org/en-US/docs/Web/HTML/Element/details", - "https://developer.mozilla.org/en-US/docs/Web/HTML/Element/summary" - ], - "samples": [ - "http://simpl.info/details/" - ] - } - }, - { - "category": "CSS", - "updated": { - "when": "2017-06-14 18:28:26.853460", - "by": "ericbidelman@google.com" - }, - "name": "Remove support for -webkit-line-box-contain", - "tags": [ - "css", - "leading", - "glyphs", - "text", - "layout", - "line-box-contain" - ], - "comments": "", - "standards": { - "status": { - "text": "Working draft or equivalent", - "val": 3 - }, - "footprint": { - "val": 4 - }, - "spec": "http://www.w3.org/TR/2001/WD-css3-box-20010726/#the-line-box-contain", - "visibility": { - "text": "Only a very small number of web developers will care about", - "val": 4 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 12 - }, - "owners": [ - "wkorman@chromium.org" - ], - "prefixed": true, - "origintrial": false, - "webview": 12, - "ios": 12, - "blink_components": [ - "Blink" - ], - "desktop": 12, - "flag": false, - "android": 12, - "bug": "http://crbug.com/522215", - "intervention": false - }, - "opera": { - "android": 0, - "desktop": 0 - }, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "Feature is not part of formal spec and will be subsumed by upcoming css-line-grid spec in discussion. Only supported by Safari among major browsers. Utilization is low.", - "id": 4521139636273152, - "resources": { - "docs": [ - "https://lists.w3.org/Archives/Public/www-style/2014Dec/0288.html" - ], - "samples": [ - "http://jsfiddle.net/6u7Qa/1/" - ] - } - }, - { - "category": "Offline / Storage", - "updated": { - "when": "2018-01-30 20:01:05.272390", - "by": "jsbell@chromium.org" - }, - "first_of_milestone": true, - "name": "IndexedDB", - "tags": [ - "indexed db", - "indexeddb", - "idb", - "database" - ], - "comments": "", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 1 - }, - "spec": "https://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html", - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 11 - }, - "owners": [ - "jsbell@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 11, - "flag": false, - "bug": "http://crbug.com/158629", - "intervention": false - }, - "opera": { - "android": 15, - "desktop": 15 - }, - "edge": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "text": "In development", - "val": 2 - } - }, - "webdev": { - "view": { - "text": "Positive", - "val": 2 - } - } - }, - "summary": "An asynchronous client-side storage API offering fast access to large amounts of structured data", - "id": 6507459568992256, - "resources": { - "docs": [ - "https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Using_IndexedDB" - ] - } - }, - { - "category": "User input", - "updated": { - "when": "2018-04-25 05:38:07.857270", - "by": "Patket@microsoft.com" - }, - "first_of_milestone": true, - "name": "Form validation", - "comments": "Safari has constraint validation API, but no interactive form validation.\r\n", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 2 - }, - "spec": "http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#constraints", - "visibility": { - "text": "Likely in mainstream tech news", - "val": 1 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 10 - }, - "owners": [ - "keishi@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 10, - "flag": false, - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "Positive", - "val": 2 - } - } - }, - "summary": "Constraint validation API and interactive form validation UI.\r\n", - "id": 6091813840486400, - "resources": { - "docs": [ - "https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Forms/Data_form_validation" - ] - } - }, - { - "category": "JavaScript", - "updated": { - "when": "2018-04-25 05:36:11.800720", - "by": "Patket@microsoft.com" - }, - "name": "Runtime error reporting: ErrorEvent.", - "comments": "", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 2 - }, - "spec": "http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#runtime-script-errors", - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onerror", - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 10 - }, - "owners": [ - "mkwst@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "ios": 18, - "blink_components": [ - "Blink" - ], - "desktop": 10, - "flag": false, - "android": 18, - "intervention": false - }, - "opera": { - "android": 11, - "desktop": 11 - }, - "edge": { - "view": { - "url": "https://status.modern.ie/runtimeerrorreportingerrorevent", - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "Positive", - "val": 2 - } - } - }, - "summary": "Unhandled exceptions trigger the 'window.onerror' callback (or 'self.onerror' inside Workers) for centralized handling.", - "id": 6416612420747264, - "resources": {} - }, - { - "category": "File APIs", - "updated": { - "when": "2017-06-14 18:29:08.943850", - "by": "ericbidelman@google.com" - }, - "first_of_milestone": true, - "name": "FileWriter", - "comments": "Work on the spec has been discontinued in April 2014 http://www.w3.org/TR/2014/NOTE-file-writer-api-20140424/", - "standards": { - "status": { - "text": "No public standards discussion", - "val": 6 - }, - "footprint": { - "val": 3 - }, - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Public skepticism", - "val": 6 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 9 - }, - "owners": [ - "ericu@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 9, - "flag": false, - "intervention": false - }, - "opera": { - "android": 15, - "desktop": 15 - }, - "edge": { - "view": { - "text": "Public skepticism", - "val": 6 - } - }, - "safari": { - "view": { - "text": "Public skepticism", - "val": 6 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "Synchronous API added in Chrome 9 for Workers", - "id": 5963201313243136, - "resources": {} - }, - { - "category": "Graphics", - "updated": { - "when": "2017-06-14 18:29:09.809290", - "by": "ericbidelman@google.com" - }, - "name": "WebGL (Canvas 3D)", - "comments": "", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 1 - }, - "spec": "http://www.khronos.org/registry/webgl/specs/latest/", - "visibility": { - "text": "Likely in mainstream tech news", - "val": 1 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://developer.mozilla.org/en-US/docs/Web/WebGL", - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 9 - }, - "owners": [ - "vangelis@chromium.org", - "kbr@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 9, - "flag": false, - "android": 30, - "intervention": false - }, - "opera": { - "android": 12, - "desktop": 12 - }, - "edge": { - "view": { - "url": "http://techcrunch.com/2013/06/26/microsoft-confirms-webgl-support-for-internet-explorer-11/", - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "url": "http://support.apple.com/kb/PH11926", - "text": "In development", - "val": 2 - } - }, - "webdev": { - "view": { - "text": "Strongly positive", - "val": 1 - } - } - }, - "summary": "3D rendering via the element. ", - "id": 6049512976023552, - "resources": { - "docs": [ - "https://developer.mozilla.org/en-US/docs/Web/WebGL" - ], - "samples": [ - "http://simpl.info/webgl/" - ] - } - }, - { - "category": "Graphics", - "updated": { - "when": "2018-06-22 04:00:52.687565", - "by": "myakura.web@gmail.com" - }, - "name": "WebP image format support", - "comments": "", - "standards": { - "status": { - "text": "Public discussion", - "val": 5 - }, - "footprint": { - "val": 3 - }, - "spec": "https://developers.google.com/speed/webp/docs/riff_container", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Mixed public signals", - "val": 4 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 9 - }, - "owners": [ - "skonig@chromium.org" - ], - "prefixed": true, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 9, - "flag": false, - "intervention": false - }, - "opera": { - "android": 11, - "desktop": 11 - }, - "edge": { - "view": { - "url": "https://developer.microsoft.com/en-us/microsoft-edge/platform/status/webpimageformat/?q=webp%20image%20format", - "text": "In development", - "val": 2 - } - }, - "safari": { - "view": { - "text": "Public skepticism", - "val": 6 - } - }, - "webdev": { - "view": { - "text": "Positive", - "val": 2 - } - } - }, - "summary": "WebP is an image format that provides lossless and lossy compression for images on the web. WebP lossless images are 26% smaller in size compared to PNGs; lossy is 35% smaller than JPEG.", - "id": 6471725441089536, - "resources": {} - }, - { - "category": "DOM", - "updated": { - "when": "2017-06-14 18:28:29.283810", - "by": "ericbidelman@google.com" - }, - "name": "matchMedia", - "comments": "", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 3 - }, - "spec": "http://dev.w3.org/csswg/cssom-view/#widl-Window-matchMedia-MediaQueryList-DOMString-query", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 9 - }, - "owners": [ - "luiz@webkit" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 9, - "flag": false, - "bug": "http://wkbug.com/37205", - "intervention": false - }, - "opera": { - "android": 12, - "desktop": 12 - }, - "edge": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "Positive", - "val": 2 - } - } - }, - "summary": "API for testing if a given media query will apply.", - "id": 4677872220372992, - "resources": { - "docs": [ - "https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Testing_media_queries" - ] - } - }, - { - "category": "DOM", - "updated": { - "when": "2017-06-14 18:28:47.531200", - "by": "ericbidelman@google.com" - }, - "name": "spellcheck attribute", - "comments": "", - "standards": { - "status": { - "text": "De-facto standard", - "val": 1 - }, - "footprint": { - "val": 4 - }, - "spec": "https://html.spec.whatwg.org/multipage/interaction.html#spelling-and-grammar-checking", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "url": "http://www.w3schools.com/tags/att_global_spellcheck.asp", - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 9 - }, - "owners": [ - "miguelg@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 9, - "flag": false, - "android": 47, - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "url": "http://www.w3schools.com/tags/att_global_spellcheck.asp", - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "url": "http://www.w3schools.com/tags/att_global_spellcheck.asp", - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "Strongly positive", - "val": 1 - } - } - }, - "summary": "Allows content editable elements to be spell checked", - "id": 5653714173952000, - "resources": {} - }, - { - "category": "Device", - "updated": { - "when": "2018-04-25 05:29:59.416320", - "by": "Patket@microsoft.com" - }, - "first_of_milestone": true, - "name": "Device Orientation", - "comments": "", - "standards": { - "status": { - "text": "Working draft or equivalent", - "val": 3 - }, - "footprint": { - "val": 2 - }, - "spec": "http://dev.w3.org/geo/api/spec-source-orientation.html", - "visibility": { - "text": "Likely in mainstream tech news", - "val": 1 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 7 - }, - "owners": [ - "timvolodine@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 7, - "flag": false, - "bug": "http://crbug.com/44654", - "intervention": false - }, - "opera": { - "android": 12, - "desktop": 15 - }, - "edge": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "Strongly positive", - "val": 1 - } - } - }, - "summary": "Provides access to device's physical orientation", - "id": 5874690627207168, - "resources": { - "docs": [ - "https://developer.mozilla.org/en-US/docs/Web/API/Detecting_device_orientation" - ], - "samples": [ - "http://simpl.info/deviceorientation/" - ] - } - }, - { - "category": "File APIs", - "updated": { - "when": "2017-06-14 18:28:37.393410", - "by": "ericbidelman@google.com" - }, - "name": "FileReader", - "comments": "", - "standards": { - "status": { - "text": "Working draft or equivalent", - "val": 3 - }, - "footprint": { - "val": 3 - }, - "spec": "http://dev.w3.org/2006/webapi/FileAPI/#dfn-filereader", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 7 - }, - "owners": [ - "jianli@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 7, - "flag": false, - "intervention": false - }, - "opera": { - "android": 11, - "desktop": 11 - }, - "edge": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "The FileReader object lets web applications asynchronously read the contents of files (or raw data buffers) stored on the user's computer, using File or Blob objects to specify the file or data to read.", - "id": 5171003185430528, - "resources": { - "docs": [ - "https://developer.mozilla.org/en-US/docs/Web/API/FileReader" - ] - } - }, - { - "category": "Network / Connectivity", - "updated": { - "when": "2017-06-14 18:28:36.973820", - "by": "ericbidelman@google.com" - }, - "name": "HTTP/2 (SPDY)", - "comments": "", - "standards": { - "status": { - "text": "Working draft or equivalent", - "val": 3 - }, - "footprint": { - "val": 4 - }, - "spec": "http://http2.github.io/http2-spec", - "visibility": { - "text": "Likely in mainstream tech news", - "val": 1 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 7 - }, - "owners": [ - "willchan@chromium.org", - "fenix@google.com" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 7, - "flag": false, - "intervention": false - }, - "opera": { - "android": 12, - "desktop": 12 - }, - "edge": { - "view": { - "url": "http://www.extremetech.com/computing/159779-windows-8-1-and-internet-explorer-11-will-support-webgl-spdy-but-no-webrtc", - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "url": "http://live.arstechnica.com/apples-wwdc-2014-keynote/images/IMG_9669.JPG", - "text": "In development", - "val": 2 - } - }, - "webdev": { - "view": { - "text": "Positive", - "val": 2 - } - } - }, - "summary": "A fast, open protocol for transporting web content.", - "id": 5152586365665280, - "resources": {} - }, - { - "category": "Graphics", - "updated": { - "when": "2017-06-14 18:29:11.674040", - "by": "ericbidelman@google.com" - }, - "first_of_milestone": true, - "name": "Application Cache", - "comments": "", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 1 - }, - "spec": "http://whatwg.org/html/#applicationcache", - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 6 - }, - "owners": [ - "michaeln@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 6, - "flag": false, - "intervention": false - }, - "opera": { - "android": 11, - "desktop": 10 - }, - "edge": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "Negative", - "val": 5 - } - } - }, - "summary": "Enables web pages to work without the user being connected to the internet", - "id": 6192449487634432, - "resources": { - "docs": [ - "https://developer.mozilla.org/en-US/docs/Web/HTML/Using_the_application_cache" - ] - } - }, - { - "category": "DOM", - "updated": { - "when": "2017-06-14 18:28:39.052080", - "by": "ericbidelman@google.com" - }, - "name": "EventSource", - "comments": "", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 2 - }, - "spec": "http://whatwg.org/html#server-sent-events", - "visibility": { - "text": "Only a very small number of web developers will care about", - "val": 4 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 6 - }, - "owners": [ - "?@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 6, - "flag": false, - "intervention": false - }, - "opera": { - "android": 10, - "desktop": 9 - }, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "Also called Server-sent Events, these are push notifications from the server received as DOM events.", - "id": 5311740673785856, - "resources": { - "docs": [ - "https://developer.mozilla.org/en-US/docs/Web/API/EventSource" - ], - "samples": [ - "http://simpl.info/eventsource/" - ] - } - }, - { - "category": "Device", - "updated": { - "when": "2017-11-08 03:19:33.700750", - "by": "jmedley@google.com" - }, - "first_of_milestone": true, - "name": "Geolocation", - "comments": "Intent to Change - Geolocation maximum age\r\n\r\nhttp://crbug.com/769231", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 2 - }, - "spec": "http://www.w3.org/TR/geolocation-API/", - "visibility": { - "text": "Likely in mainstream tech news", - "val": 1 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 5 - }, - "owners": [ - "device-dev@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 5, - "flag": false, - "bug": "https://bugs.webkit.org/show_bug.cgi?id=21475", - "intervention": false - }, - "opera": { - "android": 11, - "desktop": 10 - }, - "edge": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "Strongly positive", - "val": 1 - } - } - }, - "summary": "Provides access to device's physical location. https://bugs.chromium.org/p/chromium/issues/detail?id=769231", - "id": 6348855016685568, - "resources": { - "docs": [ - "https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/Using_geolocation" - ], - "samples": [ - "http://simpl.info/geolocation/" - ] - } - }, - { - "category": "Realtime / Communication", - "updated": { - "when": "2018-04-25 05:25:10.394110", - "by": "Patket@microsoft.com" - }, - "name": "Notifications", - "comments": "The legacy window.webkitNotifications was deprecated in Chrome 33. Use the new one: https://developer.mozilla.org/en-US/docs/WebAPI/Using_Web_Notifications", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 3 - }, - "spec": "https://notifications.spec.whatwg.org/", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 5 - }, - "owners": [ - "peter@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 5, - "flag": false, - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "url": "https://developer.microsoft.com/en-us/microsoft-edge/platform/status/webnotifications/?q=web%20notifications", - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "An API for displaying simple notifications to the user. Chrome does not yet support displaying them from a Web Worker.", - "id": 5064350557536256, - "resources": { - "docs": [ - "https://developer.mozilla.org/en-US/docs/Web/API/Notification/Using_Web_Notifications" - ], - "samples": [ - "http://simpl.info/notification/" - ] - } - }, - { - "category": "Offline / Storage", - "updated": { - "when": "2018-01-30 20:05:35.579600", - "by": "jsbell@chromium.org" - }, - "name": "Web Storage", - "comments": "", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 2 - }, - "spec": "http://whatwg.org/html#webstorage", - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 5 - }, - "owners": [ - "michaeln@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 5, - "flag": false, - "android": 18, - "bug": "http://wkbug.com/41645", - "intervention": false - }, - "opera": { - "android": 11, - "desktop": 10 - }, - "edge": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "Strongly positive", - "val": 1 - } - } - }, - "summary": "Refers to both localStorage and sessionStorage", - "id": 5345825534246912, - "resources": { - "docs": [ - "https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API" - ] - } - }, - { - "category": "Security", - "updated": { - "when": "2018-04-25 05:23:34.709290", - "by": "Patket@microsoft.com" - }, - "first_of_milestone": true, - "name": "HTTP Strict Transport Security (HSTS)", - "comments": "", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 3 - }, - "spec": "http://tools.ietf.org/html/rfc6797", - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://developer.mozilla.org/en-US/docs/Security/HTTP_Strict_Transport_Security", - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 4 - }, - "owners": [ - "mkwst@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 4, - "flag": false, - "intervention": false - }, - "opera": { - "android": 21, - "desktop": 12 - }, - "edge": { - "view": { - "url": "https://developer.microsoft.com/en-us/microsoft-edge/platform/status/httpstricttransportsecurityhsts/?q=hsts", - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "url": "http://apple.stackexchange.com/questions/107699/does-safari-on-os-x-mavericks-ignore-browsing-history-preferences", - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "Positive", - "val": 2 - } - } - }, - "summary": "Header to inform the browser to always request a given domain over SSL, reducing MITM attack surface area.", - "id": 4941480133132288, - "resources": {} - }, - { - "category": "CSS", - "updated": { - "when": "2017-06-14 18:28:43.166850", - "by": "ericbidelman@google.com" - }, - "name": "Proprietary CSS reflections", - "comments": "", - "standards": { - "status": { - "text": "Public discussion", - "val": 5 - }, - "footprint": { - "val": 3 - }, - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 4 - }, - "owners": [ - "?@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 4, - "flag": false, - "intervention": false - }, - "opera": { - "android": 15, - "desktop": 15 - }, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "-webkit-box-reflect", - "id": 5627300510957568, - "resources": {} - }, - { - "category": "CSS", - "updated": { - "when": "2018-04-25 05:20:00.915860", - "by": "Patket@microsoft.com" - }, - "name": "Proprietary mask properties", - "comments": "", - "standards": { - "status": { - "text": "Public discussion", - "val": 5 - }, - "footprint": { - "val": 3 - }, - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 4 - }, - "prefixed": true, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 4, - "flag": false, - "android": 28, - "intervention": false - }, - "opera": { - "android": 15, - "desktop": 15 - }, - "edge": { - "view": { - "text": "In development", - "val": 2 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "-webkit-mask-* (-webkit-mask-clip)", - "id": 6500037865504768, - "resources": {} - }, - { - "category": "Network / Connectivity", - "updated": { - "when": "2017-06-14 18:29:15.776050", - "by": "ericbidelman@google.com" - }, - "name": "WebSocket", - "comments": "M32 permessage-deflate extension\r\nM30 Strict subprotocol checking\r\nM23 ArrayBufferView\r\nM16 RFC 6455\r\nM15 Binary support\r\nM14 HyBI 08\r\nM6 Hixie 76\r\nM4 Hixie 75", - "standards": { - "status": { - "text": "Working draft or equivalent", - "val": 3 - }, - "footprint": { - "val": 1 - }, - "spec": "http://dev.w3.org/html5/websockets/", - "visibility": { - "text": "Likely in mainstream tech news", - "val": 1 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 4 - }, - "owners": [ - "tyoshino@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 4, - "flag": false, - "bug": "http://crbug.com/12497", - "intervention": false - }, - "opera": { - "android": 11, - "desktop": 11 - }, - "edge": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "Strongly positive", - "val": 1 - } - } - }, - "summary": "The WebSocket JavaScript API provides a simple API for bi-directional communication with web servers.\r\n\r\n\r\nThe WebSocket network protocol enables low overhead bi-directional communication with web servers over a persistent TCP connection.", - "id": 6555138000945152, - "resources": { - "docs": [ - "https://developer.mozilla.org/en-US/docs/Web/API/WebSocket" - ] - } - }, - { - "category": "Security", - "updated": { - "when": "2017-06-14 18:29:04.447250", - "by": "ericbidelman@google.com" - }, - "name": "X-Frame-Options", - "comments": "", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 2 - }, - "spec": "https://tools.ietf.org/html/rfc7034", - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 4 - }, - "owners": [ - "mkwst@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "ios": 4, - "blink_components": [ - "Blink" - ], - "desktop": 4, - "flag": false, - "android": 4, - "webview": 4, - "intervention": false - }, - "opera": { - "android": 4, - "desktop": 4 - }, - "edge": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "Positive", - "val": 2 - } - } - }, - "summary": "The X-Frame-Options HTTP header field protects pages against clickjacking attacks by allowing sites to opt-out of being embedded in cross-origin (or any) contexts.", - "id": 5760041927835648, - "resources": {} - }, - { - "category": "Realtime / Communication", - "updated": { - "when": "2017-06-14 18:29:17.918580", - "by": "ericbidelman@google.com" - }, - "first_of_milestone": true, - "name": "Message Channels", - "comments": "", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 3 - }, - "spec": "http://whatwg.org/html#message-channels", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://bugzilla.mozilla.org/show_bug.cgi?id=677638", - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 2 - }, - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 2, - "flag": false, - "intervention": false - }, - "opera": { - "android": 11, - "desktop": 10 - }, - "edge": { - "view": { - "url": "http://msdn.microsoft.com/en-us/library/ie/hh673525(v=vs.85).aspx", - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "url": "http://trac.webkit.org/browser/trunk/WebCore/dom/MessageChannel.cpp?rev=44915", - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "Positive", - "val": 2 - } - } - }, - "summary": "A messaging system that allows documents to communicate with each other regardless of their source domain, in a way designed to not enable cross-site scripting attacks.", - "id": 6710044586409984, - "resources": { - "docs": [ - "https://developer.mozilla.org/en-US/docs/Web/API/MessageChannel", - "https://dev.opera.com/articles/window-postmessage-messagechannel/#channel" - ] - } - }, - { - "category": "CSS", - "updated": { - "when": "2018-04-25 05:16:49.113250", - "by": "Patket@microsoft.com" - }, - "first_of_milestone": true, - "name": "CSS Masking", - "comments": "Google, Adobe, and Mozilla are editing the spec: http://www.w3.org/TR/css-masking/", - "standards": { - "status": { - "text": "Working draft or equivalent", - "val": 3 - }, - "footprint": { - "val": 2 - }, - "spec": "http://dev.w3.org/fxtf/css-masking-1/", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "text": "In development", - "val": 2 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 1 - }, - "owners": [ - "tabatkins@google.com" - ], - "prefixed": true, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 1, - "flag": false, - "intervention": false - }, - "opera": { - "android": 15, - "desktop": 15 - }, - "edge": { - "view": { - "url": "https://dev.modern.ie/platform/status/masks", - "text": "In development", - "val": 2 - } - }, - "safari": { - "view": { - "text": "In development", - "val": 2 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "Allows hiding of portions of a visible elements.", - "id": 5381559662149632, - "resources": { - "docs": [ - "https://developer.mozilla.org/en-US/docs/Web/CSS/mask" - ] - } - }, - { - "category": "CSS", - "updated": { - "when": "2018-04-25 05:14:25.723140", - "by": "Patket@microsoft.com" - }, - "name": "CSS `text` properties", - "comments": "", - "standards": { - "status": { - "text": "Working draft or equivalent", - "val": 3 - }, - "footprint": { - "val": 3 - }, - "spec": "https://www.w3.org/TR/css3-text/", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "text": "In development", - "val": 2 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 1 - }, - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 1, - "flag": false, - "intervention": false - }, - "opera": { - "android": 15, - "desktop": 15 - }, - "edge": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "text": "In development", - "val": 2 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "CSS properties used for manipulating text (decoration, line breaking, processing model...)", - "id": 4775453877338112, - "resources": {} - }, - { - "category": "Graphics", - "updated": { - "when": "2017-06-14 18:28:35.962310", - "by": "ericbidelman@google.com" - }, - "name": "Canvas", - "comments": "", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 1 - }, - "spec": "http://whatwg.org/html#2dcontext", - "visibility": { - "text": "Likely in mainstream tech news", - "val": 1 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 1 - }, - "owners": [ - "wiltzius@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 1, - "flag": false, - "android": 18, - "bug": "http://crbug.com/281529", - "intervention": false - }, - "opera": { - "android": 19, - "desktop": 9 - }, - "edge": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "Strongly positive", - "val": 1 - } - } - }, - "summary": "Provides an API to draw 2D graphics ", - "id": 5100084685438976, - "resources": { - "docs": [ - "https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial" - ] - } - }, - { - "category": "Misc", - "updated": { - "when": "2017-06-14 18:28:30.406110", - "by": "ericbidelman@google.com" - }, - "name": "XSL Transformations (XSLT)", - "comments": "", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 1 - }, - "spec": "http://www.w3.org/TR/xslt", - "visibility": { - "text": "Only a very small number of web developers will care about", - "val": 4 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://developer.mozilla.org/en-US/Firefox/Releases/1.5", - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 1 - }, - "owners": [ - "dominicc@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "ios": 1, - "blink_components": [ - "Blink" - ], - "desktop": 1, - "flag": false, - "android": 1, - "webview": 1, - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "url": "https://msdn.microsoft.com/en-us/library/ms760232(v=vs.85).aspx", - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "url": "https://www.webkit.org/blog/122/webkit-3-10-new-things/", - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "Mixed signals", - "val": 3 - } - } - }, - "summary": "XSLT is a declarative language for transforming XML.", - "id": 4730954895589376, - "resources": { - "docs": [ - "https://developer.mozilla.org/en-US/docs/Web/XSLT" - ], - "samples": [ - "https://msdn.microsoft.com/en-us/library/ms765388(v=vs.85).aspx" - ] - } - }, - { - "category": "Multimedia", - "updated": { - "when": "2017-06-14 18:28:31.591020", - "by": "ericbidelman@google.com" - }, - "name": "postMessage", - "comments": "", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 4 - }, - "spec": "http://whatwg.org/html#dom-window-postmessage", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": 1 - }, - "owners": [ - "abarth@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 1, - "flag": false, - "bug": "http://crbug.com/158865", - "intervention": false - }, - "opera": { - "android": 10, - "desktop": 9 - }, - "edge": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "Positive", - "val": 2 - } - } - }, - "summary": "Safely enables cross-origin communication.", - "id": 4786174115708928, - "resources": { - "docs": [ - "https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage" - ], - "samples": [ - "http://simpl.info/postmessage/" - ] - } - }, - { - "category": "CSS", - "updated": { - "when": "2017-06-14 18:28:28.184370", - "by": "ericbidelman@google.com" - }, - "name": "-webkit-canvas deprecation", - "comments": "", - "standards": { - "status": { - "text": "No public standards discussion", - "val": 6 - }, - "footprint": { - "val": 2 - }, - "visibility": { - "text": "Only a very small number of web developers will care about", - "val": 4 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "Deprecated", - "val": 6, - "milestone_str": "Deprecated" - }, - "owners": [ - "chrishtr@chromium.org" - ], - "prefixed": true, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "bug": "http://crbug.com/475655", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "Mixed signals", - "val": 3 - } - } - }, - "summary": "The -webkit-canvas CSS feature is deprecated as of Chrome 44.", - "id": 4611270867156992, - "resources": {} - }, - { - "category": "Graphics", - "updated": { - "when": "2017-06-14 18:28:59.056080", - "by": "ericbidelman@google.com" - }, - "name": "-webkit-canvas removal", - "comments": "", - "standards": { - "status": { - "text": "Editor's draft", - "val": 4 - }, - "footprint": { - "val": 2 - }, - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "Removed", - "val": 7, - "milestone_str": "Removed" - }, - "owners": [ - "chrishtr@chromium.org" - ], - "prefixed": true, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "desktop": 0, - "flag": false, - "bug": "http://crbug.com/475655", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "The WebKit/Blink-specific -webkit-canvas CSS feature is being removed. See this discussion for more information:\r\n\r\nhttps://groups.google.com/a/chromium.org/forum/#!searchin/blink-dev/webkit-canvas/blink-dev/WvqvdsmiQzg/a6nAs5L_RXkJ", - "id": 5722125839106048, - "resources": {} - }, - { - "category": "User input", - "updated": { - "when": "2017-06-14 18:28:48.114310", - "by": "ericbidelman@google.com" - }, - "name": "Android on-screen keyboard doesn't resize layout", - "tags": [ - "keyboard", - "osk", - "resize", - "layout" - ], - "comments": "", - "standards": { - "status": { - "text": "No public standards discussion", - "val": 6 - }, - "footprint": { - "val": 5 - }, - "visibility": { - "text": "Only a very small number of web developers will care about", - "val": 4 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "Behind a flag", - "val": 4, - "milestone_str": "Behind a flag" - }, - "owners": [ - "bokan@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink>Input" - ], - "flag": true, - "bug": "http://crbug.com/404315", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "The Android keyboard will resize only the visual viewport - not the layout viewport. This means it'll have no effect on the page layout of location of position: fixed elements.", - "id": 5656077370654720, - "resources": { - "docs": [ - "https://docs.google.com/document/d/1wPEOoQapG2zdOUr9eCBKYBML3MGdNV3EiOMN5hNbkws/edit?usp=sharing" - ], - "samples": [ - "http://bokand.github.io/keyboardtest.html" - ] - } - }, - { - "category": "Security", - "updated": { - "when": "2017-06-14 18:28:52.216340", - "by": "ericbidelman@google.com" - }, - "name": "CSP 'manifest-src' rule for Web App Manifest", - "tags": [ - "Web App Manifest", - "CSP" - ], - "comments": "", - "standards": { - "status": { - "text": "Editor's draft", - "val": 4 - }, - "footprint": { - "val": 4 - }, - "spec": "https://w3c.github.io/webappsec/specs/content-security-policy/#directive-manifest-src", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://bugzilla.mozilla.org/show_bug.cgi?id=1089255", - "text": "In development", - "val": 2 - } - }, - "chrome": { - "status": { - "text": "Behind a flag", - "val": 4, - "milestone_str": "Behind a flag" - }, - "owners": [ - "kenneth.r.christiansen@intel.com" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": true, - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "Positive", - "val": 2 - } - } - }, - "summary": "Allows setting a CSP policy for fetching the Web App Manifest", - "id": 5679927315660800, - "resources": {} - }, - { - "category": "CSS", - "updated": { - "when": "2017-06-14 18:28:30.248920", - "by": "ericbidelman@google.com" - }, - "name": "CSS -webkit-user-modify", - "comments": "", - "standards": { - "status": { - "text": "No public standards discussion", - "val": 6 - }, - "footprint": { - "val": 2 - }, - "visibility": { - "text": "Only a very small number of web developers will care about", - "val": 4 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": "Enabled by default" - }, - "owners": [ - "xiaochengh@chromium.org" - ], - "prefixed": true, - "origintrial": false, - "blink_components": [ - "Blink>Editing, Blink>CSS" - ], - "flag": false, - "bug": "http://crbug.com/687462", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "-webkit-user-modify is a non-standard CSS property inherited from WebKit. It was introduced to define editability on elements. \r\n\r\nNow we have a better alternative: the HTML5 contenteditable attribute. -webkit-user-modify should leave the stage.", - "id": 4725222129270784, - "resources": { - "docs": [ - "https://docs.google.com/a/chromium.org/document/d/1HlI8j-tJAG2sB0o2e7Xl4qCc0UC0mrOCk9UVO2leC1g/edit?usp=sharing" - ] - } - }, - { - "category": "CSS", - "updated": { - "when": "2017-12-04 09:53:16.325370", - "by": "myakura.web@gmail.com" - }, - "name": "CSS @apply Rule", - "comments": "http://www.xanthir.com/b4o00\r\nhttps://bugs.chromium.org/p/chromium/issues/detail?id=637419#c9\r\nremoved in https://chromium.googlesource.com/chromium/src/+/5874fca7324e4523a4bdecc8999bdadfdb6c4eff", - "standards": { - "status": { - "text": "Editor's draft", - "val": 4 - }, - "footprint": { - "val": 2 - }, - "spec": "https://tabatkins.github.io/specs/css-apply-rule/", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://lists.w3.org/Archives/Public/www-style/2015Sep/0041.html", - "text": "Mixed public signals", - "val": 4 - } - }, - "chrome": { - "status": { - "text": "Removed", - "val": 7, - "milestone_str": "Removed" - }, - "owners": [ - "timloh@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink>CSS" - ], - "flag": false, - "bug": "https://crbug.com/586974", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "Mixed public signals", - "val": 4 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "Mixed signals", - "val": 3 - } - } - }, - "summary": "The CSS @apply rule allows authors to define custom properties which contain declaration lists and then apply them inside style rules. This allows custom properties to be used for theming in a more extensible way than var() references.", - "id": 5753701012602880, - "resources": {} - }, - { - "category": "CSS", - "updated": { - "when": "2017-06-14 18:28:58.820240", - "by": "ericbidelman@google.com" - }, - "name": "CSS font-size-adjust", - "tags": [ - "css", - "font", - "font-size-adjust" - ], - "comments": "", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 2 - }, - "spec": "http://www.w3.org/TR/css-fonts-3/#propdef-font-size-adjust", - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://bugzilla.mozilla.org/show_bug.cgi?id=130473", - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Behind a flag", - "val": 4, - "milestone_str": "Behind a flag" - }, - "owners": [ - "shivamidow@gmail.com" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": true, - "bug": "http://crbug.com/451346", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "The font-size-adjust CSS property specifies that font size should be chosen based on the height of lowercase letters rather than the height of capital letters. It was once dropped since css 2.1, but newly defined in CSS3 font.", - "id": 5720910061371392, - "resources": { - "docs": [ - "https://developer.mozilla.org/en-US/docs/Web/CSS/font-size-adjust" - ] - } - }, - { - "category": "Graphics", - "updated": { - "when": "2017-06-14 18:29:10.621240", - "by": "ericbidelman@google.com" - }, - "name": "Compositing and Blending in Canvas 2D", - "comments": "", - "standards": { - "status": { - "text": "Working draft or equivalent", - "val": 3 - }, - "footprint": { - "val": 3 - }, - "spec": "http://dev.w3.org/fxtf/compositing-1/#canvascompositingandblending", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": "Enabled by default" - }, - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "bug": "http://crbug.com/229468", - "intervention": false - }, - "opera": { - "android": 17, - "desktop": 17 - }, - "edge": { - "view": { - "text": "Public support", - "val": 3 - } - }, - "safari": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "Positive", - "val": 2 - } - } - }, - "summary": "The canvas 2d context has the globalCompositeOperation attribute that is used to set the current compositing and blending operator.", - "id": 6119881720201216, - "resources": { - "docs": [ - "https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Compositing" - ] - } - }, - { - "category": "CSS", - "updated": { - "when": "2017-06-14 18:28:46.251170", - "by": "ericbidelman@google.com" - }, - "name": "Deprecate and Remove word-wrap and -webkit-line-break styles on contenteditable containers.", - "comments": "", - "standards": { - "status": { - "text": "Public discussion", - "val": 5 - }, - "footprint": { - "val": 5 - }, - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Removed", - "val": 7, - "milestone_str": "Removed" - }, - "owners": [ - "yoichio@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "bug": "https://bugs.chromium.org/p/chromium/issues/detail?id=427135", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "Blink sets wordWrap: break-word and -webkit-line-break:after-white-space by default on contenteditable containers.\r\nIt breaks interoperability.", - "id": 5644926662475776, - "resources": {} - }, - { - "category": "DOM", - "updated": { - "when": "2017-11-15 01:40:41.726960" - }, - "name": "Disable recursive use of NodeFilter functions", - "comments": "", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 5 - }, - "spec": "https://dom.spec.whatwg.org/#concept-traversal-active", - "visibility": { - "text": "Only a very small number of web developers will care about", - "val": 4 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://github.com/whatwg/dom/pull/359", - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": "Enabled by default" - }, - "owners": [ - "rakina@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink>DOM" - ], - "flag": false, - "bug": "https://bugs.chromium.org/p/chromium/issues/detail?id=753271", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "url": "https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/13137309/", - "text": "In development", - "val": 2 - } - }, - "safari": { - "view": { - "url": "https://bugs.webkit.org/show_bug.cgi?id=175312", - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "The spec for node filtering steps was recently updated, adding active flags to avoid recursive invocations of the node traversal function from user-provided NodeFilter functions (in createNodeIterator and createTreeWalker)\r\n\r\nThis is an internal change that adds the active flag property and the active flag checks in the node filtering steps. After this change, user-provided node filter functions can't call another traversal function from within the filter function anymore.", - "id": 5091201086652416, - "resources": { - "samples": [ - "http://jsbin.com/zadepacate/edit?html,console" - ] - } - }, - { - "category": "Offline / Storage", - "updated": { - "when": "2017-07-17 17:41:21.091720", - "by": "jmedley@google.com" - }, - "name": "FTS extension support in WebSQL", - "comments": "Firefox and Edge have not shipped (and do not plan to ship) WebSQL, so the removal of the FTS extension does not apply to them.\r\n\r\nUse counter shipped in M60: https://www.chromestatus.com/metrics/feature/timeline/popularity/1980", - "standards": { - "status": { - "text": "Editor's draft", - "val": 4 - }, - "footprint": { - "val": 4 - }, - "spec": "https://dev.w3.org/html5/webdatabase/", - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "url": "http://caniuse.com/#feat=sql-storage", - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "Removed", - "val": 7, - "milestone_str": "Removed" - }, - "owners": [ - "pwnall@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink>Storage>WebSQL" - ], - "flag": false, - "bug": "https://bugs.chromium.org/p/chromium/issues/detail?id=742518", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "url": "http://caniuse.com/#feat=sql-storage", - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "url": "https://github.com/WebKit/webkit/commit/36ce0a5e2dc2def273c011bef04e58da8129a7d6", - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "WebSQL was implemented in WebKit and Blink as a thin layer on top of SQLite. WebSQL has failed to get traction with other browsers, and the work on the standard has been discontinued.\r\n\r\nDue to the SQLite implementation, WebSQL exposes a full text search extension (FTS3) which has proven difficult to maintain. WebKit has removed FTS support from its WebSQL implementation. Given its low usage, we would like to do the same.", - "id": 5669618848890880, - "resources": { - "samples": [ - "https://gist.github.com/nolanlawson/0264938033aca2201012" - ] - } - }, - { - "category": "Offline / Storage", - "updated": { - "when": "2017-07-13 20:36:00.803730", - "by": "pwnall@chromium.org" - }, - "name": "Full text search (FTS) support in WebSQL", - "tags": [ - "websql", - "fts" - ], - "comments": "Firefox and Edge have never shipped (and do not plan to ship) WebSQL.", - "standards": { - "status": { - "text": "Editor's draft", - "val": 4 - }, - "footprint": { - "val": 2 - }, - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "url": "http://caniuse.com/#feat=sql-storage", - "text": "Opposed", - "val": 7 - } - }, - "chrome": { - "status": { - "text": "Removed", - "val": 7, - "milestone_str": "Removed" - }, - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "url": "http://caniuse.com/#feat=sql-storage", - "text": "Opposed", - "val": 7 - } - }, - "safari": { - "view": { - "url": "https://github.com/WebKit/webkit/commit/36ce0a5e2dc2def273c011bef04e58da8129a7d6", - "text": "Opposed", - "val": 7 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "WebSQL is a discontinued standard that was only implemented by WebKit and Blink as a thin layer on top of SQLite. The implementation has exposed SQLITE-specific constructs, such as a full text search extension (FTS3).\r\n\r\nMaintaining WebSQL's FTS support has been troublesome, and Safari removed it. Given the lack of usage, we would like to follow suit. Use counter added in M60: https://www.chromestatus.com/metrics/feature/timeline/popularity/1980", - "id": 5665629579247616, - "resources": { - "docs": [ - "https://www.html5rocks.com/en/tutorials/webdatabase/websql-indexeddb/" - ], - "samples": [ - "https://gist.github.com/nolanlawson/0264938033aca2201012" - ] - } - }, - { - "category": "Device", - "updated": { - "when": "2018-04-09 17:53:15.443990", - "by": "jmedley@google.com" - }, - "name": "GamePad API: GamepadButton touched attribute", - "comments": "", - "standards": { - "status": { - "text": "Working draft or equivalent", - "val": 3 - }, - "footprint": { - "val": 3 - }, - "spec": "https://w3c.github.io/gamepad/#dom-gamepadbutton-touched", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://wpt.fyi/gamepad/idlharness.html", - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Behind a flag", - "val": 4, - "milestone_str": "Behind a flag" - }, - "owners": [ - "bajones@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink>GamepadAPI" - ], - "flag": true, - "bug": "https://crbug.com/830140", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "url": "https://wpt.fyi/gamepad/idlharness.html", - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "Positive", - "val": 2 - } - } - }, - "summary": "Provides the touched state of a gamepad button, which indicates whether a finger is on a button independent of whether it's being pressed. ", - "id": 5727206521176064, - "resources": {} - }, - { - "category": "Performance", - "updated": { - "when": "2017-06-14 18:28:47.443830", - "by": "ericbidelman@google.com" - }, - "name": "Intervention: Blocking the load of cross-origin, parser-blocking scripts inserted via document.write for users on slow connections", - "tags": [ - "intervention" - ], - "comments": "", - "standards": { - "status": { - "text": "Public discussion", - "val": 5 - }, - "footprint": { - "val": 4 - }, - "visibility": { - "text": "Only a very small number of web developers will care about", - "val": 4 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "Browser Intervention", - "val": 9, - "milestone_str": "Browser Intervention" - }, - "owners": [ - "kenjibaheux@chromium.org", - "shivanisha@chromium.org", - "bmcquade@chromium.org", - "jkarlin@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "bug": "https://bugs.chromium.org/p/chromium/issues/detail?id=640846", - "intervention": true - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "A follow-up to https://www.chromestatus.com/feature/5718547946799104 where the intervention is applied for users on effectively slow connections.", - "id": 5652436521844736, - "resources": { - "docs": [ - "https://github.com/WICG/interventions/issues/17", - "https://docs.google.com/document/d/1dMJRQKTw75ZNdknP3pirSBH3koPl_IWHnxlcBuu4t_c/edit?usp=sharing", - "https://docs.google.com/document/d/1FSegTIN91btRwPCIrt6s3X63cdOJmNjcr0p2mhlOAW8/edit?usp=sharing", - "https://docs.google.com/document/d/1AtS83d9joGj-xmt_pZB4Uvvn_9d1aEReRg0rI_5runw/edit#", - "" - ] - } - }, - { - "category": "Performance", - "updated": { - "when": "2017-06-14 18:29:03.582640", - "by": "ericbidelman@google.com" - }, - "name": "Intervention: Unblocking Scrolling for Unresponsive Main Threads", - "comments": "Other browsers don't implement this precise intervention, but we do see interventions meant to address the same issue.\r\n\r\nSafari:\r\nSafari has some odd behavior around touch event handlers cancellability when the main thread is busy, but it isn’t consistent.\r\n\r\nEdge:\r\nEdge appears to have something equivalent to the Touch Ack Timeout (verified experimentally on http://rbyers.github.io/touch-timeout.html)\r\n\r\nFirefox:\r\nThe \"APZ content response timeout\" is equivalent to our Touch Ack Timeout.", - "standards": { - "status": { - "text": "No public standards discussion", - "val": 6 - }, - "footprint": { - "val": 4 - }, - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "Behind a flag", - "val": 4, - "milestone_str": "Behind a flag" - }, - "owners": [ - "tdresser@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink>Input" - ], - "flag": true, - "bug": "http://crbug.com/684703", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "Identify cases where a user touch scroll is likely to be blocked on the main thread for a long time, and force the touch events to be uncancellable, allowing the scroll to occur on the compositor without blocking on main.\r\n\r\nThis will replace the existing Touch Ack Timeout.", - "id": 5754213783044096, - "resources": { - "docs": [ - "https://docs.google.com/document/d/1_P6dw4YXePVXssUhg4DicU7T2f-6rt7A1OxniLvDtzo/edit#" - ] - } - }, - { - "category": "Misc", - "updated": { - "when": "2017-06-14 18:28:57.219400", - "by": "ericbidelman@google.com" - }, - "name": "Intervention: require a user gesture to add an entry to the back/forward list", - "tags": [ - "Intervention", - "back", - "history", - "navigation", - "annoyance" - ], - "comments": "", - "standards": { - "status": { - "text": "Editor's draft", - "val": 4 - }, - "footprint": { - "val": 4 - }, - "spec": "https://github.com/WICG/interventions/issues/21", - "visibility": { - "text": "Only a very small number of web developers will care about", - "val": 4 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "Behind a flag", - "val": 4, - "milestone_str": "Behind a flag" - }, - "owners": [ - "japhet@chromium.org", - "kenjibaheux@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink-Loader" - ], - "flag": true, - "bug": "https://bugs.chromium.org/p/chromium/issues/detail?id=638198", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "We've observed websites abusing (or misusing) History.\r\n\r\nTypically, the History get stuffed with multiple dummy entries that fast-forward the user back to the page they wanted to leave. \r\n\r\nGetting back to the desired history entry is extremely hard. Because of the instant fast-forwarding nature of the dummy history entries, the user can't wait for a visual confirmation to know when to stop hitting the back button. As a result, the user either overshoot or undershoot its destination.", - "id": 5712153302532096, - "resources": {} - }, - { - "category": "Security", - "updated": { - "when": "2017-06-14 18:29:12.791850", - "by": "ericbidelman@google.com" - }, - "name": "Mixed Content", - "comments": "", - "standards": { - "status": { - "text": "Working draft or equivalent", - "val": 3 - }, - "footprint": { - "val": 3 - }, - "spec": "https://w3c.github.io/webappsec/specs/mixedcontent/", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": "Enabled by default" - }, - "owners": [ - "tsepez@chromium.org", - "mkwst@chromium.org", - "palmer@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "Mixed signals", - "val": 3 - } - } - }, - "summary": "User agents disallow rendering and execution of content loaded over unencrypted or unauthenticated connections in the context of an encrypted and authenticated document. In short, the less HTTP in HTTPS documents, the better.", - "id": 6263395770695680, - "resources": {} - }, - { - "category": "Device", - "updated": { - "when": "2017-06-14 18:28:46.883700", - "by": "ericbidelman@google.com" - }, - "name": "Non-standard DeviceOrientation Event initialization functions", - "comments": "", - "standards": { - "status": { - "text": "Working draft or equivalent", - "val": 3 - }, - "footprint": { - "val": 3 - }, - "spec": "https://w3c.github.io/deviceorientation/spec-source-orientation.html", - "visibility": { - "text": "So small it doesn't need to be covered in this dashboard.", - "val": 5 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://github.com/w3c/deviceorientation/issues/35#issuecomment-286608967", - "text": "Public support", - "val": 3 - } - }, - "chrome": { - "status": { - "text": "Removed", - "val": 7, - "milestone_str": "Removed" - }, - "owners": [ - "reillyg@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "IO>DeviceOrientation" - ], - "flag": false, - "bug": "https://bugs.chromium.org/p/chromium/issues/detail?id=697598", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "url": "https://github.com/w3c/deviceorientation/issues/35#issuecomment-286604972", - "text": "Public support", - "val": 3 - } - }, - "safari": { - "view": { - "url": "https://github.com/w3c/deviceorientation/issues/35#issuecomment-284604721", - "text": "Public skepticism", - "val": 6 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "Remove the DeviceOrientationEvent.initDeviceOrientationEvent and DeviceMotionEvent.initDeviceMotionEvent functions.\r\n\r\nThese methods are not defined in the DeviceOrientation Event specification. Measurements indicate that they have no usage and they can be entirely replaced by the DeviceOrientationEvent and DeviceMotionEvent constructors that are being shipped in parallel to this removal.", - "id": 5650190849540096, - "resources": {} - }, - { - "category": "Security", - "updated": { - "when": "2018-04-12 19:31:36.319100", - "by": "jmedley@google.com" - }, - "name": "Remove HTTP-Based Public Key Pinning", - "comments": "", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 2 - }, - "spec": "https://tools.ietf.org/html/rfc7469", - "visibility": { - "text": "Only a very small number of web developers will care about", - "val": 4 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "Deprecated", - "val": 6, - "milestone_str": "Deprecated" - }, - "owners": [ - "palmer@chromium.org", - "estark@chromium.org", - "rsleevi@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Security" - ], - "flag": false, - "bug": "https://bugs.chromium.org/p/chromium/issues/detail?id=779166", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "Mixed signals", - "val": 3 - } - } - }, - "summary": "We expect to remove support for HPKP in Chrome 69.\r\n\r\nHTTP-Based Public Key Pinning (HPKP) was intended to allow websites to send an HTTP header that pins one or more of the public keys present in the site's certificate chain.\r\n\r\nIt has very low adoption, and although it provides security against certificate misissuance, it also creates risks of denial of service and hostile pinning. See https://groups.google.com/a/chromium.org/d/msg/blink-dev/he9tr7p3rZ8/eNMwKPmUBAAJ for more details.", - "id": 5903385005916160, - "resources": {} - }, - { - "category": "Multimedia", - "updated": { - "when": "2017-09-01 14:28:51.971000", - "by": "guidou@chromium.org" - }, - "name": "Remove Insecure usage of the Speech Recognition API", - "comments": "", - "standards": { - "status": { - "text": "Editor's draft", - "val": 4 - }, - "footprint": { - "val": 5 - }, - "visibility": { - "text": "Only a very small number of web developers will care about", - "val": 4 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": "Enabled by default" - }, - "owners": [ - "guidou@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink>SpeechRecognition?" - ], - "flag": false, - "bug": "http://crbug.com/761371", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "Remove access to the Speech Recognition API on insecure origins. This will prevent sites from requesting access to speech recognition over HTTP.\r\nIn practice, sites using the Speech Recognition API must already be on secure origins because the API requires access to the microphone, which is allowed only on secure origins.\r\n", - "id": 5639479519870976, - "resources": { - "docs": [ - "http://www.w3.org/TR/powerful-features/" - ] - } - }, - { - "category": "JavaScript", - "updated": { - "when": "2018-06-21 07:17:33.165263", - "by": "domfarolino@gmail.com" - }, - "name": "Remove deprecated Console methods", - "comments": "", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 3 - }, - "spec": "https://console.spec.whatwg.org/", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "Deprecated", - "val": 6, - "milestone_str": "Deprecated" - }, - "owners": [ - "domfarolino@gmail.com" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Platform>DevTools" - ], - "flag": false, - "bug": "https://bugs.chromium.org/p/chromium/issues/detail?id=706804", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "Currently in Chrome, console.timeline(), console.timelineEnd(), and console.markTimeline() are deprecated, and as a result of some discussion on the WHATWG Console Standard GitHub repository, these methods will not be making it into the spec and should be removed from implementations that support them. Right now Chrome is the only implementation that supports these console methods.", - "id": 5202677852012544, - "resources": { - "docs": [ - "https://github.com/whatwg/console/issues/27", - "https://github.com/whatwg/console/issues/27#issuecomment-289312546" - ] - } - }, - { - "category": "Security", - "updated": { - "when": "2017-06-14 18:29:06.774200", - "by": "ericbidelman@google.com" - }, - "name": "Strict Mixed Content Checking", - "comments": "", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 4 - }, - "spec": "https://w3c.github.io/webappsec/specs/mixedcontent/#strict-checking", - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "Behind a flag", - "val": 4, - "milestone_str": "Behind a flag" - }, - "owners": [ - "mkwst@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": true, - "bug": "https://crbug.com/442662", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "In order to give authors assurance that mixed content will never degrade the security UI presented to their users, authors may choose to enable a stricter variant of mixed content checking which will both block optionally-blockable and blockable mixed content, and suppress the user override options.", - "id": 5823679871057920, - "resources": {} - }, - { - "category": "Security", - "updated": { - "when": "2018-06-20 18:59:44.575501", - "by": "nharper@google.com" - }, - "name": "Token Binding", - "comments": "", - "standards": { - "status": { - "text": "Working draft or equivalent", - "val": 3 - }, - "footprint": { - "val": 2 - }, - "spec": "https://tools.ietf.org/html/draft-ietf-tokbind-protocol-16", - "visibility": { - "text": "Only a very small number of web developers will care about", - "val": 4 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://bugzilla.mozilla.org/show_bug.cgi?id=1363987", - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "Behind a flag", - "val": 4, - "milestone_str": "Behind a flag" - }, - "owners": [ - "nharper@chromium.org", - "awhalley@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": true, - "bug": "https://bugs.chromium.org/p/chromium/issues/detail?id=596699", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "url": "https://docs.microsoft.com/en-us/windows-server/security/token-binding/introducing-token-binding", - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "Token binding allows servers to cryptographically bind bearer tokens (such as cookies) to the TLS layer, to prevent attacks where an attacker exports a bearer token from the user's machine to present to a web service and impersonate the user.", - "id": 5097603234529280, - "resources": { - "docs": [ - "https://docs.google.com/document/d/1Ta3GlT_LrqAOLV217Kutn3B2trvifStxB0CThQ_kk78/edit?pli=1#heading=h.e51v5eatk0f3" - ] - } - }, - { - "category": "User input", - "updated": { - "when": "2017-06-14 18:29:09.042510", - "by": "ericbidelman@google.com" - }, - "name": "Uniform Subscription API", - "tags": [ - "subscribe", - "uniform", - "extension" - ], - "comments": "", - "standards": { - "status": { - "text": "No public standards discussion", - "val": 6 - }, - "footprint": { - "val": 2 - }, - "visibility": { - "text": "Only a very small number of web developers will care about", - "val": 4 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "Behind a flag", - "val": 4, - "milestone_str": "Behind a flag" - }, - "owners": [ - "orglofch@chromium.org" - ], - "prefixed": true, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": true, - "bug": "https://code.google.com/p/chromium/issues/detail?id=422978&q=orglofch&colspec=ID%20Pri%20M%20Iteration%20ReleaseBlock%20Cr%20Status%20Owner%20Summary%20OS%20Modified", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "The API would allow users to subscribe to a set of input uniforms which would be automatically populated in their shaders. Decreases perceived latency for operations performed against these uniforms.", - "id": 5969019181989888, - "resources": { - "docs": [ - "https://docs.google.com/a/chromium.org/document/d/1lpmqPY4xVZwPzXV3Mgw0cQu8g3pl2EBq3QjTrJgFPag" - ] - } - }, - { - "category": "JavaScript", - "updated": { - "when": "2018-05-22 14:33:29.936390", - "by": "jmedley@google.com" - }, - "name": "WebAssembly Import/Export Mutable Globals", - "tags": [ - "wasm", - "webassembly", - "threads", - "shared libraries" - ], - "comments": "", - "standards": { - "status": { - "text": "Editor's draft", - "val": 4 - }, - "footprint": { - "val": 3 - }, - "spec": "https://github.com/WebAssembly/mutable-global", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://bugzilla.mozilla.org/show_bug.cgi?id=1457055", - "text": "In development", - "val": 2 - } - }, - "chrome": { - "status": { - "text": "Behind a flag", - "val": 4, - "milestone_str": "Behind a flag" - }, - "owners": [ - "binji@chromium.org", - "hablich@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink>JavaScript>WebAssembly" - ], - "flag": true, - "bug": "https://bugs.chromium.org/p/v8/issues/detail?id=7625", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "Allows WebAssembly modules to import and export mutable globals. This building block will allow efficient passing of values like shadow stacks pointers between dynamically liked modules (especially in the multi-threaded case).\r\n", - "id": 5754634769530880, - "resources": { - "docs": [ - "https://github.com/WebAssembly/mutable-global/blob/master/proposals/mutable-global/Overview.md" - ] - } - }, - { - "category": "JavaScript", - "updated": { - "when": "2018-05-09 14:38:52.460800", - "by": "bradnelson@google.com" - }, - "name": "WebAssembly Multi-Value", - "tags": [ - "wasm", - "webassembly", - "multi-value" - ], - "comments": "", - "standards": { - "status": { - "text": "Editor's draft", - "val": 4 - }, - "footprint": { - "val": 3 - }, - "spec": "https://github.com/WebAssembly/multi-value", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Public support", - "val": 3 - } - }, - "chrome": { - "status": { - "text": "Behind a flag", - "val": 4, - "milestone_str": "Behind a flag" - }, - "owners": [ - "kschimpf@chromium.org", - "titzer@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink>JavaScript>WebAssembly" - ], - "flag": true, - "bug": "https://bugs.chromium.org/p/v8/issues/detail?id=6672", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "url": "https://github.com/Microsoft/ChakraCore/issues/3478", - "text": "Public support", - "val": 3 - } - }, - "safari": { - "view": { - "text": "Public support", - "val": 3 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "Add support for WebAssembly functions and blocks that return more than one value.\r\n", - "id": 5192420329259008, - "resources": { - "docs": [ - "https://github.com/WebAssembly/multi-value/blob/master/proposals/multi-value/Overview.md" - ] - } - }, - { - "category": "JavaScript", - "updated": { - "when": "2018-05-22 14:14:32.621650", - "by": "jmedley@google.com" - }, - "name": "WebAssembly Non-trapping Conversion", - "tags": [ - "wasm", - "webassembly" - ], - "comments": "Supported in WebAssembly toolchain, pass: -mnontrapping-fptoint", - "standards": { - "status": { - "text": "Editor's draft", - "val": 4 - }, - "footprint": { - "val": 4 - }, - "spec": "https://github.com/WebAssembly/nontrapping-float-to-int-conversions", - "visibility": { - "text": "Only a very small number of web developers will care about", - "val": 4 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://bugzilla.mozilla.org/show_bug.cgi?id=1435369", - "text": "In development", - "val": 2 - } - }, - "chrome": { - "status": { - "text": "Behind a flag", - "val": 4, - "milestone_str": "Behind a flag" - }, - "owners": [ - "bradnelson@chromium.org", - "nattestad@chromium.org", - "dschuff@chromium.org", - "hablich@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink>JavaScript>WebAssembly" - ], - "flag": true, - "bug": "https://bugs.chromium.org/p/chromium/issues/detail?id=840415", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "url": "https://github.com/Microsoft/ChakraCore/issues/3228", - "text": "In development", - "val": 2 - } - }, - "safari": { - "view": { - "url": "https://github.com/WebAssembly/meetings/blob/master/2017/CG-05.md#non-trapping-float-to-int", - "text": "Public support", - "val": 3 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "Adds opcodes to WebAssembly to support non-trapping float-to-integer conversion to improve the ergonomics of the bytecode format.\r\n", - "id": 4611843511287808, - "resources": { - "docs": [ - "https://github.com/WebAssembly/nontrapping-float-to-int-conversions/blob/master/proposals/nontrapping-float-to-int-conversion/Overview.md" - ] - } - }, - { - "category": "DOM", - "updated": { - "when": "2018-04-24 16:34:00.563150", - "by": "jmedley@google.com" - }, - "name": "document.origin", - "comments": "", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 4 - }, - "spec": "https://github.com/whatwg/dom/issues/410", - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "Enabled by default", - "val": 5, - "milestone_str": "Enabled by default" - }, - "owners": [ - "mkwst@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "bug": "https://crbug.com/692084", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "url": "https://github.com/whatwg/dom/issues/410#issuecomment-357170536", - "text": "Opposed", - "val": 7 - } - }, - "safari": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "The document.origin property will be deprecated and removed in Chromium, and then likely also removed from the DOM Standard. This property was only ever implemented in Chromium and WebKit. It is redundant with self.origin which can be used in both window and worker contexts and has wider support. ", - "id": 5701042356355072, - "resources": { - "docs": [ - "https://developer.mozilla.org/en-US/docs/Web/API/Document/origin" - ] - } - }, - { - "category": "Misc", - "updated": { - "when": "2017-07-12 07:10:26.478130", - "by": "tkent@chromium.org" - }, - "first_of_milestone": true, - "name": "Automatic focus by Selection interface functions", - "comments": "", - "standards": { - "status": { - "text": "Editor's draft", - "val": 4 - }, - "footprint": { - "val": 4 - }, - "spec": "https://w3c.github.io/selection-api/#selection-interface", - "visibility": { - "text": "Only a very small number of web developers will care about", - "val": 4 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "No longer pursuing", - "val": 1000, - "milestone_str": "No longer pursuing" - }, - "owners": [ - "tkent@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink>Editing" - ], - "flag": false, - "bug": "http://crbug.com/690272", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "Chromium has a behavior that functions of Selection interface automatically set focus on an element contains the new selection. This behavior isn't defined by the standard, and it is not interoperable.\r\n", - "id": 5335417998016512, - "resources": {} - }, - { - "category": "Misc", - "updated": { - "when": "2017-06-14 18:28:51.085530", - "by": "ericbidelman@google.com" - }, - "name": "BasicCardResponse.expiry{Month,Year} should be 2 digits", - "comments": "", - "standards": { - "status": { - "text": "Working draft or equivalent", - "val": 3 - }, - "footprint": { - "val": 5 - }, - "spec": "https://w3c.github.io/webpayments-methods-card/#basiccardresponse", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "No longer pursuing", - "val": 1000, - "milestone_str": "No longer pursuing" - }, - "owners": [ - "rouslan@chromium.org", - "sebsg@chromium.org", - "zkoch@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink>Payments" - ], - "flag": false, - "bug": "http://crbug.com/673353", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "The expiryMonth field contains a two-digit string for the expiry month of the card in the range 01 to 12.\r\n\r\nThe expiryYear field contains a two-digit string for the expiry year of the card in the range 00 to 99.", - "id": 5671972004429824, - "resources": {} - }, - { - "category": "CSS", - "updated": { - "when": "2017-06-14 18:28:47.898740", - "by": "ericbidelman@google.com" - }, - "name": "CSS Regions", - "comments": "", - "standards": { - "status": { - "text": "Working draft or equivalent", - "val": 3 - }, - "footprint": { - "val": 2 - }, - "spec": "http://dev.w3.org/csswg/css3-regions/", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Opposed", - "val": 7 - } - }, - "chrome": { - "status": { - "text": "No longer pursuing", - "val": 1000, - "milestone_str": "No longer pursuing" - }, - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "bug": "http://wkbug.com/57312", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "url": "https://msdn.microsoft.com/library/hh673537.aspx", - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "url": "https://www.webkit.org/blog/3078/advanced-layout-made-easy-with-css-regions/", - "text": "Shipped", - "val": 1 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "Magazine-like content flow into specified regions.", - "id": 5655612935372800, - "resources": {} - }, - { - "category": "Graphics", - "updated": { - "when": "2017-06-14 18:28:43.028150", - "by": "ericbidelman@google.com" - }, - "name": "Canvas rendering from workers", - "comments": "This proposal has been abandoned. Intent moved to https://www.chromestatus.com/features/5424182347169792", - "standards": { - "status": { - "text": "Public discussion", - "val": 5 - }, - "footprint": { - "val": 3 - }, - "spec": "https://wiki.whatwg.org/wiki/CanvasInWorkers", - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "url": "http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-October/thread.html#41074", - "text": "In development", - "val": 2 - } - }, - "chrome": { - "status": { - "text": "No longer pursuing", - "val": 1000, - "milestone_str": "No longer pursuing" - }, - "owners": [ - "junov@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "bug": "http://crbug.com/245884", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "Strongly positive", - "val": 1 - } - } - }, - "summary": "Render a Canvas object (2D or WebGL) from a web worker.", - "id": 5610258080727040, - "resources": {} - }, - { - "category": "Graphics", - "updated": { - "when": "2017-06-14 18:28:49.161520", - "by": "ericbidelman@google.com" - }, - "name": "Canvas2D text decoration", - "comments": "", - "standards": { - "status": { - "text": "Public discussion", - "val": 5 - }, - "footprint": { - "val": 4 - }, - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "No longer pursuing", - "val": 1000, - "milestone_str": "No longer pursuing" - }, - "owners": [ - "junov@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "bug": "http://crbug.com/245526", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "Add a textDecoration attribute to canvas 2D contexts, behavior similar to existing \"font\" attribute: It's a DOMString, parsed the same way as corresponding CSS property (text-decoration).", - "id": 5663034638860288, - "resources": {} - }, - { - "category": "JavaScript", - "updated": { - "when": "2017-06-14 18:28:34.255270", - "by": "ericbidelman@google.com" - }, - "name": "Comprehensions (dropped from ES6)", - "tags": [ - "array comprehensions", - "" - ], - "comments": "", - "standards": { - "status": { - "text": "Public discussion", - "val": 5 - }, - "footprint": { - "val": 2 - }, - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://developer.mozilla.org/en-US/Firefox/Releases/30#JavaScript", - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "No longer pursuing", - "val": 1000, - "milestone_str": "No longer pursuing" - }, - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "bug": "https://code.google.com/p/v8/issues/detail?id=2856", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "Concise syntax for transforming collections.", - "id": 4990451081805824, - "resources": {} - }, - { - "category": "CSS", - "updated": { - "when": "2017-06-14 18:29:06.913720", - "by": "ericbidelman@google.com" - }, - "name": "Custom filters (shaders)", - "comments": "Adobe removed Custom Filters code from WebKit in January 2014 due to various reasons https://lists.webkit.org/pipermail/webkit-dev/2014-January/026098.html http://trac.webkit.org/changeset/162644", - "standards": { - "status": { - "text": "No public standards discussion", - "val": 6 - }, - "footprint": { - "val": 2 - }, - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Public support", - "val": 3 - } - }, - "chrome": { - "status": { - "text": "No longer pursuing", - "val": 1000, - "milestone_str": "No longer pursuing" - }, - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "url": "http://status.modern.ie/customfiltersshaders", - "text": "Public skepticism", - "val": 6 - } - }, - "safari": { - "view": { - "text": "Mixed public signals", - "val": 4 - } - }, - "webdev": { - "view": { - "text": "Mixed signals", - "val": 3 - } - } - }, - "summary": "Apply OpenGL shaders to arbitrary DOM elements.", - "id": 5838406743490560, - "resources": {} - }, - { - "category": "Misc", - "updated": { - "when": "2017-06-14 18:29:17.357840", - "by": "ericbidelman@google.com" - }, - "name": "Dart VM", - "comments": "\"We have decided not to integrate the Dart VM into Chrome.\" http://news.dartlang.org/2015/03/dart-for-entire-web.html", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 1 - }, - "spec": "http://www.ecma-international.org/publications/standards/Ecma-408.htm", - "visibility": { - "text": "Likely in mainstream tech news", - "val": 1 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Opposed", - "val": 7 - } - }, - "chrome": { - "status": { - "text": "No longer pursuing", - "val": 1000, - "milestone_str": "No longer pursuing" - }, - "owners": [ - "sandholm@google.com" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "Public skepticism", - "val": 6 - } - }, - "safari": { - "view": { - "text": "Opposed", - "val": 7 - } - }, - "webdev": { - "view": { - "text": "Mixed signals", - "val": 3 - } - } - }, - "summary": "Dart is a new web programming language with libraries, a virtual machine, and tools. It's designed to help developers build fast, structured modern web apps. Dart compiles to JavaScript to run across the entire modern web. The VM is a Chrome feature to optimize Dart's performance.", - "id": 6682831673622528, - "resources": {} - }, - { - "category": "JavaScript", - "updated": { - "when": "2017-06-14 18:28:48.255670", - "by": "ericbidelman@google.com" - }, - "name": "Debug API", - "tags": [ - "debug" - ], - "comments": "Intent to implement:\r\nDebug.traceAsyncOperationStarting()\r\nDebug.traceAsyncOperationCompleted()\r\nDebug.traceAsyncCallbackStarting()\r\nDebug.traceAsyncCallbackCompleted()\r\n", - "standards": { - "status": { - "text": "No public standards discussion", - "val": 6 - }, - "footprint": { - "val": 1 - }, - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "No longer pursuing", - "val": 1000, - "milestone_str": "No longer pursuing" - }, - "owners": [ - "aandrey@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "bug": "https://code.google.com/p/chromium/issues/detail?id=400784", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "url": "http://msdn.microsoft.com/en-us/library/ie/bs12a9wf(v=vs.94).aspx", - "text": "Shipped", - "val": 1 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "Positive", - "val": 2 - } - } - }, - "summary": "Expose some Debug API to user's JavaScript code.", - "id": 5656684127059968, - "resources": { - "docs": [ - "http://msdn.microsoft.com/en-us/library/ie/bs12a9wf(v=vs.94).aspx" - ] - } - }, - { - "category": "JavaScript", - "updated": { - "when": "2017-06-14 18:29:14.104560", - "by": "ericbidelman@google.com" - }, - "name": "FIDO U2F JavaScript API", - "comments": "", - "standards": { - "status": { - "text": "Working draft or equivalent", - "val": 3 - }, - "footprint": { - "val": 1 - }, - "spec": "https://fidoalliance.org/specs/fido-u2f-v1.0-nfc-bt-amendment-20150514/fido-u2f-javascript-api.html", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://groups.google.com/a/chromium.org/d/msg/blink-dev/wfIVkXvQ7kQ/phFCwuFmBwAJ", - "text": "Opposed", - "val": 7 - } - }, - "chrome": { - "status": { - "text": "No longer pursuing", - "val": 1000, - "milestone_str": "No longer pursuing" - }, - "owners": [ - "kpaulhamus@chromium.org", - "juanlang@chromium.org", - "piperc@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "bug": "https://crbug.com/660458", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "Positive", - "val": 2 - } - } - }, - "summary": "Web platform API to provide U2F support.\r\n", - "id": 6413248798654464, - "resources": { - "samples": [ - "https://github.com/google/u2f-ref-code/" - ] - } - }, - { - "category": "Device", - "updated": { - "when": "2018-04-07 05:25:56.755260", - "by": "ddorwin@chromium.org" - }, - "name": "GamePad API touch and motion extensions", - "tags": [ - "Gamepad", - "VR controllers" - ], - "comments": "The `touched` attribute is now tracked as https://www.chromestatus.com/feature/5727206521176064.\r\nVR-specific inputs, including pose, are now handled by WebXR Device API: https://github.com/immersive-web/webxr/blob/master/explainer.md#input", - "standards": { - "status": { - "text": "Editor's draft", - "val": 4 - }, - "footprint": { - "val": 3 - }, - "spec": "https://w3c.github.io/gamepad/extensions.html", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "No longer pursuing", - "val": 1000, - "milestone_str": "No longer pursuing" - }, - "owners": [ - "bajones@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "bug": "https://bugs.chromium.org/p/chromium/issues/detail?id=629101", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "Additions to the gamepad API to enable devices with touch-sensitive controls and devices that are capable of tracking position, orientation, and/or motion. VR controllers will benefit from the new attributes, as will more traditional gamepads with these types of inputs.", - "id": 5651469617332224, - "resources": {} - }, - { - "category": "Misc", - "updated": { - "when": "2017-06-14 18:29:03.779770", - "by": "ericbidelman@google.com" - }, - "name": "Geofencing API", - "comments": "early API design sketch at https://gist.github.com/mkruisselbrink/c5c5cd80f27f3158f451", - "standards": { - "status": { - "text": "Working draft or equivalent", - "val": 3 - }, - "footprint": { - "val": 2 - }, - "spec": "https://w3c.github.io/geofencing-api/", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "No longer pursuing", - "val": 1000, - "milestone_str": "No longer pursuing" - }, - "owners": [ - "mek@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "bug": "https://code.google.com/p/chromium/issues/detail?id=383125", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "The Geofencing API is an extension of the Geolocation API allowing web applications to setup geographic boundaries around specific locations and then receive notifications when the user enters or leaves those areas.", - "id": 5755591855177728, - "resources": {} - }, - { - "category": "JavaScript", - "updated": { - "when": "2018-06-07 17:23:48.012518", - "by": "jmedley@google.com" - }, - "name": "Get Installed Related Apps API", - "tags": [ - "isappinstalled", - "isnativeappinstalled", - "appinstalled" - ], - "comments": "", - "standards": { - "status": { - "text": "Public discussion", - "val": 5 - }, - "footprint": { - "val": 2 - }, - "visibility": { - "text": "Only a very small number of web developers will care about", - "val": 4 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "No longer pursuing", - "val": 1000, - "milestone_str": "No longer pursuing" - }, - "owners": [ - "mgiuca@chromium.org", - "owencm@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Mobile>WebAPKs" - ], - "flag": false, - "bug": "https://bugs.chromium.org/p/chromium/issues/detail?id=587623", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "Positive", - "val": 2 - } - } - }, - "summary": "The Get Installed Related Apps API (navigator.getInstalledRelatedApps) provides sites access to if their corresponding related applications are installed. Sites are only allowed to use this API if the native application has an established association with the web origin.\r\n\r\nhttps://github.com/WICG/get-installed-related-apps", - "id": 5695378309513216, - "resources": { - "docs": [ - "https://github.com/WICG/get-installed-related-apps/blob/master/EXPLAINER.md" - ] - } - }, - { - "category": "DOM", - "updated": { - "when": "2017-06-14 18:28:40.223470", - "by": "ericbidelman@google.com" - }, - "name": "Intent to deprecate: PseudoBeforeAfterForInputElement", - "comments": "", - "standards": { - "status": { - "text": "No public standards discussion", - "val": 6 - }, - "footprint": { - "val": 4 - }, - "visibility": { - "text": "Only a very small number of web developers will care about", - "val": 4 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "No longer pursuing", - "val": 1000, - "milestone_str": "No longer pursuing" - }, - "owners": [ - "philwright@chromium.org", - "nainar@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "bug": "http://crbug.com/480891", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "Intent to deprecateusage of pseudo elements ::before and ::after For Input Elements as it goes against spec.", - "id": 5393219172958208, - "resources": { - "docs": [ - "Refer to bug for current status.", - "", - "Some public discussion on not going through with he deprecation warning is here: https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/_czoEgSJMQs" - ] - } - }, - { - "category": "CSS", - "updated": { - "when": "2017-06-14 18:29:06.378270", - "by": "ericbidelman@google.com" - }, - "name": "Lazy layout", - "comments": "", - "standards": { - "status": { - "text": "No public standards discussion", - "val": 6 - }, - "footprint": { - "val": 2 - }, - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "No longer pursuing", - "val": 1000, - "milestone_str": "No longer pursuing" - }, - "owners": [ - "esprehn@chromium.org", - "leviw@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "Support a system for doing lazy layout based on what elements are visible in the viewport.", - "id": 5803772127215616, - "resources": {} - }, - { - "category": "Service Worker", - "updated": { - "when": "2018-03-30 17:18:18.645990", - "by": "jmedley@google.com" - }, - "name": "Link rel=serviceworker", - "tags": [ - "foreign fetch", - "service worker", - "third party" - ], - "comments": "This was shipped as part of the Foreign Fetch origin trial.", - "standards": { - "status": { - "text": "Editor's draft", - "val": 4 - }, - "footprint": { - "val": 3 - }, - "spec": "https://slightlyoff.github.io/ServiceWorker/spec/service_worker/index.html#link-type-serviceworker", - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://bugzilla.mozilla.org/show_bug.cgi?id=1247141#c2", - "text": "Public support", - "val": 3 - } - }, - "chrome": { - "status": { - "text": "No longer pursuing", - "val": 1000, - "milestone_str": "No longer pursuing" - }, - "owners": [ - "mek@chromium.org", - "kenjibaheux@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink>ServiceWorker" - ], - "flag": false, - "bug": "https://crbug.com/582308", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "Add support for LINK rel=serviceworker as an element and header to allow the installation of Service Worker declarative in a document or via a header.\r\n\r\nUpdate (2018-03-26): This was removed from the specification and is no longer being pursued.", - "id": 5682681044008960, - "resources": {} - }, - { - "category": "Misc", - "updated": { - "when": "2017-06-14 18:29:14.313560", - "by": "ericbidelman@google.com" - }, - "name": "Microdata", - "comments": "Never exposed to developers.\r\n\r\nhttps://groups.google.com/a/chromium.org/d/msg/blink-dev/b54nW_mGSVU/paAZR1K0JRYJ", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 2 - }, - "spec": "http://whatwg.org/html#microdata-dom-api", - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "No longer pursuing", - "val": 1000, - "milestone_str": "No longer pursuing" - }, - "owners": [ - "esprehn@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "url": "http://status.modern.ie/microdata", - "text": "Public skepticism", - "val": 6 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "Mixed signals", - "val": 3 - } - } - }, - "summary": "Microdata is used to nest semantics within existing content on web pages.", - "id": 6428569609699328, - "resources": {} - }, - { - "category": "Performance", - "updated": { - "when": "2017-06-14 18:28:37.277170", - "by": "ericbidelman@google.com" - }, - "name": "Navigation Transitions", - "comments": "", - "standards": { - "status": { - "text": "Editor's draft", - "val": 4 - }, - "footprint": { - "val": 4 - }, - "spec": "https://docs.google.com/a/chromium.org/document/d/17jg1RRL3RI969cLwbKBIcoGDsPwqaEdBxafGNYGwiY4/edit?pli=1#", - "visibility": { - "text": "Likely in mainstream tech news", - "val": 1 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "No longer pursuing", - "val": 1000, - "milestone_str": "No longer pursuing" - }, - "owners": [ - "oysteine@chromium.org", - "rschoen@chromium.org", - "simonhatch@chromium.org", - "tonyg@chromium.org", - "zhenw@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "bug": "http://crbug.com/370696", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "Allows web authors to both improve the perceived loading speed as well as provide visual polish by allowing two pages to coordinate on a transition animation (regardless of their origin).", - "id": 5169444246519808, - "resources": {} - }, - { - "category": "User input", - "updated": { - "when": "2017-12-19 21:48:58.373940", - "by": "chongz@chromium.org" - }, - "name": "Offset-based Touch Adjustment", - "tags": [ - "Touch Adjustment" - ], - "comments": "This is a more of an UA feature and they behave differently.", - "standards": { - "status": { - "text": "No public standards discussion", - "val": 6 - }, - "footprint": { - "val": 3 - }, - "visibility": { - "text": "Only a very small number of web developers will care about", - "val": 4 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "No longer pursuing", - "val": 1000, - "milestone_str": "No longer pursuing" - }, - "owners": [ - "chongz@chromium.org", - "dtapuska@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink>Input" - ], - "flag": false, - "bug": "https://crbug.com/625198", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "No longer pursuing.\r\nNew plan: https://www.chromestatus.com/feature/4895751150764032\r\n---\r\nTouch Adjustment is the feature where UA attempts to select the best target underneath the finger.\r\n\r\nOffset-based Touch Adjustment will run the selecting algorithm only on TouchStart, and apply the same offset (between adjusted coordinates and original coordinates) to all following TouchMove/End as well as gesture/click events. Will run hittest for each event with adjusted coordinates.\r\n", - "id": 5178547119325184, - "resources": { - "samples": [ - "https://rbyers.github.io/touchAdjustment.html" - ] - } - }, - { - "category": "Misc", - "updated": { - "when": "2018-05-21 16:28:39.009260", - "by": "zino@chromium.org" - }, - "name": "Remove currencySystem in PaymentRequest API", - "tags": [ - "payment", - "PaymentRequest", - "currency", - "currencySystem" - ], - "comments": "", - "standards": { - "status": { - "text": "Working draft or equivalent", - "val": 3 - }, - "footprint": { - "val": 3 - }, - "spec": "https://www.w3.org/TR/payment-request/", - "visibility": { - "text": "Only a very small number of web developers will care about", - "val": 4 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Public support", - "val": 3 - } - }, - "chrome": { - "status": { - "text": "No longer pursuing", - "val": 1000, - "milestone_str": "No longer pursuing" - }, - "owners": [ - "jinho.bang@samsung.com" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink>Payments" - ], - "flag": false, - "bug": "https://crbug.com/839402", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "Positive", - "val": 2 - } - } - }, - "summary": "The `currencySystem` member was removed from PaymentRequest API spec. Removal at this time does not preclude it being added to a future version of the API. Current implementations of Payment Request API allow the use of well-formed currency codes that are not part of the official ISO4217 registry. If the provided code is a currency that the browser knows how to display, then an implementation will generally display the appropriate currency symbol in the user interface.", - "id": 4887385041010688, - "resources": { - "samples": [ - "https://w3c-test.org/payment-request/payment-request-ctor-currency-code-checks.https.html" - ] - } - }, - { - "category": "User input", - "updated": { - "when": "2017-06-14 18:29:05.658310", - "by": "ericbidelman@google.com" - }, - "name": "Remove non-primary button click event", - "tags": [ - "Middle click event", - "non primary mouse click" - ], - "comments": "This change practically hides any action that was done in js as the result of listening to click event of non primary buttons (like middle click). Particularly the functionality of preventDefault on click event for middle click on link which prevents opening a new tab is no longer possible.\r\nThe specified behavior removes non-primary button click event dispatched to js regardless of the target.", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 2 - }, - "spec": "https://w3c.github.io/uievents/#event-type-click", - "visibility": { - "text": "Only a very small number of web developers will care about", - "val": 4 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "No longer pursuing", - "val": 1000, - "milestone_str": "No longer pursuing" - }, - "owners": [ - "nzolghadr@chromium.org", - "dtapuska@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "bug": "https://crbug.com/255", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "In development", - "val": 2 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "According to the spec https://w3c.github.io/uievents/#event-type-click the non-primary buttons should not fire mouse click events. This is the change to make Chrome inline with the spec in that regards.\r\n\r\nThis change is no longer pursued. But it will be done as part of another change with auxclick:\r\nhttps://www.chromestatus.com/feature/5663174342737920", - "id": 5769439450497024, - "resources": {} - }, - { - "category": "JavaScript", - "updated": { - "when": "2017-06-14 18:29:04.035200", - "by": "ericbidelman@google.com" - }, - "name": "SIMD.js", - "tags": [ - "simd", - "simd.js", - "single instruction multiple data" - ], - "comments": "", - "standards": { - "status": { - "text": "Working draft or equivalent", - "val": 3 - }, - "footprint": { - "val": 2 - }, - "spec": "http://tc39.github.io/ecmascript_simd/", - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://blog.mozilla.org/javascript/2015/03/10/state-of-simd-js-performance-in-firefox/", - "text": "In development", - "val": 2 - } - }, - "chrome": { - "status": { - "text": "No longer pursuing", - "val": 1000, - "milestone_str": "No longer pursuing" - }, - "owners": [ - "bbudge@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "bug": "https://bugs.chromium.org/p/v8/issues/detail?id=4124", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "url": "https://dev.windows.com/en-us/microsoft-edge/platform/status/simdes7", - "text": "In development", - "val": 2 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "Positive", - "val": 2 - } - } - }, - "summary": "SIMD.js exposes hardware SIMD instructions to Javascript applications in a platform-independent way. Add three SIMD vector types: float32x4, float64x2, and int32x4, and corresponding Typed Array views.\r\n\r\nSIMD.js can speed up applications that process lots of data that is naturally organized as 2, 3, or 4 element vectors. SIMD is also useful when compiling native code to Javascript for static compilation by the Javascript engine.", - "id": 5757910432874496, - "resources": {} - }, - { - "category": "Misc", - "updated": { - "when": "2017-06-14 18:28:27.741620", - "by": "ericbidelman@google.com" - }, - "name": "SrcN", - "comments": "", - "standards": { - "status": { - "text": "Editor's draft", - "val": 4 - }, - "footprint": { - "val": 3 - }, - "spec": "http://tabatkins.github.io/specs/respimg/Overview.html", - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://bugzilla.mozilla.org/show_bug.cgi?id=870021#c9", - "text": "Mixed public signals", - "val": 4 - } - }, - "chrome": { - "status": { - "text": "No longer pursuing", - "val": 1000, - "milestone_str": "No longer pursuing" - }, - "owners": [ - "yoav@yoav.ws" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "bug": "http://code.google.com/p/chromium/issues/detail?id=306893", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "Strongly positive", - "val": 1 - } - } - }, - "summary": "SrcN is a responsive images solution which addresses all 3 major use-cases within a single syntax. It addresses DPR switching (like srcset), art-direction (like picture) and viewport dimensions based switching.", - "id": 4582090154704896, - "resources": {} - }, - { - "category": "DOM", - "updated": { - "when": "2017-06-14 18:28:41.631880", - "by": "ericbidelman@google.com" - }, - "name": "Subpixel precision for clientWidth, offsetWidth, scrollTop, et al", - "comments": "This could have compatibility issues as we are changing the data type for existing properties. Some websites may depend on the values being integers. ", - "standards": { - "status": { - "text": "Editor's draft", - "val": 4 - }, - "footprint": { - "val": 4 - }, - "spec": "http://www.w3.org/TR/cssom-view/#scrolloptionsvertical", - "visibility": { - "text": "Covered as part of a larger article but not on its own", - "val": 3 - } - }, - "browsers": { - "ff": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "chrome": { - "status": { - "text": "No longer pursuing", - "val": 1000, - "milestone_str": "No longer pursuing" - }, - "owners": [ - "eae@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "bug": "https://crbug.com/360889", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "Positive", - "val": 2 - } - } - }, - "summary": "The latest draft of the CSS OM spec changed the type for a number of Element and HTMLElement properties from long to float. \r\n\r\nSpecifically the following properties:\r\nElement::clientHeight\r\nElement::clientWidth\r\nElement::clientLeft\r\nElement::clientTop\r\nElement::scrollTop\r\nElement::scrollLeft\r\nElement::scrollWidth\r\nElement::scrollHeight\r\nHTMLElement::offsetWidth\r\nHTMLElement::offsetHeight\r\nHTMLElement::offsetTop\r\nHTMLElement::offsetLeft\r\n", - "id": 5497402177880064, - "resources": { - "docs": [ - "Latest version of spec has these back to Integer given feedback from browser vendors and web developers." - ] - } - }, - { - "category": "Graphics", - "updated": { - "when": "2017-06-14 18:28:41.592740", - "by": "ericbidelman@google.com" - }, - "name": "WebGL Shared Resources", - "comments": "", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 3 - }, - "spec": "http://www.khronos.org/registry/webgl/extensions/WEBGL_shared_resources/", - "visibility": { - "text": "Will this feature generate articles on sites like html5rocks.com", - "val": 2 - } - }, - "browsers": { - "ff": { - "view": { - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "No longer pursuing", - "val": 1000, - "milestone_str": "No longer pursuing" - }, - "owners": [ - "gman@chromium.org" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "bug": "http://crbug.com/235718", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "No signals", - "val": 4 - } - } - }, - "summary": "Allow sharing resources between 2 or more WebGL contexts", - "id": 5486563022602240, - "resources": {} - }, - { - "category": "DOM", - "updated": { - "when": "2017-06-14 18:28:57.105920", - "by": "ericbidelman@google.com" - }, - "name": "beforescriptexecute and afterscriptexecute events", - "comments": "Webkit bug with a feature request from web developers, but no (definite) answer from Webkit developers: https://bugs.webkit.org/show_bug.cgi?id=91463\r\n\r\nRemoved from the specification: https://github.com/whatwg/html/pull/1103", - "standards": { - "status": { - "text": "Established standard", - "val": 2 - }, - "footprint": { - "val": 3 - }, - "spec": "https://html.spec.whatwg.org/multipage/scripting.html#the-script-element", - "visibility": { - "text": "Only a very small number of web developers will care about", - "val": 4 - } - }, - "browsers": { - "ff": { - "view": { - "url": "https://bugzilla.mozilla.org/show_bug.cgi?id=587931", - "text": "Shipped", - "val": 1 - } - }, - "chrome": { - "status": { - "text": "No longer pursuing", - "val": 1000, - "milestone_str": "No longer pursuing" - }, - "owners": [ - "rob@robwu.nl" - ], - "prefixed": false, - "origintrial": false, - "blink_components": [ - "Blink" - ], - "flag": false, - "bug": "http://crbug.com/168175", - "intervention": false - }, - "opera": {}, - "edge": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "safari": { - "view": { - "text": "No public signals", - "val": 5 - } - }, - "webdev": { - "view": { - "text": "Positive", - "val": 2 - } - } - }, - "summary": "The beforescriptexecute and afterscriptexecute events allows web pages and extension developers to monitor the insertion of