diff options
-rw-r--r-- | content/browser/web_contents/web_contents_impl.cc | 7 | ||||
-rw-r--r-- | content/renderer/image_loading_helper.cc | 11 | ||||
-rw-r--r-- | content/renderer/image_loading_helper.h | 10 | ||||
-rw-r--r-- | content/renderer/render_frame_impl.cc | 4 | ||||
-rw-r--r-- | content/renderer/render_view_impl.cc | 2 |
5 files changed, 16 insertions, 18 deletions
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc index 005f768..32eef98 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc @@ -170,12 +170,12 @@ const char kWebContentsAndroidKey[] = "web_contents_android"; base::LazyInstance<std::vector<WebContentsImpl::CreatedCallback> > g_created_callbacks = LAZY_INSTANCE_INITIALIZER; -static int StartDownload(content::RenderViewHost* rvh, +static int StartDownload(content::RenderFrameHost* rfh, const GURL& url, bool is_favicon, uint32_t max_bitmap_size) { static int g_next_image_download_id = 0; - rvh->Send(new ImageMsg_DownloadImage(rvh->GetRoutingID(), + rfh->Send(new ImageMsg_DownloadImage(rfh->GetRoutingID(), ++g_next_image_download_id, url, is_favicon, @@ -2061,8 +2061,7 @@ int WebContentsImpl::DownloadImage(const GURL& url, bool is_favicon, uint32_t max_bitmap_size, const ImageDownloadCallback& callback) { - RenderViewHost* host = GetRenderViewHost(); - int id = StartDownload(host, url, is_favicon, max_bitmap_size); + int id = StartDownload(GetMainFrame(), url, is_favicon, max_bitmap_size); image_download_map_[id] = callback; return id; } diff --git a/content/renderer/image_loading_helper.cc b/content/renderer/image_loading_helper.cc index a1d6f94..b036f0b 100644 --- a/content/renderer/image_loading_helper.cc +++ b/content/renderer/image_loading_helper.cc @@ -9,7 +9,7 @@ #include "content/child/image_decoder.h" #include "content/common/image_messages.h" #include "content/public/common/url_constants.h" -#include "content/public/renderer/render_view.h" +#include "content/public/renderer/render_frame.h" #include "content/renderer/fetchers/multi_resolution_image_resource_fetcher.h" #include "net/base/data_url.h" #include "skia/ext/image_operations.h" @@ -97,8 +97,8 @@ void FilterAndResizeImagesForMaximalSize( namespace content { -ImageLoadingHelper::ImageLoadingHelper(RenderView* render_view) - : RenderViewObserver(render_view) { +ImageLoadingHelper::ImageLoadingHelper(RenderFrame* render_frame) + : RenderFrameObserver(render_frame) { } ImageLoadingHelper::~ImageLoadingHelper() { @@ -136,13 +136,10 @@ bool ImageLoadingHelper::DownloadImage(int id, const GURL& image_url, bool is_favicon, uint32_t max_image_size) { - // Make sure webview was not shut down. - if (!render_view()->GetWebView()) - return false; // Create an image resource fetcher and assign it with a call back object. image_fetchers_.push_back(new MultiResolutionImageResourceFetcher( image_url, - render_view()->GetWebView()->mainFrame(), + render_frame()->GetWebFrame(), id, is_favicon ? WebURLRequest::TargetIsFavicon : WebURLRequest::TargetIsImage, diff --git a/content/renderer/image_loading_helper.h b/content/renderer/image_loading_helper.h index 14c1327..a7d24d6 100644 --- a/content/renderer/image_loading_helper.h +++ b/content/renderer/image_loading_helper.h @@ -9,7 +9,7 @@ #include <vector> #include "base/memory/scoped_vector.h" -#include "content/public/renderer/render_view_observer.h" +#include "content/public/renderer/render_frame_observer.h" #include "url/gurl.h" class SkBitmap; @@ -19,10 +19,10 @@ namespace content { class MultiResolutionImageResourceFetcher; // This class deals with image downloading. -// One instance of ImageLoadingHelper is owned by RenderView. -class ImageLoadingHelper : public RenderViewObserver { +// One instance of ImageLoadingHelper is owned by RenderFrame. +class ImageLoadingHelper : public RenderFrameObserver { public: - explicit ImageLoadingHelper(RenderView* render_view); + explicit ImageLoadingHelper(RenderFrame* render_frame); private: virtual ~ImageLoadingHelper(); @@ -59,7 +59,7 @@ class ImageLoadingHelper : public RenderViewObserver { // Decodes a data: URL image or returns an empty image in case of failure. SkBitmap ImageFromDataUrl(const GURL&) const; - // RenderViewObserver implementation. + // RenderFrameObserver implementation. virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; typedef ScopedVector<MultiResolutionImageResourceFetcher> diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc index 949975b..bd4f725 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc @@ -49,6 +49,7 @@ #include "content/renderer/child_frame_compositing_helper.h" #include "content/renderer/context_menu_params_builder.h" #include "content/renderer/dom_automation_controller.h" +#include "content/renderer/image_loading_helper.h" #include "content/renderer/ime_event_guard.h" #include "content/renderer/internal_document_state_data.h" #include "content/renderer/java/java_bridge_dispatcher.h" @@ -342,6 +343,9 @@ void RenderFrameImpl::SetWebFrame(blink::WebFrame* web_frame) { #endif new SharedWorkerRepository(this); + if (!frame_->parent()) + new ImageLoadingHelper(this); + // We delay calling this until we have the WebFrame so that any observer or // embedder can call GetWebFrame on any RenderFrame. GetContentClient()->renderer()->RenderFrameCreated(this); diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc index ec6cb60..e2bfdae 100644 --- a/content/renderer/render_view_impl.cc +++ b/content/renderer/render_view_impl.cc @@ -81,7 +81,6 @@ #include "content/renderer/geolocation_dispatcher.h" #include "content/renderer/gpu/render_widget_compositor.h" #include "content/renderer/idle_user_detector.h" -#include "content/renderer/image_loading_helper.h" #include "content/renderer/ime_event_guard.h" #include "content/renderer/input/input_handler_manager.h" #include "content/renderer/input_tag_speech_dispatcher.h" @@ -816,7 +815,6 @@ void RenderViewImpl::Initialize(RenderViewImplParams* params) { webview()->devToolsAgent()->setLayerTreeId(rwc->GetLayerTreeId()); } mouse_lock_dispatcher_ = new RenderViewMouseLockDispatcher(this); - new ImageLoadingHelper(this); // Create renderer_accessibility_ if needed. OnSetAccessibilityMode(params->accessibility_mode); |