New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 653789 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner:
Closed: Nov 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android
Pri: 2
Type: Feature



Sign in to add a comment

Port engine browser tests to use the public client API

Project Member Reported by nyquist@chromium.org, Oct 7 2016

Issue description

Instead of depending on implementation details from //blimp/client/core, the engine browser tests should use the public API. We can then remove all the visibility hacks for the engine browser tests within //blimp/client/core.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Oct 7 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1ce09cbb95446995ca12230ccf86b3467d0259f1

commit 1ce09cbb95446995ca12230ccf86b3467d0259f1
Author: nyquist <nyquist@chromium.org>
Date: Fri Oct 07 09:38:59 2016

Move session into //blimp/client/app and update GN files.

As part of making the Android Blimp APK compatible with the
//blimp/client/public APIs, this first CL moves the session code into
//blimp/client/app. This includes the GN-targets to ensure that they are
easily identifiable as belonging to the app directory.

This moves the APK-target itself, which means that the testing bots
needed to be updated with the new path to the target. In addition, the
lint suppressions needed to be updated with a new path.

The //blimp/client:blimp_unittests_java_deps (moved from //blimp), still
needs to be referred to directly by //blimp/BUILD.gn, because adding it
as a deps to //blimp/client:unit_tests on the Android platform does not
make the Java classes end up in the unit test APK. Other than this, the
rest of the targets have now been moved to //blimp/client and
//blimp/client/app.

Some targets have been renamed since they now reside in the app
directory.

Lastly, since the visibility parts of //blimp/client/core is cleaned up,
a bug was also filed for removing the visibility for internal core
targets for the engine browser tests.

BUG= 651964 ,  653789 

