Adding a new page set

37 views
Skip to first unread message

Kenichi Ishibashi

unread,
Aug 7, 2015, 3:25:13 AM8/7/15
to tele...@chromium.org, Kentaro Hara
Hi telemetry guys,

I want to add a new page set which contains key sites for Blink's memory reduction effort (See this document for the motivation) but getting stuck so I'd like to ask your help. Here is a WIP CL.

- It seems that GoogleCredentialsBackend is outdated. There is no password field first and we need to submit the form before setting password (Submitting the form replaces username field with password field). Currently FormBasedCredentialsBackend doesn't provide a hook so I need to add something like this. Do you think this makes sense?

- In some cases, I hit following assertion in ValidateAndMeasurePage().
        timeline_data = tab.browser.platform.tracing_controller.Stop()
        timeline_model = TimelineModel(timeline_data)
        renderer_process = timeline_model.GetRendererProcessFromTabId(tab.id)
        assert renderer_process  # <== renderer_process is sometimes None
Any ideas for the cause? I need renderer's pid to collect memory dumps for a specific tab.

- How can I submit a page set? I guess that I need to run record_wpr but not sure how to run and what generated files should be included in CL.

Thanks!

Ned Nguyen

unread,
Aug 7, 2015, 9:01:35 PM8/7/15
to telemetry, har...@chromium.org, ba...@chromium.org


On Friday, August 7, 2015 at 12:25:13 AM UTC-7, Kenichi Ishibashi wrote:
Hi telemetry guys,

I want to add a new page set which contains key sites for Blink's memory reduction effort (See this document for the motivation) but getting stuck so I'd like to ask your help. Here is a WIP CL.

- It seems that GoogleCredentialsBackend is outdated. There is no password field first and we need to submit the form before setting password (Submitting the form replaces username field with password field). Currently FormBasedCredentialsBackend doesn't provide a hook so I need to add something like this. Do you think this makes sense?

You should use this new pattern instead:
 

- In some cases, I hit following assertion in ValidateAndMeasurePage().
        timeline_data = tab.browser.platform.tracing_controller.Stop()
        timeline_model = TimelineModel(timeline_data)
        renderer_process = timeline_model.GetRendererProcessFromTabId(tab.id)
        assert renderer_process  # <== renderer_process is sometimes None
Any ideas for the cause? I need renderer's pid to collect memory dumps for a specific tab.
 
I am not sure what is going on either. You can dump out the trace & open it with trace-viewer to see what happens.

 

- How can I submit a page set? I guess that I need to run record_wpr but not sure how to run and what generated files should be included in CL.

 After record_wpr run, you can upload the archive file by following https://www.chromium.org/developers/telemetry/upload_to_cloud_storage#TOC-Upload-to-Cloud-Storage

Thanks!

Kenichi Ishibashi

unread,
Aug 10, 2015, 9:34:13 PM8/10/15
to Ned Nguyen, telemetry, Kentaro Hara
Thanks Ned for the answers! Some additional questions...

- I have a page instance whose url is http://www.theverge.com/2012/10/28/3568746/amazon-7-inch-fire-hd-ipad-mini-ad-ballsy. When I execute run_benchmark, the page is successfully finished, but it wasn't when I use record_wpr. It seems that chrome fails to load the page correctly. Here is a screen capture.

Is there any difference between run_benchmark and record_wpr? There is no problem when I use run_benchmark.

- Chrome complains about the certs of https://en.blog.wordpress.com/2012/09/04/freshly-pressed-editors-picks-for-august-2012/ when I use record_wpr (NET:ERR_CERT_COMMON_NAME_INVALID). Again, I don't see the error message when I use run_benchmark. Do you have any idea about the cause?

Ned

unread,
Aug 11, 2015, 11:48:59 PM8/11/15
to Kenichi Ishibashi, telemetry, Kentaro Hara
On Mon, Aug 10, 2015 at 6:34 PM Kenichi Ishibashi <ba...@chromium.org> wrote:
Thanks Ned for the answers! Some additional questions...

