Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(87)

Unified Diff: content/renderer/render_view_impl.cc

Issue 8704005: Add autoresize capability to chromium. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« chrome/browser/ui/panels/panel.cc ('K') | « content/renderer/render_view_impl.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/render_view_impl.cc
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
index 955c5f86ba4292e4b75cfb6661c29e5ff12caee5..b0aac9e20bce07a8b3a2b62c63c1c90b1da5e619 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -651,6 +651,7 @@ bool RenderViewImpl::OnMessageReceived(const IPC::Message& message) {
IPC_MESSAGE_HANDLER(ViewMsg_SetBackground, OnSetBackground)
IPC_MESSAGE_HANDLER(ViewMsg_EnablePreferredSizeChangedMode,
OnEnablePreferredSizeChangedMode)
+ IPC_MESSAGE_HANDLER(ViewMsg_EnableAutoResize, OnEnableAutoResize)
IPC_MESSAGE_HANDLER(ViewMsg_DisableScrollbarsForSmallWindows,
OnDisableScrollbarsForSmallWindows)
IPC_MESSAGE_HANDLER(ViewMsg_SetRendererPrefs, OnSetRendererPrefs)
@@ -1743,6 +1744,25 @@ void RenderViewImpl::focusedNodeChanged(const WebNode& node) {
FOR_EACH_OBSERVER(RenderViewObserver, observers_, FocusedNodeChanged(node));
}
+void RenderViewImpl::autoSizeChanged(const WebSize& new_size) {
+ Send(new ViewHostMsg_DidContentsPreferredSizeChange(routing_id_,
darin (slow to review) 2011/11/28 16:53:55 nit: DidChangeContentsPreferredSize or ContentsPre
jennb 2011/11/28 18:02:24 Maybe move the verb right after Did, i.e. DidChang
levin 2011/11/28 18:44:56 I was re-using an existing message (which I think
+ new_size));
+}
+
+void RenderViewImpl::didUpdateLayout() {
+ // We don't always want to set up a timer, only if we've been put in that
+ // mode by getting a |ViewMsg_EnablePreferredSizeChangedMode|
+ // message.
+ if (!send_preferred_size_changes_ || !webview())
+ return;
+
+ if (check_preferred_size_timer_.IsRunning())
+ return;
+ check_preferred_size_timer_.Start(FROM_HERE,
+ TimeDelta::FromMilliseconds(0), this,
+ &RenderViewImpl::CheckPreferredSize);
+}
+
void RenderViewImpl::navigateBackForwardSoon(int offset) {
Send(new ViewHostMsg_GoToEntryAtOffset(routing_id_, offset));
}
@@ -2851,20 +2871,6 @@ void RenderViewImpl::willReleaseScriptContext(WebFrame* frame,
frame, context, world_id);
}
-void RenderViewImpl::didUpdateLayout(WebFrame* frame) {
- // We don't always want to set up a timer, only if we've been put in that
- // mode by getting a |ViewMsg_EnablePreferredSizeChangedMode|
- // message.
- if (!send_preferred_size_changes_ || !webview())
- return;
-
- if (check_preferred_size_timer_.IsRunning())
- return;
- check_preferred_size_timer_.Start(FROM_HERE,
- TimeDelta::FromMilliseconds(0), this,
- &RenderViewImpl::CheckPreferredSize);
-}
-
void RenderViewImpl::CheckPreferredSize() {
// We don't always want to send the change messages over IPC, only if we've
// been put in that mode by getting a |ViewMsg_EnablePreferredSizeChangedMode|
@@ -3820,6 +3826,15 @@ void RenderViewImpl::OnFileChooserResponse(const std::vector<FilePath>& paths) {
}
}
+void RenderViewImpl::OnEnableAutoResize(const gfx::Size& min_size,
+ const gfx::Size& max_size) {
+ DCHECK(!send_preferred_size_changes_);
+ DCHECK(disable_scrollbars_size_limit_.IsEmpty());
+ if (!webview())
+ return;
+ webview()->enableAutoSizeMode(true, min_size, max_size);
+}
+
void RenderViewImpl::OnEnablePreferredSizeChangedMode() {
if (send_preferred_size_changes_)
return;
@@ -3828,7 +3843,7 @@ void RenderViewImpl::OnEnablePreferredSizeChangedMode() {
// Start off with an initial preferred size notification (in case
// |didUpdateLayout| was already called).
if (webview())
- didUpdateLayout(webview()->mainFrame());
+ didUpdateLayout();
}
void RenderViewImpl::OnDisableScrollbarsForSmallWindows(
« chrome/browser/ui/panels/panel.cc ('K') | « content/renderer/render_view_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698