Review-Url: https://codereview.chromium.org/2387813002
Cr-Commit-Position: refs/heads/master@{#423825}

[modify] https://crrev.com/1ce09cbb95446995ca12230ccf86b3467d0259f1/blimp/BUILD.gn
[modify] https://crrev.com/1ce09cbb95446995ca12230ccf86b3467d0259f1/blimp/client/BUILD.gn
[add] https://crrev.com/1ce09cbb95446995ca12230ccf86b3467d0259f1/blimp/client/app/BUILD.gn
[modify] https://crrev.com/1ce09cbb95446995ca12230ccf86b3467d0259f1/blimp/client/app/android/blimp_client_session_android.h
[modify] https://crrev.com/1ce09cbb95446995ca12230ccf86b3467d0259f1/blimp/client/app/linux/blimp_client_session_linux.h
[rename] https://crrev.com/1ce09cbb95446995ca12230ccf86b3467d0259f1/blimp/client/app/session/blimp_client_session.cc
[rename] https://crrev.com/1ce09cbb95446995ca12230ccf86b3467d0259f1/blimp/client/app/session/blimp_client_session.h
[rename] https://crrev.com/1ce09cbb95446995ca12230ccf86b3467d0259f1/blimp/client/app/session/test_client_session.cc
[rename] https://crrev.com/1ce09cbb95446995ca12230ccf86b3467d0259f1/blimp/client/app/session/test_client_session.h
[modify] https://crrev.com/1ce09cbb95446995ca12230ccf86b3467d0259f1/blimp/client/core/BUILD.gn
[modify] https://crrev.com/1ce09cbb95446995ca12230ccf86b3467d0259f1/blimp/client/core/common/BUILD.gn
[modify] https://crrev.com/1ce09cbb95446995ca12230ccf86b3467d0259f1/blimp/client/core/compositor/BUILD.gn
[modify] https://crrev.com/1ce09cbb95446995ca12230ccf86b3467d0259f1/blimp/client/core/contents/BUILD.gn
[modify] https://crrev.com/1ce09cbb95446995ca12230ccf86b3467d0259f1/blimp/client/core/context/BUILD.gn
[modify] https://crrev.com/1ce09cbb95446995ca12230ccf86b3467d0259f1/blimp/client/core/geolocation/BUILD.gn
[modify] https://crrev.com/1ce09cbb95446995ca12230ccf86b3467d0259f1/blimp/client/core/input/BUILD.gn
[modify] https://crrev.com/1ce09cbb95446995ca12230ccf86b3467d0259f1/blimp/client/core/render_widget/BUILD.gn
[modify] https://crrev.com/1ce09cbb95446995ca12230ccf86b3467d0259f1/blimp/client/core/session/BUILD.gn
[modify] https://crrev.com/1ce09cbb95446995ca12230ccf86b3467d0259f1/blimp/client/core/settings/BUILD.gn
[modify] https://crrev.com/1ce09cbb95446995ca12230ccf86b3467d0259f1/blimp/client/core/switches/BUILD.gn
[modify] https://crrev.com/1ce09cbb95446995ca12230ccf86b3467d0259f1/blimp/engine/BUILD.gn
[modify] https://crrev.com/1ce09cbb95446995ca12230ccf86b3467d0259f1/blimp/engine/browser_tests/input_browsertest.cc
[modify] https://crrev.com/1ce09cbb95446995ca12230ccf86b3467d0259f1/blimp/engine/browser_tests/navigation_browsertest.cc
[modify] https://crrev.com/1ce09cbb95446995ca12230ccf86b3467d0259f1/build/android/lint/suppressions.xml
[modify] https://crrev.com/1ce09cbb95446995ca12230ccf86b3467d0259f1/testing/buildbot/gn_isolate_map.pyl

Comment 2 by w...@chromium.org, Nov 15 2016

Cc: scf@chromium.org w...@chromium.org
Components: Mobile>Blimp>Client
Labels: OS-Android
Owner: nyquist@chromium.org
Status: Assigned (was: Untriaged)
Tommy, what is the remaining work towards this?

Comment 3 by w...@chromium.org, Nov 15 2016

Cc: lethalantidote@chromium.org
There are still includes of //blimp/client/core in //blimp/engine/browser_tests. It seems specifically that the feature-code used in the input_browsertest.cc is the main part that's left.

bgoldman: Is this something you could look into?
bgoldman@ did you finish this out already?  Do we have any tests not hitting blimp/client/public?

Comment 6 by w...@chromium.org, Nov 16 2016

Labels: Needs-Feedback
Owner: bgoldman@chromium.org
Right now the public API isn't fully testable in the browser test framework for all features, and that's blocking progress here.

For example, the existing InputBrowserTest calls the BlimpClientSession#GetImeFeature() and attaches a mock delegate to it. BlimpClientContext doesn't expose ImeFeature at all, so it's not possible to do something similar. The same goes for geolocation. Like, do a code search for "geo" under blimp/client/public.

Anyway, this is all fixable, but I haven't personally been doing any of the necessary refactoring because you (dtrainor@) said that you and your team would handle it :) I'd be happy to work on it if people think it's a priority. Just keep in mind that it involves tearing apart big chunks of BlimpClientContextImpl, which means at the very least a lot of code review.


Oh also, this can be a wontfix if we use the state-oriented testing strategy for engine browser tests, since there wouldn't be any dependency on the client codebase. But the dependencies aren't in place for that right now, either.
Cc: nyquist@chromium.org
Ahh thanks for reminding me!  I remember the IME test is blocked on needing a Linux implementation, which haven't gotten to yet.  I'll take a look at what this would entail.  +nyquist@ let's talk about how we might expose this tomorrow.  I wonder if there's an easy way to give the Linux platform a way to respond to web form requests through blimp/client/public.
Labels: -Type-Bug -Pri-3 -Needs-Feedback M-57 Pri-2 Type-Feature
Owner: dtrainor@chromium.org
Status: WontFix (was: Assigned)
Obsolete, WontFix.
Labels: Archive-Blimp

Sign in to add a comment