fix(alerts&reports): Alerts & Reports will use values from WEBDRIVER_WINDOW option (#13157)

* fix: thumbnails and reports will be use WEBDRIVER_WINDOW option

* changes reformatted

* config change reverted. thumbnails sizes changed to original

* typo fix

* bugfix

defining defaults in thumbnails.py caused thumbnail caches invalidated.
they moved to init.

Co-authored-by: Ibrahim Ercan <ibrahim.ercan@vlmedia.com.tr>
diff --git a/superset/reports/commands/execute.py b/superset/reports/commands/execute.py
index 774f2c8..cf226ec 100644
--- a/superset/reports/commands/execute.py
+++ b/superset/reports/commands/execute.py
@@ -156,11 +156,19 @@
         screenshot: Optional[BaseScreenshot] = None
         if self._report_schedule.chart:
             url = self._get_url(standalone="true")
-            screenshot = ChartScreenshot(url, self._report_schedule.chart.digest)
+            screenshot = ChartScreenshot(
+                url,
+                self._report_schedule.chart.digest,
+                window_size=app.config["WEBDRIVER_WINDOW"]["slice"],
+                thumb_size=app.config["WEBDRIVER_WINDOW"]["slice"],
+            )
         else:
             url = self._get_url()
             screenshot = DashboardScreenshot(
-                url, self._report_schedule.dashboard.digest
+                url,
+                self._report_schedule.dashboard.digest,
+                window_size=app.config["WEBDRIVER_WINDOW"]["dashboard"],
+                thumb_size=app.config["WEBDRIVER_WINDOW"]["dashboard"],
             )
         image_url = self._get_url(user_friendly=True)
         user = self._get_screenshot_user()
diff --git a/superset/utils/screenshots.py b/superset/utils/screenshots.py
index 2604361..73e0c8c 100644
--- a/superset/utils/screenshots.py
+++ b/superset/utils/screenshots.py
@@ -195,12 +195,30 @@
 class ChartScreenshot(BaseScreenshot):
     thumbnail_type: str = "chart"
     element: str = "chart-container"
-    window_size: WindowSize = (800, 600)
-    thumb_size: WindowSize = (800, 600)
+
+    def __init__(
+        self,
+        url: str,
+        digest: str,
+        window_size: Optional[WindowSize] = None,
+        thumb_size: Optional[WindowSize] = None,
+    ):
+        super().__init__(url, digest)
+        self.window_size = window_size or (800, 600)
+        self.thumb_size = thumb_size or (800, 600)
 
 
 class DashboardScreenshot(BaseScreenshot):
     thumbnail_type: str = "dashboard"
     element: str = "grid-container"
-    window_size: WindowSize = (1600, int(1600 * 0.75))
-    thumb_size: WindowSize = (800, int(800 * 0.75))
+
+    def __init__(
+        self,
+        url: str,
+        digest: str,
+        window_size: Optional[WindowSize] = None,
+        thumb_size: Optional[WindowSize] = None,
+    ):
+        super().__init__(url, digest)
+        self.window_size = window_size or (1600, 1200)
+        self.thumb_size = thumb_size or (800, 600)