Bug 1454053 - re-record tp6 pages for raptor; r?igoldan draft
authorRob Wood <rwood@mozilla.com>
Mon, 23 Jul 2018 09:52:21 -0400
changeset 821508 0aa32122310da4611aeef3e00a107f31b4309bc8
parent 821495 62fd708ed9d936568e54d21b890dfd9e19703cd0
push id117116
push userrwood@mozilla.com
push dateMon, 23 Jul 2018 13:53:16 +0000
reviewersigoldan
bugs1454053
milestone63.0a1
Bug 1454053 - re-record tp6 pages for raptor; r?igoldan MozReview-Commit-ID: BWTlInDbp7s
layout/base/nsIPresShell.h
testing/raptor/raptor/manifest.py
testing/raptor/raptor/playback/mitmproxy-playback-set.manifest
testing/raptor/raptor/playback/mitmproxy-recordings-raptor-tp6.manifest
testing/raptor/raptor/playback/mitmproxy.py
testing/raptor/raptor/tests/raptor-tp6.ini
testing/raptor/test/test_playback.py
--- a/layout/base/nsIPresShell.h
+++ b/layout/base/nsIPresShell.h
@@ -499,16 +499,21 @@ public:
    */
   virtual void FrameNeedsToContinueReflow(nsIFrame *aFrame) = 0;
 
   virtual void CancelAllPendingReflows() = 0;
 
   virtual void NotifyCounterStylesAreDirty() = 0;
 
   /**
+   * Deterimine if aFrame is an ancestor of any dirty roots.
+   */
+  virtual bool FrameIsAncestorOfDirtyRoot(nsIFrame* aFrame) = 0;
+
+  /**
    * Destroy the frames for aElement, and reconstruct them asynchronously if
    * needed.
    *
    * Note that this may destroy frames for an ancestor instead.
    */
   void DestroyFramesForAndRestyle(mozilla::dom::Element* aElement);
 
   /**
--- a/testing/raptor/raptor/manifest.py
+++ b/testing/raptor/raptor/manifest.py
@@ -13,18 +13,17 @@ from utils import transform_platform
 here = os.path.abspath(os.path.dirname(__file__))
 raptor_ini = os.path.join(here, 'raptor.ini')
 tests_dir = os.path.join(here, 'tests')
 LOG = get_proxy_logger(component="raptor-manifest")
 
 required_settings = ['apps', 'type', 'page_cycles', 'test_url', 'measure',
                      'unit', 'lower_is_better', 'alert_threshold']
 
-playback_settings = ['playback_binary_manifest', 'playback_binary_zip_mac',
-                     'playback_pageset_manifest', 'playback_pageset_zip_mac',
+playback_settings = ['playback_binary_manifest', 'playback_pageset_manifest',
                      'playback_recordings', 'python3_win_manifest']
 
 
 def filter_app(tests, values):
     for test in tests:
         if values["app"] in test['apps']:
             yield test
 
rename from testing/raptor/raptor/playback/mitmproxy-playback-set.manifest
rename to testing/raptor/raptor/playback/mitmproxy-recordings-raptor-tp6.manifest
--- a/testing/raptor/raptor/playback/mitmproxy-playback-set.manifest
+++ b/testing/raptor/raptor/playback/mitmproxy-recordings-raptor-tp6.manifest
@@ -1,9 +1,9 @@
 [
     {
-        "filename": "mitmproxy-recording-set-win10.zip",
-        "size": 9189938,
-        "digest": "e904917ed6bf1cef7201284385dc603a283e8e22f992876f17edcf0f1f20db95b609f0d8c7f593b4a0a6c20957dcb6a4d502c562ed74fb6cf4bc255c2f691f32",
+        "filename": "mitmproxy-recordings-raptor-tp6.zip",
+        "size": 8767174,
+        "digest": "3343f54b6c727a2061534872888da4e3aa647e81903c675dc318c717ed0c93f6ce4e2b98c66eb4128376cf8507590531283c95f3951259607edaaae28944d9a5",
         "algorithm": "sha512",
         "unpack": true
     }
 ]
\ No newline at end of file
--- a/testing/raptor/raptor/playback/mitmproxy.py
+++ b/testing/raptor/raptor/playback/mitmproxy.py
@@ -144,17 +144,17 @@ class Mitmproxy(Playback, Python3Virtual
             LOG.info("python3 path is: %s" % self.py3_path)
         else:
             # on osx and linux we use pre-built binaries
             LOG.info("downloading mitmproxy binary")
             _manifest = os.path.join(here, self.config['playback_binary_manifest'])
             transformed_manifest = transform_platform(_manifest, self.config['platform'])
             self._tooltool_fetch(transformed_manifest)
 
-        # we use one pageset for all platforms (pageset was recorded on win10)
+        # we use one pageset for all platforms
         LOG.info("downloading mitmproxy pageset")
         _manifest = os.path.join(here, self.config['playback_pageset_manifest'])
         transformed_manifest = transform_platform(_manifest, self.config['platform'])
         self._tooltool_fetch(transformed_manifest)
         return
 
     def fetch_python3(self):
         """Mitmproxy on windows needs Python 3.x"""
--- a/testing/raptor/raptor/tests/raptor-tp6.ini
+++ b/testing/raptor/raptor/tests/raptor-tp6.ini
@@ -3,66 +3,70 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 # raptor tp6
 
 [DEFAULT]
 type =  pageload
 playback = mitmproxy
 playback_binary_manifest = mitmproxy-rel-bin-{platform}.manifest
-playback_binary_zip_mac = mitmproxy-2.0.2-{platform}.tar.gz
 python3_win_manifest = python3{x64}.manifest
-playback_pageset_manifest = mitmproxy-playback-set.manifest
-playback_pageset_zip_mac = mitmproxy-recording-set-win10.zip
+playback_pageset_manifest = mitmproxy-recordings-raptor-tp6.manifest
 page_cycles = 25
 unit = ms
 lower_is_better = true
 alert_threshold = 2.0
 
 [raptor-firefox-tp6-amazon]
 apps = firefox
 test_url = https://www.amazon.com/s/url=search-alias%3Daps&field-keywords=laptop
-playback_recordings = mitmproxy-recording-amazon.mp
-measure = fnbpaint
+playback_recordings = amazon.mp
+measure = fnbpaint, hero
+hero = hero1
 
 [raptor-firefox-tp6-facebook]
 apps = firefox
 test_url = https://www.facebook.com
-playback_recordings = mitmproxy-recording-facebook.mp
-measure = fnbpaint
+playback_recordings = facebook.mp
+measure = fnbpaint, hero
+hero = hero1
 
 [raptor-firefox-tp6-google]
 apps = firefox
 test_url = https://www.google.com/#hl=en&q=barack+obama
-playback_recordings = mitmproxy-recording-google.mp
+playback_recordings = google-search.mp
 measure = fnbpaint, hero
-hero = hero
+hero = hero1
 
 [raptor-firefox-tp6-youtube]
 apps = firefox
 test_url = https://www.youtube.com
-playback_recordings = mitmproxy-recording-youtube.mp
-measure = fnbpaint
+playback_recordings = youtube.mp
+measure = fnbpaint, hero
+hero = hero1
 
 [raptor-chrome-tp6-amazon]
 apps = chrome
 test_url = https://www.amazon.com/s/url=search-alias%3Daps&field-keywords=laptop
-playback_recordings = mitmproxy-recording-amazon.mp
-measure = fcp
+playback_recordings = amazon.mp
+measure = fcp, hero
+hero = hero1
 
 [raptor-chrome-tp6-facebook]
 apps = chrome
 test_url = https://www.facebook.com
-playback_recordings = mitmproxy-recording-facebook.mp
-measure = fcp
+playback_recordings = facebook.mp
+measure = fcp, hero
+hero = hero1
 
 [raptor-chrome-tp6-google]
 apps = chrome
 test_url = https://www.google.com/#hl=en&q=barack+obama
-playback_recordings = mitmproxy-recording-google.mp
+playback_recordings = google-search.mp
 measure = fcp, hero
-hero = hero
+hero = hero1
 
 [raptor-chrome-tp6-youtube]
 apps = chrome
 test_url = https://www.youtube.com
-playback_recordings = mitmproxy-recording-youtube.mp
-measure = fcp
+playback_recordings = youtube.mp
+measure = fcp, hero
+hero = hero1
--- a/testing/raptor/test/test_playback.py
+++ b/testing/raptor/test/test_playback.py
@@ -18,19 +18,17 @@ def test_get_playback(get_binary):
     config['platform'] = mozinfo.os
     if 'win' in config['platform']:
         # this test is not yet supported on windows
         assert True
         return
     config['obj_path'] = os.path.dirname(get_binary('firefox'))
     config['playback_tool'] = 'mitmproxy'
     config['playback_binary_manifest'] = 'mitmproxy-rel-bin-osx.manifest'
-    config['playback_binary_zip_mac'] = 'mitmproxy-2.0.2-osx.tar.gz'
     config['playback_pageset_manifest'] = 'mitmproxy-playback-set.manifest'
-    config['playback_pageset_zip_mac'] = 'mitmproxy-recording-set-win10.zip'
     config['playback_recordings'] = 'mitmproxy-recording-amazon.mp'
     config['binary'] = get_binary('firefox')
     playback = get_playback(config)
     assert isinstance(playback, Mitmproxy)
     playback.stop()
 
 
 def test_get_unsupported_playback():