| Index: iconAnimation.js | 
| =================================================================== | 
| --- a/iconAnimation.js | 
| +++ b/iconAnimation.js | 
| @@ -16,8 +16,8 @@ | 
| */ | 
|  | 
| iconAnimation = { | 
| -  _icons: new TabMap(), | 
| -  _animatedTabs: new TabMap(), | 
| +  _icons: new ext.PageMap(), | 
| +  _animatedPages: new ext.PageMap(), | 
| _step: 0, | 
|  | 
| update: function(type) | 
| @@ -37,31 +37,31 @@ | 
| delete this._interval; | 
| delete this._type; | 
|  | 
| -    this._animatedTabs.clear(); | 
| +    this._animatedPages.clear(); | 
| }, | 
| -  registerTab: function(tab, icon) | 
| +  registerPage: function(page, icon) | 
| { | 
| -    this._icons.set(tab, icon); | 
| +    this._icons.set(page, icon); | 
|  | 
| -    if (this._animatedTabs.has(tab)) | 
| -      this._updateIcon(tab); | 
| +    if (this._animatedPages.has(page)) | 
| +      this._updateIcon(page); | 
| }, | 
| _start: function() | 
| { | 
| this._interval = setInterval(function() | 
| { | 
| -      this._getVisibleTabs(function(tabs) | 
| +      ext.pages.query({active: true}, function(pages) | 
| { | 
| -        if (tabs.length == 0) | 
| +        if (pages.length == 0) | 
| return; | 
|  | 
| -        for (var i = 0; i < tabs.length; i++) | 
| -          this._animatedTabs.set(tabs[i], null); | 
| +        for (var i = 0; i < pages.length; i++) | 
| +          this._animatedPages.set(pages[i], null); | 
|  | 
| var interval = setInterval(function() | 
| { | 
| this._step++; | 
| -          tabs.forEach(this._updateIcon.bind(this)); | 
| +          pages.forEach(this._updateIcon.bind(this)); | 
|  | 
| if (this._step < 10) | 
| return; | 
| @@ -72,49 +72,22 @@ | 
| interval = setInterval(function() | 
| { | 
| this._step--; | 
| -              tabs.forEach(this._updateIcon.bind(this)); | 
| +              pages.forEach(this._updateIcon.bind(this)); | 
|  | 
| if (this._step > 0) | 
| return; | 
|  | 
| clearInterval(interval); | 
| -              this._animatedTabs.clear(); | 
| +              this._animatedPages.clear(); | 
| }.bind(this), 100); | 
| }.bind(this), 1000); | 
| }.bind(this), 100); | 
| }.bind(this)); | 
| }.bind(this), 15000); | 
| }, | 
| -  _getVisibleTabs: function(callback) | 
| +  _updateIcon: function(page) | 
| { | 
| -    ext.windows.getAll(function(windows) | 
| -    { | 
| -      var tabs = []; | 
| -      var visibleWindows = windows.length; | 
| - | 
| -      for (var i = 0; i < windows.length; i++) | 
| -      { | 
| -        if (!windows[i].visible) | 
| -        { | 
| -          if (--visibleWindows == 0) | 
| -            callback(tabs); | 
| - | 
| -          continue; | 
| -        } | 
| - | 
| -        windows[i].getActiveTab(function(tab) | 
| -        { | 
| -          tabs.push(tab); | 
| - | 
| -          if (tabs.length == visibleWindows) | 
| -            callback(tabs); | 
| -        }); | 
| -      } | 
| -    }); | 
| -  }, | 
| -  _updateIcon: function(tab) | 
| -  { | 
| -    var path = this._icons.get(tab); | 
| +    var path = this._icons.get(page); | 
|  | 
| if (!path) | 
| return; | 
| @@ -129,6 +102,6 @@ | 
| path = path.replace(/(?=\..+$)/, suffix); | 
| } | 
|  | 
| -    tab.browserAction.setIcon(path); | 
| +    page.browserAction.setIcon(path); | 
| } | 
| }; | 
|  |