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

Issue 1528243002: Add a basic linux client for Blimp. (Closed)

Created:
5 years ago by David Trainor- moved to gerrit
Modified:
4 years, 7 months ago
Reviewers:
haibinlu, Wez, nyquist
CC:
chromium-reviews, dtrainor+watch-blimp_chromium.org, kmarshall+watch-blimp_chromium.org, maniscalco+watch-blimp_chromium.org, marcinjb+watch-blimp_chromium.org, nyquist+watch-blimp_chromium.org, sriramsr+watch-blimp_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Add a basic linux client for Blimp. Add a simple linux front end for blimp. This ties into all of the features but does not handle input events yet. BUG=534894

Patch Set 1 #

Patch Set 2 : X11, how does it work? #

Total comments: 26
Unified diffs Side-by-side diffs Delta from patch set Stats (+362 lines, -36 lines) Patch
M blimp/BUILD.gn View 1 chunk +1 line, -0 lines 0 comments Download
M blimp/client/BUILD.gn View 2 chunks +26 lines, -0 lines 5 comments Download
M blimp/client/DEPS View 1 chunk +2 lines, -0 lines 1 comment Download
M blimp/client/android/blimp_library_loader.cc View 2 chunks +3 lines, -28 lines 0 comments Download
M blimp/client/android/java/src/org/chromium/blimp/BlimpLibraryLoader.java View 2 chunks +1 line, -3 lines 1 comment Download
A blimp/client/blimp_startup.h View 1 chunk +18 lines, -0 lines 1 comment Download
A blimp/client/blimp_startup.cc View 1 chunk +53 lines, -0 lines 6 comments Download
M blimp/client/compositor/blimp_compositor.h View 2 chunks +5 lines, -5 lines 0 comments Download
A blimp/client/linux/blimp_display_manager.h View 1 chunk +66 lines, -0 lines 5 comments Download
A blimp/client/linux/blimp_display_manager.cc View 1 1 chunk +82 lines, -0 lines 4 comments Download
A blimp/client/linux/blimp_main.cc View 1 1 chunk +41 lines, -0 lines 0 comments Download
A blimp/client/session/blimp_client_session_linux.h View 1 chunk +36 lines, -0 lines 1 comment Download
A blimp/client/session/blimp_client_session_linux.cc View 1 chunk +28 lines, -0 lines 2 comments Download

Messages

Total messages: 7 (1 generated)
David Trainor- moved to gerrit
Still working on a crasher... I think it has to do with me not fully ...
5 years ago (2015-12-16 01:20:33 UTC) #1
David Trainor- moved to gerrit
Ok... think I fixed the crasher. Still confused though :/.
5 years ago (2015-12-16 01:27:18 UTC) #2
David Trainor- moved to gerrit
Basic linux client... Not super clean, but feel free to take a look and I'll ...
5 years ago (2015-12-16 01:31:53 UTC) #4
haibinlu
lgtm https://codereview.chromium.org/1528243002/diff/20001/blimp/client/BUILD.gn File blimp/client/BUILD.gn (right): https://codereview.chromium.org/1528243002/diff/20001/blimp/client/BUILD.gn#newcode89 blimp/client/BUILD.gn:89: executable("blimp_shell") { blimp_client_shell? https://codereview.chromium.org/1528243002/diff/20001/blimp/client/session/blimp_client_session_linux.cc File blimp/client/session/blimp_client_session_linux.cc (right): https://codereview.chromium.org/1528243002/diff/20001/blimp/client/session/blimp_client_session_linux.cc#newcode16 ...
5 years ago (2015-12-17 00:32:59 UTC) #5
nyquist
https://codereview.chromium.org/1528243002/diff/20001/blimp/client/BUILD.gn File blimp/client/BUILD.gn (right): https://codereview.chromium.org/1528243002/diff/20001/blimp/client/BUILD.gn#newcode89 blimp/client/BUILD.gn:89: executable("blimp_shell") { On 2015/12/17 00:32:58, haibinlu wrote: > blimp_client_shell? ...
5 years ago (2015-12-17 03:00:21 UTC) #6
Wez
4 years, 11 months ago (2016-01-05 19:15:02 UTC) #7
It looks like Haibin landed one of the earlier patch-sets before Tommy's and my
review comments, so we'll need to rebase and land a follow-up patch with the
various fixes.

Haibin, in future if you take over a CL, please remember to close the original
review, with a link to the new CL, so that people don't mistakenly add further
comments to it!

https://codereview.chromium.org/1528243002/diff/20001/blimp/client/BUILD.gn
File blimp/client/BUILD.gn (right):

