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

Issue 154933003: Persist server's crypto config data to disk cache for 0-RTT (Closed)

Created:
6 years, 10 months ago by ramant (doing other things)
Modified:
6 years, 10 months ago
Reviewers:
wtc
CC:
chromium-reviews, cbentzel+watch_chromium.org
Visibility:
Public.

Description

Persist server's crypto config data to disk cache for 0-RTT. + Changed QuicCryptoClientStream's state machine to wait for the read of disk cache data before we sent CHLO. + This code is not hooked up yet because QuicServerInfoFactory is not yet hooked up. I have tested the code by manually creating it. This CL was coded by wtc/raman Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=252310

Patch Set 1 #

Patch Set 2 : Update with TOT and cleanup of the code #

Patch Set 3 : Update with TOT and handle multiple tabs loading same URL #

Total comments: 52

Patch Set 4 : Deleted unused data_loaded_ member #

Total comments: 38

Patch Set 5 : Fix comments for Patch Set 4 #

Total comments: 28

Patch Set 6 : Merge with trunk #

Total comments: 4

Patch Set 7 : Undid bad upload (had problems with git merge) #

Total comments: 14

Patch Set 8 : Fixed comments in patch set 7 #

Total comments: 8
Unified diffs Side-by-side diffs Delta from patch set Stats (+316 lines, -40 lines) Patch
M net/http/disk_cache_based_quic_server_info.h View 1 2 3 1 chunk +1 line, -0 lines 0 comments Download
net/http/disk_cache_based_quic_server_info.cc View 1 2 3 4 5 3 chunks +12 lines, -3 lines 0 comments Download
M net/http/disk_cache_based_quic_server_info_unittest.cc View 1 2 3 4 6 4 chunks +23 lines, -11 lines 0 comments Download
M net/quic/crypto/quic_crypto_client_config.h View 1 2 3 4 5 6 7 5 chunks +18 lines, -1 line 0 comments Download
M net/quic/crypto/quic_crypto_client_config.cc View 1 2 3 4 5 6 7 6 chunks +69 lines, -0 lines 2 comments Download
M net/quic/crypto/quic_server_info.h View 1 2 3 4 6 4 chunks +13 lines, -6 lines 0 comments Download
M net/quic/crypto/quic_server_info.cc View 1 2 3 4 6 4 chunks +82 lines, -17 lines 0 comments Download
M net/quic/quic_crypto_client_stream.h View 1 2 3 4 5 4 chunks +17 lines, -0 lines 0 comments Download
M net/quic/quic_crypto_client_stream.cc View 1 2 3 4 5 6 7 5 chunks +81 lines, -2 lines 6 comments Download

Messages

