4343 },
4444}
4545
46+ expected_mismatches = [
47+ "Download.createReadStream" ,
48+ "Browser.startTracing" ,
49+ "Browser.stopTracing" ,
50+ "Logger.log" ,
51+ "BrowserContext.setHTTPCredentials" , # deprecated
52+ "BrowserContext.serviceWorkers" , # CR only (and the following)
53+ "BrowserContext.backgroundPages" ,
54+ "Browser.newBrowserCDPSession" ,
55+ "Page.coverage" ,
56+ "Coverage.startCSSCoverage" ,
57+ "Coverage.stopCSSCoverage" ,
58+ "Coverage.startJSCoverage" ,
59+ "Coverage.stopJSCoverage" ,
60+ "BrowserContext.newCDPSession" ,
61+ "Logger.isEnabled" ,
62+ "BrowserServer.kill" , # not relevant for RPC clients (and the following)
63+ "BrowserType.launchServer" ,
64+ "BrowserServer.close" ,
65+ "BrowserServer.process" ,
66+ "BrowserServer.wsEndpoint" ,
67+ ]
68+
4669
4770class DocumentationProvider :
4871 def __init__ (self ) -> None :
@@ -371,6 +394,7 @@ def rewrite_param_name(self, fqname: str, method_name: str, name: str) -> str:
371394 return name
372395
373396 def print_remainder (self ) -> None :
397+ remainders = set ()
374398 for [class_name , value ] in self .api .items ():
375399 class_name = re .sub (r"Chromium(.*)" , r"\1" , class_name )
376400 class_name = re .sub (r"WebKit(.*)" , r"\1" , class_name )
@@ -379,8 +403,15 @@ def print_remainder(self) -> None:
379403 if method ["kind" ] == "event" :
380404 continue
381405 entry = f"{ class_name } .{ method_name } "
382- if entry not in self .printed_entries :
383- print (f"Method not implemented: { entry } " , file = stderr )
406+ if (
407+ entry not in self .printed_entries
408+ and entry not in expected_mismatches
409+ ):
410+ remainders .add (f"Method not implemented: { entry } " )
411+ for remainder in remainders :
412+ print (remainder , file = stderr )
413+ if len (remainders ) > 0 :
414+ exit (1 )
384415
385416
386417if __name__ == "__main__" :
0 commit comments