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

Unified Diff: content/renderer/render_view_impl.cc

Issue 1804023002: Fix page zoom to be frame-centric for out-of-process frames. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Don't use WeakPtr for PostTask on UI thread. Created 4 years, 9 months 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
Index: content/renderer/render_view_impl.cc
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
index e66153301e131007be323524a5fb471c5d6fb51e..13bc4abf846c26cf588895b524418e21fb65dcf1 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -1335,8 +1335,6 @@ bool RenderViewImpl::OnMessageReceived(const IPC::Message& message) {
IPC_MESSAGE_HANDLER(ViewMsg_Zoom, OnZoom)
IPC_MESSAGE_HANDLER(ViewMsg_SetZoomLevelForLoadingURL,
OnSetZoomLevelForLoadingURL)
- IPC_MESSAGE_HANDLER(ViewMsg_SetZoomLevelForView,
- OnSetZoomLevelForView)
IPC_MESSAGE_HANDLER(ViewMsg_SetPageEncoding, OnSetPageEncoding)
IPC_MESSAGE_HANDLER(ViewMsg_ResetPageEncodingToDefault,
OnResetPageEncodingToDefault)
@@ -1730,7 +1728,12 @@ void RenderViewImpl::AttachWebFrameWidget(blink::WebFrameWidget* frame_widget) {
}
void RenderViewImpl::SetZoomLevel(double zoom_level) {
- webview()->setZoomLevel(zoom_level);
+ // This function may get called multiple times if our page has multiple
+ // frames, so we early out on subsequent calls so as to only send one
+ // notification.
+ if (zoom_level == webview()->zoomLevel())
+ return;
+
FOR_EACH_OBSERVER(RenderViewObserver, observers_, OnZoomLevelChanged());
}
@@ -2342,14 +2345,6 @@ void RenderViewImpl::OnSetZoomLevelForLoadingURL(const GURL& url,
#endif
}
-void RenderViewImpl::OnSetZoomLevelForView(bool uses_temporary_zoom_level,
- double level) {
- uses_temporary_zoom_level_ = uses_temporary_zoom_level;
-
- webview()->hidePopups();
- SetZoomLevel(level);
-}
-
void RenderViewImpl::OnSetPageEncoding(const std::string& encoding_name) {
webview()->setPageEncoding(WebString::fromUTF8(encoding_name));
}
@@ -2537,7 +2532,6 @@ void RenderViewImpl::OnDisableScrollbarsForSmallWindows(
void RenderViewImpl::OnSetRendererPrefs(
const RendererPreferences& renderer_prefs) {
- double old_zoom_level = renderer_preferences_.default_zoom_level;
std::string old_accept_languages = renderer_preferences_.accept_languages;
renderer_preferences_ = renderer_prefs;
@@ -2561,17 +2555,6 @@ void RenderViewImpl::OnSetRendererPrefs(
}
#endif // defined(USE_DEFAULT_RENDER_THEME)
- // If the zoom level for this page matches the old zoom default, and this
- // is not a plugin, update the zoom level to match the new default.
- if (webview() && webview()->mainFrame()->isWebLocalFrame() &&
- !webview()->mainFrame()->document().isPluginDocument() &&
- !ZoomValuesEqual(old_zoom_level,
- renderer_preferences_.default_zoom_level) &&
- ZoomValuesEqual(webview()->zoomLevel(), old_zoom_level)) {
- SetZoomLevel(renderer_preferences_.default_zoom_level);
- zoomLevelChanged();
- }
-
if (webview() &&
old_accept_languages != renderer_preferences_.accept_languages) {
webview()->acceptLanguagesChanged();

Powered by Google App Engine
This is Rietveld 408576698