Chromium Code Reviews| Index: chrome/browser/resources/extensions/extension_options_overlay.js |
| diff --git a/chrome/browser/resources/extensions/extension_options_overlay.js b/chrome/browser/resources/extensions/extension_options_overlay.js |
| index 899098d625ec446767be32d832602b97367fd582..5e062f53b2d88ff0c748a4e705f6def6ad386a71 100644 |
| --- a/chrome/browser/resources/extensions/extension_options_overlay.js |
| +++ b/chrome/browser/resources/extensions/extension_options_overlay.js |
| @@ -49,7 +49,7 @@ cr.define('extensions', function() { |
| this.setVisible_(false); |
| var extensionoptions = document.querySelector('extensionoptions'); |
| if (extensionoptions) |
| - $('extension-options-overlay').removeChild(extensionoptions); |
| + $('extension-options-overlay-guest').removeChild(extensionoptions); |
| }, |
| /** |
| @@ -64,14 +64,54 @@ cr.define('extensions', function() { |
| extensionoptions.extension = extensionId; |
| extensionoptions.autosize = 'on'; |
| - // TODO(ericzeng): Resize in a non-jarring way. |
| + var headerStyle = |
|
not at google - send to devlin
2014/08/20 02:07:15
You might want to add a meta-comment here, like:
ericzeng
2014/08/20 18:44:07
Done.
|
| + window.getComputedStyle($('extension-options-overlay-title')); |
| + var headerHeight = parseInt(headerStyle.lineHeight) + |
| + parseInt(headerStyle.paddingTop) + |
| + parseInt(headerStyle.paddingBottom); |
|
not at google - send to devlin
2014/08/20 02:07:15
Can you get this from one of the other height prop
|
| + var overlayMaxHeight = |
| + parseInt($('extension-options-overlay').style.maxHeight); |
| + extensionoptions.maxheight = overlayMaxHeight - headerHeight; |
| + |
| + extensionoptions.minwidth = |
| + parseInt(window.getComputedStyle($('extension-options-overlay')) |
| + .minWidth); |
| + |
| + extensionoptions.shouldDeferAutoSize(true); |
|
not at google - send to devlin
2014/08/20 02:07:15
You mention in the comment that you don't actually
ericzeng
2014/08/20 02:23:30
Oh, I tried removing it and it turns out that it l
|
| + |
| extensionoptions.onsizechanged = function(evt) { |
| - $('extension-options-overlay').style.width = evt.width; |
| - $('extension-options-overlay').style.height = evt.height; |
| + var overlayStyle = |
| + window.getComputedStyle($('extension-options-overlay')); |
| + var oldWidth = parseInt(overlayStyle.width); |
| + var oldHeight = parseInt(overlayStyle.height); |
| + |
| + // animationTime is the amount of time in ms that will be used to resize |
| + // the overlay. It is a function of the pythagorean distance between old |
| + // and the new size, so that the speed at which the overlay changes is |
| + // constant for all sizes. |
|
not at google - send to devlin
2014/08/20 02:07:15
Nit: could you say like "0.25 means the popup resi
ericzeng
2014/08/20 18:44:07
Done.
|
| + var animationTime = 0.25 * Math.sqrt( |
| + Math.pow(evt.newWidth - oldWidth, 2) + |
| + Math.pow(evt.newHeight - oldHeight, 2)); |
| + |
| + var player = $('extension-options-overlay').animate([ |
| + {width: oldWidth + 'px', height: oldHeight + 'px'}, |
| + {width: evt.newWidth + 'px', height: evt.newHeight + 'px'} |
| + ], { |
| + duration: animationTime, |
| + delay: 0 |
| + }); |
| + |
| + player.onfinish = function(e) { |
| + extensionoptions.resumeDeferredAutoSize(); |
|
not at google - send to devlin
2014/08/20 02:07:15
Heh how did you figure out how to use animate... d
ericzeng
2014/08/20 02:23:30
This was sufficient documentation for me to implem
not at google - send to devlin
2014/08/20 02:29:34
Specifically I was wondering about an onerror or o
ericzeng
2014/08/20 18:44:07
Hm, I can't actually open that link, do you have t
|
| + $('extension-options-overlay-guest').style.position = 'static'; |
| + $('extension-options-overlay-guest').style.left = 'auto'; |
| + }; |
| }.bind(this); |
| - $('extension-options-overlay').appendChild(extensionoptions); |
| + $('extension-options-overlay-guest').style.position = 'absolute'; |
| + $('extension-options-overlay-guest').style.left = '10000px'; |
|
not at google - send to devlin
2014/08/20 02:07:15
This is to implement that off-screen resize?
You
ericzeng
2014/08/20 18:44:07
Done.
|
| + $('extension-options-overlay-guest').appendChild(extensionoptions); |
| $('extension-options-overlay-title').textContent = extensionName; |
| this.setVisible_(true); |