| Index: content/renderer/render_thread_impl.cc
|
| diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
|
| index 519108277d08667e3f0e3ee8baee1dc2b4721741..d8f6ddd3c7c8e5ed257d79a51b1545f0046ca724 100644
|
| --- a/content/renderer/render_thread_impl.cc
|
| +++ b/content/renderer/render_thread_impl.cc
|
| @@ -141,8 +141,10 @@ base::LazyInstance<base::ThreadLocalPointer<RenderThreadImpl> >
|
|
|
| class RenderViewZoomer : public RenderViewVisitor {
|
| public:
|
| - RenderViewZoomer(const std::string& host, double zoom_level)
|
| - : host_(host), zoom_level_(zoom_level) {
|
| + RenderViewZoomer(const std::string& scheme,
|
| + const std::string& host,
|
| + double zoom_level)
|
| + : scheme_(scheme), host_(host), zoom_level_(zoom_level) {
|
| }
|
|
|
| virtual bool Visit(RenderView* render_view) {
|
| @@ -153,13 +155,16 @@ class RenderViewZoomer : public RenderViewVisitor {
|
| // zoom settings.
|
| if (document.isPluginDocument())
|
| return true;
|
| -
|
| - if (net::GetHostOrSpecFromURL(GURL(document.url())) == host_)
|
| + GURL url(document.url());
|
| + if ((net::GetHostOrSpecFromURL(url) == host_) &&
|
| + (scheme_.empty() || scheme_ == url.scheme())) {
|
| webview->setZoomLevel(false, zoom_level_);
|
| + }
|
| return true;
|
| }
|
|
|
| private:
|
| + std::string scheme_;
|
| std::string host_;
|
| double zoom_level_;
|
|
|
| @@ -1005,9 +1010,10 @@ void RenderThreadImpl::DoNotNotifyWebKitOfModalLoop() {
|
| notify_webkit_of_modal_loop_ = false;
|
| }
|
|
|
| -void RenderThreadImpl::OnSetZoomLevelForCurrentURL(const std::string& host,
|
| +void RenderThreadImpl::OnSetZoomLevelForCurrentURL(const std::string& scheme,
|
| + const std::string& host,
|
| double zoom_level) {
|
| - RenderViewZoomer zoomer(host, zoom_level);
|
| + RenderViewZoomer zoomer(scheme, host, zoom_level);
|
| RenderView::ForEach(&zoomer);
|
| }
|
|
|
|
|