Total messages: 21 (0 generated)
ramant (doing other things)
Hi Wan-Teh, This is first cut at persisting/reading the QUIC server information. Would appreciate if ...
6 years, 10 months ago (2014-02-06 02:07:40 UTC) #1
wtc
Review comments on patch set 3: Raman, overall it is good. I'd like to review ...
6 years, 10 months ago (2014-02-07 00:54:11 UTC) #2
ramant (doing other things)
Hi Wan-Teh, Made all the changes. Add IsDataReady method to check if we could save ...
6 years, 10 months ago (2014-02-07 20:30:51 UTC) #3
wtc
Review comments on patch set 4: Raman, thanks for the new patch set. I suggest ...
6 years, 10 months ago (2014-02-11 01:01:45 UTC) #4
ramant (doing other things)
Many many thanks Wan-Teh. Made all the changes and verified the code. PTAL. https://codereview.chromium.org/154933003/diff/970001/net/http/disk_cache_based_quic_server_info.cc File ...
6 years, 10 months ago (2014-02-11 07:57:54 UTC) #5
wtc
Patch set 5 LGTM. Please ask me to explain the comments in quic_crypto_client_config.cc and quic_crypto_client_stream.cc. ...
6 years, 10 months ago (2014-02-13 23:48:42 UTC) #6
wtc
More comments on patch set 5: https://codereview.chromium.org/154933003/diff/1500001/net/quic/crypto/quic_crypto_client_config.cc File net/quic/crypto/quic_crypto_client_config.cc (right): https://codereview.chromium.org/154933003/diff/1500001/net/quic/crypto/quic_crypto_client_config.cc#newcode237 net/quic/crypto/quic_crypto_client_config.cc:237: void QuicCryptoClientConfig::CachedState::LoadQuicServerInfo() { ...
6 years, 10 months ago (2014-02-14 01:46:13 UTC) #7
ramant (doing other things)
This is the code Wan-Teh and I had worked together for the last couple of ...
6 years, 10 months ago (2014-02-15 00:36:12 UTC) #8
wtc
Review comments on patch set 6: I will review this again carefully tomorrow. https://codereview.chromium.org/154933003/diff/2530001/net/quic/crypto/quic_crypto_client_config.cc File ...
6 years, 10 months ago (2014-02-19 02:24:10 UTC) #9
ramant (doing other things)
Hi Wan-Teh, Please ignore the previous upload. I was running into http server 500 errors ...
6 years, 10 months ago (2014-02-19 02:57:53 UTC) #10
wtc
Patch set 7 LGTM. https://codereview.chromium.org/154933003/diff/2720001/net/quic/crypto/quic_crypto_client_config.cc File net/quic/crypto/quic_crypto_client_config.cc (right): https://codereview.chromium.org/154933003/diff/2720001/net/quic/crypto/quic_crypto_client_config.cc#newcode226 net/quic/crypto/quic_crypto_client_config.cc:226: server_config_ = other.server_config_; I think ...
6 years, 10 months ago (2014-02-19 22:53:28 UTC) #11
ramant (doing other things)
Thanks much wtc. Made the changes you have suggested. https://codereview.chromium.org/154933003/diff/2720001/net/quic/crypto/quic_crypto_client_config.cc File net/quic/crypto/quic_crypto_client_config.cc (right): https://codereview.chromium.org/154933003/diff/2720001/net/quic/crypto/quic_crypto_client_config.cc#newcode226 net/quic/crypto/quic_crypto_client_config.cc:226: ...
6 years, 10 months ago (2014-02-20 02:34:06 UTC) #12
ramant (doing other things)
The CQ bit was checked by rtenneti@chromium.org
6 years, 10 months ago (2014-02-20 02:34:58 UTC) #13
ramant (doing other things)
The CQ bit was unchecked by rtenneti@chromium.org
6 years, 10 months ago (2014-02-20 02:35:21 UTC) #14
ramant (doing other things)
Will make further changes in another CL. On 2014/02/20 02:34:06, ramant wrote: > Thanks much ...
6 years, 10 months ago (2014-02-20 02:40:28 UTC) #15
ramant (doing other things)
The CQ bit was checked by rtenneti@chromium.org
6 years, 10 months ago (2014-02-20 02:40:36 UTC) #16
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/rtenneti@chromium.org/154933003/2970001
6 years, 10 months ago (2014-02-20 09:31:47 UTC) #17
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/rtenneti@chromium.org/154933003/2970001
6 years, 10 months ago (2014-02-20 12:42:24 UTC) #18
commit-bot: I haz the power
Change committed as 252310
6 years, 10 months ago (2014-02-20 18:02:35 UTC) #19
wtc
Comments on patch set 8: please address these in a new CL. Thanks! https://codereview.chromium.org/154933003/diff/2970001/net/quic/crypto/quic_crypto_client_config.cc File ...
6 years, 10 months ago (2014-02-20 20:06:15 UTC) #20
ramant (doing other things)
6 years, 10 months ago (2014-02-20 23:44:08 UTC) #21
Message was sent while issue was closed.
https://codereview.chromium.org/154933003/diff/2970001/net/quic/crypto/quic_c...
File net/quic/crypto/quic_crypto_client_config.cc (right):

https://codereview.chromium.org/154933003/diff/2970001/net/quic/crypto/quic_c...
net/quic/crypto/quic_crypto_client_config.cc:231: ++generation_counter_;
On 2014/02/20 20:06:16, wtc wrote:
> 
> I verified that whenever we change (set, modify, or clear) server_config_, we
> bump the generation counter.
> 
> I noticed that we set and clear server_config_ and scfg_ at the same time. Do
> you know why CachedState::InitializeFrom doesn't copy scfg_ from |other|?

We lazily initialize it in GetServerConfig (which parses server_config_ and
updates the scfg_ if it not NULL).

https://codereview.chromium.org/154933003/diff/2970001/net/quic/quic_crypto_c...
File net/quic/quic_crypto_client_stream.cc (right):

https://codereview.chromium.org/154933003/diff/2970001/net/quic/quic_crypto_c...
net/quic/quic_crypto_client_stream.cc:431: // quic_server_info->Persist requires
quic_server_info to be ready. We might
On 2014/02/20 20:06:16, wtc wrote:
> 
> Thanks for updating the comment. The new comment is still confusing because
> readers may wonder why the comment tells me Persist requires quic_server_info
to
> be ready.
> 
> Maybe something like this?
> 
>   We may need to call quic_server_info->Persist later.
>   quic_server_info->Persist requires quic_server_info
>   to be ready, so we always call WaitForDataReady, even
>   though we might have initialized |cached| config from
>   the cached state for a canonical hostname.
> 
> Does this say what you intended to say originally?

Many many thanks for the new comments (they read lot better).

Done in CL  https://codereview.chromium.org/174533002.

https://codereview.chromium.org/154933003/diff/2970001/net/quic/quic_crypto_c...
net/quic/quic_crypto_client_stream.cc:450: // cached->IsEmpty() is true, but the
generation counter changed), we still
On 2014/02/20 20:06:16, wtc wrote:
> 
> We should delete ", but the generation counter changed" because the code is no
> longer checking the generation counter.

Done in CL  https://codereview.chromium.org/174533002

https://codereview.chromium.org/154933003/diff/2970001/net/quic/quic_crypto_c...
net/quic/quic_crypto_client_stream.cc:454: // or the canonical server config.
On 2014/02/20 20:06:16, wtc wrote:
> 
> We only need one of these comments, but not both. I would probably keep the
> first one and delete the second one.

Done in CL  https://codereview.chromium.org/174533002

Powered by Google App Engine
This is Rietveld 408576698