SlideShare a Scribd company logo
1 of 12
Download to read offline
PORTING FLASHBLOCK
TO JETPACK PLATFORM



             DRAFT
WHAT’S FLASHBLOCK?

• Flashblock    is an
 extension for the Firefox
 that blocks ALL Flash
 content from loading. It then
 leaves placeholders on
 the webpage that allow you
 to click to download and
 then view the Flash content.
WHAT’S JETPACK?

• Jetpackis an API for allowing
 you to write Firefox add-ons
 using the web technologies
 you already know (e.g.
 HTML, CSS and Javascript).

• Almostone-clic install and
 without restart
WHAT’S THE PLAN?


• The   basic algorithm

• Some   code

• What   could be improved

• Conclusion
ALGORITHM


Quite simple :

• Look   for all Flash object

• Replace   them by a placeholder

•A   click on a placeholder put the Flash object back
ON/OFF BUTTON ON THE
         STATUS BAR
jetpack.statusBar.append({
  html: 'Flashblok?<input type="checkbox">',
  width: 76,
  onReady: function(widget){
   $("input", widget).click(function(){
    if( this.checked ){
      jetpack.tabs.onReady( removeEmbeds );
removeEmbeds(jetpack.tabs.focused.contentDocument);
      }
      else jetpack.tabs.onReady.unbind( removeEmbeds );
    });
  }
});
FIND FLASH OBJECTS


                                          Better method
Lazzy method
                                          Search for :
function findFlash(doc){               •   object[codebase*="swflash.cab"]
return $(doc).find('object, embed');   •   object[data*=".swf"]
}                                     •   embed[type="application/x-shockwave-flash"]
                                      •   etc.
REMOVE FLASH

function removeEmbeds(doc){
  findFlash(doc).each(function() {
    var placeHolder = createPlaceHolder(...);
    // Here I put code to remember my removed Flash object
    placeHolder.click(function(eventObject){
      $(this).replaceWith(myDeletedEmbed);
    });
    $(this).replaceWith(placeHolder); // So easy with jQuery
  });
}
PLACEHOLDERS


• Full   CSS3

• Make use of text-shadow, -
 moz-box-shadow, -moz-
 border-radius and -moz-linear-
 gradient (coming with Firefox
 3.6)
NEXT STEPS

• Block   Flash objects sooner   • Use
                                     simple storage JEP to
                                  remember block status
• Improve   memory footprint
                                 • Usethe coming menu JEP
• Better
      way to remember             and simple storage one to
 removed objects                  provide whitelist
                                  management
• BlockSilverlight,
 Authorware, Director, etc.
 objects
CONCLUSION



• It’s   very easy to develop an extension

• Still   lacks some features like localisation
LINKS

• Jetpack   official site: http://labs.mozilla.com/jetpack/

• Jetpack   tutorial: https://jetpack.mozillalabs.com/tutorial.html

• JEPs: https://wiki.mozilla.org/Labs/Jetpack/JEPs

• Original
         Flashblock extension : https://addons.mozilla.org/
 firefox/addon/433

• Andfinally Flashblock for Jetpack : http://tb4.fr/labs/jetpack/
 flashblock/

More Related Content

What's hot

