Chromium Code Reviews| Index: tools/perf/page_sets/webrtc_cases.py |
| diff --git a/tools/perf/page_sets/webrtc_cases.py b/tools/perf/page_sets/webrtc_cases.py |
| index 99f5eadae8f2abc0085d46298d1cc734fb772c5a..60f54c62d9d1b6c3d90d4ffab398e2e703f69b2c 100644 |
| --- a/tools/perf/page_sets/webrtc_cases.py |
| +++ b/tools/perf/page_sets/webrtc_cases.py |
| @@ -3,11 +3,13 @@ |
| # found in the LICENSE file. |
| import os |
| -from telemetry.page import page as page_module |
| from telemetry import story |
| +from telemetry.page import page as page_module |
| WEBRTC_GITHUB_SAMPLES_URL = 'https://webrtc.github.io/samples/src/content/' |
| +CANVAS_CAPTURE_URL = ('https://rawgit.com/cricdecyan/mediarecorder/master/' |
|
phoglund_chromium
2016/04/08 11:50:22
Maybe call it MEDIARECORDER_GIT_URL, and assign it
cpaulin (no longer in chrome)
2016/04/08 18:01:38
Done.
|
| + 'canvascapture/canvas_capture_peerconnection.html') |
| class WebrtcPage(page_module.Page): |
| @@ -22,13 +24,13 @@ class WebrtcPage(page_module.Page): |
| class Page1(WebrtcPage): |
| - """ Why: Acquires a high definition (720p) local stream. """ |
| + """Why: Acquires a high definition (720p) local stream.""" |
| def __init__(self, page_set): |
| super(Page1, self).__init__( |
| - url=WEBRTC_GITHUB_SAMPLES_URL + 'getusermedia/resolution/', |
| - name='hd_local_stream_10s', |
| - page_set=page_set) |
| + url=WEBRTC_GITHUB_SAMPLES_URL + 'getusermedia/resolution/', |
| + name='hd_local_stream_10s', |
| + page_set=page_set) |
| def RunPageInteractions(self, action_runner): |
| action_runner.ClickElement('button[id="hd"]') |
| @@ -36,7 +38,7 @@ class Page1(WebrtcPage): |
| class Page2(WebrtcPage): |
| - """ Why: Sets up a local video-only WebRTC 720p call for 45 seconds. """ |
| + """Why: Sets up a local video-only WebRTC 720p call for 45 seconds.""" |
| def __init__(self, page_set): |
| super(Page2, self).__init__( |
| @@ -58,12 +60,12 @@ class Page2(WebrtcPage): |
| class Page3(WebrtcPage): |
| - """ Why: Transfer as much data as possible through a data channel in 20s. """ |
| + """Why: Transfer as much data as possible through a data channel in 20s.""" |
| def __init__(self, page_set): |
| super(Page3, self).__init__( |
| url=WEBRTC_GITHUB_SAMPLES_URL + 'datachannel/datatransfer', |
| - name="30s_datachannel_transfer", |
| + name='30s_datachannel_transfer', |
| page_set=page_set) |
| def RunPageInteractions(self, action_runner): |
| @@ -74,15 +76,14 @@ class Page3(WebrtcPage): |
| action_runner.Wait(30) |
| - |
| class Page4(WebrtcPage): |
| - """ Why: Sets up a WebRTC audio call with Opus. """ |
| + """Why: Sets up a WebRTC audio call with Opus.""" |
| def __init__(self, page_set): |
| super(Page4, self).__init__( |
| - url=WEBRTC_GITHUB_SAMPLES_URL + 'peerconnection/audio/?codec=OPUS', |
| - name='audio_call_opus_10s', |
| - page_set=page_set) |
| + url=WEBRTC_GITHUB_SAMPLES_URL + 'peerconnection/audio/?codec=OPUS', |
| + name='audio_call_opus_10s', |
| + page_set=page_set) |
| def RunPageInteractions(self, action_runner): |
| action_runner.ExecuteJavaScript('codecSelector.value="OPUS";') |
| @@ -91,13 +92,13 @@ class Page4(WebrtcPage): |
| class Page5(WebrtcPage): |
| - """ Why: Sets up a WebRTC audio call with G722. """ |
| + """Why: Sets up a WebRTC audio call with G722.""" |
| def __init__(self, page_set): |
| super(Page5, self).__init__( |
| - url=WEBRTC_GITHUB_SAMPLES_URL + 'peerconnection/audio/?codec=G722', |
| - name='audio_call_g722_10s', |
| - page_set=page_set) |
| + url=WEBRTC_GITHUB_SAMPLES_URL + 'peerconnection/audio/?codec=G722', |
| + name='audio_call_g722_10s', |
| + page_set=page_set) |
| def RunPageInteractions(self, action_runner): |
| action_runner.ExecuteJavaScript('codecSelector.value="G722";') |
| @@ -106,13 +107,13 @@ class Page5(WebrtcPage): |
| class Page6(WebrtcPage): |
| - """ Why: Sets up a WebRTC audio call with PCMU. """ |
| + """Why: Sets up a WebRTC audio call with PCMU.""" |
| def __init__(self, page_set): |
| super(Page6, self).__init__( |
| - url=WEBRTC_GITHUB_SAMPLES_URL + 'peerconnection/audio/?codec=PCMU', |
| - name='audio_call_pcmu_10s', |
| - page_set=page_set) |
| + url=WEBRTC_GITHUB_SAMPLES_URL + 'peerconnection/audio/?codec=PCMU', |
| + name='audio_call_pcmu_10s', |
| + page_set=page_set) |
| def RunPageInteractions(self, action_runner): |
| action_runner.ExecuteJavaScript('codecSelector.value="PCMU";') |
| @@ -121,13 +122,13 @@ class Page6(WebrtcPage): |
| class Page7(WebrtcPage): |
| - """ Why: Sets up a WebRTC audio call with iSAC 16K. """ |
| + """Why: Sets up a WebRTC audio call with iSAC 16K.""" |
| def __init__(self, page_set): |
| super(Page7, self).__init__( |
| - url=WEBRTC_GITHUB_SAMPLES_URL + 'peerconnection/audio/?codec=ISAC_16K', |
| - name='audio_call_isac16k_10s', |
| - page_set=page_set) |
| + url=WEBRTC_GITHUB_SAMPLES_URL + 'peerconnection/audio/?codec=ISAC_16K', |
| + name='audio_call_isac16k_10s', |
| + page_set=page_set) |
| def RunPageInteractions(self, action_runner): |
| action_runner.ExecuteJavaScript('codecSelector.value="ISAC/16000";') |
| @@ -135,47 +136,77 @@ class Page7(WebrtcPage): |
| action_runner.Wait(10) |
| +class Page8(WebrtcPage): |
| + """Why: Sets up a canvas capture stream connection to a peer connection.""" |
| + |
| + def __init__(self, page_set): |
| + super(Page8, self).__init__( |
| + url=CANVAS_CAPTURE_URL, |
| + name='canvas_capture_peer_connection', |
| + page_set=page_set) |
| + |
| + def RunPageInteractions(self, action_runner): |
| + with action_runner.CreateInteraction('Action_Canvas_PeerConnection', |
| + repeatable=False): |
| + action_runner.ExecuteJavaScript('draw();') |
| + action_runner.ExecuteJavaScript('doCanvasCaptureAndPeerConnection();') |
| + action_runner.Wait(10) |
| + |
| + |
| class WebrtcGetusermediaPageSet(story.StorySet): |
| - """ WebRTC tests for local getUserMedia: video capture and playback. """ |
| + """WebRTC tests for local getUserMedia: video capture and playback.""" |
| def __init__(self): |
| super(WebrtcGetusermediaPageSet, self).__init__( |
| - archive_data_file='data/webrtc_getusermedia_cases.json', |
| - cloud_storage_bucket=story.PUBLIC_BUCKET) |
| + archive_data_file='data/webrtc_getusermedia_cases.json', |
| + cloud_storage_bucket=story.PUBLIC_BUCKET) |
| self.AddStory(Page1(self)) |
| class WebrtcPeerconnectionPageSet(story.StorySet): |
| - """ WebRTC tests for Real-time video and audio communication. """ |
| + """WebRTC tests for Real-time video and audio communication.""" |
| def __init__(self): |
| super(WebrtcPeerconnectionPageSet, self).__init__( |
| - archive_data_file='data/webrtc_peerconnection_cases.json', |
| - cloud_storage_bucket=story.PUBLIC_BUCKET) |
| + archive_data_file='data/webrtc_peerconnection_cases.json', |
| + cloud_storage_bucket=story.PUBLIC_BUCKET) |
| self.AddStory(Page2(self)) |
| class WebrtcDatachannelPageSet(story.StorySet): |
| - """ WebRTC tests for Real-time communication via the data channel. """ |
| + """WebRTC tests for Real-time communication via the data channel.""" |
| def __init__(self): |
| super(WebrtcDatachannelPageSet, self).__init__( |
| - archive_data_file='data/webrtc_datachannel_cases.json', |
| - cloud_storage_bucket=story.PUBLIC_BUCKET) |
| + archive_data_file='data/webrtc_datachannel_cases.json', |
| + cloud_storage_bucket=story.PUBLIC_BUCKET) |
| self.AddStory(Page3(self)) |
| + |
| class WebrtcAudioPageSet(story.StorySet): |
| - """ WebRTC tests for Real-time audio communication. """ |
| + """WebRTC tests for Real-time audio communication.""" |
| def __init__(self): |
| super(WebrtcAudioPageSet, self).__init__( |
| - archive_data_file='data/webrtc_audio_cases.json', |
| - cloud_storage_bucket=story.PUBLIC_BUCKET) |
| + archive_data_file='data/webrtc_audio_cases.json', |
| + cloud_storage_bucket=story.PUBLIC_BUCKET) |
| self.AddStory(Page4(self)) |
| self.AddStory(Page5(self)) |
| self.AddStory(Page6(self)) |
| self.AddStory(Page7(self)) |
| + |
| + |
| +class WebrtcRenderingPageSet(story.StorySet): |
| + """WebRTC tests for video rendering.""" |
| + |
| + def __init__(self): |
| + super(WebrtcRenderingPageSet, self).__init__( |
| + archive_data_file='data/webrtc_smoothness_cases.json', |
| + cloud_storage_bucket=story.PARTNER_BUCKET) |
| + |
| + self.AddStory(Page2(self)) |
| + self.AddStory(Page8(self)) |