summaryrefslogtreecommitdiffstats
path: root/chromium/content/child/npapi/plugin_instance.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/content/child/npapi/plugin_instance.cc')
-rw-r--r--chromium/content/child/npapi/plugin_instance.cc20
1 files changed, 15 insertions, 5 deletions
diff --git a/chromium/content/child/npapi/plugin_instance.cc b/chromium/content/child/npapi/plugin_instance.cc
index 30b3a586339..b141c5af15b 100644
--- a/chromium/content/child/npapi/plugin_instance.cc
+++ b/chromium/content/child/npapi/plugin_instance.cc
@@ -5,6 +5,7 @@
#include "content/child/npapi/plugin_instance.h"
#include "base/bind.h"
+#include "base/command_line.h"
#include "base/file_util.h"
#include "base/message_loop/message_loop.h"
#include "base/strings/string_number_conversions.h"
@@ -18,6 +19,7 @@
#include "content/child/npapi/webplugin_delegate.h"
#include "content/child/npapi/webplugin_resource_client.h"
#include "content/public/common/content_constants.h"
+#include "content/public/common/content_switches.h"
#include "net/base/escape.h"
#if defined(OS_MACOSX)
@@ -184,7 +186,7 @@ bool PluginInstance::GetFormValue(base::string16* value) {
return false;
}
// Assumes the result is UTF8 text, as Firefox does.
- *value = UTF8ToUTF16(plugin_value);
+ *value = base::UTF8ToUTF16(plugin_value);
host_->host_functions()->memfree(plugin_value);
return true;
}
@@ -557,10 +559,18 @@ void PluginInstance::RequestRead(NPStream* stream, NPByteRange* range_list) {
// is called on it.
plugin_stream->set_seekable(true);
- pending_range_requests_[++next_range_request_id_] = plugin_stream;
- webplugin_->InitiateHTTPRangeRequest(
- stream->url, range_info.c_str(), next_range_request_id_);
- return;
+ if (CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kDisableDirectNPAPIRequests)) {
+ pending_range_requests_[++next_range_request_id_] = plugin_stream;
+ webplugin_->InitiateHTTPRangeRequest(
+ stream->url, range_info.c_str(), next_range_request_id_);
+ return;
+ } else {
+ PluginStreamUrl* plugin_stream_url =
+ static_cast<PluginStreamUrl*>(plugin_stream);
+ plugin_stream_url->FetchRange(range_info);
+ return;
+ }
}
}
NOTREACHED();