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

Unified Diff: chrome/renderer/render_view.cc

Issue 3015029: Replace ViewHostMsg_GetPluginPath with ViewHostMsg_GetPluginInfo. (Closed) Base URL: git://codf21.jail/chromium.git
Patch Set: compile fixes Created 10 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
« no previous file with comments | « chrome/renderer/render_view.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/renderer/render_view.cc
diff --git a/chrome/renderer/render_view.cc b/chrome/renderer/render_view.cc
index 30339df677cfe34508b8cd09ab4b1684a330df1f..fd90e3cc2a6b89cc40a3ec32006c6ea8edfd1d17 100644
--- a/chrome/renderer/render_view.cc
+++ b/chrome/renderer/render_view.cc
@@ -2200,23 +2200,30 @@ void RenderView::runModal() {
WebPlugin* RenderView::createPlugin(WebFrame* frame,
const WebPluginParams& params) {
- FilePath path;
+ bool found = false;
+ WebPluginInfo info;
+ GURL url(params.url);
+ std::string mime_type(params.mimeType.utf8());
std::string actual_mime_type;
- render_thread_->Send(new ViewHostMsg_GetPluginPath(
- params.url, frame->top()->url(), params.mimeType.utf8(), &path,
+ Send(new ViewHostMsg_GetPluginInfo(url,
+ frame->top()->url(),
+ mime_type,
+ &found,
+ &info,
&actual_mime_type));
- if (path.value().empty())
+
+ if (!found || !info.enabled)
return NULL;
if (CommandLine::ForCurrentProcess()->HasSwitch(
switches::kEnableClickToPlay)) {
if (!AllowContentType(CONTENT_SETTINGS_TYPE_PLUGINS) &&
- path.value() != kDefaultPluginLibraryName) {
+ info.path.value() != kDefaultPluginLibraryName) {
didNotAllowPlugins(frame);
return CreatePluginPlaceholder(frame, params);
}
}
- return CreatePluginInternal(frame, params, actual_mime_type, path);
+ return CreatePluginInternal(frame, params, &info, actual_mime_type);
}
WebWorker* RenderView::createWorker(WebFrame* frame, WebWorkerClient* client) {
@@ -3675,23 +3682,29 @@ void RenderView::ClearBlockedContentSettings() {
WebPlugin* RenderView::CreatePluginInternal(WebFrame* frame,
const WebPluginParams& params,
- const std::string& mime_type,
- const FilePath& plugin_path) {
- FilePath path(plugin_path);
+ WebPluginInfo* plugin_info,
+ const std::string& mime_type) {
std::string actual_mime_type(mime_type);
- if (path.value().empty()) {
- render_thread_->Send(new ViewHostMsg_GetPluginPath(
- params.url, frame->top()->url(), params.mimeType.utf8(), &path,
- &actual_mime_type));
- }
- if (path.value().empty())
+ WebPluginInfo info;
+ if (plugin_info != NULL) {
+ info = *plugin_info;
+ } else {
+ bool found;
+ std::string actual_mime_type(mime_type);
+ Send(new ViewHostMsg_GetPluginInfo(
+ params.url, frame->top()->url(), params.mimeType.utf8(), &found,
+ &info, &actual_mime_type));
+ if (!found)
+ info.enabled = false;
+ }
+ if (!info.enabled)
return NULL;
if (actual_mime_type.empty())
actual_mime_type = params.mimeType.utf8();
scoped_refptr<pepper::PluginModule> pepper_module =
- PepperPluginRegistry::GetInstance()->GetModule(path);
+ PepperPluginRegistry::GetInstance()->GetModule(info.path);
if (pepper_module) {
WebPlugin* plugin = new pepper::WebPluginImpl(pepper_module, params,
pepper_delegate_.AsWeakPtr());
@@ -3703,14 +3716,14 @@ WebPlugin* RenderView::CreatePluginInternal(WebFrame* frame,
// hardcode this for the PDF plugin path.
FilePath pdf_path;
PathService::Get(chrome::FILE_PDF_PLUGIN, &pdf_path);
- if (path == pdf_path)
+ if (info.path == pdf_path)
Send(new ViewHostMsg_SetDisplayingPDFContent(routing_id_));
}
return plugin;
}
- return new webkit_glue::WebPluginImpl(frame, params, path, actual_mime_type,
- AsWeakPtr());
+ return new webkit_glue::WebPluginImpl(frame, params, info.path,
+ actual_mime_type, AsWeakPtr());
}
WebPlugin* RenderView::CreatePluginPlaceholder(WebFrame* frame,
« no previous file with comments | « chrome/renderer/render_view.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698