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

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 

Recently uploaded (20)

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 

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/