Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(23)

Issue 11485006: Add window manager component. (Closed)

Created:
8 years ago by reveman
Modified:
4 years, 11 months ago
CC:
chromium-reviews, joi+watch-content_chromium.org, darin-cc_chromium.org, jam, apatrick_chromium
Visibility:
Public.

Description

Add window manager component. This adds a new component to chrome that builds with GYP_DEFINES="use_wm=1" and implements "foreign" window management. A foreign window is a platform specific window not owned by chromium. Using the CHROMIUM_texture_from_image extension we can redirect foreign window output to textures and manage these windows using ash. This initial version has limited functionality and focuses on getting the testing framework in place. BUG=124444 TEST=wm_unittests, wm_shell

Patch Set 1 #

Patch Set 2 : Rebase on latest version of 11360045 #

Patch Set 3 : #

Patch Set 4 : #

Patch Set 5 : Rebase and add proper use_wm flag support #

Total comments: 66

Patch Set 6 : address review feedback #

Patch Set 7 : address more review feedback #

Total comments: 10

Patch Set 8 : remove ifdef and fix year #

Patch Set 9 : Push gfx::AcceleratedWidget usage into platform specific code. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+2804 lines, -328 lines) Patch
M build/all.gyp View 1 2 3 4 5 2 chunks +7 lines, -0 lines 0 comments Download
M build/common.gypi View 1 2 3 4 5 6 7 7 chunks +19 lines, -0 lines 0 comments Download
M content/browser/gpu/browser_gpu_channel_host_factory.h View 1 2 3 4 6 1 chunk +3 lines, -1 line 0 comments Download
M content/browser/renderer_host/image_transport_factory.h View 1 2 3 4 2 chunks +2 lines, -1 line 0 comments Download
M content/common/gpu/client/gl_helper.h View 1 2 3 4 2 chunks +2 lines, -1 line 0 comments Download
A + wm/DEPS View 1 2 3 4 1 chunk +2 lines, -0 lines 0 comments Download
A wm/OWNERS View 1 chunk +1 line, -0 lines 0 comments Download
A wm/foreign_test_window.h View 1 2 3 4 5 6 7 8 1 chunk +44 lines, -0 lines 0 comments Download
A wm/foreign_test_window.cc View 1 2 3 4 5 6 7 8 1 chunk +113 lines, -0 lines 0 comments Download
A wm/foreign_window.h View 1 2 3 4 5 6 1 chunk +102 lines, -0 lines 0 comments Download
A wm/foreign_window.cc View 1 2 3 4 5 6 1 chunk +169 lines, -0 lines 0 comments Download
A wm/foreign_window_client_view.h View 1 2 3 4 5 1 chunk +64 lines, -0 lines 0 comments Download
A wm/foreign_window_client_view.cc View 1 2 3 4 5 1 chunk +202 lines, -0 lines 0 comments Download
A wm/foreign_window_unittest.cc View 1 2 3 4 5 6 7 8 1 chunk +78 lines, -0 lines 0 comments Download
A wm/foreign_window_widget.h View 1 2 3 4 5 1 chunk +30 lines, -0 lines 0 comments Download
A wm/foreign_window_widget.cc View 1 2 3 4 5 1 chunk +51 lines, -0 lines 0 comments Download
A wm/gpu/DEPS View 1 2 3 4 5 1 chunk +5 lines, -0 lines 0 comments Download
A wm/gpu/foreign_window_texture_factory.h View 1 2 3 4 5 1 chunk +120 lines, -0 lines 0 comments Download
A wm/gpu/foreign_window_texture_factory.cc View 1 2 3 4 5 1 chunk +240 lines, -0 lines 0 comments Download
A wm/host/DEPS View 1 2 3 4 1 chunk +3 lines, -0 lines 0 comments Download
A wm/host/foreign_test_window_host.h View 1 2 3 4 5 6 7 8 1 chunk +36 lines, -0 lines 0 comments Download
A wm/host/foreign_test_window_host.cc View 1 2 3 4 5 6 7 8 1 chunk +38 lines, -0 lines 0 comments Download
A wm/host/foreign_test_window_host_linux.h View 1 2 3 4 5 6 7 8 1 chunk +60 lines, -0 lines 0 comments Download
A wm/host/foreign_test_window_host_linux.cc View 1 2 3 4 5 6 7 8 1 chunk +132 lines, -0 lines 0 comments Download
A wm/host/foreign_window_host.h View 1 2 3 4 5 1 chunk +35 lines, -0 lines 0 comments Download
A wm/host/foreign_window_host.cc View 1 2 3 4 5 1 chunk +38 lines, -0 lines 0 comments Download
A wm/host/foreign_window_host_delegate.h View 1 2 3 4 5 1 chunk +22 lines, -0 lines 0 comments Download
A wm/host/foreign_window_host_linux.h View 1 2 3 4 5 1 chunk +43 lines, -0 lines 0 comments Download
A wm/host/foreign_window_host_linux.cc View 1 2 3 4 5 1 chunk +68 lines, -0 lines 0 comments Download
A wm/host/root_window_host_factory.h View 1 2 3 4 5 1 chunk +24 lines, -0 lines 0 comments Download
A + wm/host/root_window_host_factory.cc View 1 2 3 4 5 1 chunk +13 lines, -9 lines 0 comments Download
A + wm/host/root_window_host_factory_linux.cc View 1 2 3 4 5 1 chunk +9 lines, -9 lines 0 comments Download
A + wm/host/root_window_host_linux.h View 1 2 3 4 5 6 7 8 7 chunks +68 lines, -22 lines 0 comments Download
A + wm/host/root_window_host_linux.cc View 1 2 3 4 5 6 15 chunks +432 lines, -37 lines 0 comments Download
A + wm/shell/content_client/DEPS View 1 chunk +1 line, -0 lines 0 comments Download
A + wm/shell/content_client/shell_browser_main_parts.h View 1 2 3 4 5 3 chunks +13 lines, -12 lines 0 comments Download
A + wm/shell/content_client/shell_browser_main_parts.cc View 1 2 3 4 5 6 7 8 6 chunks +28 lines, -50 lines 0 comments Download
A + wm/shell/content_client/shell_content_browser_client.h View 1 2 3 4 5 2 chunks +6 lines, -10 lines 0 comments Download
A + wm/shell/content_client/shell_content_browser_client.cc View 1 2 3 4 5 2 chunks +6 lines, -7 lines 0 comments Download
A + wm/shell/content_client/shell_main_delegate.h View 1 2 3 4 5 2 chunks +7 lines, -14 lines 0 comments Download
A + wm/shell/content_client/shell_main_delegate.cc View 1 2 3 4 5 2 chunks +7 lines, -8 lines 0 comments Download
A + wm/shell/shell_delegate_impl.h View 1 2 3 4 5 5 chunks +22 lines, -15 lines 0 comments Download
A + wm/shell/shell_delegate_impl.cc View 1 2 3 4 5 11 chunks +19 lines, -18 lines 0 comments Download
A wm/shell/shell_main.cc View 1 2 3 4 5 1 chunk +11 lines, -0 lines 0 comments Download
A + wm/shell/shell_main_parts.h View 1 2 3 4 5 1 chunk +6 lines, -6 lines 0 comments Download
A + wm/shell/shell_main_parts.cc View 1 2 3 4 5 2 chunks +4 lines, -4 lines 0 comments Download
A + wm/test/test_shell_delegate.h View 1 2 3 4 5 4 chunks +24 lines, -34 lines 0 comments Download
A + wm/test/test_shell_delegate.cc View 1 2 3 4 5 9 chunks +26 lines, -63 lines 0 comments Download
A wm/test/wm_test_base.h View 1 2 3 4 5 1 chunk +40 lines, -0 lines 0 comments Download
A wm/test/wm_test_base.cc View 1 2 3 4 5 6 7 1 chunk +73 lines, -0 lines 0 comments Download
A + wm/test/wm_unittests.cc View 1 2 3 4 5 6 7 1 chunk +3 lines, -7 lines 0 comments Download
A wm/wm.gyp View 1 2 3 4 5 1 chunk +233 lines, -0 lines 0 comments Download

