OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 #include "content/browser/loader/async_resource_handler.h" | 5 #include "content/browser/loader/async_resource_handler.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 #include <memory> | 9 #include <memory> |
10 #include <string> | 10 #include <string> |
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
248 // Larger than kInlinedLeadingChunkSize and smaller than | 248 // Larger than kInlinedLeadingChunkSize and smaller than |
249 // kMaxAllocationSize. | 249 // kMaxAllocationSize. |
250 StartRequestAndWaitWithResponseDataSize(4096); | 250 StartRequestAndWaitWithResponseDataSize(4096); |
251 const auto& messages = filter_->messages(); | 251 const auto& messages = filter_->messages(); |
252 ASSERT_EQ(4u, messages.size()); | 252 ASSERT_EQ(4u, messages.size()); |
253 ASSERT_EQ(ResourceMsg_DataReceived::ID, messages[2]->type()); | 253 ASSERT_EQ(ResourceMsg_DataReceived::ID, messages[2]->type()); |
254 ResourceMsg_DataReceived::Param params; | 254 ResourceMsg_DataReceived::Param params; |
255 ResourceMsg_DataReceived::Read(messages[2].get(), ¶ms); | 255 ResourceMsg_DataReceived::Read(messages[2].get(), ¶ms); |
256 | 256 |
257 int encoded_data_length = std::get<3>(params); | 257 int encoded_data_length = std::get<3>(params); |
258 EXPECT_EQ(4157, encoded_data_length); | 258 EXPECT_EQ(4096, encoded_data_length); |
259 int encoded_body_length = std::get<4>(params); | 259 int encoded_body_length = std::get<4>(params); |
260 EXPECT_EQ(4096, encoded_body_length); | 260 EXPECT_EQ(4096, encoded_body_length); |
261 } | 261 } |
262 | 262 |
263 TEST_F(AsyncResourceHandlerTest, InlinedChunkLengths) { | 263 TEST_F(AsyncResourceHandlerTest, InlinedChunkLengths) { |
264 // TODO(ricea): Remove this Feature-enabling code once the feature is on by | 264 // TODO(ricea): Remove this Feature-enabling code once the feature is on by |
265 // default. | 265 // default. |
266 auto feature_list = base::MakeUnique<base::FeatureList>(); | 266 auto feature_list = base::MakeUnique<base::FeatureList>(); |
267 feature_list->InitializeFromCommandLine( | 267 feature_list->InitializeFromCommandLine( |
268 features::kOptimizeLoadingIPCForSmallResources.name, ""); | 268 features::kOptimizeLoadingIPCForSmallResources.name, ""); |
269 base::FeatureList::ClearInstanceForTesting(); | 269 base::FeatureList::ClearInstanceForTesting(); |
270 base::FeatureList::SetInstance(std::move(feature_list)); | 270 base::FeatureList::SetInstance(std::move(feature_list)); |
271 | 271 |
272 // Smaller than kInlinedLeadingChunkSize. | 272 // Smaller than kInlinedLeadingChunkSize. |
273 StartRequestAndWaitWithResponseDataSize(8); | 273 StartRequestAndWaitWithResponseDataSize(8); |
274 const auto& messages = filter_->messages(); | 274 const auto& messages = filter_->messages(); |
275 ASSERT_EQ(3u, messages.size()); | 275 ASSERT_EQ(3u, messages.size()); |
276 ASSERT_EQ(ResourceMsg_InlinedDataChunkReceived::ID, messages[1]->type()); | 276 ASSERT_EQ(ResourceMsg_InlinedDataChunkReceived::ID, messages[1]->type()); |
277 ResourceMsg_InlinedDataChunkReceived::Param params; | 277 ResourceMsg_InlinedDataChunkReceived::Param params; |
278 ResourceMsg_InlinedDataChunkReceived::Read(messages[1].get(), ¶ms); | 278 ResourceMsg_InlinedDataChunkReceived::Read(messages[1].get(), ¶ms); |
279 | 279 |
280 int encoded_data_length = std::get<2>(params); | 280 int encoded_data_length = std::get<2>(params); |
281 EXPECT_EQ(66, encoded_data_length); | 281 EXPECT_EQ(8, encoded_data_length); |
282 int encoded_body_length = std::get<3>(params); | 282 int encoded_body_length = std::get<3>(params); |
283 EXPECT_EQ(8, encoded_body_length); | 283 EXPECT_EQ(8, encoded_body_length); |
284 } | 284 } |
285 | 285 |
286 TEST_F(AsyncResourceHandlerTest, TwoChunksLengths) { | 286 TEST_F(AsyncResourceHandlerTest, TwoChunksLengths) { |
287 // Larger than kMaxAllocationSize. | 287 // Larger than kMaxAllocationSize. |
288 StartRequestAndWaitWithResponseDataSize(64*1024); | 288 StartRequestAndWaitWithResponseDataSize(64*1024); |
289 const auto& messages = filter_->messages(); | 289 const auto& messages = filter_->messages(); |
290 ASSERT_EQ(5u, messages.size()); | 290 ASSERT_EQ(5u, messages.size()); |
291 ASSERT_EQ(ResourceMsg_DataReceived::ID, messages[2]->type()); | 291 ASSERT_EQ(ResourceMsg_DataReceived::ID, messages[2]->type()); |
292 ResourceMsg_DataReceived::Param params; | 292 ResourceMsg_DataReceived::Param params; |
293 ResourceMsg_DataReceived::Read(messages[2].get(), ¶ms); | 293 ResourceMsg_DataReceived::Read(messages[2].get(), ¶ms); |
294 | 294 |
295 int encoded_data_length = std::get<3>(params); | 295 int encoded_data_length = std::get<3>(params); |
296 EXPECT_EQ(32830, encoded_data_length); | 296 EXPECT_EQ(32768, encoded_data_length); |
297 int encoded_body_length = std::get<4>(params); | 297 int encoded_body_length = std::get<4>(params); |
298 EXPECT_EQ(32768, encoded_body_length); | 298 EXPECT_EQ(32768, encoded_body_length); |
299 | 299 |
300 ASSERT_EQ(ResourceMsg_DataReceived::ID, messages[3]->type()); | 300 ASSERT_EQ(ResourceMsg_DataReceived::ID, messages[3]->type()); |
301 ResourceMsg_DataReceived::Read(messages[3].get(), ¶ms); | 301 ResourceMsg_DataReceived::Read(messages[3].get(), ¶ms); |
302 | 302 |
303 encoded_data_length = std::get<3>(params); | 303 encoded_data_length = std::get<3>(params); |
304 EXPECT_EQ(32768, encoded_data_length); | 304 EXPECT_EQ(32768, encoded_data_length); |
305 encoded_body_length = std::get<4>(params); | 305 encoded_body_length = std::get<4>(params); |
306 EXPECT_EQ(32768, encoded_body_length); | 306 EXPECT_EQ(32768, encoded_body_length); |
307 } | 307 } |
308 | 308 |
309 } // namespace | 309 } // namespace |
310 | 310 |
311 } // namespace content | 311 } // namespace content |
OLD | NEW |