{
  "pages": {
    "amazon_product": [
      {
        "action": "get"
        "url": "about:blank"
        "target": "_new_tab"
      }
      {
        "action": "wait"
        "duration": "1s"
      }
      {
        "action": "probe"
        "probe": "js"
        "kwargs": {
          "js":
            '''
            const mark = performance.mark('LoadLine2/amazon_product/start');
            const navigationStart = performance.timeOrigin + mark.startTime;
            window.location.href = 'https://www.amazon.co.uk/NIVEA-Suncream-Spray-Protect-Moisture/dp/B001B0OJXM';
            return {'amazon_product_navigation_start_ts': navigationStart};
            '''
        }
      }
      {
        "action": "wait_for_condition"
        "condition":
          '''
          return performance.getEntriesByName('LoadLine2/amazon_product/interactive_raf').length > 0
              && performance.getEntriesByName('LoadLine2/amazon_product/visual_raf').length > 0
          '''
        "timeout": "10s"
      }
      {
        "action": "wait"
        "duration": "100ms"
      }
      {
        "action": "probe"
        "probe": "js"
        "kwargs": {
          "js":
            '''
            performance.mark('LoadLine2/amazon_product/finish');
            const visualEnd = performance.timeOrigin +
                performance.getEntriesByName('LoadLine2/amazon_product/visual_raf')[0].startTime;
            const interactiveEnd = performance.timeOrigin +
                performance.getEntriesByName('LoadLine2/amazon_product/interactive_raf')[0].startTime;
            return {
            'amazon_product_visual_end_ts': visualEnd,
            'amazon_product_interactive_end_ts': interactiveEnd,
            };
            '''
        }
      }
    ]
    "cnn_article": [
      {
        "action": "get"
        "url": "about:blank"
        "target": "_new_tab"
      }
      {
        "action": "wait"
        "duration": "1s"
      }
      {
        "action": "probe"
        "probe": "js"
        "kwargs": {
          "js":
            '''
            const mark = performance.mark('LoadLine2/cnn_article/start');
            const navigationStart = performance.timeOrigin + mark.startTime;
            window.location.href = 'https://edition.cnn.com/2024/04/21/china/china-spy-agency-public-profile-intl-hnk/index.html';
            return {'cnn_article_navigation_start_ts': navigationStart};
            '''
        }
      }
      {
        "action": "wait_for_condition"
        "condition":
          '''
          return performance.getEntriesByName('LoadLine2/cnn_article/interactive_raf').length > 0
              && performance.getEntriesByName('LoadLine2/cnn_article/visual_raf').length > 0
          '''
        "timeout": "10s"
      }
      {
        "action": "wait"
        "duration": "100ms"
      }
      {
        "action": "probe"
        "probe": "js"
        "kwargs": {
          "js":
            '''
            performance.mark('LoadLine2/cnn_article/finish');
            const visualEnd = performance.timeOrigin +
                performance.getEntriesByName('LoadLine2/cnn_article/visual_raf')[0].startTime;
            const interactiveEnd = performance.timeOrigin +
                performance.getEntriesByName('LoadLine2/cnn_article/interactive_raf')[0].startTime;
            return {
            'cnn_article_visual_end_ts': visualEnd,
            'cnn_article_interactive_end_ts': interactiveEnd,
            };
            '''
        }
      }
    ]
    "wikipedia_article": [
      {
        "action": "get"
        "url": "about:blank"
        "target": "_new_tab"
      }
      {
        "action": "wait"
        "duration": "1s"
      }
      {
        "action": "probe"
        "probe": "js"
        "kwargs": {
          "js":
            '''
            const mark = performance.mark('LoadLine2/wikipedia_article/start');
            const navigationStart = performance.timeOrigin + mark.startTime;
            window.location.href = 'https://en.m.wikipedia.org/wiki/Taylor_Swift';
            return {'wikipedia_article_navigation_start_ts': navigationStart};
            '''
        }
      }
      {
        "action": "wait_for_condition"
        "condition":
          '''
          return performance.getEntriesByName('LoadLine2/wikipedia_article/interactive_raf').length > 0
              && performance.getEntriesByName('LoadLine2/wikipedia_article/visual_raf').length > 0
          '''
        "timeout": "10s"
      }
      {
        "action": "wait"
        "duration": "100ms"
      }
      {
        "action": "probe"
        "probe": "js"
        "kwargs": {
          "js":
            '''
            performance.mark('LoadLine2/wikipedia_article/finish');
            const visualEnd = performance.timeOrigin +
                performance.getEntriesByName('LoadLine2/wikipedia_article/visual_raf')[0].startTime;
            const interactiveEnd = performance.timeOrigin +
                performance.getEntriesByName('LoadLine2/wikipedia_article/interactive_raf')[0].startTime;
            return {
            'wikipedia_article_visual_end_ts': visualEnd,
            'wikipedia_article_interactive_end_ts': interactiveEnd,
            };
            '''
        }
      }
    ]
    "globo_homepage": [
      {
        "action": "get"
        "url": "about:blank"
        "target": "_new_tab"
      }
      {
        "action": "wait"
        "duration": "1s"
      }
      {
        "action": "probe"
        "probe": "js"
        "kwargs": {
          "js":
            '''
            const mark = performance.mark('LoadLine2/globo_homepage/start');
            const navigationStart = performance.timeOrigin + mark.startTime;
            window.location.href = 'https://www.globo.com/';
            return {'globo_homepage_navigation_start_ts': navigationStart};
            '''
        }
      }
      {
        "action": "wait_for_condition"
        "condition":
          '''
          return performance.getEntriesByName('LoadLine2/globo_homepage/interactive_raf').length > 0
              && performance.getEntriesByName('LoadLine2/globo_homepage/visual_raf').length > 0
          '''
        "timeout": "10s"
      }
      {
        "action": "wait"
        "duration": "100ms"
      }
      {
        "action": "probe"
        "probe": "js"
        "kwargs": {
          "js":
            '''
            performance.mark('LoadLine2/globo_homepage/finish');
            const visualEnd = performance.timeOrigin +
                performance.getEntriesByName('LoadLine2/globo_homepage/visual_raf')[0].startTime;
            const interactiveEnd = performance.timeOrigin +
                performance.getEntriesByName('LoadLine2/globo_homepage/interactive_raf')[0].startTime;
            return {
            'globo_homepage_visual_end_ts': visualEnd,
            'globo_homepage_interactive_end_ts': interactiveEnd,
            };
            '''
        }
      }
    ]
    "google_search_result": [
      {
        "action": "get"
        "url": "about:blank"
        "target": "_new_tab"
      }
      {
        "action": "wait"
        "duration": "1s"
      }
      {
        "action": "probe"
        "probe": "js"
        "kwargs": {
          "js":
            '''
            const mark = performance.mark('LoadLine2/google_search_result/start');
            const navigationStart = performance.timeOrigin + mark.startTime;
            window.location.href = 'https://www.google.com/search?q=cats';
            return {'google_search_result_navigation_start_ts': navigationStart};
            '''
        }
      }
      {
        "action": "wait_for_condition"
        "condition":
          '''
          return performance.getEntriesByName('LoadLine2/google_search_result/interactive_raf').length > 0
              && performance.getEntriesByName('LoadLine2/google_search_result/visual_raf').length > 0
          '''
        "timeout": "10s"
      }
      {
        "action": "wait"
        "duration": "100ms"
      }
      {
        "action": "probe"
        "probe": "js"
        "kwargs": {
          "js":
            '''
            performance.mark('LoadLine2/google_search_result/finish');
            const visualEnd = performance.timeOrigin +
                performance.getEntriesByName('LoadLine2/google_search_result/visual_raf')[0].startTime;
            const interactiveEnd = performance.timeOrigin +
                performance.getEntriesByName('LoadLine2/google_search_result/interactive_raf')[0].startTime;
            return {
            'google_search_result_visual_end_ts': visualEnd,
            'google_search_result_interactive_end_ts': interactiveEnd,
            };
            '''
        }
      }
    ]
  }
}
