what's new and what's next in electron & chromium [2016]

17
What's new and what's next: Electron & Chromium Ben Gotow (@bengotow)

Upload: ben-gotow

Post on 14-Apr-2017

58 views

Category:

Software


1 download

TRANSCRIPT

Page 1: What's new and what's next in Electron & Chromium [2016]

What's new and what's next: Electron & Chromium

Ben Gotow (@bengotow)

Page 2: What's new and what's next in Electron & Chromium [2016]
Page 3: What's new and what's next in Electron & Chromium [2016]

Electron• 364 pull requests closed since the last meet-up

• Cleaner public APIs, documentation in four more languages

• Web Notifications on Windows 8+

• Animated BrowserWindow.setBounds

Page 4: What's new and what's next in Electron & Chromium [2016]

Touch Events• Two new BrowserWindow events scroll-touch-begin, scroll-touch-end.

• IPC them into the renderer process and combine with wheel events to implement gestures!

https://github.com/bengotow/electron-swipe-to-archive

(Coming in the next Electron release)

Page 5: What's new and what's next in Electron & Chromium [2016]

Tracking Chromium

• Electron aggressively tracks Chromium and NodeJS releases.

• Currently at Chromium 47, Node 5.1.1.

• We’re one of the few communities that can build on new features immediately! So… what are the new features?

Page 6: What's new and what's next in Electron & Chromium [2016]

CSS Motion Paths

http://danielcwilson.com/blog/2015/09/animations-part-5/

Page 7: What's new and what's next in Electron & Chromium [2016]

requestIdleCallbackSchedule work when there is free time at the end of a frame, or when the user is inactive.

https://developers.google.com/web/updates/2015/08/using-requestidlecallback?hl=en

Page 8: What's new and what's next in Electron & Chromium [2016]

requestIdleCallback• Ideal for unimportant tasks

which can be paused and resumed, and broken into fixed-time chunks.

• Building thumbnails • Sending analytics • Mining Bitcoin

“Call my function within X milliseconds and give me a function I can call to know when I’ve run out of time.”

Page 9: What's new and what's next in Electron & Chromium [2016]

requestIdleCallbackfunction myNonEssentialWork (deadline) { while (deadline.timeRemaining() > 0 && tasks.length > 0) doWorkIfNeeded();

if (tasks.length > 0) requestIdleCallback(myNonEssentialWork);}

// Wait at most two seconds before processing events.requestIdleCallback(processPendingAnalyticsEvents, { timeout: 2000});

Page 10: What's new and what's next in Electron & Chromium [2016]

array.indexOf(item) !== -1

array.includes(item)

ECMAScript 6

Page 11: What's new and what's next in Electron & Chromium [2016]

array.indexOf(item) !== -1

array.includes(item)

ECMAScript 6

pretty much here!

Page 12: What's new and what's next in Electron & Chromium [2016]

array.indexOf(item) !== -1

array.includes(item)

ECMAScript 6

Page 13: What's new and what's next in Electron & Chromium [2016]

Chromium 47

😅😳

Page 14: What's new and what's next in Electron & Chromium [2016]

Chromium 48

😍😎

Page 15: What's new and what's next in Electron & Chromium [2016]

Memory• Same task scheduling capabilities are driving smarter

garbage collection in Chromium for jank-free scrolling!

• With Gmail open, memory consumption in Chrome 45 is 45% lower than previous versions after two minutes. (50MB less!)

Page 16: What's new and what's next in Electron & Chromium [2016]

Coming Soon• VP9 Codec: WebRTC support for VP9! HD video

at almost half the bandwidth of VP8 or H264

Chrom

ium 48

Chrom

ium 49

• Proxy: Define custom behavior for fundamental operations (e.g. property lookup, assignment, enumeration, function invocation, etc)

Objective-C: objc_msgsend

Ruby: method_missing

JavaScript: Proxy.handler.apply 🎉