forked from mirrors/gecko-dev
		
	Bug 1867099 - Vendor libwebrtc from 5543a967cd
Upstream commit: https://webrtc.googlesource.com/src/+/5543a967cd985cf2444a36b0c1f376e83186548f Add sub-command for validating that field trials conforms to the policy Bug: webrtc:14154 Change-Id: I2c12351abaa956ca5a38ab911c8cf887b4453958 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/321184 Reviewed-by: Harald Alvestrand <hta@webrtc.org> Commit-Queue: Emil Lundmark <lndmrk@webrtc.org> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> Cr-Commit-Position: refs/heads/main@{#40818}
This commit is contained in:
		
							parent
							
								
									0ad935b60d
								
							
						
					
					
						commit
						11697999b4
					
				
					 3 changed files with 67 additions and 5 deletions
				
			
		
							
								
								
									
										3
									
								
								third_party/libwebrtc/README.moz-ff-commit
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								third_party/libwebrtc/README.moz-ff-commit
									
									
									
									
										vendored
									
									
								
							|  | @ -26169,3 +26169,6 @@ b7fca15fd4 | ||||||
| # MOZ_LIBWEBRTC_SRC=/home/mfroman/mozilla/elm/.moz-fast-forward/moz-libwebrtc MOZ_LIBWEBRTC_BRANCH=mozpatches bash dom/media/webrtc/third_party_build/fast-forward-libwebrtc.sh | # MOZ_LIBWEBRTC_SRC=/home/mfroman/mozilla/elm/.moz-fast-forward/moz-libwebrtc MOZ_LIBWEBRTC_BRANCH=mozpatches bash dom/media/webrtc/third_party_build/fast-forward-libwebrtc.sh | ||||||
| # base of lastest vendoring | # base of lastest vendoring | ||||||
| 9686a4b580 | 9686a4b580 | ||||||
|  | # MOZ_LIBWEBRTC_SRC=/home/mfroman/mozilla/elm/.moz-fast-forward/moz-libwebrtc MOZ_LIBWEBRTC_BRANCH=mozpatches bash dom/media/webrtc/third_party_build/fast-forward-libwebrtc.sh | ||||||
|  | # base of lastest vendoring | ||||||
|  | 5543a967cd | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								third_party/libwebrtc/README.mozilla
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								third_party/libwebrtc/README.mozilla
									
									
									
									
										vendored
									
									
								
							|  | @ -17470,3 +17470,5 @@ libwebrtc updated from /home/mfroman/mozilla/elm/.moz-fast-forward/moz-libwebrtc | ||||||
| libwebrtc updated from /home/mfroman/mozilla/elm/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2023-11-29T23:29:21.384089. | libwebrtc updated from /home/mfroman/mozilla/elm/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2023-11-29T23:29:21.384089. | ||||||
| # ./mach python dom/media/webrtc/third_party_build/vendor-libwebrtc.py --from-local /home/mfroman/mozilla/elm/.moz-fast-forward/moz-libwebrtc --commit mozpatches libwebrtc | # ./mach python dom/media/webrtc/third_party_build/vendor-libwebrtc.py --from-local /home/mfroman/mozilla/elm/.moz-fast-forward/moz-libwebrtc --commit mozpatches libwebrtc | ||||||
| libwebrtc updated from /home/mfroman/mozilla/elm/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2023-11-29T23:30:21.366581. | libwebrtc updated from /home/mfroman/mozilla/elm/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2023-11-29T23:30:21.366581. | ||||||
|  | # ./mach python dom/media/webrtc/third_party_build/vendor-libwebrtc.py --from-local /home/mfroman/mozilla/elm/.moz-fast-forward/moz-libwebrtc --commit mozpatches libwebrtc | ||||||
|  | libwebrtc updated from /home/mfroman/mozilla/elm/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2023-11-29T23:31:19.704569. | ||||||
|  |  | ||||||
|  | @ -11,7 +11,7 @@ | ||||||
| import datetime | import datetime | ||||||
| from datetime import date | from datetime import date | ||||||
| import sys | import sys | ||||||
| from typing import FrozenSet, Set | from typing import FrozenSet, List, Set | ||||||
| 
 | 
 | ||||||
| import argparse | import argparse | ||||||
| import dataclasses | import dataclasses | ||||||
|  | @ -32,11 +32,29 @@ class FieldTrial: | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| # As per the policy in `g3doc/field-trials.md`, all field trials should be | # As per the policy in `g3doc/field-trials.md`, all field trials should be | ||||||
| # registered in the container below. Please keep the keys sorted. | # registered in the container below. | ||||||
| REGISTERED_FIELD_TRIALS: FrozenSet[FieldTrial] = frozenset([ | ACTIVE_FIELD_TRIALS: FrozenSet[FieldTrial] = frozenset([ | ||||||
|  |     # keep-sorted start | ||||||
|     FieldTrial('', '', date(1, 1, 1)),  # TODO(bugs.webrtc.org/14154): Populate |     FieldTrial('', '', date(1, 1, 1)),  # TODO(bugs.webrtc.org/14154): Populate | ||||||
|  |     # keep-sorted end | ||||||
| ]) | ]) | ||||||
| 
 | 
 | ||||||
