Forcefully set the UI state. Args: page: Playwright page object. req_id: Request ID for logging. Returns: bool: Whether the setting was successful.
(page: AsyncPage, req_id: str = "unknown")
| 95 | |
| 96 | |
| 97 | async def _force_ui_state_settings(page: AsyncPage, req_id: str = "unknown") -> bool: |
| 98 | """ |
| 99 | Forcefully set the UI state. |
| 100 | |
| 101 | Args: |
| 102 | page: Playwright page object. |
| 103 | req_id: Request ID for logging. |
| 104 | |
| 105 | Returns: |
| 106 | bool: Whether the setting was successful. |
| 107 | """ |
| 108 | try: |
| 109 | logger.debug("[State] Forcefully setting UI state...") |
| 110 | |
| 111 | # First verify current state |
| 112 | current_state = await _verify_ui_state_settings(page, req_id) |
| 113 | |
| 114 | if not current_state["needsUpdate"]: |
| 115 | logger.debug("[State] State is already correct, no update needed") |
| 116 | return True |
| 117 | |
| 118 | # Get existing preferences or create new ones |
| 119 | prefs = current_state.get("prefs", {}) |
| 120 | |
| 121 | # Force key configurations |
| 122 | prefs["isAdvancedOpen"] = True |
| 123 | prefs["areToolsOpen"] = True |
| 124 | |
| 125 | # Save to localStorage |
| 126 | prefs_str = json.dumps(prefs) |
| 127 | await page.evaluate( |
| 128 | "(prefsStr) => localStorage.setItem('aiStudioUserPreference', prefsStr)", |
| 129 | prefs_str, |
| 130 | ) |
| 131 | |
| 132 | logger.debug("[State] Set: isAdvancedOpen=true, areToolsOpen=true") |
| 133 | |
| 134 | # Verify if setting was successful |
| 135 | verify_state = await _verify_ui_state_settings(page, req_id) |
| 136 | if not verify_state["needsUpdate"]: |
| 137 | logger.debug("[State] Setting verification successful") |
| 138 | return True |
| 139 | else: |
| 140 | logger.warning("UI state setting verification failed, may need to retry") |
| 141 | return False |
| 142 | |
| 143 | except asyncio.CancelledError: |
| 144 | raise |
| 145 | except Exception as e: |
| 146 | logger.error(f"Error forcefully setting UI state: {e}") |
| 147 | return False |
| 148 | |
| 149 | |
| 150 | async def _force_ui_state_with_retry( |