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

Unified Diff: components/pdf/renderer/pepper_pdf_host.cc

Issue 2174963002: Fix a crash in pdf::PepperPDFHost::OnHostMsgHasUnsupportedFeature(). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: more checks, lint Created 4 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: components/pdf/renderer/pepper_pdf_host.cc
diff --git a/components/pdf/renderer/pepper_pdf_host.cc b/components/pdf/renderer/pepper_pdf_host.cc
index 1355141c2d4d5d9ddd74f6b9b75537f809b2c1cb..962b5dfb384bb0fa57e5ed82da5457231fc2c1d1 100644
--- a/components/pdf/renderer/pepper_pdf_host.cc
+++ b/components/pdf/renderer/pepper_pdf_host.cc
@@ -100,7 +100,12 @@ int32_t PepperPDFHost::OnHostMsgDidStartLoading(
host_->GetPluginInstance(pp_instance());
if (!instance)
return PP_ERROR_FAILED;
- instance->GetRenderView()->DidStartLoading();
+
+ content::RenderView* render_view = instance->GetRenderView();
+ if (!render_view)
+ return PP_ERROR_FAILED;
+
+ render_view->DidStartLoading();
tommycli 2016/07/22 21:47:37 Since this pattern is now repeated in many methods
Lei Zhang 2016/07/22 22:20:21 Done.
return PP_OK;
}
@@ -110,7 +115,12 @@ int32_t PepperPDFHost::OnHostMsgDidStopLoading(
host_->GetPluginInstance(pp_instance());
if (!instance)
return PP_ERROR_FAILED;
- instance->GetRenderView()->DidStopLoading();
+
+ content::RenderView* render_view = instance->GetRenderView();
+ if (!render_view)
+ return PP_ERROR_FAILED;
+
+ render_view->DidStopLoading();
return PP_OK;
}
@@ -121,8 +131,13 @@ int32_t PepperPDFHost::OnHostMsgSetContentRestriction(
host_->GetPluginInstance(pp_instance());
if (!instance)
return PP_ERROR_FAILED;
- instance->GetRenderView()->Send(new PDFHostMsg_PDFUpdateContentRestrictions(
- instance->GetRenderView()->GetRoutingID(), restrictions));
+
+ content::RenderView* render_view = instance->GetRenderView();
+ if (!render_view)
+ return PP_ERROR_FAILED;
+
+ render_view->Send(new PDFHostMsg_PDFUpdateContentRestrictions(
+ render_view->GetRoutingID(), restrictions));
return PP_OK;
}
@@ -142,14 +157,10 @@ int32_t PepperPDFHost::OnHostMsgHasUnsupportedFeature(
if (!instance)
return PP_ERROR_FAILED;
- // TODO(thestig): Turn CHECKs into the proper if statement after figuring out
- // what's wrong for https://crbug.com/627814
- CHECK(instance->GetContainer());
- CHECK(instance->GetContainer()->document().frame());
- CHECK(instance->GetContainer()->document().frame()->view());
- blink::WebView* view =
- instance->GetContainer()->document().frame()->view();
- content::RenderView* render_view = content::RenderView::FromWebView(view);
+ content::RenderView* render_view = instance->GetRenderView();
+ if (!render_view)
+ return PP_ERROR_FAILED;
+
render_view->Send(
new PDFHostMsg_PDFHasUnsupportedFeature(render_view->GetRoutingID()));
return PP_OK;
@@ -166,8 +177,12 @@ int32_t PepperPDFHost::OnHostMsgSaveAs(
host_->GetPluginInstance(pp_instance());
if (!instance)
return PP_ERROR_FAILED;
- GURL url = instance->GetPluginURL();
+
content::RenderView* render_view = instance->GetRenderView();
+ if (!render_view)
+ return PP_ERROR_FAILED;
+
+ GURL url = instance->GetPluginURL();
content::Referrer referrer;
referrer.url = url;
referrer.policy = blink::WebReferrerPolicyDefault;
« components/pdf/renderer/pepper_pdf_host.h ('K') | « components/pdf/renderer/pepper_pdf_host.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698