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

Side by Side Diff: third_party/WebKit/Source/core/fileapi/FileReaderLoader.h

Issue 2837873007: Tell V8 about the extra memory being held by FileReader objects. (Closed)
Patch Set: comments Created 3 years, 7 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 unified diff | Download patch
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/fileapi/FileReaderLoader.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 105
106 FileError::ErrorCode GetErrorCode() const { return error_code_; } 106 FileError::ErrorCode GetErrorCode() const { return error_code_; }
107 107
108 void SetEncoding(const String&); 108 void SetEncoding(const String&);
109 void SetDataType(const String& data_type) { data_type_ = data_type; } 109 void SetDataType(const String& data_type) { data_type_ = data_type; }
110 110
111 private: 111 private:
112 FileReaderLoader(ReadType, FileReaderLoaderClient*); 112 FileReaderLoader(ReadType, FileReaderLoaderClient*);
113 113
114 void Cleanup(); 114 void Cleanup();
115 void AdjustReportedMemoryUsageToV8(int64_t usage);
116 void UnadjustReportedMemoryUsageToV8();
115 117
116 void Failed(FileError::ErrorCode); 118 void Failed(FileError::ErrorCode);
117 void ConvertToText(); 119 String ConvertToText();
118 void ConvertToDataURL(); 120 String ConvertToDataURL();
121 void SetStringResult(const String&);
119 122
120 static FileError::ErrorCode HttpStatusCodeToErrorCode(int); 123 static FileError::ErrorCode HttpStatusCodeToErrorCode(int);
121 124
122 ReadType read_type_; 125 ReadType read_type_;
123 FileReaderLoaderClient* client_; 126 FileReaderLoaderClient* client_;
124 WTF::TextEncoding encoding_; 127 WTF::TextEncoding encoding_;
125 String data_type_; 128 String data_type_;
126 129
127 KURL url_for_reading_; 130 KURL url_for_reading_;
128 Persistent<ThreadableLoader> loader_; 131 Persistent<ThreadableLoader> loader_;
129 132
130 std::unique_ptr<ArrayBufferBuilder> raw_data_; 133 std::unique_ptr<ArrayBufferBuilder> raw_data_;
131 bool is_raw_data_converted_; 134 bool is_raw_data_converted_ = false;
132 135
133 Persistent<DOMArrayBuffer> array_buffer_result_; 136 Persistent<DOMArrayBuffer> array_buffer_result_;
134 String string_result_; 137 String string_result_;
135 138
136 // The decoder used to decode the text data. 139 // The decoder used to decode the text data.
137 std::unique_ptr<TextResourceDecoder> decoder_; 140 std::unique_ptr<TextResourceDecoder> decoder_;
138 141
139 bool finished_loading_; 142 bool finished_loading_ = false;
140 long long bytes_loaded_; 143 long long bytes_loaded_ = 0;
141 // If the total size of the resource is unknown, m_totalBytes is set to -1 144 // If the total size of the resource is unknown, m_totalBytes is set to -1
142 // until completion of loading, and the buffer for receiving data is set to 145 // until completion of loading, and the buffer for receiving data is set to
143 // dynamically grow. Otherwise, m_totalBytes is set to the total size and 146 // dynamically grow. Otherwise, m_totalBytes is set to the total size and
144 // the buffer for receiving data of m_totalBytes is allocated and never grow 147 // the buffer for receiving data of m_totalBytes is allocated and never grow
145 // even when extra data is appeneded. 148 // even when extra data is appeneded.
146 long long total_bytes_; 149 long long total_bytes_ = -1;
150 int64_t memory_usage_reported_to_v8_ = 0;
151 bool has_range_ = false;
152 unsigned range_start_ = 0;
153 unsigned range_end_ = 0;
147 154
148 bool has_range_; 155 FileError::ErrorCode error_code_ = FileError::kOK;
149 unsigned range_start_;
150 unsigned range_end_;
151
152 FileError::ErrorCode error_code_;
153 }; 156 };
154 157
155 } // namespace blink 158 } // namespace blink
156 159
157 #endif // FileReaderLoader_h 160 #endif // FileReaderLoader_h
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/fileapi/FileReaderLoader.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698