building browser extensions with ember

22
Browser Extensions with Ember @alexblom [email protected]

Upload: alex-blom

Post on 22-Jan-2018

490 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Building Browser Extensions with Ember

Browser Extensions

with Ember@alexblom

[email protected]

Page 2: Building Browser Extensions with Ember

Isle of Code

• Toronto based development;

• Focused on Ember for:

• Prototyping;

• Hybrid Apps /w Cordova; and

• A lot of beacon work.

Page 3: Building Browser Extensions with Ember

Extensions are easy

• Main concerns:

• Build Ember app

• Set root element;

• A bit of work to deal with AJAX requests in

Firefox;

• Write some JS to start & stop the Ember app;

Page 4: Building Browser Extensions with Ember
Page 5: Building Browser Extensions with Ember

App Structure

• /ember

• /extension

• /output

• /chrome

• /firefox

Page 6: Building Browser Extensions with Ember
Page 7: Building Browser Extensions with Ember
Page 8: Building Browser Extensions with Ember

1 import Ember from 'ember';

2 import Resolver from 'ember/resolver';

3 import loadInitializers from 'ember/load-initializers';

4 import config from './config/environment';

5

6 Ember.MODEL_FACTORY_INJECTIONS = true;

7

8 var App = Ember.Application.extend({

9 modulePrefix: config.modulePrefix,

10 podModulePrefix: config.podModulePrefix,

11 Resolver: Resolver,

12 rootElement: '#morsebar-content'

13 });

14

15 loadInitializers(App, config.modulePrefix);

16

17 export default App;

Page 9: Building Browser Extensions with Ember

• Need to import your css again;

• Namespace your css;

• Probably want webRequest;

• In general, best to have light JS that will inject

your Ember app on user prompt;

Page 10: Building Browser Extensions with Ember

locationType: none;

Page 11: Building Browser Extensions with Ember

storeConfigInMeta: false;

Page 12: Building Browser Extensions with Ember

Firefox: self is

reserved

Page 13: Building Browser Extensions with Ember

Firefox: runs in strict

mode

Page 14: Building Browser Extensions with Ember

Firefox: Can not run

AJAX requests

Page 15: Building Browser Extensions with Ember
Page 16: Building Browser Extensions with Ember
Page 17: Building Browser Extensions with Ember
Page 18: Building Browser Extensions with Ember

Manage Reflows

Page 19: Building Browser Extensions with Ember

What causes Reflow?

• Resizing the browser window;

• using JavaScript methods involving computed

styles;

• adding or removing elements from the DOM; and

• changing an element's classes.

• https://developers.google.com/speed/articles/reflo

w

Page 20: Building Browser Extensions with Ember

Use CSS Transforms

Page 21: Building Browser Extensions with Ember

visibility:hidden

Page 22: Building Browser Extensions with Ember

Browser Extensions

with Ember@alexblom

[email protected]