Views/Aura/ui: Replace the "always on top" bool with a z-order enum.

On the Mac, translate the z-order enum to the native window level
values. On other platforms, treat everything other than "normal"
as an undifferentiated "always on top" leaving open the possibility
of implementing full window level support on ChromeOS later.

There are six basic window levels. The "security sensitive" one
is unused in this CL but will be used in a follow-up CL to fix
a bug.

This is a relanding of e8151bacdcf51ba941b244d1ad99461670c0c452.
It was reverted due to incorrect handling of the z-order value
on Windows; this is fixed in this version.

BUG=865287, 869486

Change-Id: I41b277a3a67e13948e72da656d37a724c325fdbe
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1682667
Reviewed-by: Thomas Anderson <[email protected]>
Reviewed-by: Ahmed Fakhry <[email protected]>
Reviewed-by: Leonard Grey <[email protected]>
Reviewed-by: Mitsuru Oshima <[email protected]>
Reviewed-by: Scott Violet <[email protected]>
Commit-Queue: Avi Drissman <[email protected]>
Cr-Commit-Position: refs/heads/master@{#678339}
diff --git a/chrome/browser/extensions/extension_tab_util.cc b/chrome/browser/extensions/extension_tab_util.cc
index 848a6d9..eb78de66 100644
--- a/chrome/browser/extensions/extension_tab_util.cc
+++ b/chrome/browser/extensions/extension_tab_util.cc
@@ -443,7 +443,9 @@
   result->SetBoolean(tabs_constants::kFocusedKey, window->IsActive());
   const Profile* profile = browser.profile();
   result->SetBoolean(tabs_constants::kIncognitoKey, profile->IsOffTheRecord());
-  result->SetBoolean(tabs_constants::kAlwaysOnTopKey, window->IsAlwaysOnTop());
+  result->SetBoolean(
+      tabs_constants::kAlwaysOnTopKey,
+      window->GetZOrderLevel() == ui::ZOrderLevel::kFloatingWindow);
 
   std::string window_state;
   if (window->IsMinimized()) {