Index: chrome/browser/ui/views/window.cc |
diff --git a/chrome/browser/ui/views/window.cc b/chrome/browser/ui/views/window.cc |
index 9b13c0fe2d03ddd2aa543bf9b77474ab116f6cac..1701d0e6a00707eed99742826095d6ca2af66f10 100644 |
--- a/chrome/browser/ui/views/window.cc |
+++ b/chrome/browser/ui/views/window.cc |
@@ -4,11 +4,14 @@ |
#include "chrome/browser/ui/views/window.h" |
+#include "ui/views/bubble/bubble_delegate.h" |
#include "ui/views/widget/widget.h" |
#if defined(OS_CHROMEOS) && defined(TOOLKIT_USES_GTK) |
#include "chrome/browser/chromeos/frame/bubble_window.h" |
-#endif // defined(OS_CHROMEOS) |
+#include "chrome/browser/chromeos/legacy_window_manager/wm_ipc.h" |
+#include "third_party/cros_system_api/window_manager/chromeos_wm_ipc_enums.h" |
+#endif |
namespace browser { |
@@ -24,4 +27,35 @@ views::Widget* CreateViewsWindow(gfx::NativeWindow parent, |
#endif |
} |
+views::Widget* CreateViewsBubble(views::BubbleDelegateView* delegate) { |
+ views::Widget* bubble_widget = |
+ views::BubbleDelegateView::CreateBubble(delegate); |
+#if defined(OS_CHROMEOS) && defined(TOOLKIT_USES_GTK) |
+ { |
+ std::vector<int> params; |
+ params.push_back(0); // Do not show when screen is locked. |
+ chromeos::WmIpc::instance()->SetWindowType( |
+ bubble_widget->GetNativeView(), |
+ chromeos::WM_IPC_WINDOW_CHROME_INFO_BUBBLE, |
+ ¶ms); |
+ } |
+#endif |
+ return bubble_widget; |
+} |
+ |
+views::Widget* CreateViewsBubbleAboveLockScreen( |
+ views::BubbleDelegateView* delegate) { |
+ views::Widget* bubble_widget = |
+ views::BubbleDelegateView::CreateBubble(delegate); |
+#if defined(OS_CHROMEOS) && defined(TOOLKIT_USES_GTK) |
+ std::vector<int> params; |
+ params.push_back(1); // Show while screen is locked. |
+ chromeos::WmIpc::instance()->SetWindowType( |
+ bubble_widget->GetNativeView(), |
+ chromeos::WM_IPC_WINDOW_CHROME_INFO_BUBBLE, |
+ ¶ms); |
+#endif |
+ return bubble_widget; |
+} |
+ |
} // namespace browser |