Commit f45d4eb1 authored by Camillo Bruni's avatar Camillo Bruni Committed by Commit Bot

Add year tags to all system health stories

Bug: 878390
Change-Id: Idbf6ea53989688e675718c76babe259caf51c9db
Reviewed-on: https://chromium-review.googlesource.com/1215946
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: default avatarAnnie Sullivan <sullivan@chromium.org>
Reviewed-by: default avatarTimothy Dresser <tdresser@chromium.org>
Reviewed-by: default avatarNed Nguyen <nednguyen@google.com>
Cr-Commit-Position: refs/heads/master@{#590220}
parent d8d47153
...@@ -58,18 +58,18 @@ start_with_url.cold.startup_pages,"pasko@chromium.org, chrome-android-perf-statu ...@@ -58,18 +58,18 @@ start_with_url.cold.startup_pages,"pasko@chromium.org, chrome-android-perf-statu
start_with_url.warm.startup_pages,"pasko@chromium.org, chrome-android-perf-status@chromium.org",,, start_with_url.warm.startup_pages,"pasko@chromium.org, chrome-android-perf-status@chromium.org",,,
startup.mobile,"pasko@chromium.org, chrome-android-perf-status@chromium.org",,, startup.mobile,"pasko@chromium.org, chrome-android-perf-status@chromium.org",,,
supersize_archive,agrieve@chromium.org,,, supersize_archive,agrieve@chromium.org,,,
system_health.common_desktop,"charliea@chromium.org, sullivan@chromium.org, tdresser@chromium.org, chrome-speed-metrics-dev@chromium.org",Speed>Metrics>SystemHealthRegressions,https://bit.ly/system-health-benchmarks,"accessibility,emerging_market,health_check,infinite_scroll,international,javascript_heavy,keyboard_input,scroll,tabs_switching,webgl" system_health.common_desktop,"charliea@chromium.org, sullivan@chromium.org, tdresser@chromium.org, chrome-speed-metrics-dev@chromium.org",Speed>Metrics>SystemHealthRegressions,https://bit.ly/system-health-benchmarks,"2016,2018,accessibility,emerging_market,health_check,infinite_scroll,international,javascript_heavy,keyboard_input,scroll,tabs_switching,webgl"
system_health.common_mobile,"charliea@chromium.org, sullivan@chromium.org, tdresser@chromium.org, perezju@chromium.org, chrome-speed-metrics-dev@chromium.org",Speed>Metrics>SystemHealthRegressions,https://bit.ly/system-health-benchmarks,"emerging_market,health_check,infinite_scroll,international,javascript_heavy" system_health.common_mobile,"charliea@chromium.org, sullivan@chromium.org, tdresser@chromium.org, perezju@chromium.org, chrome-speed-metrics-dev@chromium.org",Speed>Metrics>SystemHealthRegressions,https://bit.ly/system-health-benchmarks,"2016,2018,emerging_market,health_check,infinite_scroll,international,javascript_heavy"
system_health.memory_desktop,perezju@chromium.org,,https://bit.ly/system-health-benchmarks,"accessibility,emerging_market,health_check,infinite_scroll,international,javascript_heavy,keyboard_input,scroll,tabs_switching,webgl" system_health.memory_desktop,perezju@chromium.org,,https://bit.ly/system-health-benchmarks,"2016,2018,accessibility,emerging_market,health_check,infinite_scroll,international,javascript_heavy,keyboard_input,scroll,tabs_switching,webgl"
system_health.memory_mobile,perezju@chromium.org,,https://bit.ly/system-health-benchmarks,"emerging_market,health_check,infinite_scroll,international,javascript_heavy" system_health.memory_mobile,perezju@chromium.org,,https://bit.ly/system-health-benchmarks,"2016,2018,emerging_market,health_check,infinite_scroll,international,javascript_heavy"
system_health.webview_startup,"perezju@chromium.org, torne@chromium.org, changwan@chromium.org",Mobile>WebView>Perf,,health_check system_health.webview_startup,"perezju@chromium.org, torne@chromium.org, changwan@chromium.org",Mobile>WebView>Perf,,"2016,health_check"
tab_switching.typical_25,vovoy@chromium.org,OS>Performance,,tabs_switching tab_switching.typical_25,vovoy@chromium.org,OS>Performance,,"2016,tabs_switching"
tracing.tracing_with_background_memory_infra,ssid@chromium.org,,, tracing.tracing_with_background_memory_infra,ssid@chromium.org,,,
tracing_perftests,"kkraynov@chromium.org, primiano@chromium.org",,, tracing_perftests,"kkraynov@chromium.org, primiano@chromium.org",,,
v8.browsing_desktop,"mythria@chromium.org, ulan@chromium.org",,,"health_check,infinite_scroll,international,javascript_heavy,webgl" v8.browsing_desktop,"mythria@chromium.org, ulan@chromium.org",,,"2016,2018,health_check,infinite_scroll,international,javascript_heavy,webgl"
v8.browsing_desktop-future,"mythria@chromium.org, ulan@chromium.org",,,"health_check,infinite_scroll,international,javascript_heavy,webgl" v8.browsing_desktop-future,"mythria@chromium.org, ulan@chromium.org",,,"2016,2018,health_check,infinite_scroll,international,javascript_heavy,webgl"
v8.browsing_mobile,"mythria@chromium.org, ulan@chromium.org",,,"emerging_market,health_check,infinite_scroll,international,javascript_heavy" v8.browsing_mobile,"mythria@chromium.org, ulan@chromium.org",,,"2016,2018,emerging_market,health_check,infinite_scroll,international,javascript_heavy"
v8.browsing_mobile-future,"mythria@chromium.org, ulan@chromium.org",,,"emerging_market,health_check,infinite_scroll,international,javascript_heavy" v8.browsing_mobile-future,"mythria@chromium.org, ulan@chromium.org",,,"2016,2018,emerging_market,health_check,infinite_scroll,international,javascript_heavy"
v8.runtime_stats.top_25,cbruni@chromium.org,,,"cold,hot,warm" v8.runtime_stats.top_25,cbruni@chromium.org,,,"cold,hot,warm"
validating_command_buffer_perftests,"piman@chromium.org, chrome-gpu-perf-owners@chromium.org",Internals>GPU,, validating_command_buffer_perftests,"piman@chromium.org, chrome-gpu-perf-owners@chromium.org",Internals>GPU,,
views_perftests,tapted@chromium.org,Internals>Views,, views_perftests,tapted@chromium.org,Internals>Views,,
......
...@@ -27,7 +27,7 @@ class AccessibilityScrollingCodeSearchStory(_AccessibilityStory): ...@@ -27,7 +27,7 @@ class AccessibilityScrollingCodeSearchStory(_AccessibilityStory):
"""Tests scrolling an element within a page.""" """Tests scrolling an element within a page."""
NAME = 'browse_accessibility:tech:codesearch' NAME = 'browse_accessibility:tech:codesearch'
URL = 'https://cs.chromium.org/chromium/src/ui/accessibility/platform/ax_platform_node_mac.mm' URL = 'https://cs.chromium.org/chromium/src/ui/accessibility/platform/ax_platform_node_mac.mm'
TAGS = [story_tags.ACCESSIBILITY, story_tags.SCROLL] TAGS = [story_tags.ACCESSIBILITY, story_tags.SCROLL, story_tags.YEAR_2016]
def RunNavigateSteps(self, action_runner): def RunNavigateSteps(self, action_runner):
super(AccessibilityScrollingCodeSearchStory, self).RunNavigateSteps( super(AccessibilityScrollingCodeSearchStory, self).RunNavigateSteps(
...@@ -40,7 +40,7 @@ class AccessibilityScrollingCodeSearchStory2018(_AccessibilityStory): ...@@ -40,7 +40,7 @@ class AccessibilityScrollingCodeSearchStory2018(_AccessibilityStory):
"""Tests scrolling an element within a page.""" """Tests scrolling an element within a page."""
NAME = 'browse_accessibility:tech:codesearch:2018' NAME = 'browse_accessibility:tech:codesearch:2018'
URL = 'https://cs.chromium.org/chromium/src/ui/accessibility/platform/ax_platform_node_mac.mm' URL = 'https://cs.chromium.org/chromium/src/ui/accessibility/platform/ax_platform_node_mac.mm'
TAGS = [story_tags.ACCESSIBILITY, story_tags.SCROLL] TAGS = [story_tags.ACCESSIBILITY, story_tags.SCROLL, story_tags.YEAR_2018]
def RunNavigateSteps(self, action_runner): def RunNavigateSteps(self, action_runner):
super(AccessibilityScrollingCodeSearchStory2018, self).RunNavigateSteps( super(AccessibilityScrollingCodeSearchStory2018, self).RunNavigateSteps(
...@@ -54,21 +54,22 @@ class AccessibilityWikipediaStory(_AccessibilityStory): ...@@ -54,21 +54,22 @@ class AccessibilityWikipediaStory(_AccessibilityStory):
"""Wikipedia page on Accessibility. Long, but very simple, clean layout.""" """Wikipedia page on Accessibility. Long, but very simple, clean layout."""
NAME = 'load_accessibility:media:wikipedia' NAME = 'load_accessibility:media:wikipedia'
URL = 'https://en.wikipedia.org/wiki/Accessibility' URL = 'https://en.wikipedia.org/wiki/Accessibility'
TAGS = [story_tags.ACCESSIBILITY] TAGS = [story_tags.ACCESSIBILITY, story_tags.YEAR_2016]
class AccessibilityAmazonStory(_AccessibilityStory): class AccessibilityAmazonStory(_AccessibilityStory):
"""Amazon results page. Good example of a site with a data table.""" """Amazon results page. Good example of a site with a data table."""
NAME = 'load_accessibility:shopping:amazon' NAME = 'load_accessibility:shopping:amazon'
URL = 'https://www.amazon.com/gp/offer-listing/B01IENFJ14' URL = 'https://www.amazon.com/gp/offer-listing/B01IENFJ14'
TAGS = [story_tags.ACCESSIBILITY] TAGS = [story_tags.ACCESSIBILITY, story_tags.YEAR_2016]
class AccessibilityYouTubeHomepageStory(_AccessibilityStory): class AccessibilityYouTubeHomepageStory(_AccessibilityStory):
"""Tests interacting with the YouTube home page.""" """Tests interacting with the YouTube home page."""
NAME = 'browse_accessibility:media:youtube' NAME = 'browse_accessibility:media:youtube'
URL = 'https://www.youtube.com/' URL = 'https://www.youtube.com/'
TAGS = [story_tags.ACCESSIBILITY, story_tags.KEYBOARD_INPUT] TAGS = [story_tags.ACCESSIBILITY, story_tags.KEYBOARD_INPUT,
story_tags.YEAR_2016]
def RunNavigateSteps(self, action_runner): def RunNavigateSteps(self, action_runner):
action_runner.Navigate('https://www.youtube.com/') action_runner.Navigate('https://www.youtube.com/')
......
...@@ -30,7 +30,7 @@ class _BackgroundStory(system_health_story.SystemHealthStory): ...@@ -30,7 +30,7 @@ class _BackgroundStory(system_health_story.SystemHealthStory):
class BackgroundGoogleStory(_BackgroundStory): class BackgroundGoogleStory(_BackgroundStory):
NAME = 'background:search:google' NAME = 'background:search:google'
URL = 'https://www.google.co.uk/#q=tom+cruise+movies' URL = 'https://www.google.co.uk/#q=tom+cruise+movies'
TAGS = [story_tags.HEALTH_CHECK] TAGS = [story_tags.HEALTH_CHECK, story_tags.YEAR_2016]
def _DidLoadDocument(self, action_runner): def _DidLoadDocument(self, action_runner):
# Activte the immersive movie browsing experience # Activte the immersive movie browsing experience
...@@ -43,13 +43,14 @@ class BackgroundFacebookMobileStory(_BackgroundStory): ...@@ -43,13 +43,14 @@ class BackgroundFacebookMobileStory(_BackgroundStory):
NAME = 'background:social:facebook' NAME = 'background:social:facebook'
URL = 'https://www.facebook.com/rihanna' URL = 'https://www.facebook.com/rihanna'
SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
TAGS = [story_tags.YEAR_2016]
class BackgroundNytimesMobileStory(_BackgroundStory): class BackgroundNytimesMobileStory(_BackgroundStory):
NAME = 'background:news:nytimes' NAME = 'background:news:nytimes'
URL = 'http://www.nytimes.com/2016/10/04/us/politics/vice-presidential-debate.html?_r=0' URL = 'http://www.nytimes.com/2016/10/04/us/politics/vice-presidential-debate.html?_r=0'
SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
TAGS = [story_tags.JAVASCRIPT_HEAVY] TAGS = [story_tags.JAVASCRIPT_HEAVY, story_tags.YEAR_2016]
def _DidLoadDocument(self, action_runner): def _DidLoadDocument(self, action_runner):
# Dismiss the 'You have n free articles' message. # Dismiss the 'You have n free articles' message.
...@@ -80,13 +81,13 @@ class BackgroundImgurMobileStory(_BackgroundStory): ...@@ -80,13 +81,13 @@ class BackgroundImgurMobileStory(_BackgroundStory):
NAME = 'background:media:imgur' NAME = 'background:media:imgur'
URL = 'http://imgur.com/gallery/hUita' URL = 'http://imgur.com/gallery/hUita'
SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
TAGS = [story_tags.HEALTH_CHECK] TAGS = [story_tags.HEALTH_CHECK, story_tags.YEAR_2016]
class BackgroundGmailMobileStory(LoadGmailMobileStory): class BackgroundGmailMobileStory(LoadGmailMobileStory):
NAME = 'background:tools:gmail' NAME = 'background:tools:gmail'
SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
TAGS = [story_tags.HEALTH_CHECK] TAGS = [story_tags.HEALTH_CHECK, story_tags.YEAR_2016]
def _Measure(self, action_runner): def _Measure(self, action_runner):
action_runner.tab.browser.Background() action_runner.tab.browser.Background()
......
...@@ -111,7 +111,8 @@ class CnnStory(_ArticleBrowsingStory): ...@@ -111,7 +111,8 @@ class CnnStory(_ArticleBrowsingStory):
URL = 'http://edition.cnn.com/' URL = 'http://edition.cnn.com/'
ITEM_SELECTOR = '.cd__content > h3 > a' ITEM_SELECTOR = '.cd__content > h3 > a'
ITEMS_TO_VISIT = 2 ITEMS_TO_VISIT = 2
TAGS = [story_tags.JAVASCRIPT_HEAVY, story_tags.HEALTH_CHECK] TAGS = [story_tags.JAVASCRIPT_HEAVY, story_tags.HEALTH_CHECK,
story_tags.YEAR_2016]
class CnnStory2018(_ArticleBrowsingStory): class CnnStory2018(_ArticleBrowsingStory):
"""The second top website in http://www.alexa.com/topsites/category/News""" """The second top website in http://www.alexa.com/topsites/category/News"""
...@@ -119,7 +120,8 @@ class CnnStory2018(_ArticleBrowsingStory): ...@@ -119,7 +120,8 @@ class CnnStory2018(_ArticleBrowsingStory):
URL = 'http://edition.cnn.com/' URL = 'http://edition.cnn.com/'
ITEM_SELECTOR = '.cd__content > h3 > a' ITEM_SELECTOR = '.cd__content > h3 > a'
ITEMS_TO_VISIT = 2 ITEMS_TO_VISIT = 2
TAGS = [story_tags.JAVASCRIPT_HEAVY, story_tags.HEALTH_CHECK] TAGS = [story_tags.JAVASCRIPT_HEAVY, story_tags.HEALTH_CHECK,
story_tags.YEAR_2018]
class FacebookMobileStory(_ArticleBrowsingStory): class FacebookMobileStory(_ArticleBrowsingStory):
...@@ -130,7 +132,7 @@ class FacebookMobileStory(_ArticleBrowsingStory): ...@@ -130,7 +132,7 @@ class FacebookMobileStory(_ArticleBrowsingStory):
# (crbug.com/631022) # (crbug.com/631022)
MAIN_PAGE_SCROLL_REPEAT = 1 MAIN_PAGE_SCROLL_REPEAT = 1
SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
TAGS = [story_tags.EMERGING_MARKET] TAGS = [story_tags.EMERGING_MARKET, story_tags.YEAR_2016]
class FacebookDesktopStory(_ArticleBrowsingStory): class FacebookDesktopStory(_ArticleBrowsingStory):
...@@ -141,6 +143,7 @@ class FacebookDesktopStory(_ArticleBrowsingStory): ...@@ -141,6 +143,7 @@ class FacebookDesktopStory(_ArticleBrowsingStory):
# Web-page-replay does not work for this website: # Web-page-replay does not work for this website:
# https://github.com/chromium/web-page-replay/issues/79. # https://github.com/chromium/web-page-replay/issues/79.
SUPPORTED_PLATFORMS = platforms.NO_PLATFORMS SUPPORTED_PLATFORMS = platforms.NO_PLATFORMS
TAGS = [story_tags.YEAR_2016]
class InstagramMobileStory(_ArticleBrowsingStory): class InstagramMobileStory(_ArticleBrowsingStory):
...@@ -150,7 +153,7 @@ class InstagramMobileStory(_ArticleBrowsingStory): ...@@ -150,7 +153,7 @@ class InstagramMobileStory(_ArticleBrowsingStory):
ITEMS_TO_VISIT = 8 ITEMS_TO_VISIT = 8
SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
TAGS = [story_tags.EMERGING_MARKET] TAGS = [story_tags.EMERGING_MARKET, story_tags.YEAR_2016]
def _WaitForNavigation(self, action_runner): def _WaitForNavigation(self, action_runner):
action_runner.WaitForElement(text='load more comments') action_runner.WaitForElement(text='load more comments')
...@@ -165,6 +168,7 @@ class FlipboardDesktopStory(_ArticleBrowsingStory): ...@@ -165,6 +168,7 @@ class FlipboardDesktopStory(_ArticleBrowsingStory):
IS_SINGLE_PAGE_APP = True IS_SINGLE_PAGE_APP = True
ITEM_SELECTOR = '.cover-image' ITEM_SELECTOR = '.cover-image'
SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY
TAGS = [story_tags.YEAR_2016]
class HackerNewsDesktopStory(_ArticleBrowsingStory): class HackerNewsDesktopStory(_ArticleBrowsingStory):
...@@ -172,6 +176,7 @@ class HackerNewsDesktopStory(_ArticleBrowsingStory): ...@@ -172,6 +176,7 @@ class HackerNewsDesktopStory(_ArticleBrowsingStory):
URL = 'https://news.ycombinator.com' URL = 'https://news.ycombinator.com'
ITEM_SELECTOR = '.athing .title > a' ITEM_SELECTOR = '.athing .title > a'
SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY
TAGS = [story_tags.YEAR_2016]
class NytimesDesktopStory(_ArticleBrowsingStory): class NytimesDesktopStory(_ArticleBrowsingStory):
...@@ -181,6 +186,7 @@ class NytimesDesktopStory(_ArticleBrowsingStory): ...@@ -181,6 +186,7 @@ class NytimesDesktopStory(_ArticleBrowsingStory):
ITEM_SELECTOR = '.story-heading > a' ITEM_SELECTOR = '.story-heading > a'
SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY
COMPLETE_STATE_WAIT_TIMEOUT = 150 # crbug.com/865247 COMPLETE_STATE_WAIT_TIMEOUT = 150 # crbug.com/865247
TAGS = [story_tags.YEAR_2016]
# Desktop qq.com opens a news item in a separate tab, for which the back button # Desktop qq.com opens a news item in a separate tab, for which the back button
...@@ -190,7 +196,8 @@ class QqMobileStory(_ArticleBrowsingStory): ...@@ -190,7 +196,8 @@ class QqMobileStory(_ArticleBrowsingStory):
URL = 'http://news.qq.com' URL = 'http://news.qq.com'
ITEM_SELECTOR = '.list .full a' ITEM_SELECTOR = '.list .full a'
SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
TAGS = [story_tags.INTERNATIONAL, story_tags.HEALTH_CHECK] TAGS = [story_tags.INTERNATIONAL, story_tags.HEALTH_CHECK,
story_tags.YEAR_2016]
class RedditDesktopStory(_ArticleBrowsingStory): class RedditDesktopStory(_ArticleBrowsingStory):
...@@ -199,6 +206,7 @@ class RedditDesktopStory(_ArticleBrowsingStory): ...@@ -199,6 +206,7 @@ class RedditDesktopStory(_ArticleBrowsingStory):
URL = 'https://www.reddit.com/r/news/top/?sort=top&t=week' URL = 'https://www.reddit.com/r/news/top/?sort=top&t=week'
ITEM_SELECTOR = '.thing .title > a' ITEM_SELECTOR = '.thing .title > a'
SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY
TAGS = [story_tags.YEAR_2016]
class RedditMobileStory(_ArticleBrowsingStory): class RedditMobileStory(_ArticleBrowsingStory):
...@@ -208,6 +216,7 @@ class RedditMobileStory(_ArticleBrowsingStory): ...@@ -208,6 +216,7 @@ class RedditMobileStory(_ArticleBrowsingStory):
IS_SINGLE_PAGE_APP = True IS_SINGLE_PAGE_APP = True
ITEM_SELECTOR = '.PostHeader__post-title-line' ITEM_SELECTOR = '.PostHeader__post-title-line'
SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
TAGS = [story_tags.YEAR_2016]
class TwitterMobileStory(_ArticleBrowsingStory): class TwitterMobileStory(_ArticleBrowsingStory):
...@@ -216,6 +225,7 @@ class TwitterMobileStory(_ArticleBrowsingStory): ...@@ -216,6 +225,7 @@ class TwitterMobileStory(_ArticleBrowsingStory):
ITEM_SELECTOR = '.Tweet-text' ITEM_SELECTOR = '.Tweet-text'
CONTAINER_SELECTOR = '.NavigationSheet' CONTAINER_SELECTOR = '.NavigationSheet'
SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
TAGS = [story_tags.YEAR_2016]
class TwitterDesktopStory(_ArticleBrowsingStory): class TwitterDesktopStory(_ArticleBrowsingStory):
...@@ -224,6 +234,7 @@ class TwitterDesktopStory(_ArticleBrowsingStory): ...@@ -224,6 +234,7 @@ class TwitterDesktopStory(_ArticleBrowsingStory):
IS_SINGLE_PAGE_APP = True IS_SINGLE_PAGE_APP = True
ITEM_SELECTOR = '.tweet-text' ITEM_SELECTOR = '.tweet-text'
SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY
TAGS = [story_tags.YEAR_2016]
class WashingtonPostMobileStory(_ArticleBrowsingStory): class WashingtonPostMobileStory(_ArticleBrowsingStory):
...@@ -234,6 +245,7 @@ class WashingtonPostMobileStory(_ArticleBrowsingStory): ...@@ -234,6 +245,7 @@ class WashingtonPostMobileStory(_ArticleBrowsingStory):
ITEM_SELECTOR = '.hed > a' ITEM_SELECTOR = '.hed > a'
SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
_CLOSE_BUTTON_SELECTOR = '.close' _CLOSE_BUTTON_SELECTOR = '.close'
TAGS = [story_tags.YEAR_2016]
def _DidLoadDocument(self, action_runner): def _DidLoadDocument(self, action_runner):
# Close the popup window. On Nexus 9 (and probably other tables) the popup # Close the popup window. On Nexus 9 (and probably other tables) the popup
...@@ -272,6 +284,7 @@ class GoogleDesktopStory(_ArticleBrowsingStory): ...@@ -272,6 +284,7 @@ class GoogleDesktopStory(_ArticleBrowsingStory):
_SEARCH_BOX_SELECTOR = 'input[aria-label="Search"]' _SEARCH_BOX_SELECTOR = 'input[aria-label="Search"]'
_SEARCH_PAGE_2_SELECTOR = 'a[aria-label="Page 2"]' _SEARCH_PAGE_2_SELECTOR = 'a[aria-label="Page 2"]'
SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY
TAGS = [story_tags.YEAR_2016]
def _DidLoadDocument(self, action_runner): def _DidLoadDocument(self, action_runner):
# Click on flower Wikipedia link. # Click on flower Wikipedia link.
...@@ -322,7 +335,7 @@ class GoogleIndiaDesktopStory(_ArticleBrowsingStory): ...@@ -322,7 +335,7 @@ class GoogleIndiaDesktopStory(_ArticleBrowsingStory):
_SEARCH_BUTTON_SELECTOR = 'button[aria-label="Google Search"]' _SEARCH_BUTTON_SELECTOR = 'button[aria-label="Google Search"]'
_SEARCH_PAGE_2_SELECTOR = 'a[aria-label="Page 2"]' _SEARCH_PAGE_2_SELECTOR = 'a[aria-label="Page 2"]'
SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY
TAGS = [story_tags.INTERNATIONAL] TAGS = [story_tags.INTERNATIONAL, story_tags.YEAR_2016]
def _DidLoadDocument(self, action_runner): def _DidLoadDocument(self, action_runner):
action_runner.Wait(2) action_runner.Wait(2)
...@@ -390,7 +403,7 @@ class ImgurMobileStory(_MediaBrowsingStory): ...@@ -390,7 +403,7 @@ class ImgurMobileStory(_MediaBrowsingStory):
ITEM_SELECTOR = '.Navbar-customAction' ITEM_SELECTOR = '.Navbar-customAction'
SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
IS_SINGLE_PAGE_APP = True IS_SINGLE_PAGE_APP = True
TAGS = [story_tags.EMERGING_MARKET] TAGS = [story_tags.EMERGING_MARKET, story_tags.YEAR_2016]
class ImgurDesktopStory(_MediaBrowsingStory): class ImgurDesktopStory(_MediaBrowsingStory):
...@@ -399,6 +412,7 @@ class ImgurDesktopStory(_MediaBrowsingStory): ...@@ -399,6 +412,7 @@ class ImgurDesktopStory(_MediaBrowsingStory):
ITEM_SELECTOR = '.navNext' ITEM_SELECTOR = '.navNext'
SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY
IS_SINGLE_PAGE_APP = True IS_SINGLE_PAGE_APP = True
TAGS = [story_tags.YEAR_2016]
class YouTubeMobileStory(_MediaBrowsingStory): class YouTubeMobileStory(_MediaBrowsingStory):
...@@ -412,7 +426,7 @@ class YouTubeMobileStory(_MediaBrowsingStory): ...@@ -412,7 +426,7 @@ class YouTubeMobileStory(_MediaBrowsingStory):
IS_SINGLE_PAGE_APP = True IS_SINGLE_PAGE_APP = True
ITEM_SELECTOR_INDEX = 3 ITEM_SELECTOR_INDEX = 3
TAGS = [story_tags.JAVASCRIPT_HEAVY, story_tags.EMERGING_MARKET, TAGS = [story_tags.JAVASCRIPT_HEAVY, story_tags.EMERGING_MARKET,
story_tags.HEALTH_CHECK] story_tags.HEALTH_CHECK, story_tags.YEAR_2016]
class YouTubeDesktopStory(_MediaBrowsingStory): class YouTubeDesktopStory(_MediaBrowsingStory):
...@@ -429,7 +443,7 @@ class YouTubeDesktopStory(_MediaBrowsingStory): ...@@ -429,7 +443,7 @@ class YouTubeDesktopStory(_MediaBrowsingStory):
ITEMS_TO_VISIT = 8 ITEMS_TO_VISIT = 8
ITEM_SELECTOR_INDEX = 3 ITEM_SELECTOR_INDEX = 3
PLATFORM_SPECIFIC = True PLATFORM_SPECIFIC = True
TAGS = [story_tags.JAVASCRIPT_HEAVY] TAGS = [story_tags.JAVASCRIPT_HEAVY, story_tags.YEAR_2016]
class FacebookPhotosMobileStory(_MediaBrowsingStory): class FacebookPhotosMobileStory(_MediaBrowsingStory):
...@@ -443,7 +457,7 @@ class FacebookPhotosMobileStory(_MediaBrowsingStory): ...@@ -443,7 +457,7 @@ class FacebookPhotosMobileStory(_MediaBrowsingStory):
SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
IS_SINGLE_PAGE_APP = True IS_SINGLE_PAGE_APP = True
ITEM_SELECTOR_INDEX = 0 ITEM_SELECTOR_INDEX = 0
TAGS = [story_tags.EMERGING_MARKET] TAGS = [story_tags.EMERGING_MARKET, story_tags.YEAR_2016]
class FacebookPhotosDesktopStory(_MediaBrowsingStory): class FacebookPhotosDesktopStory(_MediaBrowsingStory):
...@@ -458,6 +472,7 @@ class FacebookPhotosDesktopStory(_MediaBrowsingStory): ...@@ -458,6 +472,7 @@ class FacebookPhotosDesktopStory(_MediaBrowsingStory):
# theater viewer. # theater viewer.
SUPPORTED_PLATFORMS = platforms.NO_PLATFORMS SUPPORTED_PLATFORMS = platforms.NO_PLATFORMS
IS_SINGLE_PAGE_APP = True IS_SINGLE_PAGE_APP = True
TAGS = [story_tags.YEAR_2016]
class TumblrDesktopStory(_MediaBrowsingStory): class TumblrDesktopStory(_MediaBrowsingStory):
...@@ -468,6 +483,7 @@ class TumblrDesktopStory(_MediaBrowsingStory): ...@@ -468,6 +483,7 @@ class TumblrDesktopStory(_MediaBrowsingStory):
ITEMS_TO_VISIT = 8 ITEMS_TO_VISIT = 8
INCREMENT_INDEX_AFTER_EACH_ITEM = True INCREMENT_INDEX_AFTER_EACH_ITEM = True
SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY
TAGS = [story_tags.YEAR_2016]
def _ViewMediaItem(self, action_runner, index): def _ViewMediaItem(self, action_runner, index):
super(TumblrDesktopStory, self)._ViewMediaItem(action_runner, index) super(TumblrDesktopStory, self)._ViewMediaItem(action_runner, index)
...@@ -483,6 +499,7 @@ class PinterestDesktopStory(_MediaBrowsingStory): ...@@ -483,6 +499,7 @@ class PinterestDesktopStory(_MediaBrowsingStory):
ITEMS_TO_VISIT = 8 ITEMS_TO_VISIT = 8
INCREMENT_INDEX_AFTER_EACH_ITEM = True INCREMENT_INDEX_AFTER_EACH_ITEM = True
SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY
TAGS = [story_tags.YEAR_2016]
def _Login(self, action_runner): def _Login(self, action_runner):
pinterest_login.LoginDesktopAccount(action_runner, 'googletest') pinterest_login.LoginDesktopAccount(action_runner, 'googletest')
...@@ -521,7 +538,7 @@ class BrowseFlipKartMobileStory(_ArticleBrowsingStory): ...@@ -521,7 +538,7 @@ class BrowseFlipKartMobileStory(_ArticleBrowsingStory):
NAME = 'browse:shopping:flipkart' NAME = 'browse:shopping:flipkart'
URL = 'https://flipkart.com/search?q=Sunglasses' URL = 'https://flipkart.com/search?q=Sunglasses'
SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
TAGS = [story_tags.EMERGING_MARKET] TAGS = [story_tags.EMERGING_MARKET, story_tags.YEAR_2016]
ITEM_SELECTOR = '[style="background-image: none;"]' ITEM_SELECTOR = '[style="background-image: none;"]'
BACK_SELECTOR = '._3NH1qf' BACK_SELECTOR = '._3NH1qf'
...@@ -540,7 +557,7 @@ class BrowseAmazonMobileStory(_ArticleBrowsingStory): ...@@ -540,7 +557,7 @@ class BrowseAmazonMobileStory(_ArticleBrowsingStory):
NAME = 'browse:shopping:amazon' NAME = 'browse:shopping:amazon'
URL = 'https://www.amazon.co.in/s/?field-keywords=Mobile' URL = 'https://www.amazon.co.in/s/?field-keywords=Mobile'
SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
TAGS = [story_tags.EMERGING_MARKET] TAGS = [story_tags.EMERGING_MARKET, story_tags.YEAR_2016]
ITEM_SELECTOR = '.aw-search-results' ITEM_SELECTOR = '.aw-search-results'
ITEMS_TO_VISIT = 4 ITEMS_TO_VISIT = 4
...@@ -550,7 +567,7 @@ class BrowseLazadaMobileStory(_ArticleBrowsingStory): ...@@ -550,7 +567,7 @@ class BrowseLazadaMobileStory(_ArticleBrowsingStory):
NAME = 'browse:shopping:lazada' NAME = 'browse:shopping:lazada'
URL = 'https://www.lazada.co.id/catalog/?q=Wrist+watch' URL = 'https://www.lazada.co.id/catalog/?q=Wrist+watch'
SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
TAGS = [story_tags.EMERGING_MARKET] TAGS = [story_tags.EMERGING_MARKET, story_tags.YEAR_2016]
ITEM_SELECTOR = '.merchandise__link' ITEM_SELECTOR = '.merchandise__link'
ITEMS_TO_VISIT = 1 ITEMS_TO_VISIT = 1
...@@ -560,7 +577,8 @@ class BrowseAvitoMobileStory(_ArticleBrowsingStory): ...@@ -560,7 +577,8 @@ class BrowseAvitoMobileStory(_ArticleBrowsingStory):
NAME = 'browse:shopping:avito' NAME = 'browse:shopping:avito'
URL = 'https://www.avito.ru/rossiya' URL = 'https://www.avito.ru/rossiya'
SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
TAGS = [story_tags.EMERGING_MARKET, story_tags.HEALTH_CHECK] TAGS = [story_tags.EMERGING_MARKET, story_tags.HEALTH_CHECK,
story_tags.YEAR_2016]
ITEM_SELECTOR = '.item-link' ITEM_SELECTOR = '.item-link'
ITEMS_TO_VISIT = 4 ITEMS_TO_VISIT = 4
...@@ -570,7 +588,7 @@ class BrowseTOIMobileStory(_ArticleBrowsingStory): ...@@ -570,7 +588,7 @@ class BrowseTOIMobileStory(_ArticleBrowsingStory):
NAME = 'browse:news:toi' NAME = 'browse:news:toi'
URL = 'http://m.timesofindia.com' URL = 'http://m.timesofindia.com'
SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
TAGS = [story_tags.EMERGING_MARKET] TAGS = [story_tags.EMERGING_MARKET, story_tags.YEAR_2016]
ITEMS_TO_VISIT = 4 ITEMS_TO_VISIT = 4
ITEM_SELECTOR = '.dummy-img' ITEM_SELECTOR = '.dummy-img'
...@@ -580,7 +598,7 @@ class BrowseGloboMobileStory(_ArticleBrowsingStory): ...@@ -580,7 +598,7 @@ class BrowseGloboMobileStory(_ArticleBrowsingStory):
NAME = 'browse:news:globo' NAME = 'browse:news:globo'
URL = 'http://www.globo.com' URL = 'http://www.globo.com'
SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
TAGS = [story_tags.EMERGING_MARKET] TAGS = [story_tags.EMERGING_MARKET, story_tags.YEAR_2016]
ITEMS_TO_VISIT = 3 # 4 links causes renderer OOM crbug.com/714650. ITEMS_TO_VISIT = 3 # 4 links causes renderer OOM crbug.com/714650.
ITEM_SELECTOR = '.hui-premium__title' ITEM_SELECTOR = '.hui-premium__title'
...@@ -591,7 +609,7 @@ class BrowseCricBuzzMobileStory(_ArticleBrowsingStory): ...@@ -591,7 +609,7 @@ class BrowseCricBuzzMobileStory(_ArticleBrowsingStory):
NAME = 'browse:news:cricbuzz' NAME = 'browse:news:cricbuzz'
URL = 'http://m.cricbuzz.com' URL = 'http://m.cricbuzz.com'
SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
TAGS = [story_tags.EMERGING_MARKET] TAGS = [story_tags.EMERGING_MARKET, story_tags.YEAR_2016]
ITEMS_TO_VISIT = 3 ITEMS_TO_VISIT = 3
ITEM_SELECTOR = '.list-content' ITEM_SELECTOR = '.list-content'
...@@ -612,7 +630,7 @@ class GoogleMapsMobileStory(system_health_story.SystemHealthStory): ...@@ -612,7 +630,7 @@ class GoogleMapsMobileStory(system_health_story.SystemHealthStory):
NAME = 'browse:tools:maps' NAME = 'browse:tools:maps'
URL = 'https://maps.google.com/' URL = 'https://maps.google.com/'
SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
TAGS = [story_tags.EMERGING_MARKET] TAGS = [story_tags.EMERGING_MARKET, story_tags.YEAR_2016]
_MAPS_SEARCH_BOX_SELECTOR = '.ml-searchbox-placeholder' _MAPS_SEARCH_BOX_SELECTOR = '.ml-searchbox-placeholder'
_RESTAURANTS_LOADED = '.ml-panes-categorical-list-results' _RESTAURANTS_LOADED = '.ml-panes-categorical-list-results'
...@@ -696,7 +714,8 @@ class GoogleMapsStory(_BrowsingStory): ...@@ -696,7 +714,8 @@ class GoogleMapsStory(_BrowsingStory):
!= null) != null)
''' '''
SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY
TAGS = [story_tags.JAVASCRIPT_HEAVY, story_tags.WEBGL] TAGS = [story_tags.JAVASCRIPT_HEAVY, story_tags.WEBGL,
story_tags.YEAR_2016]
def _DidLoadDocument(self, action_runner): def _DidLoadDocument(self, action_runner):
# Click on the search box. # Click on the search box.
...@@ -784,7 +803,8 @@ class GoogleEarthStory(_BrowsingStory): ...@@ -784,7 +803,8 @@ class GoogleEarthStory(_BrowsingStory):
_EARTH_BUTTON_SELECTOR = '[aria-labelledby="widget-minimap-caption"]' _EARTH_BUTTON_SELECTOR = '[aria-labelledby="widget-minimap-caption"]'
_EARTH_ZOOM_IN_SELECTOR = '[aria-label="Zoom in"]' _EARTH_ZOOM_IN_SELECTOR = '[aria-label="Zoom in"]'
SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY
TAGS = [story_tags.JAVASCRIPT_HEAVY, story_tags.WEBGL] TAGS = [story_tags.JAVASCRIPT_HEAVY, story_tags.WEBGL,
story_tags.YEAR_2016]
def _DidLoadDocument(self, action_runner): def _DidLoadDocument(self, action_runner):
# Zommin three times. # Zommin three times.
...@@ -877,7 +897,7 @@ class DiscourseDesktopStory(_InfiniteScrollStory): ...@@ -877,7 +897,7 @@ class DiscourseDesktopStory(_InfiniteScrollStory):
NAME = 'browse:tech:discourse_infinite_scroll' NAME = 'browse:tech:discourse_infinite_scroll'
URL = ('https://meta.discourse.org/t/the-official-discourse-tags-plugin-discourse-tagging/26482') URL = ('https://meta.discourse.org/t/the-official-discourse-tags-plugin-discourse-tagging/26482')
SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY
TAGS = [story_tags.INFINITE_SCROLL] TAGS = [story_tags.INFINITE_SCROLL, story_tags.YEAR_2016]
class DiscourseMobileStory(_InfiniteScrollStory): class DiscourseMobileStory(_InfiniteScrollStory):
...@@ -885,20 +905,21 @@ class DiscourseMobileStory(_InfiniteScrollStory): ...@@ -885,20 +905,21 @@ class DiscourseMobileStory(_InfiniteScrollStory):
URL = ('https://meta.discourse.org/t/the-official-discourse-tags-plugin-discourse-tagging/26482') URL = ('https://meta.discourse.org/t/the-official-discourse-tags-plugin-discourse-tagging/26482')
SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
SCROLL_DISTANCE = 15000 SCROLL_DISTANCE = 15000
TAGS = [story_tags.INFINITE_SCROLL] TAGS = [story_tags.INFINITE_SCROLL, story_tags.YEAR_2016]
class FacebookScrollDesktopStory(_InfiniteScrollStory): class FacebookScrollDesktopStory(_InfiniteScrollStory):
NAME = 'browse:social:facebook_infinite_scroll' NAME = 'browse:social:facebook_infinite_scroll'
URL = 'https://www.facebook.com/shakira' URL = 'https://www.facebook.com/shakira'
SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY
TAGS = [story_tags.INFINITE_SCROLL] TAGS = [story_tags.INFINITE_SCROLL, story_tags.YEAR_2016]
class FacebookScrollMobileStory(_InfiniteScrollStory): class FacebookScrollMobileStory(_InfiniteScrollStory):
NAME = 'browse:social:facebook_infinite_scroll' NAME = 'browse:social:facebook_infinite_scroll'
URL = 'https://m.facebook.com/shakira' URL = 'https://m.facebook.com/shakira'
SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
TAGS = [story_tags.YEAR_2016]
def _Login(self, action_runner): def _Login(self, action_runner):
facebook_login.LoginWithMobileSite(action_runner, 'facebook3') facebook_login.LoginWithMobileSite(action_runner, 'facebook3')
...@@ -908,7 +929,7 @@ class FlickrDesktopStory(_InfiniteScrollStory): ...@@ -908,7 +929,7 @@ class FlickrDesktopStory(_InfiniteScrollStory):
NAME = 'browse:media:flickr_infinite_scroll' NAME = 'browse:media:flickr_infinite_scroll'
URL = 'https://www.flickr.com/explore' URL = 'https://www.flickr.com/explore'
SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY
TAGS = [story_tags.INFINITE_SCROLL] TAGS = [story_tags.INFINITE_SCROLL, story_tags.YEAR_2016]
class FlickrMobileStory(_InfiniteScrollStory): class FlickrMobileStory(_InfiniteScrollStory):
...@@ -916,24 +937,25 @@ class FlickrMobileStory(_InfiniteScrollStory): ...@@ -916,24 +937,25 @@ class FlickrMobileStory(_InfiniteScrollStory):
URL = 'https://www.flickr.com/explore' URL = 'https://www.flickr.com/explore'
SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
SCROLL_DISTANCE = 10000 SCROLL_DISTANCE = 10000
TAGS = [story_tags.INFINITE_SCROLL] TAGS = [story_tags.INFINITE_SCROLL, story_tags.YEAR_2016]
class PinterestMobileStory(_InfiniteScrollStory): class PinterestMobileStory(_InfiniteScrollStory):
NAME = 'browse:social:pinterest_infinite_scroll' NAME = 'browse:social:pinterest_infinite_scroll'
URL = 'https://www.pinterest.com/all' URL = 'https://www.pinterest.com/all'
SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
TAGS = [story_tags.INFINITE_SCROLL] TAGS = [story_tags.INFINITE_SCROLL, story_tags.YEAR_2016]
class TumblrStory(_InfiniteScrollStory): class TumblrStory(_InfiniteScrollStory):
NAME = 'browse:social:tumblr_infinite_scroll' NAME = 'browse:social:tumblr_infinite_scroll'
URL = 'http://techcrunch.tumblr.com/' # This page doesn't support HTTPS. URL = 'http://techcrunch.tumblr.com/' # This page doesn't support HTTPS.
TAGS = [story_tags.INFINITE_SCROLL, story_tags.JAVASCRIPT_HEAVY] TAGS = [story_tags.INFINITE_SCROLL, story_tags.JAVASCRIPT_HEAVY,
story_tags.YEAR_2016]
class TwitterScrollDesktopStory(_InfiniteScrollStory): class TwitterScrollDesktopStory(_InfiniteScrollStory):
NAME = 'browse:social:twitter_infinite_scroll' NAME = 'browse:social:twitter_infinite_scroll'
URL = 'https://twitter.com/taylorswift13' URL = 'https://twitter.com/taylorswift13'
SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY
TAGS = [story_tags.INFINITE_SCROLL] TAGS = [story_tags.INFINITE_SCROLL, story_tags.YEAR_2016]
...@@ -13,7 +13,7 @@ class BlankAboutBlankStory(system_health_story.SystemHealthStory): ...@@ -13,7 +13,7 @@ class BlankAboutBlankStory(system_health_story.SystemHealthStory):
"""Story that loads the about:blank page.""" """Story that loads the about:blank page."""
NAME = 'load:chrome:blank' NAME = 'load:chrome:blank'
URL = 'about:blank' URL = 'about:blank'
TAGS = [story_tags.HEALTH_CHECK] TAGS = [story_tags.HEALTH_CHECK, story_tags.YEAR_2016]
def _DidLoadDocument(self, action_runner): def _DidLoadDocument(self, action_runner):
# Request a RAF and wait for it to be processed to ensure that the metric # Request a RAF and wait for it to be processed to ensure that the metric
...@@ -38,7 +38,7 @@ class SearchOmniboxStory(system_health_story.SystemHealthStory): ...@@ -38,7 +38,7 @@ class SearchOmniboxStory(system_health_story.SystemHealthStory):
NAME = 'browse:chrome:omnibox' NAME = 'browse:chrome:omnibox'
URL = 'https://www.google.co.in' URL = 'https://www.google.co.in'
SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
TAGS = [story_tags.EMERGING_MARKET] TAGS = [story_tags.EMERGING_MARKET, story_tags.YEAR_2016]
# WebView has no omnibox, so not supported. # WebView has no omnibox, so not supported.
WEBVIEW_NOT_SUPPORTED = True WEBVIEW_NOT_SUPPORTED = True
...@@ -74,7 +74,7 @@ class MobileNewTabPageStory(system_health_story.SystemHealthStory): ...@@ -74,7 +74,7 @@ class MobileNewTabPageStory(system_health_story.SystemHealthStory):
'how to tie a tie'] 'how to tie a tie']
SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
TAGS = [story_tags.EMERGING_MARKET] TAGS = [story_tags.EMERGING_MARKET, story_tags.YEAR_2016]
# WebView has no tabs, so this story is not supported there. # WebView has no tabs, so this story is not supported there.
WEBVIEW_NOT_SUPPORTED = True WEBVIEW_NOT_SUPPORTED = True
......
...@@ -28,22 +28,26 @@ class _LoadingStory(system_health_story.SystemHealthStory): ...@@ -28,22 +28,26 @@ class _LoadingStory(system_health_story.SystemHealthStory):
class LoadGoogleStory(_LoadingStory): class LoadGoogleStory(_LoadingStory):
NAME = 'load:search:google' NAME = 'load:search:google'
URL = 'https://www.google.co.uk/' URL = 'https://www.google.co.uk/'
TAGS = [story_tags.YEAR_2016]
class LoadBaiduStory(_LoadingStory): class LoadBaiduStory(_LoadingStory):
NAME = 'load:search:baidu' NAME = 'load:search:baidu'
URL = 'https://www.baidu.com/s?word=google' URL = 'https://www.baidu.com/s?word=google'
TAGS = [story_tags.INTERNATIONAL, story_tags.HEALTH_CHECK] TAGS = [story_tags.INTERNATIONAL, story_tags.HEALTH_CHECK,
story_tags.YEAR_2016]
class LoadYahooStory(_LoadingStory): class LoadYahooStory(_LoadingStory):
NAME = 'load:search:yahoo' NAME = 'load:search:yahoo'
URL = 'https://search.yahoo.com/search;_ylt=?p=google' URL = 'https://search.yahoo.com/search;_ylt=?p=google'
TAGS = [story_tags.YEAR_2016]
class LoadAmazonDesktopStory(_LoadingStory): class LoadAmazonDesktopStory(_LoadingStory):
NAME = 'load:search:amazon' NAME = 'load:search:amazon'
URL = 'https://www.amazon.com/s/?field-keywords=nexus' URL = 'https://www.amazon.com/s/?field-keywords=nexus'
TAGS = [story_tags.YEAR_2016]
SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY
...@@ -51,7 +55,7 @@ class LoadTaobaoDesktopStory(_LoadingStory): ...@@ -51,7 +55,7 @@ class LoadTaobaoDesktopStory(_LoadingStory):
NAME = 'load:search:taobao' NAME = 'load:search:taobao'
URL = 'https://world.taobao.com/' URL = 'https://world.taobao.com/'
SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY
TAGS = [story_tags.INTERNATIONAL] TAGS = [story_tags.INTERNATIONAL, story_tags.YEAR_2016]
class LoadTaobaoMobileStory(_LoadingStory): class LoadTaobaoMobileStory(_LoadingStory):
...@@ -59,20 +63,21 @@ class LoadTaobaoMobileStory(_LoadingStory): ...@@ -59,20 +63,21 @@ class LoadTaobaoMobileStory(_LoadingStory):
# "ali_trackid" in the URL suppresses "Download app" interstitial. # "ali_trackid" in the URL suppresses "Download app" interstitial.
URL = 'http://m.intl.taobao.com/?ali_trackid' URL = 'http://m.intl.taobao.com/?ali_trackid'
SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
TAGS = [story_tags.INTERNATIONAL, story_tags.HEALTH_CHECK] TAGS = [story_tags.INTERNATIONAL, story_tags.HEALTH_CHECK,
story_tags.YEAR_2016]
class LoadYandexStory(_LoadingStory): class LoadYandexStory(_LoadingStory):
NAME = 'load:search:yandex' NAME = 'load:search:yandex'
URL = 'https://yandex.ru/touchsearch?text=science' URL = 'https://yandex.ru/touchsearch?text=science'
TAGS = [story_tags.INTERNATIONAL] TAGS = [story_tags.INTERNATIONAL, story_tags.YEAR_2016]
class LoadEbayStory(_LoadingStory): class LoadEbayStory(_LoadingStory):
NAME = 'load:search:ebay' NAME = 'load:search:ebay'
# Redirects to the "http://" version. # Redirects to the "http://" version.
URL = 'https://www.ebay.com/sch/i.html?_nkw=headphones' URL = 'https://www.ebay.com/sch/i.html?_nkw=headphones'
TAGS = [story_tags.HEALTH_CHECK] TAGS = [story_tags.HEALTH_CHECK, story_tags.YEAR_2016]
################################################################################ ################################################################################
...@@ -83,6 +88,7 @@ class LoadEbayStory(_LoadingStory): ...@@ -83,6 +88,7 @@ class LoadEbayStory(_LoadingStory):
class LoadTwitterStory(_LoadingStory): class LoadTwitterStory(_LoadingStory):
NAME = 'load:social:twitter' NAME = 'load:social:twitter'
URL = 'https://www.twitter.com/nasa' URL = 'https://www.twitter.com/nasa'
TAGS = [story_tags.YEAR_2016]
# Desktop version is already covered by # Desktop version is already covered by
# 'browse:social:twitter_infinite_scroll' # 'browse:social:twitter_infinite_scroll'
...@@ -97,19 +103,20 @@ class LoadVkStory(_LoadingStory): ...@@ -97,19 +103,20 @@ class LoadVkStory(_LoadingStory):
# indefinitely on mobile # indefinitely on mobile
# (see https://github.com/chromium/web-page-replay/issues/71). # (see https://github.com/chromium/web-page-replay/issues/71).
SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY
TAGS = [story_tags.INTERNATIONAL] TAGS = [story_tags.INTERNATIONAL, story_tags.YEAR_2016]
class LoadInstagramDesktopStory(_LoadingStory): class LoadInstagramDesktopStory(_LoadingStory):
NAME = 'load:social:instagram' NAME = 'load:social:instagram'
URL = 'https://www.instagram.com/selenagomez/' URL = 'https://www.instagram.com/selenagomez/'
TAGS = [story_tags.YEAR_2016]
SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY
class LoadPinterestStory(_LoadingStory): class LoadPinterestStory(_LoadingStory):
NAME = 'load:social:pinterest' NAME = 'load:social:pinterest'
URL = 'https://uk.pinterest.com/categories/popular/' URL = 'https://uk.pinterest.com/categories/popular/'
TAGS = [story_tags.JAVASCRIPT_HEAVY] TAGS = [story_tags.JAVASCRIPT_HEAVY, story_tags.YEAR_2016]
# Mobile story is already covered by # Mobile story is already covered by
# 'browse:social:pinterest_infinite_scroll'. # 'browse:social:pinterest_infinite_scroll'.
SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY
...@@ -124,6 +131,7 @@ class LoadBbcDesktopStory(_LoadingStory): ...@@ -124,6 +131,7 @@ class LoadBbcDesktopStory(_LoadingStory):
NAME = 'load:news:bbc' NAME = 'load:news:bbc'
# Redirects to the "http://" version. # Redirects to the "http://" version.
URL = 'https://www.bbc.co.uk/news/world-asia-china-36189636' URL = 'https://www.bbc.co.uk/news/world-asia-china-36189636'
TAGS = [story_tags.YEAR_2016]
SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY
...@@ -131,24 +139,27 @@ class LoadCnnStory(_LoadingStory): ...@@ -131,24 +139,27 @@ class LoadCnnStory(_LoadingStory):
NAME = 'load:news:cnn' NAME = 'load:news:cnn'
# Using "https://" shows "Your connection is not private". # Using "https://" shows "Your connection is not private".
URL = 'http://edition.cnn.com' URL = 'http://edition.cnn.com'
TAGS = [story_tags.JAVASCRIPT_HEAVY] TAGS = [story_tags.JAVASCRIPT_HEAVY, story_tags.YEAR_2016]
class LoadFlipboardDesktopStory(_LoadingStory): class LoadFlipboardDesktopStory(_LoadingStory):
NAME = 'load:news:flipboard' NAME = 'load:news:flipboard'
URL = 'https://flipboard.com/explore' URL = 'https://flipboard.com/explore'
TAGS = [story_tags.YEAR_2016]
SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY
class LoadHackerNewsDesktopStory(_LoadingStory): class LoadHackerNewsDesktopStory(_LoadingStory):
NAME = 'load:news:hackernews' NAME = 'load:news:hackernews'
URL = 'https://news.ycombinator.com' URL = 'https://news.ycombinator.com'
TAGS = [story_tags.YEAR_2016]
SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY
class LoadNytimesDesktopStory(_LoadingStory): class LoadNytimesDesktopStory(_LoadingStory):
NAME = 'load:news:nytimes' NAME = 'load:news:nytimes'
URL = 'http://www.nytimes.com' URL = 'http://www.nytimes.com'
TAGS = [story_tags.YEAR_2016]
SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY
...@@ -156,19 +167,20 @@ class LoadNytimesMobileStory(_LoadingStory): ...@@ -156,19 +167,20 @@ class LoadNytimesMobileStory(_LoadingStory):
NAME = 'load:news:nytimes' NAME = 'load:news:nytimes'
URL = 'http://mobile.nytimes.com' URL = 'http://mobile.nytimes.com'
SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
TAGS = [story_tags.HEALTH_CHECK] TAGS = [story_tags.HEALTH_CHECK, story_tags.YEAR_2016]
class LoadQqMobileStory(_LoadingStory): class LoadQqMobileStory(_LoadingStory):
NAME = 'load:news:qq' NAME = 'load:news:qq'
# Using "https://" hangs and shows "This site can't be reached". # Using "https://" hangs and shows "This site can't be reached".
URL = 'http://news.qq.com' URL = 'http://news.qq.com'
TAGS = [story_tags.INTERNATIONAL] TAGS = [story_tags.INTERNATIONAL, story_tags.YEAR_2016]
class LoadRedditDesktopStory(_LoadingStory): class LoadRedditDesktopStory(_LoadingStory):
NAME = 'load:news:reddit' NAME = 'load:news:reddit'
URL = 'https://www.reddit.com/r/news/top/?sort=top&t=week' URL = 'https://www.reddit.com/r/news/top/?sort=top&t=week'
TAGS = [story_tags.YEAR_2016]
SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY
...@@ -176,14 +188,14 @@ class LoadRedditMobileStory(_LoadingStory): ...@@ -176,14 +188,14 @@ class LoadRedditMobileStory(_LoadingStory):
NAME = 'load:news:reddit' NAME = 'load:news:reddit'
URL = 'https://www.reddit.com/r/news/top/?sort=top&t=week' URL = 'https://www.reddit.com/r/news/top/?sort=top&t=week'
SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
TAGS = [story_tags.HEALTH_CHECK] TAGS = [story_tags.HEALTH_CHECK, story_tags.YEAR_2016]
class LoadWashingtonPostMobileStory(_LoadingStory): class LoadWashingtonPostMobileStory(_LoadingStory):
NAME = 'load:news:washingtonpost' NAME = 'load:news:washingtonpost'
URL = 'https://www.washingtonpost.com/pwa' URL = 'https://www.washingtonpost.com/pwa'
SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
TAGS = [story_tags.HEALTH_CHECK] TAGS = [story_tags.HEALTH_CHECK, story_tags.YEAR_2016]
_CLOSE_BUTTON_SELECTOR = '.close' _CLOSE_BUTTON_SELECTOR = '.close'
def _DidLoadDocument(self, action_runner): def _DidLoadDocument(self, action_runner):
...@@ -201,14 +213,15 @@ class LoadWashingtonPostMobileStory(_LoadingStory): ...@@ -201,14 +213,15 @@ class LoadWashingtonPostMobileStory(_LoadingStory):
class LoadWikipediaStory(_LoadingStory): class LoadWikipediaStory(_LoadingStory):
NAME = 'load:news:wikipedia' NAME = 'load:news:wikipedia'
URL = 'https://en.wikipedia.org/wiki/Science' URL = 'https://en.wikipedia.org/wiki/Science'
TAGS = [story_tags.EMERGING_MARKET] TAGS = [story_tags.EMERGING_MARKET, story_tags.YEAR_2016]
class LoadIrctcStory(_LoadingStory): class LoadIrctcStory(_LoadingStory):
NAME = 'load:news:irctc' NAME = 'load:news:irctc'
URL = 'https://www.irctc.co.in' URL = 'https://www.irctc.co.in'
SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
TAGS = [story_tags.EMERGING_MARKET, story_tags.HEALTH_CHECK] TAGS = [story_tags.EMERGING_MARKET, story_tags.HEALTH_CHECK,
story_tags.YEAR_2016]
################################################################################ ################################################################################
...@@ -221,7 +234,8 @@ class LoadYouTubeStory(_LoadingStory): ...@@ -221,7 +234,8 @@ class LoadYouTubeStory(_LoadingStory):
NAME = 'load:media:youtube' NAME = 'load:media:youtube'
URL = 'https://www.youtube.com/watch?v=QGfhS1hfTWw&autoplay=false' URL = 'https://www.youtube.com/watch?v=QGfhS1hfTWw&autoplay=false'
PLATFORM_SPECIFIC = True PLATFORM_SPECIFIC = True
TAGS = [story_tags.EMERGING_MARKET, story_tags.HEALTH_CHECK] TAGS = [story_tags.EMERGING_MARKET, story_tags.HEALTH_CHECK,
story_tags.YEAR_2016]
class LoadDailymotionStory(_LoadingStory): class LoadDailymotionStory(_LoadingStory):
...@@ -230,12 +244,13 @@ class LoadDailymotionStory(_LoadingStory): ...@@ -230,12 +244,13 @@ class LoadDailymotionStory(_LoadingStory):
NAME = 'load:media:dailymotion' NAME = 'load:media:dailymotion'
URL = ( URL = (
'https://www.dailymotion.com/video/x489k7d_street-performer-shows-off-slinky-skills_fun?autoplay=false') 'https://www.dailymotion.com/video/x489k7d_street-performer-shows-off-slinky-skills_fun?autoplay=false')
TAGS = [story_tags.YEAR_2016]
class LoadGoogleImagesStory(_LoadingStory): class LoadGoogleImagesStory(_LoadingStory):
NAME = 'load:media:google_images' NAME = 'load:media:google_images'
URL = 'https://www.google.co.uk/search?tbm=isch&q=love' URL = 'https://www.google.co.uk/search?tbm=isch&q=love'
TAGS = [story_tags.HEALTH_CHECK] TAGS = [story_tags.HEALTH_CHECK, story_tags.YEAR_2016]
class LoadSoundCloudStory(_LoadingStory): class LoadSoundCloudStory(_LoadingStory):
...@@ -243,18 +258,20 @@ class LoadSoundCloudStory(_LoadingStory): ...@@ -243,18 +258,20 @@ class LoadSoundCloudStory(_LoadingStory):
# https://github.com/chromium/web-page-replay/issues/73. # https://github.com/chromium/web-page-replay/issues/73.
NAME = 'load:media:soundcloud' NAME = 'load:media:soundcloud'
URL = 'https://soundcloud.com/lifeofdesiigner/desiigner-panda' URL = 'https://soundcloud.com/lifeofdesiigner/desiigner-panda'
TAGS = [story_tags.YEAR_2016]
class Load9GagDesktopStory(_LoadingStory): class Load9GagDesktopStory(_LoadingStory):
NAME = 'load:media:9gag' NAME = 'load:media:9gag'
URL = 'https://www.9gag.com/' URL = 'https://www.9gag.com/'
TAGS = [story_tags.YEAR_2016]
SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY
class LoadImgurStory(_LoadingStory): class LoadImgurStory(_LoadingStory):
NAME = 'load:media:imgur' NAME = 'load:media:imgur'
URL = 'http://imgur.com/gallery/5UlBN' URL = 'http://imgur.com/gallery/5UlBN'
TAGS = [story_tags.HEALTH_CHECK] TAGS = [story_tags.HEALTH_CHECK, story_tags.YEAR_2016]
class LoadFacebookPhotosMobileStory(_LoadingStory): class LoadFacebookPhotosMobileStory(_LoadingStory):
...@@ -263,7 +280,7 @@ class LoadFacebookPhotosMobileStory(_LoadingStory): ...@@ -263,7 +280,7 @@ class LoadFacebookPhotosMobileStory(_LoadingStory):
URL = ( URL = (
'https://m.facebook.com/rihanna/photos/a.207477806675.138795.10092511675/10153911739606676/?type=3&source=54&ref=page_internal') 'https://m.facebook.com/rihanna/photos/a.207477806675.138795.10092511675/10153911739606676/?type=3&source=54&ref=page_internal')
SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
TAGS = [story_tags.EMERGING_MARKET] TAGS = [story_tags.EMERGING_MARKET, story_tags.YEAR_2016]
class LoadFacebookPhotosDesktopStory(_LoadingStory): class LoadFacebookPhotosDesktopStory(_LoadingStory):
...@@ -271,6 +288,7 @@ class LoadFacebookPhotosDesktopStory(_LoadingStory): ...@@ -271,6 +288,7 @@ class LoadFacebookPhotosDesktopStory(_LoadingStory):
NAME = 'load:media:facebook_photos' NAME = 'load:media:facebook_photos'
URL = ( URL = (
'https://www.facebook.com/rihanna/photos/a.207477806675.138795.10092511675/10153911739606676/?type=3&theater') 'https://www.facebook.com/rihanna/photos/a.207477806675.138795.10092511675/10153911739606676/?type=3&theater')
TAGS = [story_tags.YEAR_2016]
# Recording currently does not work. The page gets stuck in the # Recording currently does not work. The page gets stuck in the
# theater viewer. # theater viewer.
SUPPORTED_PLATFORMS = platforms.NO_PLATFORMS SUPPORTED_PLATFORMS = platforms.NO_PLATFORMS
...@@ -286,7 +304,7 @@ class LoadDocsStory(_LoadingStory): ...@@ -286,7 +304,7 @@ class LoadDocsStory(_LoadingStory):
NAME = 'load:tools:docs' NAME = 'load:tools:docs'
URL = ( URL = (
'https://docs.google.com/document/d/1GvzDP-tTLmJ0myRhUAfTYWs3ZUFilUICg8psNHyccwQ/edit?usp=sharing') 'https://docs.google.com/document/d/1GvzDP-tTLmJ0myRhUAfTYWs3ZUFilUICg8psNHyccwQ/edit?usp=sharing')
TAGS = [story_tags.HEALTH_CHECK] TAGS = [story_tags.HEALTH_CHECK, story_tags.YEAR_2016]
class _LoadGmailBaseStory(_LoadingStory): class _LoadGmailBaseStory(_LoadingStory):
...@@ -310,6 +328,7 @@ class _LoadGmailBaseStory(_LoadingStory): ...@@ -310,6 +328,7 @@ class _LoadGmailBaseStory(_LoadingStory):
class LoadGmailDesktopStory(_LoadGmailBaseStory): class LoadGmailDesktopStory(_LoadGmailBaseStory):
TAGS = [story_tags.YEAR_2016]
SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY
def _DidLoadDocument(self, action_runner): def _DidLoadDocument(self, action_runner):
...@@ -319,6 +338,7 @@ class LoadGmailDesktopStory(_LoadGmailBaseStory): ...@@ -319,6 +338,7 @@ class LoadGmailDesktopStory(_LoadGmailBaseStory):
class LoadGmailMobileStory(_LoadGmailBaseStory): class LoadGmailMobileStory(_LoadGmailBaseStory):
TAGS = [story_tags.YEAR_2016]
SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
# TODO(crbug.com/862077): Story breaks if login is skipped during replay. # TODO(crbug.com/862077): Story breaks if login is skipped during replay.
SKIP_LOGIN = False SKIP_LOGIN = False
...@@ -334,12 +354,13 @@ class LoadStackOverflowStory(_LoadingStory): ...@@ -334,12 +354,13 @@ class LoadStackOverflowStory(_LoadingStory):
NAME = 'load:tools:stackoverflow' NAME = 'load:tools:stackoverflow'
URL = ( URL = (
'https://stackoverflow.com/questions/36827659/compiling-an-application-for-use-in-highly-radioactive-environments') 'https://stackoverflow.com/questions/36827659/compiling-an-application-for-use-in-highly-radioactive-environments')
TAGS = [story_tags.HEALTH_CHECK] TAGS = [story_tags.HEALTH_CHECK, story_tags.YEAR_2016]
class LoadDropboxStory(_LoadingStory): class LoadDropboxStory(_LoadingStory):
NAME = 'load:tools:dropbox' NAME = 'load:tools:dropbox'
URL = 'https://www.dropbox.com' URL = 'https://www.dropbox.com'
TAGS = [story_tags.YEAR_2016]
def _Login(self, action_runner): def _Login(self, action_runner):
dropbox_login.LoginAccount(action_runner, 'dropbox') dropbox_login.LoginAccount(action_runner, 'dropbox')
...@@ -348,13 +369,13 @@ class LoadDropboxStory(_LoadingStory): ...@@ -348,13 +369,13 @@ class LoadDropboxStory(_LoadingStory):
class LoadWeatherStory(_LoadingStory): class LoadWeatherStory(_LoadingStory):
NAME = 'load:tools:weather' NAME = 'load:tools:weather'
URL = 'https://weather.com/en-GB/weather/today/l/USCA0286:1:US' URL = 'https://weather.com/en-GB/weather/today/l/USCA0286:1:US'
TAGS = [story_tags.JAVASCRIPT_HEAVY] TAGS = [story_tags.JAVASCRIPT_HEAVY, story_tags.YEAR_2016]
class LoadDriveStory(_LoadingStory): class LoadDriveStory(_LoadingStory):
NAME = 'load:tools:drive' NAME = 'load:tools:drive'
URL = 'https://drive.google.com/drive/my-drive' URL = 'https://drive.google.com/drive/my-drive'
TAGS = [story_tags.JAVASCRIPT_HEAVY] TAGS = [story_tags.JAVASCRIPT_HEAVY, story_tags.YEAR_2016]
def _Login(self, action_runner): def _Login(self, action_runner):
google_login.LoginGoogleAccount(action_runner, 'googletest') google_login.LoginGoogleAccount(action_runner, 'googletest')
...@@ -370,7 +391,7 @@ class LoadBubblesStory(_LoadingStory): ...@@ -370,7 +391,7 @@ class LoadBubblesStory(_LoadingStory):
NAME = 'load:games:bubbles' NAME = 'load:games:bubbles'
URL = ( URL = (
'https://games.cdn.famobi.com/html5games/s/smarty-bubbles/v010/?fg_domain=play.famobi.com&fg_uid=d8f24956-dc91-4902-9096-a46cb1353b6f&fg_pid=4638e320-4444-4514-81c4-d80a8c662371&fg_beat=620') 'https://games.cdn.famobi.com/html5games/s/smarty-bubbles/v010/?fg_domain=play.famobi.com&fg_uid=d8f24956-dc91-4902-9096-a46cb1353b6f&fg_pid=4638e320-4444-4514-81c4-d80a8c662371&fg_beat=620')
TAGS = [story_tags.HEALTH_CHECK] TAGS = [story_tags.HEALTH_CHECK, story_tags.YEAR_2016]
def _DidLoadDocument(self, action_runner): def _DidLoadDocument(self, action_runner):
# The #logo element is removed right before the main menu is displayed. # The #logo element is removed right before the main menu is displayed.
...@@ -382,14 +403,14 @@ class LoadLazorsStory(_LoadingStory): ...@@ -382,14 +403,14 @@ class LoadLazorsStory(_LoadingStory):
NAME = 'load:games:lazors' NAME = 'load:games:lazors'
# Using "https://" hangs and shows "This site can't be reached". # Using "https://" hangs and shows "This site can't be reached".
URL = 'http://www8.games.mobi/games/html5/lazors/lazors.html' URL = 'http://www8.games.mobi/games/html5/lazors/lazors.html'
TAGS = [story_tags.HEALTH_CHECK] TAGS = [story_tags.HEALTH_CHECK, story_tags.YEAR_2016]
class LoadSpyChaseStory(_LoadingStory): class LoadSpyChaseStory(_LoadingStory):
NAME = 'load:games:spychase' NAME = 'load:games:spychase'
# Using "https://" shows "Your connection is not private". # Using "https://" shows "Your connection is not private".
URL = 'http://playstar.mobi/games/spychase/index.php' URL = 'http://playstar.mobi/games/spychase/index.php'
TAGS = [story_tags.HEALTH_CHECK] TAGS = [story_tags.HEALTH_CHECK, story_tags.YEAR_2016]
def _DidLoadDocument(self, action_runner): def _DidLoadDocument(self, action_runner):
# The background of the game canvas is set when the "Tap screen to play" # The background of the game canvas is set when the "Tap screen to play"
...@@ -402,10 +423,12 @@ class LoadMiniclipStory(_LoadingStory): ...@@ -402,10 +423,12 @@ class LoadMiniclipStory(_LoadingStory):
NAME = 'load:games:miniclip' NAME = 'load:games:miniclip'
# Using "https://" causes "404 Not Found" during WPR recording. # Using "https://" causes "404 Not Found" during WPR recording.
URL = 'http://www.miniclip.com/games/en/' URL = 'http://www.miniclip.com/games/en/'
TAGS = [story_tags.YEAR_2016]
SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY # Requires Flash. SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY # Requires Flash.
class LoadAlphabettyStory(_LoadingStory): class LoadAlphabettyStory(_LoadingStory):
NAME = 'load:games:alphabetty' NAME = 'load:games:alphabetty'
URL = 'https://king.com/play/alphabetty' URL = 'https://king.com/play/alphabetty'
TAGS = [story_tags.YEAR_2016]
SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY # Requires Flash. SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY # Requires Flash.
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
from page_sets.login_helpers import google_login from page_sets.login_helpers import google_login
from page_sets.system_health import platforms from page_sets.system_health import platforms
from page_sets.system_health import story_tags
from page_sets.system_health import system_health_story from page_sets.system_health import system_health_story
...@@ -88,15 +89,18 @@ class _LongRunningGmailDesktopBase(_LongRunningGmailBase): ...@@ -88,15 +89,18 @@ class _LongRunningGmailDesktopBase(_LongRunningGmailBase):
class LongRunningGmailMobileForegroundStory(_LongRunningGmailMobileBase): class LongRunningGmailMobileForegroundStory(_LongRunningGmailMobileBase):
NAME = 'long_running:tools:gmail-foreground' NAME = 'long_running:tools:gmail-foreground'
TAGS = [story_tags.YEAR_2016]
class LongRunningGmailDesktopForegroundStory(_LongRunningGmailDesktopBase): class LongRunningGmailDesktopForegroundStory(_LongRunningGmailDesktopBase):
NAME = 'long_running:tools:gmail-foreground' NAME = 'long_running:tools:gmail-foreground'
TAGS = [story_tags.YEAR_2016]
class LongRunningGmailMobileBackgroundStory(_LongRunningGmailMobileBase): class LongRunningGmailMobileBackgroundStory(_LongRunningGmailMobileBase):
BACKGROUND = True BACKGROUND = True
NAME = 'long_running:tools:gmail-background' NAME = 'long_running:tools:gmail-background'
TAGS = [story_tags.YEAR_2016]
# This runs a gmail story in a background tab, and tabs aren't supported # This runs a gmail story in a background tab, and tabs aren't supported
# on WebView. # on WebView.
WEBVIEW_NOT_SUPPORTED = True WEBVIEW_NOT_SUPPORTED = True
...@@ -105,3 +109,4 @@ class LongRunningGmailMobileBackgroundStory(_LongRunningGmailMobileBase): ...@@ -105,3 +109,4 @@ class LongRunningGmailMobileBackgroundStory(_LongRunningGmailMobileBase):
class LongRunningGmailDesktopBackgroundStory(_LongRunningGmailDesktopBase): class LongRunningGmailDesktopBackgroundStory(_LongRunningGmailDesktopBase):
BACKGROUND = True BACKGROUND = True
NAME = 'long_running:tools:gmail-background' NAME = 'long_running:tools:gmail-background'
TAGS = [story_tags.YEAR_2016]
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
# found in the LICENSE file. # found in the LICENSE file.
from page_sets.system_health import platforms from page_sets.system_health import platforms
from page_sets.system_health import story_tags
from page_sets.system_health import system_health_story from page_sets.system_health import system_health_story
from page_sets.login_helpers import google_login from page_sets.login_helpers import google_login
...@@ -56,6 +57,7 @@ class GooglePlayMusicDesktopStory(_MediaStory): ...@@ -56,6 +57,7 @@ class GooglePlayMusicDesktopStory(_MediaStory):
"""Browse the songs list in music.google.com, then play a song.""" """Browse the songs list in music.google.com, then play a song."""
NAME = 'play:media:google_play_music' NAME = 'play:media:google_play_music'
URL = 'https://music.google.com' URL = 'https://music.google.com'
TAGS = [story_tags.YEAR_2016]
PLAY_SELECTOR = '.x-scope.paper-fab-0' PLAY_SELECTOR = '.x-scope.paper-fab-0'
STOP_SELECTOR = '.style-scope.sj-play-button' STOP_SELECTOR = '.style-scope.sj-play-button'
...@@ -80,6 +82,7 @@ class SoundCloudDesktopStory(_MediaStory): ...@@ -80,6 +82,7 @@ class SoundCloudDesktopStory(_MediaStory):
"""Load soundcloud.com, search for "Smooth Jazz", then play a song.""" """Load soundcloud.com, search for "Smooth Jazz", then play a song."""
NAME = 'play:media:soundcloud' NAME = 'play:media:soundcloud'
URL = 'https://soundcloud.com' URL = 'https://soundcloud.com'
TAGS = [story_tags.YEAR_2016]
PLAY_SELECTOR = '.sc-button-play.playButton.sc-button.sc-button-xlarge' PLAY_SELECTOR = '.sc-button-play.playButton.sc-button.sc-button-xlarge'
STOP_SELECTOR = '.playControl.playControls__icon.sc-ir.playing' STOP_SELECTOR = '.playControl.playControls__icon.sc-ir.playing'
......
...@@ -46,7 +46,7 @@ class MultiTabStory(system_health_story.SystemHealthStory): ...@@ -46,7 +46,7 @@ class MultiTabStory(system_health_story.SystemHealthStory):
class MultiTabTypical24Story(MultiTabStory): class MultiTabTypical24Story(MultiTabStory):
"""Load 24 different web sites in 24 tabs, then cycle through each tab.""" """Load 24 different web sites in 24 tabs, then cycle through each tab."""
NAME = 'multitab:misc:typical24' NAME = 'multitab:misc:typical24'
TAGS = [story_tags.TABS_SWITCHING] TAGS = [story_tags.TABS_SWITCHING, story_tags.YEAR_2016]
URL_LIST = [ URL_LIST = [
# Why: Alexa games #48 # Why: Alexa games #48
'http://www.nick.com/games', 'http://www.nick.com/games',
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
# found in the LICENSE file. # found in the LICENSE file.
import collections import collections
import re
Tag = collections.namedtuple('Tag', ['name', 'description']) Tag = collections.namedtuple('Tag', ['name', 'description'])
...@@ -54,18 +55,36 @@ WEBGL = Tag( ...@@ -54,18 +55,36 @@ WEBGL = Tag(
WEB_STORAGE = Tag( WEB_STORAGE = Tag(
'web_storage', 'Story has sites with heavy uses of Web storage.') 'web_storage', 'Story has sites with heavy uses of Web storage.')
# Tags by year.
YEAR_2016 = Tag(
'2016', 'Story was created or updated in 2016.')
YEAR_2017 = Tag(
'2017', 'Story was created or updated in 2017.')
YEAR_2018 = Tag(
'2018', 'Story was created or updated in 2018.')
YEAR_2019 = Tag(
'2019', 'Story was created or updated in 2019.')
def _ExtractAllTags(): def _ExtractAllTags():
all_tag_names = set() all_tag_names = set()
all_tags = [] all_tags = set()
# Collect all the tags defined in this module. Also assert that there is no # Collect all the tags defined in this module. Also assert that there is no
# duplicate tag names. # duplicate tag names.
for obj in globals().values(): for obj in globals().values():
if isinstance(obj, Tag): if isinstance(obj, Tag):
all_tags.append(obj) all_tags.add(obj)
assert obj.name not in all_tag_names, 'Duplicate tag name: %s' % obj.name assert obj.name not in all_tag_names, 'Duplicate tag name: %s' % obj.name
all_tag_names.add(obj.name) all_tag_names.add(obj.name)
return all_tags return all_tags
def _ExtractYearTags():
year_tags = set()
pattern = re.compile('^[0-9]{4}$')
for obj in globals().values():
if isinstance(obj, Tag) and pattern.match(obj.name):
year_tags.add(obj)
return year_tags
ALL_TAGS = _ExtractAllTags() ALL_TAGS = _ExtractAllTags()
YEAR_TAGS = _ExtractYearTags()
...@@ -66,9 +66,18 @@ class SystemHealthStory(page.Page): ...@@ -66,9 +66,18 @@ class SystemHealthStory(page.Page):
extra_browser_args=None): extra_browser_args=None):
case, group, _ = self.NAME.split(':', 2) case, group, _ = self.NAME.split(':', 2)
tags = [] tags = []
found_year_tag = False
for t in self.TAGS: # pylint: disable=not-an-iterable for t in self.TAGS: # pylint: disable=not-an-iterable
assert t in story_tags.ALL_TAGS assert t in story_tags.ALL_TAGS
tags.append(t.name) tags.append(t.name)
if t in story_tags.YEAR_TAGS:
# Assert that this is the first year tag.
assert not found_year_tag, (
"%s has more than one year tag found." % self.__class__.__name__)
found_year_tag = True
# Assert that there is one year tag.
assert found_year_tag, (
"%s needs exactly one year tag." % self.__class__.__name__)
super(SystemHealthStory, self).__init__( super(SystemHealthStory, self).__init__(
shared_page_state_class=_SystemHealthSharedState, shared_page_state_class=_SystemHealthSharedState,
page_set=story_set, name=self.NAME, url=self.URL, tags=tags, page_set=story_set, name=self.NAME, url=self.URL, tags=tags,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment