Index: content/browser/renderer_host/render_message_filter.cc |
diff --git a/content/browser/renderer_host/render_message_filter.cc b/content/browser/renderer_host/render_message_filter.cc |
index 13ce2f81908143bf29cb00cdc31c5c8253c351a2..656f56aeb9db5e89281b4dcbee41a757f5665a9e 100644 |
--- a/content/browser/renderer_host/render_message_filter.cc |
+++ b/content/browser/renderer_host/render_message_filter.cc |
@@ -391,6 +391,8 @@ bool RenderMessageFilter::OnMessageReceived(const IPC::Message& message) { |
IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_LoadFont, OnLoadFont) |
#endif |
IPC_MESSAGE_HANDLER(ViewHostMsg_DownloadUrl, OnDownloadUrl) |
+ IPC_MESSAGE_HANDLER(ViewHostMsg_SaveImageFromDataURL, |
+ OnSaveImageFromDataURL) |
#if defined(ENABLE_PLUGINS) |
IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_GetPlugins, OnGetPlugins) |
IPC_MESSAGE_HANDLER(FrameHostMsg_GetPluginInfo, OnGetPluginInfo) |
@@ -860,11 +862,11 @@ void RenderMessageFilter::OnGetMonitorColorProfile(std::vector<char>* profile) { |
} |
#endif |
-void RenderMessageFilter::OnDownloadUrl(int render_view_id, |
- const GURL& url, |
- const Referrer& referrer, |
- const base::string16& suggested_name, |
- const bool use_prompt) { |
+void RenderMessageFilter::DownloadUrl(int render_view_id, |
+ const GURL& url, |
+ const Referrer& referrer, |
+ const base::string16& suggested_name, |
+ const bool use_prompt) { |
scoped_ptr<DownloadSaveInfo> save_info(new DownloadSaveInfo()); |
save_info->suggested_name = suggested_name; |
save_info->prompt_for_save_location = use_prompt; |
@@ -893,6 +895,23 @@ void RenderMessageFilter::OnDownloadUrl(int render_view_id, |
ResourceDispatcherHostImpl::DownloadStartedCallback()); |
} |
+void RenderMessageFilter::OnDownloadUrl(int render_view_id, |
+ const GURL& url, |
+ const Referrer& referrer, |
+ const base::string16& suggested_name) { |
+ DownloadUrl(render_view_id, url, referrer, suggested_name); |
+} |
+ |
+void RenderMessageFilter::OnSaveImageFromDataURL(int render_view_id, |
+ const std::string& data_url) { |
+ // Note: |data_url| has a size limitation. (< 10MB) |
+ // Please refer to RenderViewImpl::saveImageFromDataURL(). |
+ const int MAX_LENGTH_OF_DATA_URL = 1024 * 1024 * 10; |
palmer
2014/09/02 17:58:04
This should be a size_t. Note that you are compari
zino
2014/09/03 01:45:58
A stupid mistake. :-P
Done.
|
+ if (data_url.length() < MAX_LENGTH_OF_DATA_URL) |
+ DownloadUrl(render_view_id, GURL(data_url), |
+ Referrer(), base::string16(), true); |
+} |
+ |
void RenderMessageFilter::OnCheckNotificationPermission( |
const GURL& source_origin, int* result) { |
#if defined(ENABLE_NOTIFICATIONS) |