OLD | NEW |
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 #include <string> | 5 #include <string> |
6 #include <vector> | 6 #include <vector> |
7 | 7 |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/bind_helpers.h" | 9 #include "base/bind_helpers.h" |
10 #include "base/file_util.h" | 10 #include "base/file_util.h" |
(...skipping 1131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1142 scoped_ptr<SpdyFrame> resp3(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 5)); | 1142 scoped_ptr<SpdyFrame> resp3(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 5)); |
1143 scoped_ptr<SpdyFrame> body3(spdy_util_.ConstructSpdyBodyFrame(5, false)); | 1143 scoped_ptr<SpdyFrame> body3(spdy_util_.ConstructSpdyBodyFrame(5, false)); |
1144 scoped_ptr<SpdyFrame> fbody3(spdy_util_.ConstructSpdyBodyFrame(5, true)); | 1144 scoped_ptr<SpdyFrame> fbody3(spdy_util_.ConstructSpdyBodyFrame(5, true)); |
1145 | 1145 |
1146 SettingsMap settings; | 1146 SettingsMap settings; |
1147 const uint32 max_concurrent_streams = 1; | 1147 const uint32 max_concurrent_streams = 1; |
1148 settings[SETTINGS_MAX_CONCURRENT_STREAMS] = | 1148 settings[SETTINGS_MAX_CONCURRENT_STREAMS] = |
1149 SettingsFlagsAndValue(SETTINGS_FLAG_NONE, max_concurrent_streams); | 1149 SettingsFlagsAndValue(SETTINGS_FLAG_NONE, max_concurrent_streams); |
1150 scoped_ptr<SpdyFrame> settings_frame( | 1150 scoped_ptr<SpdyFrame> settings_frame( |
1151 spdy_util_.ConstructSpdySettings(settings)); | 1151 spdy_util_.ConstructSpdySettings(settings)); |
| 1152 scoped_ptr<SpdyFrame> settings_ack(spdy_util_.ConstructSpdySettingsAck()); |
1152 | 1153 |
1153 MockWrite writes[] = { | 1154 MockWrite writes[] = { |
1154 CreateMockWrite(*req), | 1155 CreateMockWrite(*req), |
| 1156 CreateMockWrite(*settings_ack, 2), |
1155 CreateMockWrite(*req2), | 1157 CreateMockWrite(*req2), |
1156 CreateMockWrite(*req3), | 1158 CreateMockWrite(*req3), |
1157 }; | 1159 }; |
1158 | 1160 |
1159 MockRead reads[] = { | 1161 MockRead reads[] = { |
1160 CreateMockRead(*settings_frame, 1), | 1162 CreateMockRead(*settings_frame, 1), |
1161 CreateMockRead(*resp), | 1163 CreateMockRead(*resp), |
1162 CreateMockRead(*body), | 1164 CreateMockRead(*body), |
1163 CreateMockRead(*fbody), | 1165 CreateMockRead(*fbody), |
1164 CreateMockRead(*resp2, 7), | 1166 CreateMockRead(*resp2, 8), |
1165 CreateMockRead(*body2), | 1167 CreateMockRead(*body2), |
1166 CreateMockRead(*fbody2), | 1168 CreateMockRead(*fbody2), |
1167 CreateMockRead(*resp3, 12), | 1169 CreateMockRead(*resp3, 13), |
1168 CreateMockRead(*body3), | 1170 CreateMockRead(*body3), |
1169 CreateMockRead(*fbody3), | 1171 CreateMockRead(*fbody3), |
1170 | 1172 |
1171 MockRead(ASYNC, 0, 0), // EOF | 1173 MockRead(ASYNC, 0, 0), // EOF |
1172 }; | 1174 }; |
1173 | 1175 |
1174 OrderedSocketData data(reads, arraysize(reads), | 1176 OrderedSocketData data(reads, arraysize(reads), |
1175 writes, arraysize(writes)); | 1177 writes, arraysize(writes)); |
1176 OrderedSocketData data_placeholder(NULL, 0, NULL, 0); | 1178 OrderedSocketData data_placeholder(NULL, 0, NULL, 0); |
1177 | 1179 |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1280 scoped_ptr<SpdyFrame> resp3(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 7)); | 1282 scoped_ptr<SpdyFrame> resp3(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 7)); |
1281 scoped_ptr<SpdyFrame> body3(spdy_util_.ConstructSpdyBodyFrame(7, false)); | 1283 scoped_ptr<SpdyFrame> body3(spdy_util_.ConstructSpdyBodyFrame(7, false)); |
1282 scoped_ptr<SpdyFrame> fbody3(spdy_util_.ConstructSpdyBodyFrame(7, true)); | 1284 scoped_ptr<SpdyFrame> fbody3(spdy_util_.ConstructSpdyBodyFrame(7, true)); |
1283 | 1285 |
1284 SettingsMap settings; | 1286 SettingsMap settings; |
1285 const uint32 max_concurrent_streams = 1; | 1287 const uint32 max_concurrent_streams = 1; |
1286 settings[SETTINGS_MAX_CONCURRENT_STREAMS] = | 1288 settings[SETTINGS_MAX_CONCURRENT_STREAMS] = |
1287 SettingsFlagsAndValue(SETTINGS_FLAG_NONE, max_concurrent_streams); | 1289 SettingsFlagsAndValue(SETTINGS_FLAG_NONE, max_concurrent_streams); |
1288 scoped_ptr<SpdyFrame> settings_frame( | 1290 scoped_ptr<SpdyFrame> settings_frame( |
1289 spdy_util_.ConstructSpdySettings(settings)); | 1291 spdy_util_.ConstructSpdySettings(settings)); |
| 1292 scoped_ptr<SpdyFrame> settings_ack(spdy_util_.ConstructSpdySettingsAck()); |
1290 | 1293 |
1291 MockWrite writes[] = { CreateMockWrite(*req), | 1294 MockWrite writes[] = { CreateMockWrite(*req), |
| 1295 CreateMockWrite(*settings_ack, 2), |
1292 CreateMockWrite(*req2), | 1296 CreateMockWrite(*req2), |
1293 CreateMockWrite(*req4), | 1297 CreateMockWrite(*req4), |
1294 CreateMockWrite(*req3), | 1298 CreateMockWrite(*req3), |
1295 }; | 1299 }; |
1296 MockRead reads[] = { | 1300 MockRead reads[] = { |
1297 CreateMockRead(*settings_frame, 1), | 1301 CreateMockRead(*settings_frame, 1), |
1298 CreateMockRead(*resp), | 1302 CreateMockRead(*resp), |
1299 CreateMockRead(*body), | 1303 CreateMockRead(*body), |
1300 CreateMockRead(*fbody), | 1304 CreateMockRead(*fbody), |
1301 CreateMockRead(*resp2, 7), | 1305 CreateMockRead(*resp2, 8), |
1302 CreateMockRead(*body2), | 1306 CreateMockRead(*body2), |
1303 CreateMockRead(*fbody2), | 1307 CreateMockRead(*fbody2), |
1304 CreateMockRead(*resp4, 13), | 1308 CreateMockRead(*resp4, 14), |
1305 CreateMockRead(*fbody4), | 1309 CreateMockRead(*fbody4), |
1306 CreateMockRead(*resp3, 16), | 1310 CreateMockRead(*resp3, 17), |
1307 CreateMockRead(*body3), | 1311 CreateMockRead(*body3), |
1308 CreateMockRead(*fbody3), | 1312 CreateMockRead(*fbody3), |
1309 | 1313 |
1310 MockRead(ASYNC, 0, 0), // EOF | 1314 MockRead(ASYNC, 0, 0), // EOF |
1311 }; | 1315 }; |
1312 | 1316 |
1313 OrderedSocketData data(reads, arraysize(reads), | 1317 OrderedSocketData data(reads, arraysize(reads), |
1314 writes, arraysize(writes)); | 1318 writes, arraysize(writes)); |
1315 OrderedSocketData data_placeholder(NULL, 0, NULL, 0); | 1319 OrderedSocketData data_placeholder(NULL, 0, NULL, 0); |
1316 | 1320 |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1422 scoped_ptr<SpdyFrame> resp2(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 3)); | 1426 scoped_ptr<SpdyFrame> resp2(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 3)); |
1423 scoped_ptr<SpdyFrame> body2(spdy_util_.ConstructSpdyBodyFrame(3, false)); | 1427 scoped_ptr<SpdyFrame> body2(spdy_util_.ConstructSpdyBodyFrame(3, false)); |
1424 scoped_ptr<SpdyFrame> fbody2(spdy_util_.ConstructSpdyBodyFrame(3, true)); | 1428 scoped_ptr<SpdyFrame> fbody2(spdy_util_.ConstructSpdyBodyFrame(3, true)); |
1425 | 1429 |
1426 SettingsMap settings; | 1430 SettingsMap settings; |
1427 const uint32 max_concurrent_streams = 1; | 1431 const uint32 max_concurrent_streams = 1; |
1428 settings[SETTINGS_MAX_CONCURRENT_STREAMS] = | 1432 settings[SETTINGS_MAX_CONCURRENT_STREAMS] = |
1429 SettingsFlagsAndValue(SETTINGS_FLAG_NONE, max_concurrent_streams); | 1433 SettingsFlagsAndValue(SETTINGS_FLAG_NONE, max_concurrent_streams); |
1430 scoped_ptr<SpdyFrame> settings_frame( | 1434 scoped_ptr<SpdyFrame> settings_frame( |
1431 spdy_util_.ConstructSpdySettings(settings)); | 1435 spdy_util_.ConstructSpdySettings(settings)); |
| 1436 scoped_ptr<SpdyFrame> settings_ack(spdy_util_.ConstructSpdySettingsAck()); |
1432 | 1437 |
1433 MockWrite writes[] = { CreateMockWrite(*req), | 1438 MockWrite writes[] = { |
| 1439 CreateMockWrite(*req), |
| 1440 CreateMockWrite(*settings_ack, 2), |
1434 CreateMockWrite(*req2), | 1441 CreateMockWrite(*req2), |
1435 }; | 1442 }; |
1436 MockRead reads[] = { | 1443 MockRead reads[] = { |
1437 CreateMockRead(*settings_frame, 1), | 1444 CreateMockRead(*settings_frame, 1), |
1438 CreateMockRead(*resp), | 1445 CreateMockRead(*resp), |
1439 CreateMockRead(*body), | 1446 CreateMockRead(*body), |
1440 CreateMockRead(*fbody), | 1447 CreateMockRead(*fbody), |
1441 CreateMockRead(*resp2, 7), | 1448 CreateMockRead(*resp2, 8), |
1442 CreateMockRead(*body2), | 1449 CreateMockRead(*body2), |
1443 CreateMockRead(*fbody2), | 1450 CreateMockRead(*fbody2), |
1444 MockRead(ASYNC, 0, 0), // EOF | 1451 MockRead(ASYNC, 0, 0), // EOF |
1445 }; | 1452 }; |
1446 | 1453 |
1447 OrderedSocketData data(reads, arraysize(reads), | 1454 OrderedSocketData data(reads, arraysize(reads), |
1448 writes, arraysize(writes)); | 1455 writes, arraysize(writes)); |
1449 OrderedSocketData data_placeholder(NULL, 0, NULL, 0); | 1456 OrderedSocketData data_placeholder(NULL, 0, NULL, 0); |
1450 | 1457 |
1451 BoundNetLog log; | 1458 BoundNetLog log; |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1556 scoped_ptr<SpdyFrame> req2( | 1563 scoped_ptr<SpdyFrame> req2( |
1557 spdy_util_.ConstructSpdyGet(NULL, 0, false, 3, LOWEST, true)); | 1564 spdy_util_.ConstructSpdyGet(NULL, 0, false, 3, LOWEST, true)); |
1558 scoped_ptr<SpdyFrame> resp2(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 3)); | 1565 scoped_ptr<SpdyFrame> resp2(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 3)); |
1559 | 1566 |
1560 SettingsMap settings; | 1567 SettingsMap settings; |
1561 const uint32 max_concurrent_streams = 1; | 1568 const uint32 max_concurrent_streams = 1; |
1562 settings[SETTINGS_MAX_CONCURRENT_STREAMS] = | 1569 settings[SETTINGS_MAX_CONCURRENT_STREAMS] = |
1563 SettingsFlagsAndValue(SETTINGS_FLAG_NONE, max_concurrent_streams); | 1570 SettingsFlagsAndValue(SETTINGS_FLAG_NONE, max_concurrent_streams); |
1564 scoped_ptr<SpdyFrame> settings_frame( | 1571 scoped_ptr<SpdyFrame> settings_frame( |
1565 spdy_util_.ConstructSpdySettings(settings)); | 1572 spdy_util_.ConstructSpdySettings(settings)); |
| 1573 scoped_ptr<SpdyFrame> settings_ack(spdy_util_.ConstructSpdySettingsAck()); |
1566 | 1574 |
1567 MockWrite writes[] = { CreateMockWrite(*req), | 1575 MockWrite writes[] = { |
| 1576 CreateMockWrite(*req), |
| 1577 CreateMockWrite(*settings_ack, 2), |
1568 CreateMockWrite(*req2), | 1578 CreateMockWrite(*req2), |
1569 }; | 1579 }; |
1570 MockRead reads[] = { | 1580 MockRead reads[] = { |
1571 CreateMockRead(*settings_frame, 1), | 1581 CreateMockRead(*settings_frame, 1), |
1572 CreateMockRead(*resp), | 1582 CreateMockRead(*resp), |
1573 CreateMockRead(*body), | 1583 CreateMockRead(*body), |
1574 CreateMockRead(*fin_body), | 1584 CreateMockRead(*fin_body), |
1575 CreateMockRead(*resp2, 7), | 1585 CreateMockRead(*resp2, 8), |
1576 MockRead(ASYNC, ERR_CONNECTION_RESET, 0), // Abort! | 1586 MockRead(ASYNC, ERR_CONNECTION_RESET, 0), // Abort! |
1577 }; | 1587 }; |
1578 | 1588 |
1579 OrderedSocketData data(reads, arraysize(reads), | 1589 OrderedSocketData data(reads, arraysize(reads), |
1580 writes, arraysize(writes)); | 1590 writes, arraysize(writes)); |
1581 OrderedSocketData data_placeholder(NULL, 0, NULL, 0); | 1591 OrderedSocketData data_placeholder(NULL, 0, NULL, 0); |
1582 | 1592 |
1583 BoundNetLog log; | 1593 BoundNetLog log; |
1584 TransactionHelperResult out; | 1594 TransactionHelperResult out; |
1585 NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, | 1595 NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, |
(...skipping 4789 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6375 scoped_ptr<SpdyFrame> settings_frame_large( | 6385 scoped_ptr<SpdyFrame> settings_frame_large( |
6376 spdy_util_.ConstructSpdySettings(settings)); | 6386 spdy_util_.ConstructSpdySettings(settings)); |
6377 | 6387 |
6378 reads.push_back(CreateMockRead(*settings_frame_large, i++)); | 6388 reads.push_back(CreateMockRead(*settings_frame_large, i++)); |
6379 | 6389 |
6380 scoped_ptr<SpdyFrame> session_window_update( | 6390 scoped_ptr<SpdyFrame> session_window_update( |
6381 spdy_util_.ConstructSpdyWindowUpdate(0, kUploadDataSize)); | 6391 spdy_util_.ConstructSpdyWindowUpdate(0, kUploadDataSize)); |
6382 if (GetParam().protocol >= kProtoSPDY31) | 6392 if (GetParam().protocol >= kProtoSPDY31) |
6383 reads.push_back(CreateMockRead(*session_window_update, i++)); | 6393 reads.push_back(CreateMockRead(*session_window_update, i++)); |
6384 | 6394 |
| 6395 scoped_ptr<SpdyFrame> settings_ack(spdy_util_.ConstructSpdySettingsAck()); |
| 6396 writes.push_back(CreateMockWrite(*settings_ack, i++)); |
| 6397 |
6385 writes.push_back(CreateMockWrite(*body3, i++)); | 6398 writes.push_back(CreateMockWrite(*body3, i++)); |
6386 | 6399 |
6387 scoped_ptr<SpdyFrame> reply(spdy_util_.ConstructSpdyPostSynReply(NULL, 0)); | 6400 scoped_ptr<SpdyFrame> reply(spdy_util_.ConstructSpdyPostSynReply(NULL, 0)); |
6388 reads.push_back(CreateMockRead(*reply, i++)); | 6401 reads.push_back(CreateMockRead(*reply, i++)); |
6389 reads.push_back(CreateMockRead(*body2, i++)); | 6402 reads.push_back(CreateMockRead(*body2, i++)); |
6390 reads.push_back(CreateMockRead(*body3, i++)); | 6403 reads.push_back(CreateMockRead(*body3, i++)); |
6391 reads.push_back(MockRead(ASYNC, 0, i++)); // EOF | 6404 reads.push_back(MockRead(ASYNC, 0, i++)); // EOF |
6392 | 6405 |
6393 // Force all writes to happen before any read, last write will not | 6406 // Force all writes to happen before any read, last write will not |
6394 // actually queue a frame, due to window size being 0. | 6407 // actually queue a frame, due to window size being 0. |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6426 EXPECT_EQ(0, stream->stream()->send_window_size()); | 6439 EXPECT_EQ(0, stream->stream()->send_window_size()); |
6427 | 6440 |
6428 // All the body data should have been read. | 6441 // All the body data should have been read. |
6429 // TODO(satorux): This is because of the weirdness in reading the request | 6442 // TODO(satorux): This is because of the weirdness in reading the request |
6430 // body in OnSendBodyComplete(). See crbug.com/113107. | 6443 // body in OnSendBodyComplete(). See crbug.com/113107. |
6431 EXPECT_TRUE(upload_data_stream.IsEOF()); | 6444 EXPECT_TRUE(upload_data_stream.IsEOF()); |
6432 // But the body is not yet fully sent (kUploadData is not yet sent) | 6445 // But the body is not yet fully sent (kUploadData is not yet sent) |
6433 // since we're send-stalled. | 6446 // since we're send-stalled. |
6434 EXPECT_TRUE(stream->stream()->send_stalled_by_flow_control()); | 6447 EXPECT_TRUE(stream->stream()->send_stalled_by_flow_control()); |
6435 | 6448 |
6436 data.RunFor(6); // Read in SETTINGS frame to unstall. | 6449 data.RunFor(7); // Read in SETTINGS frame to unstall. |
6437 rv = callback.WaitForResult(); | 6450 rv = callback.WaitForResult(); |
6438 helper.VerifyDataConsumed(); | 6451 helper.VerifyDataConsumed(); |
6439 // If stream is NULL, that means it was unstalled and closed. | 6452 // If stream is NULL, that means it was unstalled and closed. |
6440 EXPECT_TRUE(stream->stream() == NULL); | 6453 EXPECT_TRUE(stream->stream() == NULL); |
6441 } | 6454 } |
6442 | 6455 |
6443 // Test we correctly handle the case where the SETTINGS frame results in a | 6456 // Test we correctly handle the case where the SETTINGS frame results in a |
6444 // negative send window size. | 6457 // negative send window size. |
6445 TEST_P(SpdyNetworkTransactionTest, FlowControlNegativeSendWindowSize) { | 6458 TEST_P(SpdyNetworkTransactionTest, FlowControlNegativeSendWindowSize) { |
6446 if (GetParam().protocol < kProtoSPDY3) | 6459 if (GetParam().protocol < kProtoSPDY3) |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6499 scoped_ptr<SpdyFrame> window_update_init_size( | 6512 scoped_ptr<SpdyFrame> window_update_init_size( |
6500 spdy_util_.ConstructSpdyWindowUpdate(1, kSpdyStreamInitialWindowSize)); | 6513 spdy_util_.ConstructSpdyWindowUpdate(1, kSpdyStreamInitialWindowSize)); |
6501 | 6514 |
6502 reads.push_back(CreateMockRead(*settings_frame_small, i++)); | 6515 reads.push_back(CreateMockRead(*settings_frame_small, i++)); |
6503 | 6516 |
6504 if (GetParam().protocol >= kProtoSPDY3) | 6517 if (GetParam().protocol >= kProtoSPDY3) |
6505 reads.push_back(CreateMockRead(*session_window_update_init_size, i++)); | 6518 reads.push_back(CreateMockRead(*session_window_update_init_size, i++)); |
6506 | 6519 |
6507 reads.push_back(CreateMockRead(*window_update_init_size, i++)); | 6520 reads.push_back(CreateMockRead(*window_update_init_size, i++)); |
6508 | 6521 |
| 6522 scoped_ptr<SpdyFrame> settings_ack(spdy_util_.ConstructSpdySettingsAck()); |
| 6523 writes.push_back(CreateMockWrite(*settings_ack, i++)); |
| 6524 |
6509 writes.push_back(CreateMockWrite(*body3, i++)); | 6525 writes.push_back(CreateMockWrite(*body3, i++)); |
6510 | 6526 |
6511 scoped_ptr<SpdyFrame> reply(spdy_util_.ConstructSpdyPostSynReply(NULL, 0)); | 6527 scoped_ptr<SpdyFrame> reply(spdy_util_.ConstructSpdyPostSynReply(NULL, 0)); |
6512 reads.push_back(CreateMockRead(*reply, i++)); | 6528 reads.push_back(CreateMockRead(*reply, i++)); |
6513 reads.push_back(CreateMockRead(*body2, i++)); | 6529 reads.push_back(CreateMockRead(*body2, i++)); |
6514 reads.push_back(CreateMockRead(*body3, i++)); | 6530 reads.push_back(CreateMockRead(*body3, i++)); |
6515 reads.push_back(MockRead(ASYNC, 0, i++)); // EOF | 6531 reads.push_back(MockRead(ASYNC, 0, i++)); // EOF |
6516 | 6532 |
6517 // Force all writes to happen before any read, last write will not | 6533 // Force all writes to happen before any read, last write will not |
6518 // actually queue a frame, due to window size being 0. | 6534 // actually queue a frame, due to window size being 0. |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6551 | 6567 |
6552 // All the body data should have been read. | 6568 // All the body data should have been read. |
6553 // TODO(satorux): This is because of the weirdness in reading the request | 6569 // TODO(satorux): This is because of the weirdness in reading the request |
6554 // body in OnSendBodyComplete(). See crbug.com/113107. | 6570 // body in OnSendBodyComplete(). See crbug.com/113107. |
6555 EXPECT_TRUE(upload_data_stream.IsEOF()); | 6571 EXPECT_TRUE(upload_data_stream.IsEOF()); |
6556 // But the body is not yet fully sent (kUploadData is not yet sent) | 6572 // But the body is not yet fully sent (kUploadData is not yet sent) |
6557 // since we're send-stalled. | 6573 // since we're send-stalled. |
6558 EXPECT_TRUE(stream->stream()->send_stalled_by_flow_control()); | 6574 EXPECT_TRUE(stream->stream()->send_stalled_by_flow_control()); |
6559 | 6575 |
6560 // Read in WINDOW_UPDATE or SETTINGS frame. | 6576 // Read in WINDOW_UPDATE or SETTINGS frame. |
6561 data.RunFor((GetParam().protocol >= kProtoSPDY31) ? 8 : 7); | 6577 data.RunFor((GetParam().protocol >= kProtoSPDY31) ? 9 : 8); |
6562 rv = callback.WaitForResult(); | 6578 rv = callback.WaitForResult(); |
6563 helper.VerifyDataConsumed(); | 6579 helper.VerifyDataConsumed(); |
6564 } | 6580 } |
6565 | 6581 |
6566 } // namespace net | 6582 } // namespace net |
OLD | NEW |