| Index: chrome/browser/extensions/extension_view.cc
|
| ===================================================================
|
| --- chrome/browser/extensions/extension_view.cc (revision 13128)
|
| +++ chrome/browser/extensions/extension_view.cc (working copy)
|
| @@ -19,10 +19,40 @@
|
| : HWNDHtmlView(url, this, false),
|
| extension_(extension),
|
| profile_(profile) {
|
| - // TODO(mpcomplete): query this from the renderer somehow?
|
| - set_preferred_size(gfx::Size(100, 100));
|
| + // Set the width initially to 0, so that the WebCore::Document can
|
| + // correctly compute the minPrefWidth which is returned in
|
| + // DidContentsChangeSize()
|
| + set_preferred_size(gfx::Size(0, 100));
|
| + SetVisible(false);
|
| }
|
|
|
| +void ExtensionView::DidStopLoading(RenderViewHost* render_view_host,
|
| + int32 page_id) {
|
| + SetVisible(true);
|
| + render_view_host->WasResized();
|
| +}
|
| +
|
| +void ExtensionView::DidContentsPreferredWidthChange(const int pref_width) {
|
| + if (pref_width > 0) {
|
| + // SchedulePaint first because new_width may be smaller and we want
|
| + // the Parent to paint the vacated space.
|
| + SchedulePaint();
|
| + set_preferred_size(gfx::Size(pref_width, 100));
|
| + SizeToPreferredSize();
|
| +
|
| + // TODO(rafaelw): This assumes that the extension view is a child of an
|
| + // ExtensionToolstrip, which is a child of the BookmarkBarView. There should
|
| + // be a way to do this where the ExtensionView doesn't have to know it's
|
| + // containment hierarchy.
|
| + if (GetParent() != NULL && GetParent()->GetParent() != NULL) {
|
| + GetParent()->GetParent()->Layout();
|
| + }
|
| +
|
| + SchedulePaint();
|
| + render_view_host()->WasResized();
|
| + }
|
| +}
|
| +
|
| void ExtensionView::CreatingRenderer() {
|
| render_view_host()->AllowExtensionBindings();
|
| }
|
|
|