https://codereview.chromium.org/1528243002/diff/20001/blimp/client/BUILD.gn#n...
blimp/client/BUILD.gn:89: executable("blimp_shell") {
On 2015/12/17 at 03:00:21, nyquist - OOO till 2016-01-04 wrote:
> On 2015/12/17 00:32:58, haibinlu wrote:
> > blimp_client_shell?
> 
> Good question. I guess currently it follows 'content_shell'. Then again,
//content isn't split between client and engine.
> 
> Will we ever have a blimp_engine_shell though?
> 
> I don't feel strongly. Either way is fine with me.

No, the client+engine are equivalent to content_shell, in effect - it'd be
reasonable to call this blimp_shell, but probably more understandable to call it
simply blimp_client.

https://codereview.chromium.org/1528243002/diff/20001/blimp/client/BUILD.gn#n...
blimp/client/BUILD.gn:107: "//ui/events/platform/x11",
On 2015/12/17 at 03:00:21, nyquist - OOO till 2016-01-04 wrote:
> Optional nit: Could this follow the same style as the previous line?

I think we can just run the gn formatter over this file to get the preferred
style?

https://codereview.chromium.org/1528243002/diff/20001/blimp/client/android/ja...
File blimp/client/android/java/src/org/chromium/blimp/BlimpLibraryLoader.java
(right):

https://codereview.chromium.org/1528243002/diff/20001/blimp/client/android/ja...
blimp/client/android/java/src/org/chromium/blimp/BlimpLibraryLoader.java:100:
sLibraryLoadResult = new Boolean(startResult);
Seems strange that we're taking a "start result" and treating it as a "library
load result" - what does nativeStartBlimp() actually do...?

https://codereview.chromium.org/1528243002/diff/20001/blimp/client/blimp_star...
File blimp/client/blimp_startup.cc (right):

https://codereview.chromium.org/1528243002/diff/20001/blimp/client/blimp_star...
blimp/client/blimp_startup.cc:17: LAZY_INSTANCE_INITIALIZER;
Add a comment to explain the purpose of this member.

https://codereview.chromium.org/1528243002/diff/20001/blimp/client/blimp_star...
blimp/client/blimp_startup.cc:35: logging::SetLogItems(false,   // Process ID
On 2015/12/17 at 03:00:21, nyquist - OOO till 2016-01-04 wrote:
> Why do we not want to log the process and thread ID on the engine?

This is blimp_client logging initialization - there is only one process, so we
probably want to log the thread Id and timestamp, not the process ID nor tick
count.

https://codereview.chromium.org/1528243002/diff/20001/blimp/client/blimp_star...
blimp/client/blimp_startup.cc:44: // TODO(dtrainor): Initialize ICU?
Clarify why we might need to initialize ICU here.

https://codereview.chromium.org/1528243002/diff/20001/blimp/client/blimp_star...
blimp/client/blimp_startup.cc:45: 
nit: Remove the spurious blank line.

https://codereview.chromium.org/1528243002/diff/20001/blimp/client/blimp_star...
blimp/client/blimp_startup.cc:48: SkGraphics::Init();
The function name is InitializeMainMessageLoop, but we're also initializing some
global Skia and gfx state, so please add a comment to clarify what's going on
here.

https://codereview.chromium.org/1528243002/diff/20001/blimp/client/blimp_star...
File blimp/client/blimp_startup.h (right):

https://codereview.chromium.org/1528243002/diff/20001/blimp/client/blimp_star...
blimp/client/blimp_startup.h:14: BLIMP_CLIENT_EXPORT bool
InitializeMainMessageLoop();
nit: Suggest having one-line comments to clarify the purpose of these, and e.g.
the meaning of the return-code from InitializeMainMessageLoop.

https://codereview.chromium.org/1528243002/diff/20001/blimp/client/linux/blim...
File blimp/client/linux/blimp_display_manager.cc (right):

https://codereview.chromium.org/1528243002/diff/20001/blimp/client/linux/blim...
blimp/client/linux/blimp_display_manager.cc:28: platform_window_->Show();
nit: Do we want to show the platform window _before_ we finish setting the
compositor size, etc?  Won't that mean that we get a blank window that then has
some flickery stuff happen in it at startup?

https://codereview.chromium.org/1528243002/diff/20001/blimp/client/linux/blim...
blimp/client/linux/blimp_display_manager.cc:43: void
BlimpDisplayManager::OnDamageRect(const gfx::Rect& damaged_region) {}
Doesn't damage need to be passed to the compositor to trigger re-rendering?

https://codereview.chromium.org/1528243002/diff/20001/blimp/client/linux/blim...
blimp/client/linux/blimp_display_manager.cc:57: delegate_->OnClosed();
We could almost just exit the process directly in this case, and wire up proper
teardown later, if we want.

https://codereview.chromium.org/1528243002/diff/20001/blimp/client/linux/blim...
blimp/client/linux/blimp_display_manager.cc:73:
blimp_compositor_->SetAcceleratedWidget(widget);
If the widget has become kNullAcceleratedWidget then don't we need to do
anything to stop the compositor from potentially touching the old, presumably
now invalid, widget?

https://codereview.chromium.org/1528243002/diff/20001/blimp/client/linux/blim...
File blimp/client/linux/blimp_display_manager.h (right):

https://codereview.chromium.org/1528243002/diff/20001/blimp/client/linux/blim...
blimp/client/linux/blimp_display_manager.h:36: TabControlFeature*
tab_control_feature);
nit: Document object lifetime/ownership constrains for the various bare-pointer
parameters.

https://codereview.chromium.org/1528243002/diff/20001/blimp/client/linux/blim...
blimp/client/linux/blimp_display_manager.h:39: // ui::PlatformWindowDelegate:
nit: ui::PlatformWindowDelegate implementation.

https://codereview.chromium.org/1528243002/diff/20001/blimp/client/linux/blim...
blimp/client/linux/blimp_display_manager.h:53: float device_pixel_ratio_;
One-liner comment to explain what this is used for (looks like it caches the
ratio for the current accelerated widget - in which case how come we hold the
ration but not the widget?) and consider inline initialization.

https://codereview.chromium.org/1528243002/diff/20001/blimp/client/linux/blim...
blimp/client/linux/blimp_display_manager.h:56: TabControlFeature*
tab_control_feature_;
Inline initialize to nullptr.

Powered by Google App Engine
This is Rietveld 408576698