diff --git a/modules/desktop_capture/mac/full_screen_chrome_window_detector.cc b/modules/desktop_capture/mac/full_screen_chrome_window_detector.cc
index ec3974a..1c74ed9 100644
--- a/modules/desktop_capture/mac/full_screen_chrome_window_detector.cc
+++ b/modules/desktop_capture/mac/full_screen_chrome_window_detector.cc
@@ -147,7 +147,7 @@
 
 CGWindowID FullScreenChromeWindowDetector::FindFullScreenWindow(
     CGWindowID original_window) {
-  if (!IsChromeWindow(original_window) || !IsWindowMinimized(original_window))
+  if (!IsChromeWindow(original_window) || IsWindowOnScreen(original_window))
     return kCGNullWindowID;
 
   CGWindowID full_screen_window_id =
@@ -176,7 +176,7 @@
     previous_window_list_.swap(current_window_list_);
 
     // No need to update the window list when the window is minimized.
-    if (IsWindowMinimized(original_window)) {
+    if (!IsWindowOnScreen(original_window)) {
       previous_window_list_.clear();
       return;
     }
diff --git a/modules/desktop_capture/mac/window_list_utils.cc b/modules/desktop_capture/mac/window_list_utils.cc
index 6fc697b..8b668c9 100644
--- a/modules/desktop_capture/mac/window_list_utils.cc
+++ b/modules/desktop_capture/mac/window_list_utils.cc
@@ -83,7 +83,7 @@
     }
 
     // Skip windows that are minimized and not full screen.
-    if (ignore_minimized && IsWindowMinimized(window) &&
+    if (ignore_minimized && !IsWindowOnScreen(window) &&
         !IsWindowFullScreen(desktop_config, window)) {
       continue;
     }
@@ -138,29 +138,28 @@
   return fullscreen;
 }
 
-bool IsWindowMinimized(CFDictionaryRef window) {
+bool IsWindowOnScreen(CFDictionaryRef window) {
   CFBooleanRef on_screen = reinterpret_cast<CFBooleanRef>(
       CFDictionaryGetValue(window, kCGWindowIsOnscreen));
-  return on_screen != NULL && !CFBooleanGetValue(on_screen);
+  return on_screen == NULL || CFBooleanGetValue(on_screen);
 }
 
-// Returns true if the window is minimized.
-bool IsWindowMinimized(CGWindowID id) {
+bool IsWindowOnScreen(CGWindowID id) {
   CFArrayRef window_id_array =
       CFArrayCreate(NULL, reinterpret_cast<const void **>(&id), 1, NULL);
   CFArrayRef window_array =
       CGWindowListCreateDescriptionFromArray(window_id_array);
-  bool minimized = false;
+  bool on_screen = true;
 
   if (window_array && CFArrayGetCount(window_array)) {
-    minimized = IsWindowMinimized(reinterpret_cast<CFDictionaryRef>(
+    on_screen = IsWindowOnScreen(reinterpret_cast<CFDictionaryRef>(
         CFArrayGetValueAtIndex(window_array, 0)));
   }
 
   CFRelease(window_id_array);
   CFRelease(window_array);
 
-  return minimized;
+  return on_screen;
 }
 
 std::string GetWindowTitle(CFDictionaryRef window) {
diff --git a/modules/desktop_capture/mac/window_list_utils.h b/modules/desktop_capture/mac/window_list_utils.h
index 7147e89..b4608f6 100644
--- a/modules/desktop_capture/mac/window_list_utils.h
+++ b/modules/desktop_capture/mac/window_list_utils.h
@@ -36,11 +36,16 @@
 bool IsWindowFullScreen(const MacDesktopConfiguration& desktop_config,
                         CFDictionaryRef window);
 
-// Returns true if the |window| is minimized.
-bool IsWindowMinimized(CFDictionaryRef window);
+// TODO(zijiehe): Flip the behaviors of the following two functions when native
+// APIs fail. If |window| does not represent a window, or |id| cannot be found,
+// returning false is more reasonable.
+// Returns true if the |window| is on screen. This function returns true if
+// native APIs fail.
+bool IsWindowOnScreen(CFDictionaryRef window);
 
-// Returns true if the window is minimized.
-bool IsWindowMinimized(CGWindowID id);
+// Returns true if the window is on screen. This function returns true if native
+// APIs fail or |id| cannot be found.
+bool IsWindowOnScreen(CGWindowID id);
 
 // Returns utf-8 encoded title of |window|. If |window| is not a window or no
 // valid title can be retrieved, this function returns an empty string.
