<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: extensions</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/extensions.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2024-07-25T19:40:08+00:00</updated><author><name>Simon Willison</name></author><entry><title>Button Stealer</title><link href="https://simonwillison.net/2024/Jul/25/button-stealer/#atom-tag" rel="alternate"/><published>2024-07-25T19:40:08+00:00</published><updated>2024-07-25T19:40:08+00:00</updated><id>https://simonwillison.net/2024/Jul/25/button-stealer/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://anatolyzenkov.com/stolen-buttons/button-stealer"&gt;Button Stealer&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Really fun Chrome extension by Anatoly Zenkov: it scans every web page you visit for things that look like buttons and stashes a copy of them, then provides a page where you can see all of the buttons you have collected. Here's &lt;a href="https://anatolyzenkov.com/stolen-buttons"&gt;Anatoly's collection&lt;/a&gt;, and here are a few that I've picked up trying it out myself:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Screenshot showing some buttons I have collected, each with their visual appearance maintained" src="https://static.simonwillison.net/static/2024/stolen-buttons.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;The extension source code is &lt;a href="https://github.com/anatolyzenkov/button-stealer"&gt;on GitHub&lt;/a&gt;. It identifies potential buttons by looping through every &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;button&amp;gt;&lt;/code&gt; element and &lt;a href="https://github.com/anatolyzenkov/button-stealer/blob/cfe43b6247e1b9f7d4414fd2a9b122c2d1a40840/scripts/button-stealer.js#L264-L298"&gt;applying some heuristics&lt;/a&gt; like checking the width/height ratio, then &lt;a href="https://github.com/anatolyzenkov/button-stealer/blob/cfe43b6247e1b9f7d4414fd2a9b122c2d1a40840/scripts/button-stealer.js#L93-L140"&gt;clones a subset of the CSS&lt;/a&gt; from &lt;code&gt;window.getComputedStyle()&lt;/code&gt; and stores that in the &lt;code&gt;style=&lt;/code&gt; attribute.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://waxy.org/2024/07/button-stealer/"&gt;Andy Baio&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/chrome"&gt;chrome&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/css"&gt;css&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/extensions"&gt;extensions&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;&lt;/p&gt;



</summary><category term="chrome"/><category term="css"/><category term="extensions"/><category term="javascript"/></entry><entry><title>FireScope</title><link href="https://simonwillison.net/2009/Feb/5/firescope/#atom-tag" rel="alternate"/><published>2009-02-05T22:51:34+00:00</published><updated>2009-02-05T22:51:34+00:00</updated><id>https://simonwillison.net/2009/Feb/5/firescope/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://tools.sitepoint.com/firescope/"&gt;FireScope&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Neat little Firefox / Firebug extension which adds a “Reference” tab showing documentation for the selected element from the comprehensive SitePoint Reference site.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/css"&gt;css&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/documentation"&gt;documentation&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/extensions"&gt;extensions&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/firebug"&gt;firebug&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/firefox"&gt;firefox&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/firescope"&gt;firescope&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/html"&gt;html&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/reference"&gt;reference&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/sitepoint"&gt;sitepoint&lt;/a&gt;&lt;/p&gt;



</summary><category term="css"/><category term="documentation"/><category term="extensions"/><category term="firebug"/><category term="firefox"/><category term="firescope"/><category term="html"/><category term="reference"/><category term="sitepoint"/></entry><entry><title>Firebug 1.0 Beta</title><link href="https://simonwillison.net/2006/Dec/4/firebug/#atom-tag" rel="alternate"/><published>2006-12-04T13:28:35+00:00</published><updated>2006-12-04T13:28:35+00:00</updated><id>https://simonwillison.net/2006/Dec/4/firebug/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.getfirebug.com/downloads.html"&gt;Firebug 1.0 Beta&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Unbelievably brilliant software. I use this every day.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/extensions"&gt;extensions&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/firebug"&gt;firebug&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/firefox"&gt;firefox&lt;/a&gt;&lt;/p&gt;