Messages

Total messages: 20 (1 generated)
reveman
Latest patch adopts the term "foreign window" when referring to platform specific windows not owned ...
8 years ago (2012-12-17 18:23:33 UTC) #1
reveman
7 years, 11 months ago (2013-01-09 20:49:43 UTC) #2
danakj
My brain fell over somewhere in wm/shell, so some thoughts up to there. https://codereview.chromium.org/11485006/diff/21001/wm/foreign_test_window.h File ...
7 years, 10 months ago (2013-02-21 01:33:15 UTC) #3
reveman
https://codereview.chromium.org/11485006/diff/21001/wm/foreign_test_window.h File wm/foreign_test_window.h (right): https://codereview.chromium.org/11485006/diff/21001/wm/foreign_test_window.h#newcode1 wm/foreign_test_window.h:1: // Copyright (c) 2012 The Chromium Authors. All rights ...
7 years, 10 months ago (2013-02-22 01:26:44 UTC) #4
danakj
https://codereview.chromium.org/11485006/diff/21001/wm/foreign_window.h File wm/foreign_window.h (right): https://codereview.chromium.org/11485006/diff/21001/wm/foreign_window.h#newcode31 wm/foreign_window.h:31: const gfx::Size& preferred_size); On 2013/02/22 01:26:44, David Reveman wrote: ...
7 years, 10 months ago (2013-02-22 01:48:08 UTC) #5
reveman
https://codereview.chromium.org/11485006/diff/21001/wm/foreign_window.h File wm/foreign_window.h (right): https://codereview.chromium.org/11485006/diff/21001/wm/foreign_window.h#newcode31 wm/foreign_window.h:31: const gfx::Size& preferred_size); On 2013/02/22 01:48:08, danakj wrote: > ...
7 years, 10 months ago (2013-02-22 06:53:01 UTC) #6
danakj
https://codereview.chromium.org/11485006/diff/21001/wm/foreign_window.cc File wm/foreign_window.cc (right): https://codereview.chromium.org/11485006/diff/21001/wm/foreign_window.cc#newcode67 wm/foreign_window.cc:67: views::ClientView* ForeignWindow::CreateClientView(views::Widget* widget) { On 2013/02/22 01:26:44, David Reveman ...
7 years, 10 months ago (2013-02-22 21:42:59 UTC) #7
reveman
https://codereview.chromium.org/11485006/diff/29003/wm/test/test_shell_delegate.h File wm/test/test_shell_delegate.h (left): https://codereview.chromium.org/11485006/diff/29003/wm/test/test_shell_delegate.h#oldcode84 wm/test/test_shell_delegate.h:84: bool screen_magnifier_enabled_; On 2013/02/22 21:42:59, danakj wrote: > Looks ...
7 years, 10 months ago (2013-02-23 00:16:28 UTC) #8
danakj
LGTM! But can we stick a TODO on that AcceleratedWidget to make it into a ...
7 years, 10 months ago (2013-02-23 00:56:42 UTC) #9
reveman
On 2013/02/23 00:56:42, danakj wrote: > LGTM! But can we stick a TODO on that ...
7 years, 10 months ago (2013-02-25 02:52:57 UTC) #10
reveman
Hey, this patch adds a window manager component to chromium. This wm component uses ash ...
7 years, 10 months ago (2013-02-25 03:04:16 UTC) #11
Ben Goodger (Google)
I don't think we should host the X11 WM part in Chromium. I've been OK ...
7 years, 10 months ago (2013-02-25 03:34:23 UTC) #12
google-reveman
Seems reasonable to keep this as a separate project for now if possible. The current ...
7 years, 10 months ago (2013-02-25 19:32:49 UTC) #13
Ben Goodger (Google)
What's the ChromeShellDelegate change needed? -Ben On Mon, Feb 25, 2013 at 11:32 AM, David ...
7 years, 10 months ago (2013-02-25 20:47:14 UTC) #14
google-reveman
The ChromeShellDelegate change would make an ash enabled chrome build support platform window management if ...
7 years, 10 months ago (2013-02-25 21:35:18 UTC) #15
Ben Goodger (Google)
this seems a pretty trivial patch, seems like you could just keep it in your ...
7 years, 10 months ago (2013-02-26 00:13:54 UTC) #16
google-reveman
yeah, I was just thinking we could do something ugly like that for now. I'll ...
7 years, 10 months ago (2013-02-26 00:43:09 UTC) #17
google-reveman
this is now up and running at https://code.google.com/p/chromium-wm/ I moved the export directives which are ...
7 years, 9 months ago (2013-02-28 07:34:29 UTC) #18
Ben Goodger (Google)
7 years, 9 months ago (2013-02-28 17:20:35 UTC) #19
Cool!


