summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--content/browser/web_contents/web_contents_impl.cc7
-rw-r--r--content/renderer/image_loading_helper.cc11
-rw-r--r--content/renderer/image_loading_helper.h10
-rw-r--r--content/renderer/render_frame_impl.cc4
-rw-r--r--content/renderer/render_view_impl.cc2
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);