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

Side by Side Diff: chrome/renderer/pepper/pepper_pdf_host.cc

Issue 477263003: pdf: Create a separate component for using the pdf pepper plugin. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 3 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/renderer/pepper/pepper_pdf_host.h" 5 #include "chrome/renderer/pepper/pepper_pdf_host.h"
6 6
7 #include "base/strings/utf_string_conversions.h" 7 #include "base/strings/utf_string_conversions.h"
8 #include "chrome/common/render_messages.h"
9 #include "chrome/renderer/printing/print_web_view_helper.h" 8 #include "chrome/renderer/printing/print_web_view_helper.h"
9 #include "components/pdf/common/pdf_messages.h"
10 #include "content/app/resources/grit/content_resources.h" 10 #include "content/app/resources/grit/content_resources.h"
11 #include "content/app/strings/grit/content_strings.h" 11 #include "content/app/strings/grit/content_strings.h"
12 #include "content/public/common/referrer.h" 12 #include "content/public/common/referrer.h"
13 #include "content/public/renderer/pepper_plugin_instance.h" 13 #include "content/public/renderer/pepper_plugin_instance.h"
14 #include "content/public/renderer/render_thread.h" 14 #include "content/public/renderer/render_thread.h"
15 #include "content/public/renderer/render_view.h" 15 #include "content/public/renderer/render_view.h"
16 #include "content/public/renderer/renderer_ppapi_host.h" 16 #include "content/public/renderer/renderer_ppapi_host.h"
17 #include "ppapi/host/dispatch_host_message.h" 17 #include "ppapi/host/dispatch_host_message.h"
18 #include "ppapi/host/host_message_context.h" 18 #include "ppapi/host/host_message_context.h"
19 #include "ppapi/host/ppapi_host.h" 19 #include "ppapi/host/ppapi_host.h"
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 return PP_OK; 177 return PP_OK;
178 } 178 }
179 179
180 int32_t PepperPDFHost::OnHostMsgSetContentRestriction( 180 int32_t PepperPDFHost::OnHostMsgSetContentRestriction(
181 ppapi::host::HostMessageContext* context, 181 ppapi::host::HostMessageContext* context,
182 int restrictions) { 182 int restrictions) {
183 content::PepperPluginInstance* instance = 183 content::PepperPluginInstance* instance =
184 host_->GetPluginInstance(pp_instance()); 184 host_->GetPluginInstance(pp_instance());
185 if (!instance) 185 if (!instance)
186 return PP_ERROR_FAILED; 186 return PP_ERROR_FAILED;
187 instance->GetRenderView()->Send( 187 instance->GetRenderView()->Send(new PDFHostMsg_PDFUpdateContentRestrictions(
188 new ChromeViewHostMsg_PDFUpdateContentRestrictions( 188 instance->GetRenderView()->GetRoutingID(), restrictions));
189 instance->GetRenderView()->GetRoutingID(), restrictions));
190 return PP_OK; 189 return PP_OK;
191 } 190 }
192 191
193 int32_t PepperPDFHost::OnHostMsgUserMetricsRecordAction( 192 int32_t PepperPDFHost::OnHostMsgUserMetricsRecordAction(
194 ppapi::host::HostMessageContext* context, 193 ppapi::host::HostMessageContext* context,
195 const std::string& action) { 194 const std::string& action) {
196 if (action.empty()) 195 if (action.empty())
197 return PP_ERROR_FAILED; 196 return PP_ERROR_FAILED;
198 content::RenderThread::Get()->RecordComputedAction(action); 197 content::RenderThread::Get()->RecordComputedAction(action);
199 return PP_OK; 198 return PP_OK;
200 } 199 }
201 200
202 int32_t PepperPDFHost::OnHostMsgHasUnsupportedFeature( 201 int32_t PepperPDFHost::OnHostMsgHasUnsupportedFeature(
203 ppapi::host::HostMessageContext* context) { 202 ppapi::host::HostMessageContext* context) {
204 content::PepperPluginInstance* instance = 203 content::PepperPluginInstance* instance =
205 host_->GetPluginInstance(pp_instance()); 204 host_->GetPluginInstance(pp_instance());
206 if (!instance) 205 if (!instance)
207 return PP_ERROR_FAILED; 206 return PP_ERROR_FAILED;
208 207
209 blink::WebView* view = 208 blink::WebView* view =
210 instance->GetContainer()->element().document().frame()->view(); 209 instance->GetContainer()->element().document().frame()->view();
211 content::RenderView* render_view = content::RenderView::FromWebView(view); 210 content::RenderView* render_view = content::RenderView::FromWebView(view);
212 render_view->Send(new ChromeViewHostMsg_PDFHasUnsupportedFeature( 211 render_view->Send(
213 render_view->GetRoutingID())); 212 new PDFHostMsg_PDFHasUnsupportedFeature(render_view->GetRoutingID()));
214 return PP_OK; 213 return PP_OK;
215 } 214 }
216 215
217 int32_t PepperPDFHost::OnHostMsgPrint( 216 int32_t PepperPDFHost::OnHostMsgPrint(
218 ppapi::host::HostMessageContext* context) { 217 ppapi::host::HostMessageContext* context) {
219 #if defined(ENABLE_FULL_PRINTING) 218 #if defined(ENABLE_FULL_PRINTING)
220 content::PepperPluginInstance* instance = 219 content::PepperPluginInstance* instance =
221 host_->GetPluginInstance(pp_instance()); 220 host_->GetPluginInstance(pp_instance());
222 if (!instance) 221 if (!instance)
223 return PP_ERROR_FAILED; 222 return PP_ERROR_FAILED;
(...skipping 17 matching lines...) Expand all
241 content::PepperPluginInstance* instance = 240 content::PepperPluginInstance* instance =
242 host_->GetPluginInstance(pp_instance()); 241 host_->GetPluginInstance(pp_instance());
243 if (!instance) 242 if (!instance)
244 return PP_ERROR_FAILED; 243 return PP_ERROR_FAILED;
245 GURL url = instance->GetPluginURL(); 244 GURL url = instance->GetPluginURL();
246 content::RenderView* render_view = instance->GetRenderView(); 245 content::RenderView* render_view = instance->GetRenderView();
247 blink::WebLocalFrame* frame = 246 blink::WebLocalFrame* frame =
248 render_view->GetWebView()->mainFrame()->toWebLocalFrame(); 247 render_view->GetWebView()->mainFrame()->toWebLocalFrame();
249 content::Referrer referrer(frame->document().url(), 248 content::Referrer referrer(frame->document().url(),
250 frame->document().referrerPolicy()); 249 frame->document().referrerPolicy());
251 render_view->Send(new ChromeViewHostMsg_PDFSaveURLAs( 250 render_view->Send(
252 render_view->GetRoutingID(), url, referrer)); 251 new PDFHostMsg_PDFSaveURLAs(render_view->GetRoutingID(), url, referrer));
253 return PP_OK; 252 return PP_OK;
254 } 253 }
255 254
256 int32_t PepperPDFHost::OnHostMsgGetResourceImage( 255 int32_t PepperPDFHost::OnHostMsgGetResourceImage(
257 ppapi::host::HostMessageContext* context, 256 ppapi::host::HostMessageContext* context,
258 PP_ResourceImage image_id, 257 PP_ResourceImage image_id,
259 float scale) { 258 float scale) {
260 int res_id = 0; 259 int res_id = 0;
261 for (size_t i = 0; i < arraysize(kResourceImageMap); ++i) { 260 for (size_t i = 0; i < arraysize(kResourceImageMap); ++i) {
262 if (kResourceImageMap[i].pp_id == image_id) { 261 if (kResourceImageMap[i].pp_id == image_id) {
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
384 383
385 const SkBitmap* bitmap = &skia::GetTopDevice(*canvas)->accessBitmap(false); 384 const SkBitmap* bitmap = &skia::GetTopDevice(*canvas)->accessBitmap(false);
386 pixels_to_write.copyPixelsTo( 385 pixels_to_write.copyPixelsTo(
387 bitmap->getPixels(), bitmap->getSize(), bitmap->rowBytes()); 386 bitmap->getPixels(), bitmap->getSize(), bitmap->rowBytes());
388 387
389 if (needs_unmapping) 388 if (needs_unmapping)
390 image_data->Unmap(); 389 image_data->Unmap();
391 390
392 return true; 391 return true;
393 } 392 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698