OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2008 Apple Inc. All Rights Reserved. | 2 * Copyright (C) 2008 Apple Inc. All Rights Reserved. |
3 * Copyright (C) 2010 Google Inc. All Rights Reserved. | 3 * Copyright (C) 2010 Google Inc. All Rights Reserved. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
7 * are met: | 7 * are met: |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. 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 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 private: | 75 private: |
76 explicit CachedDocumentParameters(Document*); | 76 explicit CachedDocumentParameters(Document*); |
77 CachedDocumentParameters() = default; | 77 CachedDocumentParameters() = default; |
78 }; | 78 }; |
79 | 79 |
80 class TokenPreloadScanner { | 80 class TokenPreloadScanner { |
81 WTF_MAKE_NONCOPYABLE(TokenPreloadScanner); | 81 WTF_MAKE_NONCOPYABLE(TokenPreloadScanner); |
82 USING_FAST_MALLOC(TokenPreloadScanner); | 82 USING_FAST_MALLOC(TokenPreloadScanner); |
83 | 83 |
84 public: | 84 public: |
85 enum class ScannerType { kMainDocument, kInsertion }; | |
86 | |
87 TokenPreloadScanner(const KURL& document_url, | 85 TokenPreloadScanner(const KURL& document_url, |
88 std::unique_ptr<CachedDocumentParameters>, | 86 std::unique_ptr<CachedDocumentParameters>, |
89 const MediaValuesCached::MediaValuesCachedData&, | 87 const MediaValuesCached::MediaValuesCachedData&); |
90 const ScannerType); | |
91 ~TokenPreloadScanner(); | 88 ~TokenPreloadScanner(); |
92 | 89 |
93 void Scan(const HTMLToken&, | 90 void Scan(const HTMLToken&, |
94 const SegmentedString&, | 91 const SegmentedString&, |
95 PreloadRequestStream& requests, | 92 PreloadRequestStream& requests, |
96 ViewportDescriptionWrapper*, | 93 ViewportDescriptionWrapper*, |
97 bool* is_csp_meta_tag); | 94 bool* is_csp_meta_tag); |
98 void Scan(const CompactHTMLToken&, | 95 void Scan(const CompactHTMLToken&, |
99 const SegmentedString&, | 96 const SegmentedString&, |
100 PreloadRequestStream& requests, | 97 PreloadRequestStream& requests, |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
158 const KURL document_url_; | 155 const KURL document_url_; |
159 KURL predicted_base_element_url_; | 156 KURL predicted_base_element_url_; |
160 bool in_style_; | 157 bool in_style_; |
161 bool in_picture_; | 158 bool in_picture_; |
162 bool in_script_; | 159 bool in_script_; |
163 PictureData picture_data_; | 160 PictureData picture_data_; |
164 size_t template_count_; | 161 size_t template_count_; |
165 std::unique_ptr<CachedDocumentParameters> document_parameters_; | 162 std::unique_ptr<CachedDocumentParameters> document_parameters_; |
166 Persistent<MediaValuesCached> media_values_; | 163 Persistent<MediaValuesCached> media_values_; |
167 ClientHintsPreferences client_hints_preferences_; | 164 ClientHintsPreferences client_hints_preferences_; |
168 ScannerType scanner_type_; | |
169 | 165 |
170 bool did_rewind_ = false; | 166 bool did_rewind_ = false; |
171 | 167 |
172 Vector<Checkpoint> checkpoints_; | 168 Vector<Checkpoint> checkpoints_; |
173 }; | 169 }; |
174 | 170 |
175 class CORE_EXPORT HTMLPreloadScanner { | 171 class CORE_EXPORT HTMLPreloadScanner { |
176 WTF_MAKE_NONCOPYABLE(HTMLPreloadScanner); | 172 WTF_MAKE_NONCOPYABLE(HTMLPreloadScanner); |
177 USING_FAST_MALLOC(HTMLPreloadScanner); | 173 USING_FAST_MALLOC(HTMLPreloadScanner); |
178 | 174 |
179 public: | 175 public: |
180 static std::unique_ptr<HTMLPreloadScanner> Create( | 176 static std::unique_ptr<HTMLPreloadScanner> Create( |
181 const HTMLParserOptions& options, | 177 const HTMLParserOptions& options, |
182 const KURL& document_url, | 178 const KURL& document_url, |
183 std::unique_ptr<CachedDocumentParameters> document_parameters, | 179 std::unique_ptr<CachedDocumentParameters> document_parameters, |
184 const MediaValuesCached::MediaValuesCachedData& media_values_cached_data, | 180 const MediaValuesCached::MediaValuesCachedData& |
185 const TokenPreloadScanner::ScannerType scanner_type) { | 181 media_values_cached_data) { |
186 return WTF::WrapUnique(new HTMLPreloadScanner( | 182 return WTF::WrapUnique(new HTMLPreloadScanner( |
187 options, document_url, std::move(document_parameters), | 183 options, document_url, std::move(document_parameters), |
188 media_values_cached_data, scanner_type)); | 184 media_values_cached_data)); |
189 } | 185 } |
190 | 186 |
191 ~HTMLPreloadScanner(); | 187 ~HTMLPreloadScanner(); |
192 | 188 |
193 void AppendToEnd(const SegmentedString&); | 189 void AppendToEnd(const SegmentedString&); |
194 PreloadRequestStream Scan(const KURL& document_base_element_url, | 190 PreloadRequestStream Scan(const KURL& document_base_element_url, |
195 ViewportDescriptionWrapper*); | 191 ViewportDescriptionWrapper*); |
196 | 192 |
197 private: | 193 private: |
198 HTMLPreloadScanner(const HTMLParserOptions&, | 194 HTMLPreloadScanner(const HTMLParserOptions&, |
199 const KURL& document_url, | 195 const KURL& document_url, |
200 std::unique_ptr<CachedDocumentParameters>, | 196 std::unique_ptr<CachedDocumentParameters>, |
201 const MediaValuesCached::MediaValuesCachedData&, | 197 const MediaValuesCached::MediaValuesCachedData&); |
202 const TokenPreloadScanner::ScannerType); | |
203 | 198 |
204 TokenPreloadScanner scanner_; | 199 TokenPreloadScanner scanner_; |
205 SegmentedString source_; | 200 SegmentedString source_; |
206 HTMLToken token_; | 201 HTMLToken token_; |
207 std::unique_ptr<HTMLTokenizer> tokenizer_; | 202 std::unique_ptr<HTMLTokenizer> tokenizer_; |
208 }; | 203 }; |
209 | 204 |
210 } // namespace blink | 205 } // namespace blink |
211 | 206 |
212 #endif | 207 #endif |
OLD | NEW |