[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVC[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVCAlive Kuo
 
Persistent Offline Storage White
Persistent Offline Storage WhitePersistent Offline Storage White
Persistent Offline Storage WhiteAlexei White
 
Even faster django
Even faster djangoEven faster django
Even faster djangoGage Tseng
 
Javascript, DOM, browsers and frameworks basics
Javascript, DOM, browsers and frameworks basicsJavascript, DOM, browsers and frameworks basics
Javascript, DOM, browsers and frameworks basicsNet7
 
Easy javascript
Easy javascriptEasy javascript
Easy javascriptBui Kiet
 
Real World Seaside Applications
Real World Seaside ApplicationsReal World Seaside Applications
Real World Seaside ApplicationsESUG
 
Developing iOS REST Applications
Developing iOS REST ApplicationsDeveloping iOS REST Applications
Developing iOS REST Applicationslmrei
 
Philip Stehlik at TechTalks.ph - Intro to Groovy and Grails
Philip Stehlik at TechTalks.ph - Intro to Groovy and GrailsPhilip Stehlik at TechTalks.ph - Intro to Groovy and Grails
Philip Stehlik at TechTalks.ph - Intro to Groovy and GrailsPhilip Stehlik
 
Meetup Performance
Meetup PerformanceMeetup Performance
Meetup PerformanceGreg Whalin
 
When dynamic becomes static : the next step in web caching techniques
When dynamic becomes static : the next step in web caching techniquesWhen dynamic becomes static : the next step in web caching techniques
When dynamic becomes static : the next step in web caching techniquesWim Godden
 
[drupalday2017] - Drupal come frontend che consuma servizi: HTTP Client Manager
[drupalday2017] - Drupal come frontend che consuma servizi: HTTP Client Manager[drupalday2017] - Drupal come frontend che consuma servizi: HTTP Client Manager
[drupalday2017] - Drupal come frontend che consuma servizi: HTTP Client ManagerDrupalDay
 
Automating WordPress Theme Development
Automating WordPress Theme DevelopmentAutomating WordPress Theme Development
Automating WordPress Theme DevelopmentHardeep Asrani
 

What's hot (19)

Php with mysql ppt
Php with mysql pptPhp with mysql ppt
Php with mysql ppt
 
[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVC[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVC
 
Persistent Offline Storage White
Persistent Offline Storage WhitePersistent Offline Storage White
Persistent Offline Storage White
 
Even faster django
Even faster djangoEven faster django
Even faster django
 
Javascript, DOM, browsers and frameworks basics
Javascript, DOM, browsers and frameworks basicsJavascript, DOM, browsers and frameworks basics
Javascript, DOM, browsers and frameworks basics
 
Couchdb Nosql
Couchdb NosqlCouchdb Nosql
Couchdb Nosql
 
Php sessions
Php sessionsPhp sessions
Php sessions
 
Easy javascript
Easy javascriptEasy javascript
Easy javascript
 
Php cookies
Php cookiesPhp cookies
Php cookies
 
Real World Seaside Applications
Real World Seaside ApplicationsReal World Seaside Applications
Real World Seaside Applications
 
Developing iOS REST Applications
Developing iOS REST ApplicationsDeveloping iOS REST Applications
Developing iOS REST Applications
 
Philip Stehlik at TechTalks.ph - Intro to Groovy and Grails
Philip Stehlik at TechTalks.ph - Intro to Groovy and GrailsPhilip Stehlik at TechTalks.ph - Intro to Groovy and Grails
Philip Stehlik at TechTalks.ph - Intro to Groovy and Grails
 
Meetup Performance
Meetup PerformanceMeetup Performance
Meetup Performance
 
When dynamic becomes static : the next step in web caching techniques
When dynamic becomes static : the next step in web caching techniquesWhen dynamic becomes static : the next step in web caching techniques
When dynamic becomes static : the next step in web caching techniques
 
Backbone
BackboneBackbone
Backbone
 
[drupalday2017] - Drupal come frontend che consuma servizi: HTTP Client Manager
[drupalday2017] - Drupal come frontend che consuma servizi: HTTP Client Manager[drupalday2017] - Drupal come frontend che consuma servizi: HTTP Client Manager
[drupalday2017] - Drupal come frontend che consuma servizi: HTTP Client Manager
 
Automating WordPress Theme Development
Automating WordPress Theme DevelopmentAutomating WordPress Theme Development
Automating WordPress Theme Development
 
Geotalk presentation
Geotalk presentationGeotalk presentation
Geotalk presentation
 
Indexed db
Indexed dbIndexed db
Indexed db
 

Viewers also liked

Claritas B A S E S Restaurant Audit Report
Claritas  B A S E S  Restaurant  Audit  ReportClaritas  B A S E S  Restaurant  Audit  Report
Claritas B A S E S Restaurant Audit Reportguest1f8179
 
Firefox 3.1 in 3.1 minutes
Firefox 3.1 in 3.1 minutesFirefox 3.1 in 3.1 minutes
Firefox 3.1 in 3.1 minutesThomas Bassetto
 
Athletic Comparisons
Athletic  ComparisonsAthletic  Comparisons
Athletic Comparisonsrlracette
 
Web Components & Shadow DOM
Web Components & Shadow DOMWeb Components & Shadow DOM
Web Components & Shadow DOMThomas Bassetto
 
Wicket Portlet Primer
Wicket Portlet PrimerWicket Portlet Primer
Wicket Portlet Primerate.douma
 
Integrating Social Apps with Content Driven Sites using Apache Rave and Sprin...
Integrating Social Apps with Content Driven Sites using Apache Rave and Sprin...Integrating Social Apps with Content Driven Sites using Apache Rave and Sprin...
Integrating Social Apps with Content Driven Sites using Apache Rave and Sprin...ate.douma
 
[FR] Capture vidéo avec HTML5
[FR] Capture vidéo avec HTML5[FR] Capture vidéo avec HTML5
[FR] Capture vidéo avec HTML5Thomas Bassetto
 
NHTSA informational powerpoint
NHTSA informational powerpointNHTSA informational powerpoint
NHTSA informational powerpointkmfox
 
Premio World Press Photo 2.008
Premio World Press Photo 2.008Premio World Press Photo 2.008
Premio World Press Photo 2.008Roberto Cernuda
 
Web 2.0 e Social networking: cosa sono, chi li utilizza e chi ci guadagna die...
Web 2.0 e Social networking: cosa sono, chi li utilizza e chi ci guadagna die...Web 2.0 e Social networking: cosa sono, chi li utilizza e chi ci guadagna die...
Web 2.0 e Social networking: cosa sono, chi li utilizza e chi ci guadagna die...madero
 
poetry analysis
poetry analysispoetry analysis
poetry analysislsmith7
 
Powerpoint Comp Skills Final One
Powerpoint Comp Skills Final OnePowerpoint Comp Skills Final One
Powerpoint Comp Skills Final Onelsmith7
 
IRUDIEN TXOKOA
IRUDIEN TXOKOAIRUDIEN TXOKOA
IRUDIEN TXOKOAeukene
 
Calendario Asturias 2009
Calendario Asturias 2009Calendario Asturias 2009
Calendario Asturias 2009Roberto Cernuda
 
STORYTELLING 2010
STORYTELLING 2010STORYTELLING 2010
STORYTELLING 2010mtejederas1
 
Energia Alternativa e Utopie Energetiche
Energia Alternativa e Utopie EnergeticheEnergia Alternativa e Utopie Energetiche
Energia Alternativa e Utopie Energetichemadero
 

Viewers also liked (20)

Ad
AdAd
Ad
 
Claritas B A S E S Restaurant Audit Report
Claritas  B A S E S  Restaurant  Audit  ReportClaritas  B A S E S  Restaurant  Audit  Report
Claritas B A S E S Restaurant Audit Report
 
Firefox 3.1 in 3.1 minutes
Firefox 3.1 in 3.1 minutesFirefox 3.1 in 3.1 minutes
Firefox 3.1 in 3.1 minutes
 
Athletic Comparisons
Athletic  ComparisonsAthletic  Comparisons
Athletic Comparisons
 
Web Components & Shadow DOM
Web Components & Shadow DOMWeb Components & Shadow DOM
Web Components & Shadow DOM
 
Wicket Portlet Primer
Wicket Portlet PrimerWicket Portlet Primer
Wicket Portlet Primer
 
Integrating Social Apps with Content Driven Sites using Apache Rave and Sprin...
Integrating Social Apps with Content Driven Sites using Apache Rave and Sprin...Integrating Social Apps with Content Driven Sites using Apache Rave and Sprin...
Integrating Social Apps with Content Driven Sites using Apache Rave and Sprin...
 
[FR] Capture vidéo avec HTML5
[FR] Capture vidéo avec HTML5[FR] Capture vidéo avec HTML5
[FR] Capture vidéo avec HTML5
 
NHTSA informational powerpoint
NHTSA informational powerpointNHTSA informational powerpoint
NHTSA informational powerpoint
 
Ppt Netvibes
Ppt NetvibesPpt Netvibes
Ppt Netvibes
 
Premio World Press Photo 2.008
Premio World Press Photo 2.008Premio World Press Photo 2.008
Premio World Press Photo 2.008
 
Web 2.0 e Social networking: cosa sono, chi li utilizza e chi ci guadagna die...
Web 2.0 e Social networking: cosa sono, chi li utilizza e chi ci guadagna die...Web 2.0 e Social networking: cosa sono, chi li utilizza e chi ci guadagna die...
Web 2.0 e Social networking: cosa sono, chi li utilizza e chi ci guadagna die...
 
poetry analysis
poetry analysispoetry analysis
poetry analysis
 
Powerpoint Comp Skills Final One
Powerpoint Comp Skills Final OnePowerpoint Comp Skills Final One
Powerpoint Comp Skills Final One
 
Crystal Pole
Crystal PoleCrystal Pole
Crystal Pole
 
IRUDIEN TXOKOA
IRUDIEN TXOKOAIRUDIEN TXOKOA
IRUDIEN TXOKOA
 
Ottieni più risultati dal tuo sito web - Joomlday 2014
Ottieni più risultati dal tuo sito web - Joomlday 2014Ottieni più risultati dal tuo sito web - Joomlday 2014
Ottieni più risultati dal tuo sito web - Joomlday 2014
 
Calendario Asturias 2009
Calendario Asturias 2009Calendario Asturias 2009
Calendario Asturias 2009
 
STORYTELLING 2010
STORYTELLING 2010STORYTELLING 2010
STORYTELLING 2010
 
Energia Alternativa e Utopie Energetiche
Energia Alternativa e Utopie EnergeticheEnergia Alternativa e Utopie Energetiche
Energia Alternativa e Utopie Energetiche
 

Similar to Porting Flashblock to Jetpack Platform (draft)

MozTW Jetpack Workshop: Taipei
MozTW Jetpack Workshop: TaipeiMozTW Jetpack Workshop: Taipei
MozTW Jetpack Workshop: Taipeilittlebtc
 
MozTW Jetpack Workshop: Taichung
MozTW Jetpack Workshop: TaichungMozTW Jetpack Workshop: Taichung
MozTW Jetpack Workshop: Taichunglittlebtc
 
Brownbag on basics of web components
Brownbag on basics of web componentsBrownbag on basics of web components
Brownbag on basics of web componentsJason Park
 
JavaScript performance patterns
JavaScript performance patternsJavaScript performance patterns
JavaScript performance patternsStoyan Stefanov
 
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)Doris Chen
 
iOS App with Parse.com as RESTful Backend
iOS App with Parse.com as RESTful BackendiOS App with Parse.com as RESTful Backend
iOS App with Parse.com as RESTful BackendStefano Zanetti
 
JavaScript Performance Patterns
JavaScript Performance PatternsJavaScript Performance Patterns
JavaScript Performance PatternsStoyan Stefanov
 
Build Your Own CMS with Apache Sling
Build Your Own CMS with Apache SlingBuild Your Own CMS with Apache Sling
Build Your Own CMS with Apache SlingBob Paulin
 
HTML5와 오픈소스 기반의 Web Components 기술
HTML5와 오픈소스 기반의 Web Components 기술HTML5와 오픈소스 기반의 Web Components 기술
HTML5와 오픈소스 기반의 Web Components 기술Jeongkyu Shin
 
How to make Ajax Libraries work for you
How to make Ajax Libraries work for youHow to make Ajax Libraries work for you
How to make Ajax Libraries work for youSimon Willison
 
Express Presentation
Express PresentationExpress Presentation
Express Presentationaaronheckmann
 
Dojo javascript toolkit
Dojo javascript toolkit Dojo javascript toolkit
Dojo javascript toolkit Predhin Sapru
 
Developing High Performance Web Apps - CodeMash 2011
Developing High Performance Web Apps - CodeMash 2011Developing High Performance Web Apps - CodeMash 2011
Developing High Performance Web Apps - CodeMash 2011Timothy Fisher
 
Bootstrap and XPages (DanNotes 2013)
Bootstrap and XPages (DanNotes 2013)Bootstrap and XPages (DanNotes 2013)
Bootstrap and XPages (DanNotes 2013)Mark Leusink
 
Html5 drupal7 with mandakini kumari(1)
Html5 drupal7 with mandakini kumari(1)Html5 drupal7 with mandakini kumari(1)
Html5 drupal7 with mandakini kumari(1)Mandakini Kumari
 
Week 4 - jQuery + Ajax
Week 4 - jQuery + AjaxWeek 4 - jQuery + Ajax
Week 4 - jQuery + Ajaxbaygross
 

Similar to Porting Flashblock to Jetpack Platform (draft) (20)

MozTW Jetpack Workshop: Taipei
MozTW Jetpack Workshop: TaipeiMozTW Jetpack Workshop: Taipei
MozTW Jetpack Workshop: Taipei
 
MozTW Jetpack Workshop: Taichung
MozTW Jetpack Workshop: TaichungMozTW Jetpack Workshop: Taichung
MozTW Jetpack Workshop: Taichung
 
Brownbag on basics of web components
Brownbag on basics of web componentsBrownbag on basics of web components
Brownbag on basics of web components
 
JavaScript performance patterns
JavaScript performance patternsJavaScript performance patterns
JavaScript performance patterns
 
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
 
iOS App with Parse.com as RESTful Backend
iOS App with Parse.com as RESTful BackendiOS App with Parse.com as RESTful Backend
iOS App with Parse.com as RESTful Backend
 
JavaScript Performance Patterns
JavaScript Performance PatternsJavaScript Performance Patterns
JavaScript Performance Patterns
 
Build Your Own CMS with Apache Sling
Build Your Own CMS with Apache SlingBuild Your Own CMS with Apache Sling
Build Your Own CMS with Apache Sling
 
Web2.0 with jQuery in English
Web2.0 with jQuery in EnglishWeb2.0 with jQuery in English
Web2.0 with jQuery in English
 
HTML5와 오픈소스 기반의 Web Components 기술
HTML5와 오픈소스 기반의 Web Components 기술HTML5와 오픈소스 기반의 Web Components 기술
HTML5와 오픈소스 기반의 Web Components 기술
 
How to make Ajax Libraries work for you
How to make Ajax Libraries work for youHow to make Ajax Libraries work for you
How to make Ajax Libraries work for you
 
Web Ninja
Web NinjaWeb Ninja
Web Ninja
 
JS Essence
JS EssenceJS Essence
JS Essence
 
Express Presentation
Express PresentationExpress Presentation
Express Presentation
 
Dojo javascript toolkit
Dojo javascript toolkit Dojo javascript toolkit
Dojo javascript toolkit
 
Developing High Performance Web Apps - CodeMash 2011
Developing High Performance Web Apps - CodeMash 2011Developing High Performance Web Apps - CodeMash 2011
Developing High Performance Web Apps - CodeMash 2011
 
Bootstrap and XPages (DanNotes 2013)
Bootstrap and XPages (DanNotes 2013)Bootstrap and XPages (DanNotes 2013)
Bootstrap and XPages (DanNotes 2013)
 
Html5 drupal7 with mandakini kumari(1)
Html5 drupal7 with mandakini kumari(1)Html5 drupal7 with mandakini kumari(1)
Html5 drupal7 with mandakini kumari(1)
 
Apex & jQuery Mobile
Apex & jQuery MobileApex & jQuery Mobile
Apex & jQuery Mobile
 
Week 4 - jQuery + Ajax
Week 4 - jQuery + AjaxWeek 4 - jQuery + Ajax
Week 4 - jQuery + Ajax
 

Recently uploaded

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 

Recently uploaded (20)

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 

Porting Flashblock to Jetpack Platform (draft)

  • 2. WHAT’S FLASHBLOCK? • Flashblock is an extension for the Firefox that blocks ALL Flash content from loading. It then leaves placeholders on the webpage that allow you to click to download and then view the Flash content.
  • 3. WHAT’S JETPACK? • Jetpackis an API for allowing you to write Firefox add-ons using the web technologies you already know (e.g. HTML, CSS and Javascript). • Almostone-clic install and without restart
  • 4. WHAT’S THE PLAN? • The basic algorithm • Some code • What could be improved • Conclusion
  • 5. ALGORITHM Quite simple : • Look for all Flash object • Replace them by a placeholder •A click on a placeholder put the Flash object back
  • 6. ON/OFF BUTTON ON THE STATUS BAR jetpack.statusBar.append({ html: 'Flashblok?<input type="checkbox">', width: 76, onReady: function(widget){ $("input", widget).click(function(){ if( this.checked ){ jetpack.tabs.onReady( removeEmbeds ); removeEmbeds(jetpack.tabs.focused.contentDocument); } else jetpack.tabs.onReady.unbind( removeEmbeds ); }); } });
  • 7. FIND FLASH OBJECTS Better method Lazzy method Search for : function findFlash(doc){ • object[codebase*="swflash.cab"] return $(doc).find('object, embed'); • object[data*=".swf"] } • embed[type="application/x-shockwave-flash"] • etc.
  • 8. REMOVE FLASH function removeEmbeds(doc){ findFlash(doc).each(function() { var placeHolder = createPlaceHolder(...); // Here I put code to remember my removed Flash object placeHolder.click(function(eventObject){ $(this).replaceWith(myDeletedEmbed); }); $(this).replaceWith(placeHolder); // So easy with jQuery }); }
  • 9. PLACEHOLDERS • Full CSS3 • Make use of text-shadow, - moz-box-shadow, -moz- border-radius and -moz-linear- gradient (coming with Firefox 3.6)
  • 10. NEXT STEPS • Block Flash objects sooner • Use simple storage JEP to remember block status • Improve memory footprint • Usethe coming menu JEP • Better way to remember and simple storage one to removed objects provide whitelist management • BlockSilverlight, Authorware, Director, etc. objects
  • 11. CONCLUSION • It’s very easy to develop an extension • Still lacks some features like localisation
  • 12. LINKS • Jetpack official site: http://labs.mozilla.com/jetpack/ • Jetpack tutorial: https://jetpack.mozillalabs.com/tutorial.html • JEPs: https://wiki.mozilla.org/Labs/Jetpack/JEPs • Original Flashblock extension : https://addons.mozilla.org/ firefox/addon/433 • Andfinally Flashblock for Jetpack : http://tb4.fr/labs/jetpack/ flashblock/