</summary><category term="extensions"/><category term="firebug"/><category term="firefox"/></entry><entry><title>Graphing requests with Tamper Data</title><link href="https://simonwillison.net/2006/Oct/17/graph/#atom-tag" rel="alternate"/><published>2006-10-17T18:21:06+00:00</published><updated>2006-10-17T18:21:06+00:00</updated><id>https://simonwillison.net/2006/Oct/17/graph/#atom-tag</id><summary type="html">
    &lt;p id="p-0"&gt;I spent the weekend in Boston, speaking at &lt;a href="http://www.gbcacm.org/"&gt;GBC/ACM&lt;/a&gt;'s Deep Ajax seminar with Alex Russell and Adrian Holovaty. I'll be posting some notes on this later, but I wanted to share a really neat Firefox extension that Alex showed me: &lt;a href="http://tamperdata.mozdev.org/"&gt;Tamper Data&lt;/a&gt;.&lt;/p&gt;

&lt;p id="p-1"&gt;Tamper Data is an extension for intercepting HTTP requests and modifying them. I have very little interest in this functionality myself, but hidden deep within the extension is the ability to do this:&lt;/p&gt;

&lt;p id="p-2"&gt;&lt;a href="http://simon.incutio.com/images/2006/tampergraph.png"&gt;&lt;img alt="Screenshot of Tamper Data graph of www.yahoo.com" height="368" src="http://simon.incutio.com/images/2006/tampergraph_t.png" title="Click for full-size screenshot" width="492" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p id="p-3"&gt;That's a graph showing what happens when you load up &lt;a href="http://www.yahoo.com/"&gt;www.yahoo.com&lt;/a&gt;. It shows every component of the page - JavaScript, CSS, images - and when each component started and finished loading. You can use it to get an idea for how long it took between the HTML starting to load and the browser beginning to pull in the CSS, then the images, and so on. It's a superb visualization of  what happens when a page is loaded.&lt;/p&gt;

&lt;p id="p-4"&gt;Unfortunately, if you install and run the extension (Tools -&amp;gt; Tamper Data) you'll see this instead:&lt;/p&gt;

&lt;p id="p-5"&gt;&lt;a href="http://simon.incutio.com/images/2006/tamperdata.png"&gt;&lt;img alt="Screenshot of Tamper Data user interface" height="394" src="http://simon.incutio.com/images/2006/tamperdata_t.png" title="Click for full-size screenshot" width="492" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p id="p-6"&gt;To get the graph, you have to right click in the main data grid and select "Graph All" from the context menu. Be sure to hit "clear" before loading a page that you want to graph or you'll end up seeing data from other pages too (you should shut down GMail or similar to prevent their polling requests from polluting the graph).&lt;/p&gt;

&lt;p id="p-7"&gt;It's a great tool but it's pretty well hidden. If you're looking for a side project, implementing the same functionality in a smaller extension (maybe as an extra tab in the Page Info screen) would be a significant service to the web development community.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/adrian-holovaty"&gt;adrian-holovaty&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/alex-russell"&gt;alex-russell&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/extensions"&gt;extensions&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/firefox"&gt;firefox&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/my-talks"&gt;my-talks&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/tamperdata"&gt;tamperdata&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="adrian-holovaty"/><category term="alex-russell"/><category term="extensions"/><category term="firefox"/><category term="my-talks"/><category term="tamperdata"/></entry><entry><title>A Firefox observation</title><link href="https://simonwillison.net/2005/Apr/28/firefox/#atom-tag" rel="alternate"/><published>2005-04-28T17:52:02+00:00</published><updated>2005-04-28T17:52:02+00:00</updated><id>https://simonwillison.net/2005/Apr/28/firefox/#atom-tag</id><summary type="html">
    &lt;p&gt;There are (to my knowledge) around 80 people on my undergraduate computer science course. Of those 80, I know of at least &lt;del&gt;four&lt;/del&gt;&lt;ins&gt;five&lt;/ins&gt; who's final year project involves writing a Firefox extension of some sort. That's 1 in &lt;del&gt;20&lt;/del&gt;&lt;ins&gt;16&lt;/ins&gt;.&lt;/p&gt;

&lt;p&gt;Meanwhile, the &lt;a href="http://www.spreadfirefox.com/fifty.html" title="Firefox: Blazing a Trail to 50,000,000"&gt;race to fifty million downloads&lt;/a&gt; continues. Check out the source code for the counter on that page for some smart use of Ajax.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/extensions"&gt;extensions&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/firefox"&gt;firefox&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/university"&gt;university&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="extensions"/><category term="firefox"/><category term="university"/></entry></feed>