Autotest: Avoid dim display during test execution

Dim display is observed during the long runs. This
fix adds a method to disable the dim display.

BUG=chromium:1032506
TEST=Ran locally on DUT

Change-Id: I8d33b9efea95ec30a9a2285b62d3ce8c6a8dd3c3
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/autotest/+/1960049
Tested-by: Kasaiah Bogineni <kasaiah.bogineni@intel.com>
Reviewed-by: Wai-Hong Tam <waihong@google.com>
Commit-Queue: Wai-Hong Tam <waihong@google.com>
diff --git a/client/common_lib/cros/autotest_private_ext/manifest.json b/client/common_lib/cros/autotest_private_ext/manifest.json
index ebca61d..771ad8b 100644
--- a/client/common_lib/cros/autotest_private_ext/manifest.json
+++ b/client/common_lib/cros/autotest_private_ext/manifest.json
@@ -8,7 +8,8 @@
   "manifest_version": 2,
   "version": "0.1",
   "permissions" : [
-    "autotestPrivate"
+    "autotestPrivate",
+    "power"
   ],
   "automation": {
     "interact": true,
diff --git a/client/common_lib/cros/chrome.py b/client/common_lib/cros/chrome.py
index 30101b6..61909af 100644
--- a/client/common_lib/cros/chrome.py
+++ b/client/common_lib/cros/chrome.py
@@ -329,6 +329,22 @@
             lambda: ext.EvaluateJavaScript('window.__login_status'),
             timeout=10)
 
+    def disable_dim_display(self):
+        """Avoid dim display.
+
+        @returns True if success otherwise False.
+        """
+        ext = self.autotest_ext
+        if not ext:
+            return False
+        try:
+            ext.ExecuteJavaScript(
+                    '''chrome.power.requestKeepAwake("display")''')
+        except:
+            logging.error("failed to disable dim display")
+            return False
+        return True
+
     def get_visible_notifications(self):
         """Returns an array of visible notifications of Chrome.