Creating an always on top window over chrome full screen

238 views
Skip to first unread message

James Meade

unread,
Feb 6, 2017, 7:36:03 PM2/6/17
to Chromium-dev
Hello all,

I am trying to create a window that floats over chrome while it's in full screen, similar to the calendar popups that are shown, while focus is still on chrome. I've tried setting always on top, as well as setting Override Redirect State to yes, without any success. 

The always on top needs to work for both a webpage as well as a webapp in full screen. I've been able to get this functionality with a popup (using notify-send), but I need my app to be always on top. I'm using a fairly stock Ubuntu 14.04 OS.

This is for black box testing so I can't put any code in chromium itself. This means I need a generic solution that I can implement in my code.

Thanks, I appreciate all of your times,
Mike

Chen Zhixiang

unread,
Feb 7, 2017, 12:03:36 AM2/7/17
to Chromium-dev
I just had a similar experience, i guess you have 2 methods to archieve this:

(1) build another WebView(or ContentView), and put it on the fullscreen elements, the easy part is, "both a webpage as well as a webapp" can be loaded in another WebView(or ContentView), but the hard part is, can overlay a small WebView(or ContentView) on another background WebView(or ContentView)?

(2) The trickier way: put the entire "webpage or webapp" into a <iframe> element, with a special id, class or attribute. Then modify the chromium code to track the iframe element to its underline main GraphicsLayer object. The left work is simple: to promote the iframe's GraphicsLayer object to above the fullscreen GraphicsLayer object.

Chen Zhixiang

unread,
Feb 7, 2017, 12:09:10 AM2/7/17
to Chromium-dev
Or you say "Always on top", you mean make a TAB page always on top? If that's the case, i thought maybe need some OS-specific tricks, especially to Ubuntu's.

But within chromium code, since it use the unifying compositing architecture, -- the UI parts and the Web parts will both be composited into one compositing tree(cc::Layer?), so there should be a way to manipulate these layers and archieve what you like.

But manipulating cc::Layer's is a topic which is outside of my current knowledge. Good Luck!
Reply all
Reply to author
Forward
0 new messages