- I have a page instance whose url is http://www.theverge.com/2012/10/28/3568746/amazon-7-inch-fire-hd-ipad-mini-ad-ballsy. When I execute run_benchmark, the page is successfully finished, but it wasn't when I use record_wpr. It seems that chrome fails to load the page correctly. Here is a screen capture.

It's a know bug that web-page-replay can't replay deterministically for certain pages. The way web-page-replay works is it just merely just record & replay network request, and many pages these days use some interesting javascript to generate client id for a/b testing & analytics. theverge.com could be one of those.



Is there any difference between run_benchmark and record_wpr? There is no problem when I use run_benchmark.

record_wpr record the page into archive so that whenever you run run_benchmark, if use the recorded version instead of live content. This is to make sure that your performance metrics don't suddenly change because the page is updated.
 

- Chrome complains about the certs of https://en.blog.wordpress.com/2012/09/04/freshly-pressed-editors-picks-for-august-2012/ when I use record_wpr (NET:ERR_CERT_COMMON_NAME_INVALID). Again, I don't see the error message when I use run_benchmark. Do you have any idea about the cause?

I am not sure about this.

Kenichi Ishibashi

unread,
Aug 12, 2015, 12:14:12 AM8/12/15
to Ned, telemetry, Kentaro Hara
On Wed, Aug 12, 2015 at 12:48 PM, Ned <nedn...@google.com> wrote:


On Mon, Aug 10, 2015 at 6:34 PM Kenichi Ishibashi <ba...@chromium.org> wrote:
Thanks Ned for the answers! Some additional questions...

- I have a page instance whose url is http://www.theverge.com/2012/10/28/3568746/amazon-7-inch-fire-hd-ipad-mini-ad-ballsy. When I execute run_benchmark, the page is successfully finished, but it wasn't when I use record_wpr. It seems that chrome fails to load the page correctly. Here is a screen capture.

It's a know bug that web-page-replay can't replay deterministically for certain pages. The way web-page-replay works is it just merely just record & replay network request, and many pages these days use some interesting javascript to generate client id for a/b testing & analytics. theverge.com could be one of those.
Hmm, there is TheVergeArticlePage so I don't think this is the case. Actually, I was trying to find the cause this morning and found that it's a certificate issue. Chrome fails to load some resources from https://cdn0.vox-cdn.com. You can reproduce the issue by following steps:
- launch webpagereplay proxy. IIUC, this is what record_wpr does internally.
  $ cd third_party/webpagereplay; ./replay.py --should_generate_certs --record /tmp/archive.wpr
- visit http://www.theverge.com via browser
- open the devtools console. You will see net::ERR_SSL_VERSION_OR_CIPHER_MISMATCH errors
Passing --ignore-certificate-errors to chrome doesn't solve the problem. Is there any workaround to avoid cert errors?



Is there any difference between run_benchmark and record_wpr? There is no problem when I use run_benchmark.

record_wpr record the page into archive so that whenever you run run_benchmark, if use the recorded version instead of live content. This is to make sure that your performance metrics don't suddenly change because the page is updated.
 

- Chrome complains about the certs of https://en.blog.wordpress.com/2012/09/04/freshly-pressed-editors-picks-for-august-2012/ when I use record_wpr (NET:ERR_CERT_COMMON_NAME_INVALID). Again, I don't see the error message when I use run_benchmark. Do you have any idea about the cause?

I am not sure about this.
Do you happen to know who I should reach out to? It seems that the cause of all problems I'm facing with is cert issues.

Ned

unread,
Aug 12, 2015, 12:19:54 PM8/12/15
to Kenichi Ishibashi, sl...@google.com, telemetry, Kentaro Hara
+Steve Lamm Can you help Kenichi with the cert issue?
Reply all
Reply to author
Forward
0 new messages