Microsoft Edge: Introducing
the new browser for
Windows 10
Ryan Joy
Startup Evangelist @ Microsoft
@atxryan
Slide 2
Slide 2 text
Faster, safer and sites “just work”
• Always up-to-date, and with a new
engine built for the modern web
• More secure by default
• Single codebase across all Windows 10
devices, with an experience that scales
fluidly for each device
• Set as default web browser for
Windows 10
• Windows 10 will Reach 1 Billion Devices
Slide 3
Slide 3 text
It’s demo time.
Slide 4
Slide 4 text
New & updated HTML5 features
CSS
• @supports
• Flexbox standards update
• dppx unit
• transform-style: preserve-3d
• Filter effects
Storage & networking
• HTTP/2
• Content security policy
• Web Crypto API updates
• HSTS (HTTP Strict Transport
Security
Media & RTC
• Media capture
• HLS
• WebAudio
• Video Tracks
• WAV Audio support
Input & Editing
• Touch events
• Pointer lock API
• Media Queries L4 - Interaction
• Selection API
• Gamepad API
JavaScript
• ES6 Math, Number, String, RegExp
& Object built-ins
• Arrow functions, Enhanced object
literal, Template strings, Default,
Rest, Spread
• Map, Set, Weakmap, __proto__,
Proxies
• Let, Const, Promises, Classes
DOM & Graphics
• SVG foreignobject
• SVG attribute animation
• Complete WebGL support
• DOM event constructors
• DOM Level 3 XPath
Shipped
Preview Release
In development
Slide 5
Slide 5 text
Extensibility
Internet Explorer has supported nearly 30
different legacy extension points for nearly 2
decades.
Includes: ActiveX, Silverlight, Toolbars,
BHOs, many others.
Legacy extension points affect security,
reliability and performance, and limit
browser innovation.
Internet Explorer on Windows 10 will
continue to support these extension
points for enterprise compatibility.
Microsoft Edge is designed for the modern
web and does not support IE legacy
extensibility points.
• It will support both platform and browser
extensions:
Native support for Flash and PDF
Modern JavaScript-based extension model
coming later in 2015
Slide 6
Slide 6 text
“The web should just work for
everyone – users, developers and
businesses.”
http://blogs.msdn.com/b/ie/archive/2014/05/27/launching-
status-modern-ie-amp-internet-explorer-platform-
priorities.aspx
Slide 7
Slide 7 text
Interoperability goals
Our goal is “the web just works”
Sites authored for Firefox, Chrome and Safari “just work” with Microsoft Edge
Evolve at the speed of the web and only support latest version
Use standards as a reference but prioritize real-world interop (and then fix standards if needed)
Allow web developers to target a single version
Internet sites use the new rendering engine (EdgeHTML) by default
New update cadence to ensure browser is always up-to-date
Make a clean break from the past
Interoperable user-agent string to get the same content as other browsers (no IE specific code)
Over 4200 interoperability fixes, and 45+ new features to render it correctly
Remove IE specific behaviors
Slide 8
Slide 8 text
3000+ Interoperability Fixes, Preserve-3d, Touch Events, CSS Filter Effects, DOM Clipboard Support,
HTML Drag and Drop, Web Audio, CSS Position Sticky, CSS @supports, CSS Flexbox, HTML Beacon,
WebDriver, IndexedDB, WebCrypto, Internationalization Mixed Languages Support, CSS Grid, CSS
Variables, srcset, element, Web Workers Update, DOM4 Events, Font Loading, BDI, Cross-
domain, HLS Manifest, Block Ellipsis, WAV, @rules, CSS Text(), CSS Border Logical, Logical Box Model,
DOM Gamepad API, DOM FileSystem API, HTML element, HTML element, HTML
element, HTML element, HTML element, HTML element, HTML
Font Resource Handling
• Before loading font resources, IE and
Firefox check the font server’s CORS
header, and the font’s installable
header (as per W3C specification).
• This is done to ensure that the font
usage rights are honored.
• WebKit does not check CORS /
installable header.
• Removing security constraints on
downloaded fonts
before after
Slide 12
Slide 12 text
Control Appearance Overrides
• Apple added ways to restyle HTML controls on
the iPhone to match OS control look and feel.
• Web developers add custom markup to disable
Apple’s styles and provide their own.
-webkit-appearance: none ← Most common value.
-webkit-appearance: button
-webkit-appearance: checkbox
-webkit-appearance: radio
etc..
before after
Slide 13
Slide 13 text
Control Appearance Overrides
• Some sites restyle input controls
using -webkit-appearance:
none for critical functionality.
before after
Slide 14
Slide 14 text
Gradients
• Apple originally added support for gradients to WebKit using a
Core Graphics friendly syntax.
• During standardization the syntax was changed leaving WebKit
incompatible with the standard. Some sites continue to use the
original Apple syntax.
Proprietary Apple Markup (still in WebKit):
-webkit-gradient(linear, left top, right bottom, colorstop(0,
#FFFFFF), color-stop(1, #00A3EF));
Webkit-prefixed W3C Standard Gradient in WebKit:
-webkit-linear-gradient(top left, #FFFFFF 0%, #00A3EF
100%);
Unprefixed W3C standard:
linear-gradient(to bottom right, FFFFFF 0%, #00A3EF
100%);
before after
Slide 15
Slide 15 text
IE11 on Windows 8.1 MS Edge:
With support for –webkit transitions
Slide 16
Slide 16 text
But, we still have to be served the right
content...
Slide 17
Slide 17 text
Getting the right, modern content
Slide 18
Slide 18 text
Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/39.0.2171.71 Safari/537.36 Edge/12.0
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/600.1.25 (KHTML, like Gecko)
Version/8.0 Safari/600.1.25
Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/40.0.2214.93 Safari/537.36
Mozilla/5.0 (Windows NT 10.0; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0
User-Agent Strings
Slide 19
Slide 19 text
Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/39.0.2171.71 Safari/537.36 Edge/12.0
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/600.1.25 (KHTML, like Gecko)
Version/8.0 Safari/600.1.25
Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/40.0.2214.93 Safari/537.36
Mozilla/5.0 (Windows NT 10.0; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0
User-Agent Strings
Slide 20
Slide 20 text
Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/39.0.2171.71 Safari/537.36 Edge/12.0
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/600.1.25 (KHTML, like Gecko)
Version/8.0 Safari/600.1.25
Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/40.0.2214.93 Safari/537.36
Mozilla/5.0 (Windows NT 10.0; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0
Blink
In the meantime…
Chrome, Firefox, Opera and Safari are evergreen
Updated frequently
No need to support different document modes
Slide 37
Slide 37 text
Evergreen
Microsoft EdgeHTML
Microsoft Edge
Slide 38
Slide 38 text
How do we fix these interoperability
differences and preserve compatibility?
Slide 39
Slide 39 text
Internet Explorer: MSHTML
Interoperability & compatibility
Versioned “document modes”
For modern HTML websites, intranet & Enterprise Mode
Slide 40
Slide 40 text
No content
Slide 41
Slide 41 text
What about JavaScript performance?
Slide 42
Slide 42 text
Chakra modifications
IE5
Quirks
IE7
Compat View
IE8
Standards
Mode
IE9
Standards
Mode
IE10
Standards
Mode
QME
Quirks Mode
Emulation
IE11
Standards
Mode
EMIE
Enterprise
Mode
New rendering engine
Compat
mshtml.dll + jscript9.dll (IE11) Interoperability
edgehtml.dll + chakra.dll
• New architecture separates compat vs interop focused engines
• Old Chakra engine (jscript9.dll) provides enterprise class compatibility
• Edge Chakra engine (chakra.dll)
• Eliminates document modes
• Eliminates MS specific extensions (e.g. ActiveXObject)
• Enables faster progress on interoperability and standards
• Continually updated
• Much faster
Slide 43
Slide 43 text
Enable developers to deliver consistently
delightful user experiences across all
form factors
Slide 44
Slide 44 text
Utilize the hardware to it’s full potential
Execute fast & get out of the way to let your code run
Optimize to make your JavaScript code run faster
Improve code throughput to save CPU cycles (& battery)
Stay lean and remove GC pauses
Don’t get in the way of consistent 60fps animations
Performance: JavaScript perspective
Fast startup
Utilizes the power of the underlying hardware for fast execution
Chakra’s Multi-tiered Execution Pipeline
Garbage Collector
Additional
Threads
Full JIT Compiler
Main Thread
Source
Code
Parser AST
Bytecode
Generator
Bytecode Profiling
Interpreter
Machine
Code
Bytecode +
Profile Data
Machine
Code
Bailout
Slide 47
Slide 47 text
New non-optimizing JIT tier
Increases code throughput by faster transition to compiled code
Execution Pipeline Changes: Simple JIT
Garbage Collector
Additional
Threads
Full JIT Compiler
Main Thread
Source
Code
Parser AST
Bytecode
Generator
Bytecode Profiling
Interpreter
Machine
Code
Bytecode +
Profile Data
Machine
Code
Bailout
Simple JIT
Slide 48
Slide 48 text
Execution Pipeline Changes: Multiple concurrent JITs
Garbage Collector
Additional
Threads
Full JIT Compiler
Main Thread
Source
Code
Parser AST
Bytecode
Generator
Bytecode Profiling
Interpreter
Machine
Code
Bytecode +
Profile Data
Machine
Code
Bailout
Simple JIT
Full JIT Compiler
Simple JIT
Large functions could block the JIT compiler
Ability to spawns multiple JIT threads based on hardware profiles
Slide 49
Slide 49 text
30% improvement in TypeScript compiler’s throughput
Impact of pipeline changes
Time
ES7 moving to a train model with
yearly releases
Before ratification, proposal needs to have an
implementation and test suite
Process published at http://aka.ms/TC39Process
Championing the ES7 “Async
functions” proposal
Keenly watching Object.observe,
Decorators amongst other proposals
ECMAScript.NEXT
Slide 56
Slide 56 text
ASM.js
Bringing predictable near native performance to web platform
• Optimizable, low-level subset of JavaScript
• Leveraged principally by transpiling C/C++ code to run on the Web platform
• AOT compilation provides predictable performance
• Potential to provide speed benefits to many more scenarios over a period of time
• Partnering closely with Mozilla ever since we started prototyping
• Starting to see light-ups and good performance wins
• Available in-preview in about:flags
Slide 57
Slide 57 text
“In Development” in partnership with Intel
Exploits data level parallelism using hardware capabilities
Allows same operations to be performed on multiple data points simultaneously
Large number of existing processors support SIMD operations
Benefits applications in fields like games, 3D graphics, audio/video processing, multimedia
applications etc.
SIMD: Single Instruction, Multiple Data (ES7)
Slide 58
Slide 58 text
F12
Slide 59
Slide 59 text
No content
Slide 60
Slide 60 text
Browser Tools – A lot in common
DOM Inspection
Style Tracing
Computed Properties
Layout View
Color Picker
Debugger
Breakpoints
Watches
Console
Console API
CPU profiling
Style profiling
Network tracing
Heap snapshots
Snapshot diffing
Auto completion
Inspect element
Pretty printing
So, so many tools in the tool box
*Not to scale or remotely mathematically sound!
The 80%
Case
Slide 61
Slide 61 text
Browser Tools – A little unique
TracePoints
Statement level JS
Just my code
Find references
Set next statement
Track changes
TypeScript colouring
3D view
Web audio editor
Animation
Shader editor
Reflow event logging
Responsive design mode
Lots of extensions
Network throttling
Device emulation
Pseudo elements
Edit and continue
Paint correlation
CSS animation
Animation scrubbing
More…
More…
More…
Slide 62
Slide 62 text
Why is now the right time for a new
browser from Microsoft?*
*And why should I care?
Slide 63
Slide 63 text
Windows 10: An evolving world of computing
Slide 64
Slide 64 text
How do I test my websites?
Slide 65
Slide 65 text
• Lower your engineering costs & complexity
• Less browser-specific code and reduced development/maintenance time
due to interoperability focus
• Lower operating costs and improved performance due to more efficient CPU,
cache and network utilization
• Windows as a Service: Users will be on Windows 10
• Free upgrade for 12 months for Windows 8.x, Windows 7, and Windows
Phone 8.1 users
• Detailed analysis of existing Windows customer hardware leading to high
confidence upgrades
• 450+ million devices eligible for upgrade to Windows 10 with Microsoft Edge
Why get your sites ready for the Microsoft Edge?
Slide 66
Slide 66 text
Netmarketshare.com
Slide 67
Slide 67 text
StatCounter.com
Slide 68
Slide 68 text
Microsoft Edge Dev Portal
Slide 69
Slide 69 text
No content
Slide 70
Slide 70 text
• WebDriver does work with Internet Explorer
• Set IE to new engine in Windows 10 to execute tests
• WebDriver support in Microsoft Edge in planned
• Timing is TBD
• IE WebDriver Tool for Internet Explorer 11
• http://bit.ly/ie11webdriver
WebDriver
Slide 71
Slide 71 text
http://vorlonjs.com
Slide 72
Slide 72 text
vorlon.js
Open source
Extensible plugin architecture
Platform agnostic
Powered by Node.js and Socket.io
New plugins
WebAudio
Connector for F12 debug port
Slide 73
Slide 73 text
Remote IE – remote.modern.ie + ngrok
Slide 74
Slide 74 text
http://bit.ly/goghostlab
Slide 75
Slide 75 text
Headless?
Not yet.
Slide 76
Slide 76 text
Stay up to date!
Slide 77
Slide 77 text
about:flags
Slide 78
Slide 78 text
130
140
150
160
170
180
190
200
210
May June July Aug Sept Oct Nov Dec Jan Feb Mar April
Under Consideration In Development Preview Release
See where Edge is headed at status.modern.ie
Call to actions
Validate the new UA with your site
Use remote.modern.ie to test the latest version of IE / EdgeHTML
Do use feature detection
Do not sniff UA
Send feedback!!!