| Index: webkit/glue/plugins/plugin_stream_win.cc
|
| ===================================================================
|
| --- webkit/glue/plugins/plugin_stream_win.cc (revision 69426)
|
| +++ webkit/glue/plugins/plugin_stream_win.cc (working copy)
|
| @@ -1,97 +0,0 @@
|
| -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "webkit/glue/plugins/plugin_stream.h"
|
| -
|
| -#include "base/logging.h"
|
| -#include "webkit/glue/plugins/plugin_instance.h"
|
| -
|
| -namespace NPAPI {
|
| -
|
| -PluginStream::PluginStream(
|
| - PluginInstance *instance,
|
| - const char *url,
|
| - bool need_notify,
|
| - void *notify_data)
|
| - : instance_(instance),
|
| - notify_needed_(need_notify),
|
| - notify_data_(notify_data),
|
| - close_on_write_data_(false),
|
| - opened_(false),
|
| - requested_plugin_mode_(NP_NORMAL),
|
| - temp_file_handle_(INVALID_HANDLE_VALUE),
|
| - seekable_stream_(false),
|
| - data_offset_(0) {
|
| - memset(&stream_, 0, sizeof(stream_));
|
| - stream_.url = _strdup(url);
|
| - temp_file_name_[0] = '\0';
|
| -}
|
| -
|
| -void PluginStream::UpdateUrl(const char* url) {
|
| - DCHECK(!opened_);
|
| - free(const_cast<char*>(stream_.url));
|
| - stream_.url = _strdup(url);
|
| - pending_redirect_url_.clear();
|
| -}
|
| -
|
| -void PluginStream::WriteAsFile() {
|
| - if (requested_plugin_mode_ == NP_ASFILE ||
|
| - requested_plugin_mode_ == NP_ASFILEONLY)
|
| - instance_->NPP_StreamAsFile(&stream_, temp_file_name_);
|
| -}
|
| -
|
| -size_t PluginStream::WriteBytes(const char *buf, size_t length) {
|
| - DWORD bytes;
|
| -
|
| - if (!WriteFile(temp_file_handle_, buf, length, &bytes, 0))
|
| - return 0U;
|
| -
|
| - return static_cast<size_t>(bytes);
|
| -}
|
| -
|
| -bool PluginStream::OpenTempFile() {
|
| - DCHECK(temp_file_handle_ == INVALID_HANDLE_VALUE);
|
| -
|
| - // The reason for using all the Ascii versions of these filesystem
|
| - // calls is that the filename which we pass back to the plugin
|
| - // via NPAPI is an ascii filename. Otherwise, we'd use wide-chars.
|
| - //
|
| - // TODO:
|
| - // This is a bug in NPAPI itself, and it needs to be fixed.
|
| - // The case which will fail is if a user has a multibyte name,
|
| - // but has the system locale set to english. GetTempPathA will
|
| - // return junk in this case, causing us to be unable to open the
|
| - // file.
|
| -
|
| - char temp_directory[MAX_PATH];
|
| - if (GetTempPathA(MAX_PATH, temp_directory) == 0)
|
| - return false;
|
| - if (GetTempFileNameA(temp_directory, "npstream", 0, temp_file_name_) == 0)
|
| - return false;
|
| - temp_file_handle_ = CreateFileA(temp_file_name_,
|
| - FILE_ALL_ACCESS,
|
| - FILE_SHARE_READ,
|
| - 0,
|
| - CREATE_ALWAYS,
|
| - FILE_ATTRIBUTE_NORMAL,
|
| - 0);
|
| - if (temp_file_handle_ == INVALID_HANDLE_VALUE) {
|
| - temp_file_name_[0] = '\0';
|
| - return false;
|
| - }
|
| - return true;
|
| -}
|
| -
|
| -void PluginStream::CloseTempFile() {
|
| - if (temp_file_handle_ != INVALID_HANDLE_VALUE) {
|
| - CloseHandle(temp_file_handle_);
|
| - temp_file_handle_ = INVALID_HANDLE_VALUE;
|
| - }
|
| -}
|
| -
|
| -bool PluginStream::TempFileIsValid() {
|
| - return temp_file_handle_ != INVALID_HANDLE_VALUE;
|
| -}
|
| -
|
| -} // namespace NPAPI
|
|
|