| 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 "net/spdy/spdy_session.h" | 5 #include "net/spdy/spdy_session.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <memory> | 8 #include <memory> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 1277 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1288 EXPECT_THAT(callback2.WaitForResult(), IsOk()); | 1288 EXPECT_THAT(callback2.WaitForResult(), IsOk()); |
| 1289 } | 1289 } |
| 1290 | 1290 |
| 1291 TEST_F(SpdySessionTest, CancelPushAfterSessionGoesAway) { | 1291 TEST_F(SpdySessionTest, CancelPushAfterSessionGoesAway) { |
| 1292 base::HistogramTester histogram_tester; | 1292 base::HistogramTester histogram_tester; |
| 1293 session_deps_.host_resolver->set_synchronous_mode(true); | 1293 session_deps_.host_resolver->set_synchronous_mode(true); |
| 1294 session_deps_.time_func = TheNearFuture; | 1294 session_deps_.time_func = TheNearFuture; |
| 1295 | 1295 |
| 1296 SpdySerializedFrame req( | 1296 SpdySerializedFrame req( |
| 1297 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true)); | 1297 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true)); |
| 1298 SpdySerializedFrame rst( | 1298 SpdySerializedFrame priority_a( |
| 1299 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true)); |
| 1300 SpdySerializedFrame priority_b( |
| 1301 spdy_util_.ConstructSpdyPriority(4, 2, IDLE, true)); |
| 1302 SpdySerializedFrame rst_a( |
| 1299 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_REFUSED_STREAM)); | 1303 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_REFUSED_STREAM)); |
| 1300 MockWrite writes[] = {CreateMockWrite(req, 0), CreateMockWrite(rst, 5)}; | 1304 MockWrite writes[] = { |
| 1305 CreateMockWrite(req, 0), CreateMockWrite(priority_a, 2), |
| 1306 CreateMockWrite(priority_b, 6), CreateMockWrite(rst_a, 7), |
| 1307 }; |
| 1301 | 1308 |
| 1302 SpdySerializedFrame push_a(spdy_util_.ConstructSpdyPush( | 1309 SpdySerializedFrame push_a(spdy_util_.ConstructSpdyPush( |
| 1303 nullptr, 0, 2, 1, "https://www.example.org/a.dat")); | 1310 nullptr, 0, 2, 1, "https://www.example.org/a.dat")); |
| 1304 SpdySerializedFrame push_a_body(spdy_util_.ConstructSpdyDataFrame(2, false)); | 1311 SpdySerializedFrame push_a_body(spdy_util_.ConstructSpdyDataFrame(2, false)); |
| 1305 // In ascii "0" < "a". We use it to verify that we properly handle std::map | 1312 // In ascii "0" < "a". We use it to verify that we properly handle std::map |
| 1306 // iterators inside. See http://crbug.com/443490 | 1313 // iterators inside. See http://crbug.com/443490 |
| 1307 SpdySerializedFrame push_b(spdy_util_.ConstructSpdyPush( | 1314 SpdySerializedFrame push_b(spdy_util_.ConstructSpdyPush( |
| 1308 nullptr, 0, 4, 1, "https://www.example.org/0.dat")); | 1315 nullptr, 0, 4, 1, "https://www.example.org/0.dat")); |
| 1309 MockRead reads[] = { | 1316 MockRead reads[] = { |
| 1310 CreateMockRead(push_a, 1), CreateMockRead(push_a_body, 2), | 1317 CreateMockRead(push_a, 1), CreateMockRead(push_a_body, 3), |
| 1311 MockRead(ASYNC, ERR_IO_PENDING, 3), CreateMockRead(push_b, 4), | 1318 MockRead(ASYNC, ERR_IO_PENDING, 4), CreateMockRead(push_b, 5), |
| 1312 MockRead(ASYNC, ERR_IO_PENDING, 6), MockRead(ASYNC, 0, 7) // EOF | 1319 MockRead(ASYNC, ERR_IO_PENDING, 8), MockRead(ASYNC, 0, 9) // EOF |
| 1313 }; | 1320 }; |
| 1314 | 1321 |
| 1315 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); | 1322 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| 1316 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1323 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 1317 | 1324 |
| 1318 AddSSLSocketData(); | 1325 AddSSLSocketData(); |
| 1319 | 1326 |
| 1320 CreateNetworkSession(); | 1327 CreateNetworkSession(); |
| 1321 CreateSecureSpdySession(); | 1328 CreateSecureSpdySession(); |
| 1322 | 1329 |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1373 6, 1); | 1380 6, 1); |
| 1374 } | 1381 } |
| 1375 | 1382 |
| 1376 TEST_F(SpdySessionTest, CancelPushAfterExpired) { | 1383 TEST_F(SpdySessionTest, CancelPushAfterExpired) { |
| 1377 base::HistogramTester histogram_tester; | 1384 base::HistogramTester histogram_tester; |
| 1378 session_deps_.host_resolver->set_synchronous_mode(true); | 1385 session_deps_.host_resolver->set_synchronous_mode(true); |
| 1379 session_deps_.time_func = TheNearFuture; | 1386 session_deps_.time_func = TheNearFuture; |
| 1380 | 1387 |
| 1381 SpdySerializedFrame req( | 1388 SpdySerializedFrame req( |
| 1382 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true)); | 1389 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true)); |
| 1383 SpdySerializedFrame rst( | 1390 SpdySerializedFrame priority_a( |
| 1391 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true)); |
| 1392 SpdySerializedFrame priority_b( |
| 1393 spdy_util_.ConstructSpdyPriority(4, 2, IDLE, true)); |
| 1394 SpdySerializedFrame rst_a( |
| 1384 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_REFUSED_STREAM)); | 1395 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_REFUSED_STREAM)); |
| 1385 MockWrite writes[] = {CreateMockWrite(req, 0), CreateMockWrite(rst, 5)}; | 1396 MockWrite writes[] = { |
| 1397 CreateMockWrite(req, 0), CreateMockWrite(priority_a, 2), |
| 1398 CreateMockWrite(priority_b, 6), CreateMockWrite(rst_a, 7), |
| 1399 }; |
| 1386 | 1400 |
| 1387 SpdySerializedFrame push_a(spdy_util_.ConstructSpdyPush( | 1401 SpdySerializedFrame push_a(spdy_util_.ConstructSpdyPush( |
| 1388 nullptr, 0, 2, 1, "https://www.example.org/a.dat")); | 1402 nullptr, 0, 2, 1, "https://www.example.org/a.dat")); |
| 1389 SpdySerializedFrame push_a_body(spdy_util_.ConstructSpdyDataFrame(2, false)); | 1403 SpdySerializedFrame push_a_body(spdy_util_.ConstructSpdyDataFrame(2, false)); |
| 1390 // In ascii "0" < "a". We use it to verify that we properly handle std::map | 1404 // In ascii "0" < "a". We use it to verify that we properly handle std::map |
| 1391 // iterators inside. See http://crbug.com/443490 | 1405 // iterators inside. See http://crbug.com/443490 |
| 1392 SpdySerializedFrame push_b(spdy_util_.ConstructSpdyPush( | 1406 SpdySerializedFrame push_b(spdy_util_.ConstructSpdyPush( |
| 1393 nullptr, 0, 4, 1, "https://www.example.org/0.dat")); | 1407 nullptr, 0, 4, 1, "https://www.example.org/0.dat")); |
| 1394 MockRead reads[] = { | 1408 MockRead reads[] = { |
| 1395 CreateMockRead(push_a, 1), CreateMockRead(push_a_body, 2), | 1409 CreateMockRead(push_a, 1), CreateMockRead(push_a_body, 3), |
| 1396 MockRead(ASYNC, ERR_IO_PENDING, 3), CreateMockRead(push_b, 4), | 1410 MockRead(ASYNC, ERR_IO_PENDING, 4), CreateMockRead(push_b, 5), |
| 1397 MockRead(ASYNC, ERR_IO_PENDING, 6), MockRead(ASYNC, 0, 7) // EOF | 1411 MockRead(ASYNC, ERR_IO_PENDING, 8), MockRead(ASYNC, 0, 9) // EOF |
| 1398 }; | 1412 }; |
| 1399 | 1413 |
| 1400 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); | 1414 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| 1401 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1415 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 1402 | 1416 |
| 1403 AddSSLSocketData(); | 1417 AddSSLSocketData(); |
| 1404 | 1418 |
| 1405 CreateNetworkSession(); | 1419 CreateNetworkSession(); |
| 1406 CreateSecureSpdySession(); | 1420 CreateSecureSpdySession(); |
| 1407 | 1421 |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1459 6, 1); | 1473 6, 1); |
| 1460 } | 1474 } |
| 1461 | 1475 |
| 1462 TEST_F(SpdySessionTest, CancelPushBeforeClaimed) { | 1476 TEST_F(SpdySessionTest, CancelPushBeforeClaimed) { |
| 1463 base::HistogramTester histogram_tester; | 1477 base::HistogramTester histogram_tester; |
| 1464 session_deps_.host_resolver->set_synchronous_mode(true); | 1478 session_deps_.host_resolver->set_synchronous_mode(true); |
| 1465 session_deps_.time_func = TheNearFuture; | 1479 session_deps_.time_func = TheNearFuture; |
| 1466 | 1480 |
| 1467 SpdySerializedFrame req( | 1481 SpdySerializedFrame req( |
| 1468 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true)); | 1482 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true)); |
| 1469 SpdySerializedFrame rst( | 1483 SpdySerializedFrame priority_a( |
| 1484 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true)); |
| 1485 SpdySerializedFrame priority_b( |
| 1486 spdy_util_.ConstructSpdyPriority(4, 2, IDLE, true)); |
| 1487 SpdySerializedFrame rst_a( |
| 1470 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_REFUSED_STREAM)); | 1488 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_REFUSED_STREAM)); |
| 1471 MockWrite writes[] = {CreateMockWrite(req, 0), CreateMockWrite(rst, 5)}; | 1489 MockWrite writes[] = { |
| 1490 CreateMockWrite(req, 0), CreateMockWrite(priority_a, 2), |
| 1491 CreateMockWrite(priority_b, 6), CreateMockWrite(rst_a, 7), |
| 1492 }; |
| 1472 | 1493 |
| 1473 SpdySerializedFrame push_a(spdy_util_.ConstructSpdyPush( | 1494 SpdySerializedFrame push_a(spdy_util_.ConstructSpdyPush( |
| 1474 nullptr, 0, 2, 1, "https://www.example.org/a.dat")); | 1495 nullptr, 0, 2, 1, "https://www.example.org/a.dat")); |
| 1475 SpdySerializedFrame push_a_body(spdy_util_.ConstructSpdyDataFrame(2, false)); | 1496 SpdySerializedFrame push_a_body(spdy_util_.ConstructSpdyDataFrame(2, false)); |
| 1476 // In ascii "0" < "a". We use it to verify that we properly handle std::map | 1497 // In ascii "0" < "a". We use it to verify that we properly handle std::map |
| 1477 // iterators inside. See http://crbug.com/443490 | 1498 // iterators inside. See http://crbug.com/443490 |
| 1478 SpdySerializedFrame push_b(spdy_util_.ConstructSpdyPush( | 1499 SpdySerializedFrame push_b(spdy_util_.ConstructSpdyPush( |
| 1479 nullptr, 0, 4, 1, "https://www.example.org/0.dat")); | 1500 nullptr, 0, 4, 1, "https://www.example.org/0.dat")); |
| 1480 MockRead reads[] = { | 1501 MockRead reads[] = { |
| 1481 CreateMockRead(push_a, 1), CreateMockRead(push_a_body, 2), | 1502 CreateMockRead(push_a, 1), CreateMockRead(push_a_body, 3), |
| 1482 MockRead(ASYNC, ERR_IO_PENDING, 3), CreateMockRead(push_b, 4), | 1503 MockRead(ASYNC, ERR_IO_PENDING, 4), CreateMockRead(push_b, 5), |
| 1483 MockRead(ASYNC, ERR_IO_PENDING, 6), MockRead(ASYNC, 0, 7) // EOF | 1504 MockRead(ASYNC, ERR_IO_PENDING, 8), MockRead(ASYNC, 0, 9) // EOF |
| 1484 }; | 1505 }; |
| 1485 | 1506 |
| 1486 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); | 1507 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| 1487 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1508 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 1488 | 1509 |
| 1489 AddSSLSocketData(); | 1510 AddSSLSocketData(); |
| 1490 | 1511 |
| 1491 CreateNetworkSession(); | 1512 CreateNetworkSession(); |
| 1492 CreateSecureSpdySession(); | 1513 CreateSecureSpdySession(); |
| 1493 | 1514 |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1543 6, 1); | 1564 6, 1); |
| 1544 } | 1565 } |
| 1545 | 1566 |
| 1546 TEST_F(SpdySessionTest, DeleteExpiredPushStreams) { | 1567 TEST_F(SpdySessionTest, DeleteExpiredPushStreams) { |
| 1547 base::HistogramTester histogram_tester; | 1568 base::HistogramTester histogram_tester; |
| 1548 session_deps_.host_resolver->set_synchronous_mode(true); | 1569 session_deps_.host_resolver->set_synchronous_mode(true); |
| 1549 session_deps_.time_func = TheNearFuture; | 1570 session_deps_.time_func = TheNearFuture; |
| 1550 | 1571 |
| 1551 SpdySerializedFrame req( | 1572 SpdySerializedFrame req( |
| 1552 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true)); | 1573 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true)); |
| 1553 SpdySerializedFrame rst( | 1574 SpdySerializedFrame priority_a( |
| 1575 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true)); |
| 1576 SpdySerializedFrame priority_b( |
| 1577 spdy_util_.ConstructSpdyPriority(4, 2, IDLE, true)); |
| 1578 SpdySerializedFrame rst_a( |
| 1554 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_REFUSED_STREAM)); | 1579 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_REFUSED_STREAM)); |
| 1555 MockWrite writes[] = {CreateMockWrite(req, 0), CreateMockWrite(rst, 5)}; | 1580 MockWrite writes[] = { |
| 1581 CreateMockWrite(req, 0), CreateMockWrite(priority_a, 2), |
| 1582 CreateMockWrite(priority_b, 6), CreateMockWrite(rst_a, 7), |
| 1583 }; |
| 1556 | 1584 |
| 1557 SpdySerializedFrame push_a(spdy_util_.ConstructSpdyPush( | 1585 SpdySerializedFrame push_a(spdy_util_.ConstructSpdyPush( |
| 1558 nullptr, 0, 2, 1, "https://www.example.org/a.dat")); | 1586 nullptr, 0, 2, 1, "https://www.example.org/a.dat")); |
| 1559 SpdySerializedFrame push_a_body(spdy_util_.ConstructSpdyDataFrame(2, false)); | 1587 SpdySerializedFrame push_a_body(spdy_util_.ConstructSpdyDataFrame(2, false)); |
| 1560 // In ascii "0" < "a". We use it to verify that we properly handle std::map | 1588 // In ascii "0" < "a". We use it to verify that we properly handle std::map |
| 1561 // iterators inside. See http://crbug.com/443490 | 1589 // iterators inside. See http://crbug.com/443490 |
| 1562 SpdySerializedFrame push_b(spdy_util_.ConstructSpdyPush( | 1590 SpdySerializedFrame push_b(spdy_util_.ConstructSpdyPush( |
| 1563 nullptr, 0, 4, 1, "https://www.example.org/0.dat")); | 1591 nullptr, 0, 4, 1, "https://www.example.org/0.dat")); |
| 1564 MockRead reads[] = { | 1592 MockRead reads[] = { |
| 1565 CreateMockRead(push_a, 1), CreateMockRead(push_a_body, 2), | 1593 CreateMockRead(push_a, 1), CreateMockRead(push_a_body, 3), |
| 1566 MockRead(ASYNC, ERR_IO_PENDING, 3), CreateMockRead(push_b, 4), | 1594 MockRead(ASYNC, ERR_IO_PENDING, 4), CreateMockRead(push_b, 5), |
| 1567 MockRead(ASYNC, ERR_IO_PENDING, 6), MockRead(ASYNC, 0, 7) // EOF | 1595 MockRead(ASYNC, ERR_IO_PENDING, 8), MockRead(ASYNC, 0, 9) // EOF |
| 1568 }; | 1596 }; |
| 1569 | 1597 |
| 1570 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); | 1598 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| 1571 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1599 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 1572 | 1600 |
| 1573 AddSSLSocketData(); | 1601 AddSSLSocketData(); |
| 1574 | 1602 |
| 1575 CreateNetworkSession(); | 1603 CreateNetworkSession(); |
| 1576 CreateSecureSpdySession(); | 1604 CreateSecureSpdySession(); |
| 1577 | 1605 |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1622 6, 1); | 1650 6, 1); |
| 1623 } | 1651 } |
| 1624 | 1652 |
| 1625 TEST_F(SpdySessionTest, MetricsCollectionOnPushStreams) { | 1653 TEST_F(SpdySessionTest, MetricsCollectionOnPushStreams) { |
| 1626 base::HistogramTester histogram_tester; | 1654 base::HistogramTester histogram_tester; |
| 1627 session_deps_.host_resolver->set_synchronous_mode(true); | 1655 session_deps_.host_resolver->set_synchronous_mode(true); |
| 1628 session_deps_.time_func = TheNearFuture; | 1656 session_deps_.time_func = TheNearFuture; |
| 1629 | 1657 |
| 1630 SpdySerializedFrame req( | 1658 SpdySerializedFrame req( |
| 1631 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true)); | 1659 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true)); |
| 1632 SpdySerializedFrame rst( | 1660 SpdySerializedFrame priority_a( |
| 1661 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true)); |
| 1662 SpdySerializedFrame priority_b( |
| 1663 spdy_util_.ConstructSpdyPriority(4, 2, IDLE, true)); |
| 1664 SpdySerializedFrame priority_c( |
| 1665 spdy_util_.ConstructSpdyPriority(6, 4, IDLE, true)); |
| 1666 SpdySerializedFrame rst_a( |
| 1633 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_REFUSED_STREAM)); | 1667 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_REFUSED_STREAM)); |
| 1634 MockWrite writes[] = {CreateMockWrite(req, 0), CreateMockWrite(rst, 5)}; | 1668 MockWrite writes[] = { |
| 1669 CreateMockWrite(req, 0), CreateMockWrite(priority_a, 2), |
| 1670 CreateMockWrite(priority_b, 6), CreateMockWrite(rst_a, 7), |
| 1671 CreateMockWrite(priority_c, 10), |
| 1672 }; |
| 1635 | 1673 |
| 1636 SpdySerializedFrame push_a(spdy_util_.ConstructSpdyPush( | 1674 SpdySerializedFrame push_a(spdy_util_.ConstructSpdyPush( |
| 1637 nullptr, 0, 2, 1, "https://www.example.org/a.dat")); | 1675 nullptr, 0, 2, 1, "https://www.example.org/a.dat")); |
| 1638 SpdySerializedFrame push_a_body(spdy_util_.ConstructSpdyDataFrame(2, false)); | 1676 SpdySerializedFrame push_a_body(spdy_util_.ConstructSpdyDataFrame(2, false)); |
| 1639 // In ascii "0" < "a". We use it to verify that we properly handle std::map | 1677 // In ascii "0" < "a". We use it to verify that we properly handle std::map |
| 1640 // iterators inside. See http://crbug.com/443490 | 1678 // iterators inside. See http://crbug.com/443490 |
| 1641 SpdySerializedFrame push_b(spdy_util_.ConstructSpdyPush( | 1679 SpdySerializedFrame push_b(spdy_util_.ConstructSpdyPush( |
| 1642 nullptr, 0, 4, 1, "https://www.example.org/0.dat")); | 1680 nullptr, 0, 4, 1, "https://www.example.org/0.dat")); |
| 1643 SpdySerializedFrame push_c(spdy_util_.ConstructSpdyPush( | 1681 SpdySerializedFrame push_c(spdy_util_.ConstructSpdyPush( |
| 1644 nullptr, 0, 6, 1, "https://www.example.org/1.dat")); | 1682 nullptr, 0, 6, 1, "https://www.example.org/1.dat")); |
| 1645 SpdySerializedFrame push_c_body(spdy_util_.ConstructSpdyDataFrame(6, false)); | 1683 SpdySerializedFrame push_c_body(spdy_util_.ConstructSpdyDataFrame(6, false)); |
| 1646 | 1684 |
| 1647 MockRead reads[] = { | 1685 MockRead reads[] = { |
| 1648 CreateMockRead(push_a, 1), | 1686 CreateMockRead(push_a, 1), |
| 1649 CreateMockRead(push_a_body, 2), | 1687 CreateMockRead(push_a_body, 3), |
| 1650 MockRead(ASYNC, ERR_IO_PENDING, 3), | 1688 MockRead(ASYNC, ERR_IO_PENDING, 4), |
| 1651 CreateMockRead(push_b, 4), | 1689 CreateMockRead(push_b, 5), |
| 1652 MockRead(ASYNC, ERR_IO_PENDING, 6), | 1690 MockRead(ASYNC, ERR_IO_PENDING, 8), |
| 1653 CreateMockRead(push_c, 7), | 1691 CreateMockRead(push_c, 9), |
| 1654 CreateMockRead(push_c_body, 8), | 1692 CreateMockRead(push_c_body, 11), |
| 1655 MockRead(ASYNC, ERR_IO_PENDING, 9), | 1693 MockRead(ASYNC, ERR_IO_PENDING, 12), |
| 1656 MockRead(ASYNC, 0, 10) // EOF | 1694 MockRead(ASYNC, 0, 13) // EOF |
| 1657 }; | 1695 }; |
| 1658 | 1696 |
| 1659 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); | 1697 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| 1660 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1698 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 1661 | 1699 |
| 1662 AddSSLSocketData(); | 1700 AddSSLSocketData(); |
| 1663 | 1701 |
| 1664 CreateNetworkSession(); | 1702 CreateNetworkSession(); |
| 1665 CreateSecureSpdySession(); | 1703 CreateSecureSpdySession(); |
| 1666 | 1704 |
| (...skipping 3186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4853 SettingsMap new_settings; | 4891 SettingsMap new_settings; |
| 4854 new_settings[SETTINGS_MAX_CONCURRENT_STREAMS] = 2; | 4892 new_settings[SETTINGS_MAX_CONCURRENT_STREAMS] = 2; |
| 4855 SpdySerializedFrame settings_frame( | 4893 SpdySerializedFrame settings_frame( |
| 4856 spdy_util_.ConstructSpdySettings(new_settings)); | 4894 spdy_util_.ConstructSpdySettings(new_settings)); |
| 4857 SpdySerializedFrame pushed(spdy_util_.ConstructSpdyPush( | 4895 SpdySerializedFrame pushed(spdy_util_.ConstructSpdyPush( |
| 4858 nullptr, 0, 2, 1, "https://www.example.org/a.dat")); | 4896 nullptr, 0, 2, 1, "https://www.example.org/a.dat")); |
| 4859 MockRead reads[] = { | 4897 MockRead reads[] = { |
| 4860 CreateMockRead(settings_frame, 0), | 4898 CreateMockRead(settings_frame, 0), |
| 4861 MockRead(ASYNC, ERR_IO_PENDING, 3), | 4899 MockRead(ASYNC, ERR_IO_PENDING, 3), |
| 4862 CreateMockRead(pushed, 4), | 4900 CreateMockRead(pushed, 4), |
| 4863 MockRead(ASYNC, ERR_IO_PENDING, 5), | 4901 MockRead(ASYNC, ERR_IO_PENDING, 6), |
| 4864 MockRead(ASYNC, 0, 6), | 4902 MockRead(ASYNC, 0, 7), |
| 4865 }; | 4903 }; |
| 4866 | 4904 |
| 4867 SpdySerializedFrame settings_ack(spdy_util_.ConstructSpdySettingsAck()); | 4905 SpdySerializedFrame settings_ack(spdy_util_.ConstructSpdySettingsAck()); |
| 4868 SpdySerializedFrame req( | 4906 SpdySerializedFrame req( |
| 4869 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); | 4907 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); |
| 4908 SpdySerializedFrame priority( |
| 4909 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true)); |
| 4870 MockWrite writes[] = { | 4910 MockWrite writes[] = { |
| 4871 CreateMockWrite(settings_ack, 1), CreateMockWrite(req, 2), | 4911 CreateMockWrite(settings_ack, 1), CreateMockWrite(req, 2), |
| 4912 CreateMockWrite(priority, 5), |
| 4872 }; | 4913 }; |
| 4873 | 4914 |
| 4874 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); | 4915 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| 4875 session_deps_.socket_factory->AddSocketDataProvider(&data); | 4916 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 4876 | 4917 |
| 4877 AddSSLSocketData(); | 4918 AddSSLSocketData(); |
| 4878 | 4919 |
| 4879 CreateNetworkSession(); | 4920 CreateNetworkSession(); |
| 4880 CreateSecureSpdySession(); | 4921 CreateSecureSpdySession(); |
| 4881 | 4922 |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4933 EXPECT_FALSE(session_); | 4974 EXPECT_FALSE(session_); |
| 4934 } | 4975 } |
| 4935 | 4976 |
| 4936 TEST_F(SpdySessionTest, RejectPushedStreamExceedingConcurrencyLimit) { | 4977 TEST_F(SpdySessionTest, RejectPushedStreamExceedingConcurrencyLimit) { |
| 4937 SpdySerializedFrame push_a(spdy_util_.ConstructSpdyPush( | 4978 SpdySerializedFrame push_a(spdy_util_.ConstructSpdyPush( |
| 4938 nullptr, 0, 2, 1, "https://www.example.org/a.dat")); | 4979 nullptr, 0, 2, 1, "https://www.example.org/a.dat")); |
| 4939 SpdySerializedFrame push_b(spdy_util_.ConstructSpdyPush( | 4980 SpdySerializedFrame push_b(spdy_util_.ConstructSpdyPush( |
| 4940 nullptr, 0, 4, 1, "https://www.example.org/b.dat")); | 4981 nullptr, 0, 4, 1, "https://www.example.org/b.dat")); |
| 4941 MockRead reads[] = { | 4982 MockRead reads[] = { |
| 4942 MockRead(ASYNC, ERR_IO_PENDING, 1), CreateMockRead(push_a, 2), | 4983 MockRead(ASYNC, ERR_IO_PENDING, 1), CreateMockRead(push_a, 2), |
| 4943 MockRead(ASYNC, ERR_IO_PENDING, 3), CreateMockRead(push_b, 4), | 4984 MockRead(ASYNC, ERR_IO_PENDING, 4), CreateMockRead(push_b, 5), |
| 4944 MockRead(ASYNC, ERR_IO_PENDING, 6), MockRead(ASYNC, 0, 7), | 4985 MockRead(ASYNC, ERR_IO_PENDING, 8), MockRead(ASYNC, 0, 9), |
| 4945 }; | 4986 }; |
| 4946 | 4987 |
| 4947 SpdySerializedFrame req( | 4988 SpdySerializedFrame req( |
| 4948 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); | 4989 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); |
| 4949 SpdySerializedFrame rst( | 4990 SpdySerializedFrame priority_a( |
| 4991 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true)); |
| 4992 SpdySerializedFrame priority_b( |
| 4993 spdy_util_.ConstructSpdyPriority(4, 2, IDLE, true)); |
| 4994 SpdySerializedFrame rst_b( |
| 4950 spdy_util_.ConstructSpdyRstStream(4, RST_STREAM_REFUSED_STREAM)); | 4995 spdy_util_.ConstructSpdyRstStream(4, RST_STREAM_REFUSED_STREAM)); |
| 4951 MockWrite writes[] = { | 4996 MockWrite writes[] = { |
| 4952 CreateMockWrite(req, 0), CreateMockWrite(rst, 5), | 4997 CreateMockWrite(req, 0), CreateMockWrite(priority_a, 3), |
| 4998 CreateMockWrite(priority_b, 6), CreateMockWrite(rst_b, 7), |
| 4953 }; | 4999 }; |
| 4954 | 5000 |
| 4955 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); | 5001 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| 4956 session_deps_.socket_factory->AddSocketDataProvider(&data); | 5002 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 4957 | 5003 |
| 4958 AddSSLSocketData(); | 5004 AddSSLSocketData(); |
| 4959 | 5005 |
| 4960 CreateNetworkSession(); | 5006 CreateNetworkSession(); |
| 4961 CreateSecureSpdySession(); | 5007 CreateSecureSpdySession(); |
| 4962 session_->set_max_concurrent_pushed_streams(1); | 5008 session_->set_max_concurrent_pushed_streams(1); |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5019 // cross_origin_push contains HTTP resource for an origin different from the | 5065 // cross_origin_push contains HTTP resource for an origin different from the |
| 5020 // origin of kDefaultUrl, and should be accepted. | 5066 // origin of kDefaultUrl, and should be accepted. |
| 5021 SpdySerializedFrame cross_origin_push(spdy_util_.ConstructSpdyPush( | 5067 SpdySerializedFrame cross_origin_push(spdy_util_.ConstructSpdyPush( |
| 5022 nullptr, 0, 2, 1, kHttpURLFromAnotherOrigin)); | 5068 nullptr, 0, 2, 1, kHttpURLFromAnotherOrigin)); |
| 5023 // cross_origin_https_push contains HTTPS resource, and should be refused. | 5069 // cross_origin_https_push contains HTTPS resource, and should be refused. |
| 5024 SpdySerializedFrame cross_origin_https_push(spdy_util_.ConstructSpdyPush( | 5070 SpdySerializedFrame cross_origin_https_push(spdy_util_.ConstructSpdyPush( |
| 5025 nullptr, 0, 4, 1, kHttpsURLFromAnotherOrigin)); | 5071 nullptr, 0, 4, 1, kHttpsURLFromAnotherOrigin)); |
| 5026 MockRead reads[] = { | 5072 MockRead reads[] = { |
| 5027 MockRead(ASYNC, ERR_IO_PENDING, 1), | 5073 MockRead(ASYNC, ERR_IO_PENDING, 1), |
| 5028 CreateMockRead(cross_origin_push, 2), | 5074 CreateMockRead(cross_origin_push, 2), |
| 5029 MockRead(ASYNC, ERR_IO_PENDING, 3), | 5075 MockRead(ASYNC, ERR_IO_PENDING, 4), |
| 5030 CreateMockRead(cross_origin_https_push, 4), | 5076 CreateMockRead(cross_origin_https_push, 5), |
| 5031 MockRead(ASYNC, ERR_IO_PENDING, 6), | 5077 MockRead(ASYNC, ERR_IO_PENDING, 7), |
| 5032 MockRead(ASYNC, 0, 7), | 5078 MockRead(ASYNC, 0, 8), |
| 5033 }; | 5079 }; |
| 5034 | 5080 |
| 5035 SpdySerializedFrame req( | 5081 SpdySerializedFrame req( |
| 5036 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); | 5082 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); |
| 5037 SpdySerializedFrame rst( | 5083 SpdySerializedFrame priority_http( |
| 5084 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true)); |
| 5085 SpdySerializedFrame rst_https( |
| 5038 spdy_util_.ConstructSpdyRstStream(4, RST_STREAM_REFUSED_STREAM)); | 5086 spdy_util_.ConstructSpdyRstStream(4, RST_STREAM_REFUSED_STREAM)); |
| 5039 MockWrite writes[] = { | 5087 MockWrite writes[] = { |
| 5040 CreateMockWrite(req, 0), CreateMockWrite(rst, 5), | 5088 CreateMockWrite(req, 0), CreateMockWrite(priority_http, 3), |
| 5089 CreateMockWrite(rst_https, 6), |
| 5041 }; | 5090 }; |
| 5042 | 5091 |
| 5043 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); | 5092 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| 5044 session_deps_.socket_factory->AddSocketDataProvider(&data); | 5093 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 5045 | 5094 |
| 5046 std::unique_ptr<TestProxyDelegate> proxy_delegate(new TestProxyDelegate()); | 5095 std::unique_ptr<TestProxyDelegate> proxy_delegate(new TestProxyDelegate()); |
| 5047 proxy_delegate->set_trusted_spdy_proxy( | 5096 proxy_delegate->set_trusted_spdy_proxy( |
| 5048 net::ProxyServer(net::ProxyServer::SCHEME_HTTPS, | 5097 net::ProxyServer(net::ProxyServer::SCHEME_HTTPS, |
| 5049 HostPortPair(GURL(kDefaultUrl).host(), 443))); | 5098 HostPortPair(GURL(kDefaultUrl).host(), 443))); |
| 5050 session_deps_.proxy_delegate = std::move(proxy_delegate); | 5099 session_deps_.proxy_delegate = std::move(proxy_delegate); |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5168 SpdySerializedFrame push_a(spdy_util_.ConstructSpdyPush( | 5217 SpdySerializedFrame push_a(spdy_util_.ConstructSpdyPush( |
| 5169 nullptr, 0, 2, 1, "https://www.example.org/a.dat")); | 5218 nullptr, 0, 2, 1, "https://www.example.org/a.dat")); |
| 5170 SpdyHeaderBlock push_headers; | 5219 SpdyHeaderBlock push_headers; |
| 5171 spdy_util_.AddUrlToHeaderBlock("https://www.example.org/b.dat", | 5220 spdy_util_.AddUrlToHeaderBlock("https://www.example.org/b.dat", |
| 5172 &push_headers); | 5221 &push_headers); |
| 5173 SpdySerializedFrame push_b( | 5222 SpdySerializedFrame push_b( |
| 5174 spdy_util_.ConstructInitialSpdyPushFrame(std::move(push_headers), 4, 1)); | 5223 spdy_util_.ConstructInitialSpdyPushFrame(std::move(push_headers), 4, 1)); |
| 5175 SpdySerializedFrame headers_b( | 5224 SpdySerializedFrame headers_b( |
| 5176 spdy_util_.ConstructSpdyPushHeaders(4, nullptr, 0)); | 5225 spdy_util_.ConstructSpdyPushHeaders(4, nullptr, 0)); |
| 5177 MockRead reads[] = { | 5226 MockRead reads[] = { |
| 5178 MockRead(ASYNC, ERR_IO_PENDING, 1), CreateMockRead(push_a, 2), | 5227 MockRead(ASYNC, ERR_IO_PENDING, 1), CreateMockRead(push_a, 2), |
| 5179 MockRead(ASYNC, ERR_IO_PENDING, 3), CreateMockRead(push_b, 4), | 5228 MockRead(ASYNC, ERR_IO_PENDING, 4), CreateMockRead(push_b, 5), |
| 5180 MockRead(ASYNC, ERR_IO_PENDING, 5), CreateMockRead(headers_b, 6), | 5229 MockRead(ASYNC, ERR_IO_PENDING, 7), CreateMockRead(headers_b, 8), |
| 5181 MockRead(ASYNC, ERR_IO_PENDING, 8), MockRead(ASYNC, 0, 9), | 5230 MockRead(ASYNC, ERR_IO_PENDING, 10), MockRead(ASYNC, 0, 11), |
| 5182 }; | 5231 }; |
| 5183 | 5232 |
| 5184 SpdySerializedFrame req( | 5233 SpdySerializedFrame req( |
| 5185 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); | 5234 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); |
| 5186 SpdySerializedFrame rst( | 5235 SpdySerializedFrame priority_a( |
| 5236 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true)); |
| 5237 SpdySerializedFrame priority_b( |
| 5238 spdy_util_.ConstructSpdyPriority(4, 2, IDLE, true)); |
| 5239 SpdySerializedFrame rst_b( |
| 5187 spdy_util_.ConstructSpdyRstStream(4, RST_STREAM_REFUSED_STREAM)); | 5240 spdy_util_.ConstructSpdyRstStream(4, RST_STREAM_REFUSED_STREAM)); |
| 5188 MockWrite writes[] = { | 5241 MockWrite writes[] = { |
| 5189 CreateMockWrite(req, 0), CreateMockWrite(rst, 7), | 5242 CreateMockWrite(req, 0), CreateMockWrite(priority_a, 3), |
| 5243 CreateMockWrite(priority_b, 6), CreateMockWrite(rst_b, 9), |
| 5190 }; | 5244 }; |
| 5191 | 5245 |
| 5192 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); | 5246 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| 5193 session_deps_.socket_factory->AddSocketDataProvider(&data); | 5247 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 5194 | 5248 |
| 5195 AddSSLSocketData(); | 5249 AddSSLSocketData(); |
| 5196 | 5250 |
| 5197 CreateNetworkSession(); | 5251 CreateNetworkSession(); |
| 5198 CreateSecureSpdySession(); | 5252 CreateSecureSpdySession(); |
| 5199 session_->set_max_concurrent_pushed_streams(1); | 5253 session_->set_max_concurrent_pushed_streams(1); |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5257 TEST_F(SpdySessionTest, CancelReservedStreamOnHeadersReceived) { | 5311 TEST_F(SpdySessionTest, CancelReservedStreamOnHeadersReceived) { |
| 5258 const char kPushedUrl[] = "https://www.example.org/a.dat"; | 5312 const char kPushedUrl[] = "https://www.example.org/a.dat"; |
| 5259 SpdyHeaderBlock push_headers; | 5313 SpdyHeaderBlock push_headers; |
| 5260 spdy_util_.AddUrlToHeaderBlock(kPushedUrl, &push_headers); | 5314 spdy_util_.AddUrlToHeaderBlock(kPushedUrl, &push_headers); |
| 5261 SpdySerializedFrame push_promise( | 5315 SpdySerializedFrame push_promise( |
| 5262 spdy_util_.ConstructInitialSpdyPushFrame(std::move(push_headers), 2, 1)); | 5316 spdy_util_.ConstructInitialSpdyPushFrame(std::move(push_headers), 2, 1)); |
| 5263 SpdySerializedFrame headers_frame( | 5317 SpdySerializedFrame headers_frame( |
| 5264 spdy_util_.ConstructSpdyPushHeaders(2, nullptr, 0)); | 5318 spdy_util_.ConstructSpdyPushHeaders(2, nullptr, 0)); |
| 5265 MockRead reads[] = { | 5319 MockRead reads[] = { |
| 5266 MockRead(ASYNC, ERR_IO_PENDING, 1), CreateMockRead(push_promise, 2), | 5320 MockRead(ASYNC, ERR_IO_PENDING, 1), CreateMockRead(push_promise, 2), |
| 5267 MockRead(ASYNC, ERR_IO_PENDING, 3), CreateMockRead(headers_frame, 4), | 5321 MockRead(ASYNC, ERR_IO_PENDING, 4), CreateMockRead(headers_frame, 5), |
| 5268 MockRead(ASYNC, ERR_IO_PENDING, 6), MockRead(ASYNC, 0, 7), | 5322 MockRead(ASYNC, ERR_IO_PENDING, 7), MockRead(ASYNC, 0, 8), |
| 5269 }; | 5323 }; |
| 5270 | 5324 |
| 5271 SpdySerializedFrame req( | 5325 SpdySerializedFrame req( |
| 5272 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); | 5326 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); |
| 5327 SpdySerializedFrame priority( |
| 5328 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true)); |
| 5273 SpdySerializedFrame rst( | 5329 SpdySerializedFrame rst( |
| 5274 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_CANCEL)); | 5330 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_CANCEL)); |
| 5275 MockWrite writes[] = { | 5331 MockWrite writes[] = { |
| 5276 CreateMockWrite(req, 0), CreateMockWrite(rst, 5), | 5332 CreateMockWrite(req, 0), CreateMockWrite(priority, 3), |
| 5333 CreateMockWrite(rst, 6), |
| 5277 }; | 5334 }; |
| 5278 | 5335 |
| 5279 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); | 5336 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| 5280 session_deps_.socket_factory->AddSocketDataProvider(&data); | 5337 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 5281 | 5338 |
| 5282 AddSSLSocketData(); | 5339 AddSSLSocketData(); |
| 5283 | 5340 |
| 5284 CreateNetworkSession(); | 5341 CreateNetworkSession(); |
| 5285 CreateSecureSpdySession(); | 5342 CreateSecureSpdySession(); |
| 5286 | 5343 |
| (...skipping 24 matching lines...) Expand all Loading... |
| 5311 | 5368 |
| 5312 // Run until pushed stream is created. | 5369 // Run until pushed stream is created. |
| 5313 data.Resume(); | 5370 data.Resume(); |
| 5314 base::RunLoop().RunUntilIdle(); | 5371 base::RunLoop().RunUntilIdle(); |
| 5315 EXPECT_EQ(2u, session_->num_active_streams()); | 5372 EXPECT_EQ(2u, session_->num_active_streams()); |
| 5316 EXPECT_EQ(0u, session_->num_created_streams()); | 5373 EXPECT_EQ(0u, session_->num_created_streams()); |
| 5317 EXPECT_EQ(1u, session_->num_pushed_streams()); | 5374 EXPECT_EQ(1u, session_->num_pushed_streams()); |
| 5318 EXPECT_EQ(0u, session_->num_active_pushed_streams()); | 5375 EXPECT_EQ(0u, session_->num_active_pushed_streams()); |
| 5319 | 5376 |
| 5320 base::WeakPtr<SpdyStream> pushed_stream; | 5377 base::WeakPtr<SpdyStream> pushed_stream; |
| 5321 int rv = session_->GetPushStream(GURL(kPushedUrl), &pushed_stream, | 5378 int rv = session_->GetPushStream(GURL(kPushedUrl), IDLE, &pushed_stream, |
| 5322 NetLogWithSource()); | 5379 NetLogWithSource()); |
| 5323 ASSERT_THAT(rv, IsOk()); | 5380 ASSERT_THAT(rv, IsOk()); |
| 5324 ASSERT_TRUE(pushed_stream); | 5381 ASSERT_TRUE(pushed_stream); |
| 5325 test::StreamDelegateCloseOnHeaders delegate2(pushed_stream); | 5382 test::StreamDelegateCloseOnHeaders delegate2(pushed_stream); |
| 5326 pushed_stream->SetDelegate(&delegate2); | 5383 pushed_stream->SetDelegate(&delegate2); |
| 5327 | 5384 |
| 5328 // Receive headers for pushed stream. Delegate will cancel the stream, ensure | 5385 // Receive headers for pushed stream. Delegate will cancel the stream, ensure |
| 5329 // that all our counters are in consistent state. | 5386 // that all our counters are in consistent state. |
| 5330 data.Resume(); | 5387 data.Resume(); |
| 5331 base::RunLoop().RunUntilIdle(); | 5388 base::RunLoop().RunUntilIdle(); |
| (...skipping 608 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5940 ssl_info.cert = ImportCertFromFile(GetTestCertsDirectory(), | 5997 ssl_info.cert = ImportCertFromFile(GetTestCertsDirectory(), |
| 5941 "spdy_pooling.pem"); | 5998 "spdy_pooling.pem"); |
| 5942 ssl_info.is_issued_by_known_root = true; | 5999 ssl_info.is_issued_by_known_root = true; |
| 5943 ssl_info.public_key_hashes.push_back(test::GetTestHashValue(primary_pin)); | 6000 ssl_info.public_key_hashes.push_back(test::GetTestHashValue(primary_pin)); |
| 5944 | 6001 |
| 5945 EXPECT_TRUE(SpdySession::CanPool( | 6002 EXPECT_TRUE(SpdySession::CanPool( |
| 5946 &tss, ssl_info, "www.example.org", "mail.example.org")); | 6003 &tss, ssl_info, "www.example.org", "mail.example.org")); |
| 5947 } | 6004 } |
| 5948 | 6005 |
| 5949 } // namespace net | 6006 } // namespace net |
| OLD | NEW |