| Index: chrome/browser/resources/extensions/extension_list.js
 | 
| diff --git a/chrome/browser/resources/extensions/extension_list.js b/chrome/browser/resources/extensions/extension_list.js
 | 
| index f6967bd6297656b638d75cb63c44064ba79773fc..47dd7103a3af70ab966d33722af678c77be009f5 100644
 | 
| --- a/chrome/browser/resources/extensions/extension_list.js
 | 
| +++ b/chrome/browser/resources/extensions/extension_list.js
 | 
| @@ -285,11 +285,32 @@ cr.define('extensions', function() {
 | 
|            this.extensions_ = extensions;
 | 
|            this.showExtensionNodes_();
 | 
|            resolve();
 | 
| +
 | 
| +          // |onUpdateFinished_| should be called after the list becomes visible
 | 
| +          // in extensions.js. |resolve| is async, so |onUpdateFinished_|
 | 
| +          // shouldn't be called directly.
 | 
| +          this.extensionsUpdated_.then(this.onUpdateFinished_.bind(this));
 | 
|          }.bind(this));
 | 
|        }.bind(this));
 | 
|        return this.extensionsUpdated_;
 | 
|      },
 | 
|  
 | 
| +    /** Updates elements that need to be visible in order to update properly. */
 | 
| +    onUpdateFinished_: function() {
 | 
| +      assert(!this.hidden);
 | 
| +      assert(!this.parentElement.hidden);
 | 
| +
 | 
| +      this.updateFocusableElements();
 | 
| +
 | 
| +      var idToHighlight = this.getIdQueryParam_();
 | 
| +      if (idToHighlight && $(idToHighlight))
 | 
| +        this.scrollToNode_(idToHighlight);
 | 
| +
 | 
| +      var idToOpenOptions = this.getOptionsQueryParam_();
 | 
| +      if (idToOpenOptions && $(idToOpenOptions))
 | 
| +        this.showEmbeddedExtensionOptions_(idToOpenOptions, true);
 | 
| +    },
 | 
| +
 | 
|      /** @return {number} The number of extensions being displayed. */
 | 
|      getNumExtensions: function() {
 | 
|        return this.extensions_.length;
 | 
| @@ -339,14 +360,6 @@ cr.define('extensions', function() {
 | 
|            assertInstanceof(node, ExtensionFocusRow).destroy();
 | 
|          }
 | 
|        }
 | 
| -
 | 
| -      var idToHighlight = this.getIdQueryParam_();
 | 
| -      if (idToHighlight && $(idToHighlight))
 | 
| -        this.scrollToNode_(idToHighlight);
 | 
| -
 | 
| -      var idToOpenOptions = this.getOptionsQueryParam_();
 | 
| -      if (idToOpenOptions && $(idToOpenOptions))
 | 
| -        this.showEmbeddedExtensionOptions_(idToOpenOptions, true);
 | 
|      },
 | 
|  
 | 
|      /** Updates each row's focusable elements without rebuilding the grid. */
 | 
| 
 |