On Wed, Feb 27, 2013 at 11:34 PM, David Reveman <reveman@google.com> wrote:

> this is now up and running at https://code.google.com/p/chromium-wm/
>
> I moved the export directives which are still needed to a separate cl:
> https://codereview.chromium.org/12377013/
>
>
> On Mon, Feb 25, 2013 at 7:43 PM, David Reveman <reveman@google.com> wrote:
>
>> yeah, I was just thinking we could do something ugly like that for now.
>> I'll try to get this project set up later this week.
>>
>>
>> On Mon, Feb 25, 2013 at 4:13 PM, Ben Goodger (Google)
<ben@chromium.org>wrote:
>>
>>> this seems a pretty trivial patch, seems like you could just keep it in
>>> your tree and apply it as part of the build process? a bit ugly, but have
>>> you heard of megapatch? :-P
>>>
>>> -Ben
>>>
>>>
>>> On Mon, Feb 25, 2013 at 1:35 PM, David Reveman <reveman@google.com>wrote:
>>>
>>>> The ChromeShellDelegate change would make an ash enabled chrome build
>>>> support platform window management if possible. Which makes it possible to
>>>> render web-pages on Linux as efficiently as on ChromeOS while still being
>>>> able to use native apps.
>>>>
>>>> The ChromeShellDelegate change would make CreateRootWindowHostFactory()
>>>> look something like this:
>>>>
>>>> ash::RootWindowHostFactory*
>>>> ChromeShellDelegate::CreateRootWindowHostFactory() {
>>>> #ifdef USE_WM
>>>>   return wm::RootWindowHostFactory::Create();
>>>> #else
>>>>   return ash::RootWindowHostFactory::Create();
>>>> #endif
>>>> }
>>>>
>>>>
>>>> On Mon, Feb 25, 2013 at 12:47 PM, Ben Goodger (Google) <
>>>> ben@chromium.org> wrote:
>>>>
>>>>> What's the ChromeShellDelegate change needed?
>>>>>
>>>>> -Ben
>>>>>
>>>>>
>>>>> On Mon, Feb 25, 2013 at 11:32 AM, David Reveman
<reveman@google.com>wrote:
>>>>>
>>>>>> Seems reasonable to keep this as a separate project for now if
>>>>>> possible. The current test shell only code should be easy to maintain in
a
>>>>>> separate repo but this window management support doesn't really shine
until
>>>>>> built into the browser. All needed on top of the current patch for this
to
>>>>>> work is a one line change to ChromeShellDelegate. Not sure how to best
do
>>>>>> this when the code lives in a separate repo so any advice here would
>>>>>> be appreciated.
>>>>>>
>>>>>>
>>>>>> On Sun, Feb 24, 2013 at 7:34 PM, Ben Goodger (Google) <
>>>>>> ben@chromium.org> wrote:
>>>>>>
>>>>>>> I don't think we should host the X11 WM part in Chromium. I've been
>>>>>>> OK with refactorings within Aura/Ash that support this where they have
made
>>>>>>> sense in general, but I don't think we want to add this code that is
not
>>>>>>> part of any of our shipping products to a codebase that all Chromium
>>>>>>> developers have to work with and support.
>>>>>>>
>>>>>>> My suggestion would be to create a separate Google Code project for
>>>>>>> the X11 WM parts and a DEPS file that pulls the necessary bits from
>>>>>>> chromium.
>>>>>>>
>>>>>>> -Ben
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>

Powered by Google App Engine
This is Rietveld 408576698