Adobe Flash Player

Adobe Flash Player (also called Shockwave Flash in Internet Explorer, Firefox, and Google Chrome) is computer software for content created on the Adobe Flash platform. Flash Player is capable of viewing multimedia contents, executing rich Internet applications, and streaming audio and video. In addition, Flash Player can run from a web browser as a browser plug-in or on supported mobile devices. Flash Player was created by Macromedia and has been developed and distributed by Adobe Systems since Adobe acquired Macromedia in 2005. Flash Player is distributed as freeware. With the exception of the China-specific and enterprise supported variants, Flash Player was discontinued on December 31, 2020. Since January 12, 2021, Flash Player versions newer than 32.0.0.371 refuse to play Flash content and instead display a static warning message.
Flash Player runs SWF files that can be created by Adobe Flash Professional, Adobe Flash Builder or by third party tools such as FlashDevelop. Flash Player supports vector graphics, 3D graphics, embedded audio, video and raster graphics, and a scripting language called ActionScript. ActionScript is based on ECMAScript (similar to JavaScript) and supports object-oriented code. Google Chrome, Internet Explorer 11, in Windows 8 and later, and Microsoft Edge came bundled with a sandboxed Adobe Flash plug-in.
Flash Player once had a large user base, and was a common format for web games, animations, and graphical user interface (GUI) elements embedded in web pages. However, the most popular use of Flash among the 10-20 age group was for Flash games. Adobe stated in 2013 that more than 400 million out of over 1 billion connected desktops update to the new version of Flash Player within six weeks of release. However, Flash Player has become increasingly criticized for its performance, consumption of battery on mobile devices, the number of security vulnerabilities that had been discovered in the software, and its closed platform nature. Apple co-founder Steve Jobs was highly critical of Flash Player, having published an open letter detailing Apple's reasoning for not supporting Flash on its iOS device family. Its usage has also waned because of modern web standards that allow some of Flash's use cases to be fulfilled without third-party plugins.
Features.
Adobe Flash Player is a runtime that executes and displays content from a provided SWF file, although it has no in-built features to modify the SWF file at runtime. It can execute software written in the ActionScript programming language which enables the runtime manipulation of text, data, vector graphics, raster graphics, sound, and video. The player can also access certain connected hardware devices, including the web cameras and microphones, after permission for the same has been granted by the user.
Flash Player was used internally by the Adobe Integrated Runtime (AIR), to provide a cross-platform runtime environment for desktop applications and mobile applications. AIR supports installable applications on Windows, Linux, macOS, and some mobile operating systems such as iOS and Android. Flash applications must specifically be built for the AIR runtime to use additional features provided, such as file system integration, native client extensions, native window/screen integration, taskbar/dock integration, and hardware integration with connected Accelerometer and GPS devices.
Data formats.
Flash Player included native support for many data formats, some of which can only be accessed through the ActionScript scripting interface.
Multimedia formats.
Flash Player is primarily a graphics and multimedia platform, and has supported raster graphics and vector graphics since its earliest version. It supports the following different multimedia formats which it can natively decode and play back.
Performance.
Hardware acceleration.
Until version 10 of the Flash player, there was no support for GPU acceleration. Version 10 added a limited form of support for shaders on materials in the form of the Pixel Bender API, but still did not have GPU-accelerated 3D vertex processing. A significant change came in version 11, which added a new low-level API called Stage3D (initially codenamed Molehill), which provides full GPU acceleration, similar to WebGL. (The partial support for GPU acceleration in Pixel Bender was completely removed in Flash 11.8, resulting in the disruption of some projects like MIT's Scratch, which lacked the manpower to recode their applications quickly enough.)
Current versions of Flash Player are optimized to use hardware acceleration for video playback and 3D graphics rendering on many devices, including desktop computers. Performance is similar to HTML5 video playback. Also, Flash Player has been used on multiple mobile devices as a primary user interface renderer.
Compilation.
Although code written in ActionScript 3 executes up to 10 times faster than the prior ActionScript 2, the Adobe ActionScript 3 compiler is a non-optimizing compiler, and produces inefficient bytecode in the resulting SWF, when compared to toolkits such as CrossBridge.
CrossBridge, a toolkit that targets C++ code to run within the Flash Player, uses the LLVM compiler to produce bytecode that runs up to 10 times faster than code the ActionScript 3 compiler produces, only because the LLVM compiler uses more aggressive optimization.
Adobe has released ActionScript Compiler 2 (ASC2) in Flex 4.7 and onwards, which improves compilation times and optimizes the generated bytecode and supports method inlining, improving its performance at runtime.
As of 2012, the Haxe multiplatform language can build programs for Flash Player that perform faster than the same application built with the Adobe Flex SDK compiler.
Development methods.
Flash Player applications and games can be built in two significantly different methods:
In both methods, developers can access the full Flash Player set of functions, including text, vector graphics, bitmap graphics, video, audio, camera, microphone, and others. AIR also includes added features such as file system integration, native extensions, native desktop integration, and hardware integration with connected devices.
Development tools.
Adobe provides five ways of developing applications for Flash Player:
Third-party development environments are also available:
Game development.
Adobe offers the free Adobe Gaming SDK, consisting () of several open-source AS3 libraries built on the Flash Player Stage3D APIs for GPU-accelerated graphics:
A few commercial game engines target Flash Player (Stage3D) as run-time environment, such as Unity 3D and Unreal Engine 3. Before the introduction of Stage3D, a number of older 2D engines or isometric engines like Flixel saw their heyday.
Adobe also developed the CrossBridge toolkit which cross-compiles C/C++ code to run within the Flash Player, using LLVM and GCC as compiler backends, and high-performance memory-access opcodes in the Flash Player (termed "Domain Memory") to work with in-memory data quickly. CrossBridge is targeted toward the game development industry, and includes tools for building, testing, and debugging C/C++ projects in Flash Player.
Notable online video games developed in Flash include "Angry Birds", "FarmVille", and "AdventureQuest" (started in 2002, and still active as of 2020).
Availability.
Desktop platforms.
The latest version of Flash Player is available for Windows XP SP2+ and later, Mac OS X 10.6 and later and Linux.
Adobe Flash Player is available in four flavors:
On February 22, 2012, Adobe announced that it would no longer release new versions of NPAPI Flash plugins for Linux, although Flash Player 11.2 would continue to receive security updates. In August 2016 Adobe announced that, beginning with version 24, it will resume offering of Flash Player for Linux for other browsers.
The Extended Support Release (ESR) of Flash Player on macOS and Windows was a version of Flash Player kept up to date with security updates, but none of the new features or bug fixes available in later versions. It has been on version 11.7 as of July 9, 2013, version 13 as of May 13, 2014, and version 18 as of August 11, 2015. Adobe has decided to discontinue the ESR branch and instead focus solely on the standard release as of August 2016.
Mobile platforms.
In 2011, Flash Player had emerged as the de facto standard for online video publishing on the desktop, with adaptive bitrate video streaming, DRM, and fullscreen support. On mobile devices however, after Apple refused to allow the Flash Player within the inbuilt iOS web browser, Adobe changed strategy, enabling Flash content to be delivered as native mobile applications using the Adobe Integrated Runtime.
Up until 2012, Flash Player 11 was available for the Android (ARM Cortex-A8 and above), although in June 2012, Google announced that Android 4.1 (codenamed Jelly Bean) would not support Flash by default. Starting in August 2012, Adobe no longer updates Flash for Android.
Flash Player is certified to be supported on a select range of mobile and tablet devices, from Acer, BlackBerry 10, Dell, HTC, Lenovo, Logitech, LG, Motorola, Samsung, Sharp, SoftBank, Sony (and Sony Ericsson), and Toshiba. As of 2012, Adobe has stopped browser-based Flash Player development for mobile browsers in favor of HTML5, however Adobe continues to support Flash content on mobile devices with the Adobe Integrated Runtime, which allows developers to publish content that runs as native applications on certain supported mobile phone platforms.
Version 9 was the most recent version available for the Linux/ARM-based Nokia 770/N800/N810 Internet tablets running Maemo OS2008, classic Mac OS and Windows 95/NT. Version 10 can be run under Windows 98/Me using KernelEx. HP offered Version 6 of the player for HP-UX. Other versions of the player have been available at some point for OS/2, Symbian OS, Palm OS, BeOS, and IRIX. The Kodak Easyshare One includes Flash Player.
Adobe said it will optimize Flash for use on ARM architecture (ARMv7 and ARMv6 architectures used in the Cortex-A series of processors and in the ARM11 family) and release it in the second half of 2009. The company also stated it wants to enable Flash on NVIDIA Tegra, Texas Instruments OMAP 3, and Samsung ARMs. Beginning 2009, it was announced that Adobe would be bringing Flash to TV sets via Intel Media Processor CE 3100 before mid-2009. ARM Holdings later said it welcomes the move of Flash, because "it will transform mobile applications and it removes the claim that the desktop controls the Internet." However, as of May 2009, the expected ARM/Linux netbook devices had poor support for Web video and fragmented software base.
Among other devices, LeapFrog Enterprises provides Flash Player with their Leapster Multimedia Learning System and extended the Flash Player with touch-screen support. Sony has integrated Flash Player 6 into the PlayStation Portable's web browser via firmware version 2.70 and Flash Player 9 into the PlayStation 3's web browser in firmware version 2.50. Nintendo has integrated Flash Lite 3.1, equivalent to Flash 8, in the Internet Channel on the Wii.
The following table documents historical support for Flash Player and AIR on mobile operating systems:
Other hardware.
Some CPU emulators have been created for Flash Player, including Chip8, Commodore 64, ZX Spectrum, and the Nintendo Entertainment System. They enable video games created for such platforms to run within Flash Player.
End of life.
Adobe announced on July 25, 2017 that it would end support for the normal/global variant of Flash Player on January 1, 2021, and encouraged developers to use HTML5 standards in place of Flash. The announcement was coordinated with Apple, Facebook, Google, Microsoft, and Mozilla. Adobe announced that all major web browsers planned to officially remove the Adobe Flash Player component on December 31, 2020, and Microsoft removed it as a component of currently supported Windows OS versions in January 2021 via Windows Update. After January 26, 2021, all major web browsers including Apple Safari, Google Chrome, Microsoft Edge, and Mozilla Firefox have already permanently removed Flash support.
Starting from Chrome 76 and Firefox 85, Flash is disabled by default and browsers do not even show a prompt to activate Flash content. Users who wanted to play Flash content had to manually set a browser to prompt for Flash content, and then during each browser session enable Flash plugin for every site individually. Microsoft Edge based on Chromium will follow the same plan as Google Chrome.
In a move to further reduce the number of Flash Player installations, Adobe added a "time bomb" to Flash to disable existing installations after January 12, 2021. In mid-2020, Flash Player started prompting users to uninstall itself. Adobe removed all existing download links for Flash installers. 
Google Chrome blocked the Flash plugin as "out of date" in January 2021, and fully removed it from the browser with Chrome version 88, released on January 20, 2021. Firefox 85, released on January 26, 2021, completely removed support for Flash plugin. Apple dropped Flash Player support from Safari 14 alongside the release of macOS Big Sur.<ref name="dropped in Safari/macOS"></ref>
Microsoft Windows.
On October 27, 2020, Microsoft released an update (named KB4577586) for Windows 10 and 8.1 which removes the embedded Adobe Flash Player component from IE11 and legacy Edge. In July 2021, this update will be automatically installed as a security patch. However, an ActiveX Flash Player plugin may still be used with IE after this update is applied.
Fallout.
Despite the years of notice, several websites still were using Flash following December 31, 2020, including the U.S. Securities and Exchange Commission. Many of these were resolved in the weeks after the deadline. However, many educational institutions still relied on Flash for educational material and did not have a path forward for replacement.
Post-EOL support.
Adobe has partnered with HARMAN to support enterprise Flash Player users until at least 2023. 
The China-specific variant of Flash will also be supported beyond 2020. The standalone version of this variant also works just fine outside of China and doesn't include the "Flash Helper Service". In addition, as the global variant of the plugin was discontinued, some users in China have figured how to modify and repack the China-specific variant to bring it more in line with the global variant. This includes removing the "Flash Helper Service" and removing all geo-restrictions, including the China only installation restriction. In theory, these repacks should also provide users outside of China with the latest security updates to Flash Player, without having to deal with invasive advertisements or worry about privacy risks.
Shortly after Flash EOL, South African Revenue Service released a custom version of Chromium browser with Adobe Flash "timebomb" removed. This browser can access only a small set of SARS online pages containing Flash-based forms required for filing financial reports.
Internet Explorer 11 will continue with ActiveX support, and by extension Flash Player support. Firefox forks that plan to continue NPAPI support, and by extension Flash Player support, include; Waterfox, Basilisk, Pale Moon, and K-Meleon. Various Chromium based Chinese browsers will also continue to support Flash Player in PPAPI and/or NPAPI form, including, but not limited to 360 Secure Browser.
Adobe Flash Player Projector.
Despite Flash being discontinued on December 2020, some users were still able to play Flash animations with the Flash Player Projector app. It allows users to play SWF files with Flash animations after the discontinuation of Flash Player.
Content preservation projects.
Internet Archive hosts some Flash and makes it playable in modern browsers via emulators, Ruffle and Emularity. BlueMaxima's Flashpoint project claims to have collected more than 38,000 Adobe Flash Player games and animations and made them available for download.
Open source.
Adobe has released some components of Adobe Flash products as open source software via Open Screen Project or donated them to open source organizations. As of 2021, most of these technologies are considered obsolete. This includes: ActionScript Virtual Machine 2 (AVM2) which implements ActionScript 3 (donated as open-source to Mozilla Foundation), Adobe Flex Framework (donated as open-source to the Apache Software Foundation and rebranded as Apache Flex, superseded by Apache Royale), CrossBridge C++ cross-compilation toolset (released on GitHub).
Criticism.
Accessibility and usability.
In some browsers, prior Flash versions have had to be uninstalled before an updated version could be installed. However, as of version 11.2 for Windows, there are now automatic updater options. Linux is partially supported, as Adobe is cooperating with Google to implement it via Chrome web browser on all Linux platforms.
Mixing Flash applications with HTML leads to inconsistent input handling leading to poor user experience with the site (keyboard and mouse not working as they would in an HTML-only document).
Privacy.
Flash Player supports persistent local storage of data (also referred to as Local Shared Objects), which can be used similarly to HTTP cookies or Web Storage in web applications. Local storage in Flash Player allows websites to store non-executable data on a user's computer, such as authentication information, game high scores or web browser games, server-based session identifiers, site preferences, saved work, or temporary files. Flash Player will only allow content originating from exactly the same website domain to access data saved in local storage.
Because local storage can be used to save information on a computer that is later retrieved by the same site, a site can use it to gather user statistics, similar to how HTTP cookies and Web Storage can be used. With such technologies, the possibility of building a profile based on user statistics is considered by some a potential privacy concern. Users can disable or restrict use of local storage in Flash Player through a "Settings Manager" page. These settings can be accessed from the Adobe website or by right-clicking on Flash-based content and selecting "Global Settings".
Local storage can be disabled entirely or on a site-by-site basis. Disabling local storage will block any content from saving local user information using Flash Player, but this may disable or reduce the functionality of some websites, such as saved preferences or high scores and saved progress in games.
Flash Player 10.1 and upward honor the privacy mode settings in the latest versions of the Chrome, Firefox, Internet Explorer, and Safari web browsers, such that no local storage data is saved when the browser's privacy mode is in use.
Security.
Adobe security bulletins and advisories announce security updates, but Adobe Flash Player release notes do not disclose the security issues addressed when a release closes security holes, making it difficult to evaluate the urgency of a particular update. A version test page allows the user to check if the latest version is installed, and uninstallers may be used to ensure that old-version plugins have been uninstalled from all installed browsers.
In February 2010, Adobe officially apologized for not fixing a known vulnerability for over a year. In June 2010 Adobe announced a "critical vulnerability" in recent versions, saying there are reports that this vulnerability is being actively exploited in the wild against both Adobe Flash Player, and Adobe Reader and Acrobat. Later, in October 2010, Adobe announced another critical vulnerability, this time also affecting Android-based mobile devices. Android users have been recommended to disable Flash or make it only on demand. Subsequent security vulnerabilities also exposed Android users, such as the two critical vulnerabilities published in February 2013 or the four critical vulnerabilities published in March 2013, all of which could lead to arbitrary code execution.
Symantec's Internet Security Threat Report states that a remote code execution in Adobe Reader and Flash Player was the second most attacked vulnerability in 2009. The same report also recommended using browser extensions to disable Flash Player usage on untrusted websites. McAfee predicted that Adobe software, especially Reader and Flash, would be primary target for attacks in 2010. Adobe applications had become, at least at some point, the most popular client-software targets for attackers during the last quarter of 2009. The Kaspersky Security Network published statistics for the third quarter of 2012 showing that 47.5% of its users were affected by one or more critical vulnerabilities. The report also highlighted that "Flash Player vulnerabilities enable cybercriminals to bypass security systems integrated into the application."
Steve Jobs criticized the security of Flash Player, noting that "Symantec recently highlighted Flash for having one of the worst security records in 2009". Adobe responded by pointing out that "the Symantec Global Internet Threat Report for 2009, found that Flash Player had the second lowest number of vulnerabilities of all Internet technologies listed (which included both web plug-ins and browsers)."
On April 7, 2016, Adobe released a Flash Player patch for a zero-day memory corruption vulnerability that could be used to deliver malware via the Magnitude exploit kit. The vulnerability could be exploited for remote code execution.
Vendor lock-in.
Flash Player 11.2 does not play certain kinds of content unless it has been digitally signed by Adobe, following a license obtained by the publisher directly from Adobe.
This move by Adobe, together with the abandonment of Flex to Apache was criticized as a way to lock out independent tool developers, in favor of Adobe's commercial tools.
This has been resolved as of January 2013, after Adobe no longer requires a license or royalty from the developer. All premium features are now classified as general availability, and can be freely used by Flash applications.
Apple controversy.
In April 2010, Steve Jobs, at the time CEO of Apple Inc. published an open letter explaining why Apple would not support Flash on the iPhone, iPod touch, and iPad. In the letter he blamed problems with the "openness", stability, security, performance, and touchscreen integration of the Flash Player as reasons for refusing to support it. He also claimed that when one of Apple's Macintosh computers crashes, "more often than not" the cause can be attributed to Flash, and described Flash as "buggy". Adobe's CEO Shantanu Narayen responded by saying, "If Flash [is] the number one reason that Macs crash, which I'm not aware of, it has as much to do with the Apple operating system."
Steve Jobs also claimed that a large percentage of the video on the Internet is supported on iOS, since many popular video sharing websites such as YouTube have published video content in an HTML5 compatible format, enabling videos to playback in mobile web browsers even without Flash Player.
Mainland China-specific variant.
Starting with version 30, Adobe stopped distributing Flash Player directly to users from mainland China. Instead, they selected 2144.cn as a partner and released a special variant of Flash Player on a specific website, which contains a non-closable process, known as the "Flash Helper Service", that collects private information and pops up advertisement window contents. The partnership started in about 2017, but in version 30, Adobe disabled the usage of vanilla (global) variant of Flash Player in mainland China, forcing users to use that specific variant, which may pose a risk to its users due to China's Internet censorship. This affects Google Chrome users using Windows 10, Internet Explorer users using Windows 7, and Firefox users using all versions of Windows, as Microsoft still directly distributes Flash Player for Internet Explorer and Microsoft Edge through Windows Update in Windows 8 and upward.