| 513 | return await self.expose_binding(name, lambda source, *args: callback(*args)) |
| 514 | |
| 515 | async def expose_binding(self, name: str, callback: Callable) -> Disposable: |
| 516 | if name in self._bindings: |
| 517 | raise Error(f'Function "{name}" has been already registered') |
| 518 | if name in self._browser_context._bindings: |
| 519 | raise Error( |
| 520 | f'Function "{name}" has been already registered in the browser context' |
| 521 | ) |
| 522 | self._bindings[name] = callback |
| 523 | return from_channel( |
| 524 | await self._channel.send( |
| 525 | "exposeBinding", |
| 526 | None, |
| 527 | dict(name=name), |
| 528 | ) |
| 529 | ) |
| 530 | |
| 531 | async def set_extra_http_headers(self, headers: Dict[str, str]) -> None: |
| 532 | await self._channel.send( |