With browser support for Flash being steadily decreased and the likelihood of 2017 being the final year of Flash, I grew curious about the origins of Flash and how it got to the point of deprecation.
Brief History of Flash
Flash started its life in 1996 and was initially developed by the company ‘FutureWave’ under the name of ‘FutureSplash Animator’. The logo even features a shifty looking crab. Soon after its launch, FutureWave was acquired by Macromedia and the software was rebranded to what we know it as today, Flash.
In the early days of the internet, the only way to play animations in a browser was with the use of Java, which was extremely slow. The rise of Flash’s popularity was due to the small file size, improved performance and freely available Flash Player plugin, perfect for the dial up internet connections at the time.
In 2011 it was estimated that nearly 50% of all websites had at least one Flash request. By March 2017, the figure had plunged to below 7%.
In 2005 Macromedia was acquired by former rival, Adobe for approximately $3.4 Billion in stock. Whilst Macromedia also owned a range of other software packages, Flash was one of the key purchases. Two years after the acquisition, Apple released the first iPhone, with the controversial lack of Flash support. You can read more about Steve Jobs’ reasoning for this here.
The Death of Flash
Whilst Apple might have fired the first shots at Flash with the lack of support on the iPhone, Google has led the final charge in deprecating Flash. Google’s actions have had such a significant impact on Flash primarily due to the huge market share Chrome has (around 60-70%) in the web browser industry. Any restrictions placed on Flash by Chrome are effectively followed by most other browsers.
Timeline of Flash’s Demise
June 2007: First iPhone is launched which lacks support for Flash.
April 2010: Steve Jobs releases open letter on why iPhone/iPad will never support Flash.
December 2010: Flash player is sandboxed with Chrome on Windows in order to reduce vulnerabilities and improve security.
August 2012: Adobe disables new installs of Flash on Android phones, effectively exiting the mobile market.
November 2012: The sandboxed Chrome Flash player is rolled out to OSX and Linux.
January 2015: YouTube makes the HTML5 player the default, which many say marks the final days for Flash.
September 2015 (Chrome 42): Chrome enforces ‘click to play’ on Flash objects below a certain size.
November 2015: Adobe advises users to transition to open standards such as HTML5. Also announces that Flash Professional will be replaced with Adobe Animate CC which will support HTML5.
December 2015: Facebook transitions to a HTML5 video player.
September 2016 (Chrome 53): Chrome removes the ability to run Flash objects 5×5 or smaller from different origin. Primarily used for analytics tracking.
October 2016 (Chrome 54): Flash is removed from Chrome’s default distribution bundle.
December 2016 (Chrome 55): Chrome makes HTML5 the default experience, except for sites which only support Flash. For sites which only support Flash, the user is prompted to enable Flash on their first visit.
February 2017 (Chrome 56): In Chrome, Flash is enabled or disabled based on a ‘Site Engagement Score’. If a user regularly visits a site, then Flash will be enabled by default. If a user has never visited a site before, Flash will be disabled by default.
The Future
June 2017 (Chrome 60+): Chrome removes the ability to run Flash objects 5×5 or smaller from ANY origin.
August/September 2017 (Chrome 60+): Chrome reduces Flash player modes from 3 (Always allow, Ask, Block) to 2 (a toggle for Ask, Block).
(Tentative) March/April 2018 (Chrome 65+): ‘Click to play’ required for all Flash instances in Chrome.
Chrome’s Site Engagement Threshold
In 2017, Chrome will be disabling Flash based on a ‘Site Engagement’ score. Site engagement is calculated based on a number of factors, including directly accessing a site, activity time and media playback on a site.
Chrome gives every website you visit a Site Engagement score which you can access by entering ‘chrome://site-engagement/’ into Chrome’s URL bar. Based on this score Chrome will determine whether or not to allow Flash. Each month Chrome will be progressively increasing the minimum threshold, up until October 2017 which will require a sites engagement score to be 100%.
Why Flash is Being Deprecated
There are a number of reasons as to why Flash is being deprecated. The three main points are:
Poor performance, which also results in reduced battery life.
Flash is closed proprietary software. Open standard alternatives are readily available.
It has already been proven that HTML5 is a more than capable alternative in most cases. A clear example being YouTube’s transition away from Flash. However, in some areas Flash still remains the better option.
An example of this is low latency live streaming with RTMP. Whilst low latency alternatives do exist, they don’t allow the scalability that RTMP offered. The most popular HTML5 live streaming protocol, HTTP Live Streaming (HLS), allows for great scalability at the cost of latency. It lacks the low latency that RTMP offers.
There are pros and cons to deprecating Flash when there isn’t yet a viable low latency live streaming alternative. The pro being that it will force organizations to innovate and come up with an alternate protocol.
In the meantime, supporting Flash is only delaying the inevitable. Chrome’s method of reducing Flash support is one which is likely to annoy the end user. By continuing to use Flash it not only provides a lower quality user experience, but will be detrimental to users’ perception of your website.
Conclusion
I’m sure most of us can agree that Flash played a pivotal role in getting the internet to where it is today. Whilst Flash might be dead, it’ll live on in our memories. I’ll still think back fondly to the days of sneakily playing Flash games in highschool. Helicopter game anyone?
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept”, you consent to the use of ALL the cookies. However you may visit Cookie Settings to provide a controlled consent.
This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
Cookie
Duration
Description
__cfruid
session
Cloudflare sets this cookie to identify trusted web traffic.
__hssrc
session
This cookie is set by Hubspot whenever it changes the session cookie. The __hssrc cookie set to 1 indicates that the user has restarted the browser, and if the cookie does not exist, it is assumed to be a new session.
_GRECAPTCHA
5 months 27 days
This cookie is set by the Google recaptcha service to identify bots to protect the website against malicious spam attacks.
cookielawinfo-checkbox-advertisement
1 year
Set by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Advertisement" category .
cookielawinfo-checkbox-analytics
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checkbox-functional
11 months
The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-necessary
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-others
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-performance
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
CookieLawInfoConsent
1 year
Records the default button state of the corresponding category & the status of CCPA. It works only in coordination with the primary cookie.
JSESSIONID
session
New Relic uses this cookie to store a session identifier so that New Relic can monitor session counts for an application.
viewed_cookie_policy
11 months
The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Cookie
Duration
Description
__cf_bm
30 minutes
This cookie, set by Cloudflare, is used to support Cloudflare Bot Management.
__hssc
session
HubSpot sets this cookie to keep track of sessions and to determine if HubSpot should increment the session number and timestamps in the __hstc cookie.
bcookie
2 years
LinkedIn sets this cookie from LinkedIn share buttons and ad tags to recognize browser ID.
bscookie
2 years
LinkedIn sets this cookie to store performed actions on the website.
client_token
never
Description is currently not available.
lang
session
LinkedIn sets this cookie to remember a user's language setting.
lidc
1 day
LinkedIn sets the lidc cookie to facilitate data center selection.
messagesUtk
5 months 27 days
HubSpot sets this cookie to recognize visitors who chat via the chatflows tool.
UserMatchHistory
1 month
LinkedIn sets this cookie for LinkedIn Ads ID syncing.
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Cookie
Duration
Description
__hstc
5 months 27 days
This is the main cookie set by Hubspot, for tracking visitors. It contains the domain, initial timestamp (first visit), last timestamp (last visit), current timestamp (this visit), and session number (increments for each subsequent session).
_ga
2 years
The _ga cookie, installed by Google Analytics, calculates visitor, session and campaign data and also keeps track of site usage for the site's analytics report. The cookie stores information anonymously and assigns a randomly generated number to recognize unique visitors.
_ga_*
1 year 1 month 4 days
Google Analytics sets this cookie to store and count page views.
_gat_gtag_UA_24477138_4
1 minute
Set by Google to distinguish users.
_gat_UA-*
1 minute
Google Analytics sets this cookie for user behaviour tracking.
_gat_UA-24477138-6
1 minute
A variation of the _gat cookie set by Google Analytics and Google Tag Manager to allow website owners to track visitor behaviour and measure site performance. The pattern element in the name contains the unique identity number of the account or website it relates to.
_gid
1 day
Installed by Google Analytics, _gid cookie stores information on how visitors use a website, while also creating an analytics report of the website's performance. Some of the data that are collected include the number of visitors, their source, and the pages they visit anonymously.
CONSENT
2 years
YouTube sets this cookie via embedded youtube-videos and registers anonymous statistical data.
hubspotutk
session
HubSpot sets this cookie to keep track of the visitors to the website. This cookie is passed to HubSpot on form submission and used when deduplicating contacts.
km_ai
5 years
No description available.
ln_or
1 day
Linkedin sets this cookie to registers statistical data on users' behaviour on the website for internal analytics.
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
Cookie
Duration
Description
_fbp
3 months
This cookie is set by Facebook to display advertisements when either on Facebook or on a digital platform powered by Facebook advertising, after visiting the website.
fr
3 months
Facebook sets this cookie to show relevant advertisements to users by tracking user behaviour across the web, on sites that have Facebook pixel or Facebook social plugin.
li_sugr
3 months
LinkedIn sets this cookie to collect user behaviour data to optimise the website and make advertisements on the website more relevant.
NID
6 months
Google sets the cookie for advertising purposes; to limit the number of times the user sees an ad, to unwanted mute ads, and to measure the effectiveness of ads.
test_cookie
15 minutes
doubleclick.net sets this cookie to determine if the user's browser supports cookies.
VISITOR_INFO1_LIVE
5 months 27 days
A cookie set by YouTube to measure bandwidth that determines whether the user gets the new or old player interface.
YSC
session
YSC cookie is set by Youtube and is used to track the views of embedded videos on Youtube pages.
yt-remote-connected-devices
never
YouTube sets this cookie to store the video preferences of the user using embedded YouTube video.
yt-remote-device-id
never
YouTube sets this cookie to store the video preferences of the user using embedded YouTube video.
yt.innertube::nextId
never
This cookie, set by YouTube, registers a unique ID to store data on what videos from YouTube the user has seen.
yt.innertube::requests
never
This cookie, set by YouTube, registers a unique ID to store data on what videos from YouTube the user has seen.