|  | # These field trials precedes the policy in `g3doc/field-trials.md` and are | ||||||
|  | # therefore not required to follow it. Do not add any new field trials here. | ||||||
|  | POLICY_EXEMPT_FIELD_TRIALS: FrozenSet[FieldTrial] = frozenset([ | ||||||
|  |     # keep-sorted start | ||||||
|  |     FieldTrial('', '', date(1, 1, 1)),  # TODO(bugs.webrtc.org/14154): Populate | ||||||
|  |     # keep-sorted end | ||||||
|  | ]) | ||||||
|  | 
 | ||||||
|  | REGISTERED_FIELD_TRIALS: FrozenSet[FieldTrial] = ACTIVE_FIELD_TRIALS.union( | ||||||
|  |     POLICY_EXEMPT_FIELD_TRIALS) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | def todays_date() -> date: | ||||||
|  |     now = datetime.datetime.now(datetime.timezone.utc) | ||||||
|  |     return date(now.year, now.month, now.day) | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| def registry_header( | def registry_header( | ||||||
|         field_trials: FrozenSet[FieldTrial] = REGISTERED_FIELD_TRIALS) -> str: |         field_trials: FrozenSet[FieldTrial] = REGISTERED_FIELD_TRIALS) -> str: | ||||||
|  | @ -117,13 +135,32 @@ def expired_field_trials( | ||||||
|     return {f for f in field_trials if f.end_date <= threshold} |     return {f for f in field_trials if f.end_date <= threshold} | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | def validate_field_trials( | ||||||
|  |         field_trials: FrozenSet[FieldTrial] = ACTIVE_FIELD_TRIALS | ||||||
|  | ) -> List[str]: | ||||||
|  |     """Validate that field trials conforms to the policy. | ||||||
|  | 
 | ||||||
|  |     Args: | ||||||
|  |       field_trials: Field trials to validate. | ||||||
|  | 
 | ||||||
|  |     Returns: | ||||||
|  |       A list of explanations for invalid field trials. | ||||||
|  |     """ | ||||||
|  |     invalid = [] | ||||||
|  |     for trial in field_trials: | ||||||
|  |         if not trial.key.startswith('WebRTC-'): | ||||||
|  |             invalid.append(f'{trial.key} does not start with "WebRTC-".') | ||||||
|  |         if len(trial.bug) <= 0: | ||||||
|  |             invalid.append(f'{trial.key} must have an associated bug.') | ||||||
|  |     return invalid | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| def cmd_header(args: argparse.Namespace) -> None: | def cmd_header(args: argparse.Namespace) -> None: | ||||||
|     args.output.write(registry_header()) |     args.output.write(registry_header()) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def cmd_expired(args: argparse.Namespace) -> None: | def cmd_expired(args: argparse.Namespace) -> None: | ||||||
|     now = datetime.datetime.now(datetime.timezone.utc) |     today = todays_date() | ||||||
|     today = date(now.year, now.month, now.day) |  | ||||||
|     diff = datetime.timedelta(days=args.in_days) |     diff = datetime.timedelta(days=args.in_days) | ||||||
|     expired = expired_field_trials(today + diff) |     expired = expired_field_trials(today + diff) | ||||||
| 
 | 
 | ||||||
|  | @ -138,6 +175,17 @@ def cmd_expired(args: argparse.Namespace) -> None: | ||||||
|         sys.exit(1) |         sys.exit(1) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | def cmd_validate(args: argparse.Namespace) -> None: | ||||||
|  |     del args | ||||||
|  |     invalid = validate_field_trials() | ||||||
|  | 
 | ||||||
|  |     if len(invalid) <= 0: | ||||||
|  |         return | ||||||
|  | 
 | ||||||
|  |     print('\n'.join(sorted(invalid))) | ||||||
|  |     sys.exit(1) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| def main() -> None: | def main() -> None: | ||||||
|     parser = argparse.ArgumentParser() |     parser = argparse.ArgumentParser() | ||||||
|     subcommand = parser.add_subparsers(dest='cmd') |     subcommand = parser.add_subparsers(dest='cmd') | ||||||
|  | @ -167,6 +215,15 @@ def main() -> None: | ||||||
|         help='number of days relative to today to check') |         help='number of days relative to today to check') | ||||||
|     parser_expired.set_defaults(cmd=cmd_expired) |     parser_expired.set_defaults(cmd=cmd_expired) | ||||||
| 
 | 
 | ||||||
|  |     parser_validate = subcommand.add_parser( | ||||||
|  |         'validate', | ||||||
|  |         help='validates that all field trials conforms to the policy.', | ||||||
|  |         description=''' | ||||||
|  |         Validates that all field trials conforms to the policy. Exits with a | ||||||
|  |         non-zero exit status if any field trials does not. | ||||||
|  |         ''') | ||||||
|  |     parser_validate.set_defaults(cmd=cmd_validate) | ||||||
|  | 
 | ||||||
|     args = parser.parse_args() |     args = parser.parse_args() | ||||||
| 
 | 
 | ||||||
|     if not args.cmd: |     if not args.cmd: | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Michael Froman
						Michael Froman