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

Side by Side Diff: content/child/npapi/plugin_stream.h

Issue 1426923007: Remove PluginLoadObserver and related logic, it was only used for NPAPI. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CONTENT_CHILD_NPAPI_PLUGIN_STREAM_H_ 5 #ifndef CONTENT_CHILD_NPAPI_PLUGIN_STREAM_H_
6 #define CONTENT_CHILD_NPAPI_PLUGIN_STREAM_H_ 6 #define CONTENT_CHILD_NPAPI_PLUGIN_STREAM_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/files/file_path.h" 11 #include "base/files/file_path.h"
12 #include "base/memory/ref_counted.h" 12 #include "base/memory/ref_counted.h"
13 #include "build/build_config.h" 13 #include "build/build_config.h"
14 #include "third_party/npapi/bindings/npapi.h" 14 #include "third_party/npapi/bindings/npapi.h"
15 15
16 namespace content { 16 namespace content {
17 17
18 class PluginInstance; 18 class PluginInstance;
19 class WebPluginResourceClient; 19 class WebPluginResourceClient;
20 20
21 // Base class for a NPAPI stream. Tracks basic elements 21 // Base class for a NPAPI stream. Tracks basic elements
22 // of a stream for NPAPI notifications and stream position. 22 // of a stream for NPAPI notifications and stream position.
23 class PluginStream : public base::RefCounted<PluginStream> { 23 class PluginStream : public base::RefCounted<PluginStream> {
dcheng 2015/11/18 18:38:18 And probably this thing too. KILL IT ALL.
Nate Chapin 2015/11/18 23:28:50 Done.
24 public: 24 public:
25 // Create a new PluginStream object. If needNotify is true, then the 25 // Create a new PluginStream object.
26 // plugin will be notified when the stream has been fully sent.
27 PluginStream(PluginInstance* instance, 26 PluginStream(PluginInstance* instance,
28 const char* url, 27 const char* url);
29 bool need_notify,
30 void* notify_data);
31 28
32 // Opens the stream to the Plugin. 29 // Opens the stream to the Plugin.
33 // If the mime-type is not specified, we'll try to find one based on the 30 // If the mime-type is not specified, we'll try to find one based on the
34 // mime-types table and the extension (if any) in the URL. 31 // mime-types table and the extension (if any) in the URL.
35 // If the size of the stream is known, use length to set the size. If 32 // If the size of the stream is known, use length to set the size. If
36 // not known, set length to 0. 33 // not known, set length to 0.
37 // The request_is_seekable parameter indicates whether byte range requests 34 // The request_is_seekable parameter indicates whether byte range requests
38 // can be issued on the stream. 35 // can be issued on the stream.
39 bool Open(const std::string &mime_type, 36 bool Open(const std::string &mime_type,
40 const std::string &headers, 37 const std::string &headers,
41 uint32 length, 38 uint32 length,
42 uint32 last_modified, 39 uint32 last_modified,
43 bool request_is_seekable); 40 bool request_is_seekable);
44 41
45 // Writes to the stream. 42 // Writes to the stream.
46 int Write(const char* buf, const int len, int data_offset); 43 int Write(const char* buf, const int len, int data_offset);
47 44
48 // Write the result as a file. 45 // Write the result as a file.
49 void WriteAsFile(); 46 void WriteAsFile();
50 47
51 // Notify the plugin that a stream is complete.
52 void Notify(NPReason reason);
53
54 // Close the stream. 48 // Close the stream.
55 virtual bool Close(NPReason reason); 49 virtual bool Close(NPReason reason);
56 50
57 virtual WebPluginResourceClient* AsResourceClient(); 51 virtual WebPluginResourceClient* AsResourceClient();
58 52
59 // Cancels any HTTP requests initiated by the stream. 53 // Cancels any HTTP requests initiated by the stream.
60 virtual void CancelRequest() {} 54 virtual void CancelRequest() {}
61 55
62 NPStream* stream() { return &stream_; } 56 NPStream* stream() { return &stream_; }
63 57
64 PluginInstance* instance() { return instance_.get(); } 58 PluginInstance* instance() { return instance_.get(); }
65 59
66 // setter/getter for the seekable attribute on the stream. 60 // setter/getter for the seekable attribute on the stream.
67 bool seekable() const { return seekable_stream_; } 61 bool seekable() const { return seekable_stream_; }
68 62
69 void set_seekable(bool seekable) { seekable_stream_ = seekable; } 63 void set_seekable(bool seekable) { seekable_stream_ = seekable; }
70 64
71 // getters for reading the notification related attributes on the stream.
72 bool notify_needed() const { return notify_needed_; }
73
74 void* notify_data() const { return notify_data_; }
75
76 protected: 65 protected:
77 friend class base::RefCounted<PluginStream>; 66 friend class base::RefCounted<PluginStream>;
78 67
79 virtual ~PluginStream(); 68 virtual ~PluginStream();
80 69
81 // Check if the stream is open. 70 // Check if the stream is open.
82 bool open() { return opened_; } 71 bool open() { return opened_; }
83 72
84 private: 73 private:
85 // Per platform method to reset the temporary file handle. 74 // Per platform method to reset the temporary file handle.
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
117 // Returns true if the temp file is valid and open for writing. 106 // Returns true if the temp file is valid and open for writing.
118 bool TempFileIsValid() const; 107 bool TempFileIsValid() const;
119 108
120 // Returns true if |requested_plugin_mode_| is NP_ASFILE or NP_ASFILEONLY. 109 // Returns true if |requested_plugin_mode_| is NP_ASFILE or NP_ASFILEONLY.
121 bool RequestedPluginModeIsAsFile() const; 110 bool RequestedPluginModeIsAsFile() const;
122 111
123 private: 112 private:
124 NPStream stream_; 113 NPStream stream_;
125 std::string headers_; 114 std::string headers_;
126 scoped_refptr<PluginInstance> instance_; 115 scoped_refptr<PluginInstance> instance_;
127 bool notify_needed_;
128 void* notify_data_;
129 bool close_on_write_data_; 116 bool close_on_write_data_;
130 uint16 requested_plugin_mode_; 117 uint16 requested_plugin_mode_;
131 bool opened_; 118 bool opened_;
132 #if defined(OS_WIN) 119 #if defined(OS_WIN)
133 char temp_file_name_[MAX_PATH]; 120 char temp_file_name_[MAX_PATH];
134 HANDLE temp_file_handle_; 121 HANDLE temp_file_handle_;
135 #elif defined(OS_POSIX) 122 #elif defined(OS_POSIX)
136 FILE* temp_file_; 123 FILE* temp_file_;
137 base::FilePath temp_file_path_; 124 base::FilePath temp_file_path_;
138 #endif 125 #endif
139 std::vector<char> delivery_data_; 126 std::vector<char> delivery_data_;
140 int data_offset_; 127 int data_offset_;
141 bool seekable_stream_; 128 bool seekable_stream_;
142 std::string mime_type_; 129 std::string mime_type_;
143 DISALLOW_COPY_AND_ASSIGN(PluginStream); 130 DISALLOW_COPY_AND_ASSIGN(PluginStream);
144 }; 131 };
145 132
146 } // namespace content 133 } // namespace content
147 134
148 #endif // CONTENT_CHILD_NPAPI_PLUGIN_STREAM_H_ 135 #endif // CONTENT_CHILD_NPAPI_PLUGIN_STREAM_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698