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

Unified Diff: content/child/npapi/webplugin_delegate_impl.cc

Issue 23503043: Load NPAPI plugin resources through the browser process directly instead of going through the render (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: sync Created 7 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 side-by-side diff with in-line comments
Download patch
Index: content/child/npapi/webplugin_delegate_impl.cc
===================================================================
--- content/child/npapi/webplugin_delegate_impl.cc (revision 222566)
+++ content/child/npapi/webplugin_delegate_impl.cc (working copy)
@@ -14,6 +14,7 @@
#include "content/child/npapi/plugin_instance.h"
#include "content/child/npapi/plugin_lib.h"
#include "content/child/npapi/plugin_stream_url.h"
+#include "content/child/npapi/plugin_url_fetcher.h"
#include "third_party/WebKit/public/web/WebInputEvent.h"
#include "webkit/glue/webkit_glue.h"
@@ -23,6 +24,7 @@
namespace content {
WebPluginDelegateImpl* WebPluginDelegateImpl::Create(
+ WebPlugin* plugin,
const base::FilePath& filename,
const std::string& mime_type) {
scoped_refptr<PluginLib> plugin_lib(PluginLib::CreatePluginLib(filename));
@@ -34,7 +36,7 @@
return NULL;
scoped_refptr<PluginInstance> instance(plugin_lib->CreateInstance(mime_type));
- return new WebPluginDelegateImpl(instance.get());
+ return new WebPluginDelegateImpl(plugin, instance.get());
}
void WebPluginDelegateImpl::PluginDestroyed() {
@@ -49,10 +51,7 @@
const GURL& url,
const std::vector<std::string>& arg_names,
const std::vector<std::string>& arg_values,
- WebPlugin* plugin,
bool load_manually) {
- plugin_ = plugin;
-
instance_->set_web_plugin(plugin_);
if (quirks_ & PLUGIN_QUIRK_DONT_ALLOW_MULTIPLE_INSTANCES) {
PluginLib* plugin_lib = instance()->plugin_lib();
@@ -301,4 +300,26 @@
return resource_client;
}
+void WebPluginDelegateImpl::FetchURL(unsigned long resource_id,
+ int notify_id,
+ const GURL& url,
+ const GURL& first_party_for_cookies,
+ const std::string& method,
+ const std::string& post_data,
+ const GURL& referrer,
+ bool notify_redirects,
+ bool is_plugin_src_load,
+ int origin_pid,
+ int render_view_id) {
+ // TODO(jam): once we switch over to resource loading always happening in this
+ // code path, remove WebPluginResourceClient abstraction.
+ PluginStreamUrl* plugin_stream = instance()->CreateStream(
+ resource_id, url, std::string(), notify_id);
+
+ plugin_stream->SetPluginURLFetcher(new PluginURLFetcher(
+ plugin_stream, url, first_party_for_cookies, method, post_data,
+ referrer, notify_redirects, is_plugin_src_load, origin_pid,
+ render_view_id, resource_id));
+}
+
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698