This CL adds Accessibility support to Chromium browser for linux platform. It
successfully exposes an AX Tree for content. You can test this with chrome://accessibility.
This is just the initial CL to get the accessibility support on Linux. Other interfaces need
to be implemented to make it useful for accessibility tools.
ATK_COMPONENT & ATK_VALUE Interfaces has been implemented in this CL.
Content:
<html>
<body>
<input type="checkbox">
</body>
</html>
AX Tree:
[document web] enabled focusable focused id=1
++[section] enabled id=4
++++[check box] enabled focusable id=5
BUG=463671
Review URL: https://codereview.chromium.org/1128183010
Cr-Original-Commit-Position: refs/heads/master@{#339435}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 792fba03a8605accd9016cc0a6fb4a7ce52dedc6
Newer version of GLib define *get_instance_private symbols in
the G_DEFINE_TYPE macros. These symbols might be unused in cases
where a GObject class doesn't access its instances private data,
triggering -Wunused-function warnings.
BUG=504375
TEST=compile with gn on linux with GLib >= 2.37
Review URL: https://codereview.chromium.org/1216153005
Cr-Original-Commit-Position: refs/heads/master@{#338001}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 991e92d77c0b9f46c6a5d3f6facd12861c9e1828
It requires internal test files, hence it was not tested.
Partially tested on Linux with the following command lines:
$ gn gen out-gn --args='internal_gles2_conform_tests'
Formatted with the following command line:
$ gn format --in-place gpu/gles2_conform_support/BUILD.gn
BUG=432959
TEST=see above
R=dpranke@chromium.org,sievers@chromium.org
CQ_EXTRA_TRYBOTS=tryserver.chromium.linux:android_chromium_gn_compile_dbg,android_chromium_gn_compile_rel;tryserver.chromium.win:win8_chromium_gn_rel,win8_chromium_gn_dbg;tryserver.chromium.mac:mac_chromium_gn_rel,mac_chromium_gn_dbg
Review URL: https://codereview.chromium.org/1033373002
Cr-Original-Commit-Position: refs/heads/master@{#323082}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 719f00367465a6b940dc2804be147a0b23546cf4
Reason for revert:
Caused compile failure on Linux x64 bot (http://build.chromium.org/p/chromium.chrome/builders/Google%20Chrome%20Linux%20x64/builds/56532)
Output snippet:
FAILED: cd ../../chrome; flock -- /tmp/linux_package_lock bash ../out/Release/installer/debian/build.sh -o../out/Release -b ../out/Release -a x64 -c unstable
dpkg-shlibdeps: warning: binaries to analyze should already be installed in their package's directory.
2a3
> libatk1.0-0 (>= 1.12.4)
ERROR: Shared library dependencies changed!
If this is intentional, please update:
chrome/installer/linux/debian/expected_deps_ia32
chrome/installer/linux/debian/expected_deps_x64
Original issue's description:
> Resurrect Aura Linux accessibility.
>
> This is based in part on the ATK code we had as part of the Linux GTK port
> that went away, but now rewritten on top of AXPlatformNode. This patch
> successfully exposes an accessibility tree for Views and exposes top-level
> windows and the the role and name of each View. You can test it using
> accerciser. This is just to get the infrastructure in place - we need to
> implement more of the interface for it to be useful for accessibility tools.
>
> BUG=463671
>
> Committed: https://crrev.com/f65bad877350b5f7857d29e4b1b0d4d3f5c7cb6d
> Cr-Commit-Position: refs/heads/master@{#320383}
TBR=plundblad@chromium.org,dpranke@chromium.org,sky@chromium.org,gunsch@chromium.org,dmazzoni@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=463671
Review URL: https://codereview.chromium.org/1002993002
Cr-Original-Commit-Position: refs/heads/master@{#320402}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 999e4c26444e68898d4fa642783263b6e408b7e3
This is based in part on the ATK code we had as part of the Linux GTK port
that went away, but now rewritten on top of AXPlatformNode. This patch
successfully exposes an accessibility tree for Views and exposes top-level
windows and the the role and name of each View. You can test it using
accerciser. This is just to get the infrastructure in place - we need to
implement more of the interface for it to be useful for accessibility tools.
BUG=463671
Review URL: https://codereview.chromium.org/975113002
Cr-Original-Commit-Position: refs/heads/master@{#320383}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: f65bad877350b5f7857d29e4b1b0d4d3f5c7cb6d
Fix errors. Most of the problems were in net. Moves CreateAndConnectStreamForTesting's declaration to the header corresponding to the file it's implemented in.
Adds the other directories that don't pass yet to the list commented out so
it's easier to see what's still left.
TBR=armansito@chromium.org
Review URL: https://codereview.chromium.org/936953004
Cr-Original-Commit-Position: refs/heads/master@{#317425}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: bc44c0a95e9904154e2af47fb2dba8c37e169a13
The latest GN binaries rename cpu_arch to current_cpu and/or target_cpu
as appropriate, build_cpu_arch to host_cpu, and os to current_os and target_os as appropriate.
R=brettw@chromium.orgTBR=ddorwin@chromium.org
EXTRA_TRYBOTS=tryserver.chromium.linux:android_chromium_gn_compile_dbg,android_chromium_gn_compile_rel;tryserver.chromium.win:win8_chromium_gn_rel,win8_chromium_gn_dbg;tryserver.chromium.mac:mac_chromium_gn_rel,mac_chromium_gn_dbg
BUG=344767
Review URL: https://codereview.chromium.org/913373002
Cr-Original-Commit-Position: refs/heads/master@{#317223}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 4327621a322c964a8bc6d1ef5a4534f0f877d63e
A starting point for doing all of src, and adding a PRESUBMIT.
Includes https://codereview.chromium.org/772663002/ and https://codereview.chromium.org/770053002/.
I haven't pushed new binaries yet.
Generated via:
> cd build
> git ls-files *.gn *.gni | sed -e "s/^/@..\\\\out\\\\Debug\\\\gn format --in-place /" >x.bat && x.bat
The only things that I don't love in the current output are:
1. Turning
args = [
"--depfile", rebase_path(depfile, root_build_dir),
"--android-sdk-tools", rebased_android_sdk_build_tools,
"--dex-path", rebased_output,
]
into:
args = [
"--depfile",
rebase_path(depfile, root_build_dir),
"--android-sdk-tools",
rebased_android_sdk_build_tools,
"--dex-path",
rebased_output,
]
The heuristic for this isn't trivial though, and it also affects e.g. '-Xclang' in cflags, as well
as assignments to temporaries that are later assigned to args.
2. Turning single line
if (defined(invoker.inputs)) { inputs = invoker.inputs }
into
if (defined(invoker.inputs)) {
inputs = invoker.inputs
}
This could be argued to be an improvement, but as it's very boilerplate-y perhaps an exception to
allow single line in this case is worthwhile. I think there was discussion of new syntax for this
case too, something like "inputs ?= invoker.inputs" maybe.
In both cases, I think it's worthwhile to get formatting turned on, and then go back and special
case these if we decide it's worthwhile.
R=brettw@chromium.org
BUG=348474
Review URL: https://codereview.chromium.org/766573003
Cr-Original-Commit-Position: refs/heads/master@{#306305}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: b199254f481c5db36d56e83fce40594b06d2b81f
This also hooks up the chrome test support target which was previously not compiled (the file wasn't referenced).
This duplicates the harfbuzz logic from the GYP build where the system one is conditionally used if the pangoft2 version is sufficiently large. There are some additions to the pkg-config wrapper script to check versions.
Write a service_discovery_sniffer target but don't hook it up. Currently this gives linker errors.
Fix grit warnings for the remoting resources.
R=dpranke@chromium.org
Review URL: https://codereview.chromium.org/702903004
Cr-Original-Commit-Position: refs/heads/master@{#303489}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 32ce17ab53d97a66e50e7e49ef57e8fa9f881714
It's unnecessary to add the libXss dependency for any target that
depends on //build/config/linux:x11. Instead, the libXss dependency
should be pulled in explicitly via //build/config/linux:xscrnsaver.
This change makes the GN flow more in line with the GYP flow, especially
when building for Chrome OS.
BUG=427726
TEST=Manually test Linux build.
TEST=Manually verify that the libXss dependency is not added when building for Chrome OS with 'os="chromeos"'
Review URL: https://codereview.chromium.org/682893003
Cr-Original-Commit-Position: refs/heads/master@{#301802}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 407ead664abeab9534ceee416ef637de13c4e247
Several configs in the Linux GN build are used in only one place.
Defining these configs in build/config/linux/BUILD.gn makes them
get resolved on all Linux-derived platforms, during both target
builds and host-tool builds. This doesn't work on CrOS, which
does not need or want the packages references by these configs.
gconf is used in multiple places, so moving the config won't work.
Instead, the gconf config is only resolved when building for
a Linux target.
BUG=None
TEST=GN build for Linux and CrOS
R=jamesr
Review URL: https://codereview.chromium.org/655343002
Cr-Original-Commit-Position: refs/heads/master@{#299903}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 0a9e4ca5dc612260424fe103846af9ae145efcd9
The big changes here are:
1) Allow injecting of a target toolchain via args for os==chromeos.
2) For ARM builds, allow injecting -mtune and -mfloat-abi settings.
3) Allow injecting a pkg-config wrapper that correctly handles the
CrOS build environment. This is how pkg-config is handled for
all other packages in the build.
4) Create libmojo_sdk target, a static library of public Mojo code
suitable for distribution.
5) Added testonly = true to a few targets under mojo/ that are not
meant to be used in production.
BUG=388412
TEST=Create a target that builds //mojo/public, build with os==chromeos
Review URL: https://codereview.chromium.org/549453004
Cr-Original-Commit-Position: refs/heads/master@{#296849}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 2c8e745d9c4de27b44f4d866a2bf0f0a880d9b8c
OS_CHROMEOS is defined in //build/config/linux:sdk per brettw
recommendation.
Typo fixed in ui/ozone/BUILD.gn
Some source-list fixes in content/browser/BUILD.gn that take both
use_x11 and use_ozone into account.
BUG=None
TEST=None
Review URL: https://codereview.chromium.org/558343002
Cr-Original-Commit-Position: refs/heads/master@{#294426}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: db5203ee72bc04974fde7bc990a76e9ca6449f6f
Some packages used in linux builds are not used on CrOS, and
indeed are not even installed in the CrOS build chroot. Exclude
them so that the GN build doesn't try to run pkg-config on
packages that aren't installed.
BUG=388412
TEST=Create a target that builds //mojo/public, build with os==chromeos
R=brettw
Review URL: https://codereview.chromium.org/556733002
Cr-Original-Commit-Position: refs/heads/master@{#293977}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: c397c15b4db8d22528410af612fa2b154bbdb635
build/config/linux/BUILD.gn:
* Usage of generate_library_loader for libbrlapi was incorrect; there
* was nothing provided for "functions". This is now an empty list.
chrome/chrome_common.gypi
chrome/common/BUILD.gn
* Reference to a removed file, chrome_version_info_linux.cc
chromeos/BUILD.gn
components/pairing/BUILD.gn
* Usage of removed proto_{in,out}_dir in proto_library rules.
content/gpu/BUILD.gn
* Typo in reference to third_party/libva:libva_config
ui/views/BUILD.gn
* Attempt to filter source files out of
* gypi_values.views_unittests_sources by subdirectory path. Fortunately
* that variable already doesn't include the files that were supposed
* to be filtered out, so the rule is simply removed.
BUG=388412
TEST=Create a target that builds //mojo/public, build with os==chromeos
R=brettw@chromium.org
Review URL: https://codereview.chromium.org/550423002
Cr-Original-Commit-Position: refs/heads/master@{#293964}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 418e04caaf5701fac99ae766ab60f2e65279fccd
The GLIB_DISABLE_DEPRECATION_WARNINGS define disables the deprecation
warnings which is caused by the usage of the g_settings_list_schemas
method. Moving the define to the build scripts avoids any future build
errors (-Werror) and warning reports.
BUG=391250
TEST=ninja -C out/Release chrome
Review URL: https://codereview.chromium.org/367113004
Cr-Original-Commit-Position: refs/heads/master@{#292608}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 3a31d8e495b1d04a01f9e6c57fac608fee0285e3
Reason for revert:
Breaks builds where use_udev==0 since certain targets just assume udev and never check against use_udev.
Udev package should be wrapped in a use_udev confitional altogether and all the locations using Udev should check against use_udev.
Original issue's description:
> Run pkg-config for Udev only if use_udev==1
>
> Some embedded platforms do not have udev support. The change will skip
> running pkg-config if use_udev=0.
>
> BUG=none
>
> Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=288770TBR=brettw@chromium.org
NOTRY=true
Review URL: https://codereview.chromium.org/469763002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@289280 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This fixes the GN build for the ui/ozone component (and tests). The
following build should work going forward:
gn gen out_gn_ozone --args="use_ozone=true"
ninja -C out_gn_ozone -j1000 -k50 ozone_egl_demo ozone_unittests
BUG=396316
TEST=compile & run ozone_egl_demo, ozone_unittests
TBR=darin
Review URL: https://codereview.chromium.org/409163004
git-svn-id: http://src.chromium.org/svn/trunk/src/build@285362 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
The //build directory in GN shouldn't refer to anything outside of itself so that non-Chrome projects can copy it and re-use the build configuration. speechd relies on third_party/speech-dispatcher. This patch just moves the loader to the speech-dispatcher target, which makes more sense anyway.
TBR=grunell@chromium.org
Review URL: https://codereview.chromium.org/377403002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@282138 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
components/autofill
components/metrics
components/policy
components/variations
third_party/libphonenumber
third_party/mt19937ar
ui/gfx/ipc
These are all requried to compile chrome/browser in some form or another.
Fills out all grit_defines (also required for chrome/browser) and adds associated flags for them.
Add the ability for generated_extensions_api to not generate a bundle.
Remove mt19937ar from .gitignore (it's just checked into the tree)
R=ajwong@chromium.org
Review URL: https://codereview.chromium.org/365793002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@281057 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
These deps are some of those required to compile chrome/browser (so mostly those containing resources and protobufs that have generated headers). chrome/browser still has some dependencies left.
Add third_party libs libaddressinput and dom_distiller_js.
Add components dom_distiller and policy.
Separate the generate_library_loader into a separate .gni file.
Rename components_strings to just strings.
R=ajwong@chromium.org
Review URL: https://codereview.chromium.org/362583002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@280916 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Some minor tweaks in STL usage in GN itself to enable it to compile using the Android version of the STL. Enable this in the build (not so much because we need a GN binary on Android, but for build verification purposes).
Moved the executable_ldconfig config from the linux file to the gcc one since its shared between the Linux and Android builds. Added "-Bdynamic" and "-Wl,-z,nocopyreloc" to this on Android.
Moved some sysroot path components from sysroot.gni to android/config.gni (which sysroot uses) so it can be shared with the toolchain definitions.
Added the android_full_debug build flag. Made the "optimize off" mode of the build match the GYP build's "light optimization" on Android contingent on this flag.
Pulls out the optimize and optimize_max shared flags into one list to avoid duplication.
Adds a bunch of linker optimization flags that should be passed on non-Mac Posix platforms, and turns on dead code stripping for Mac builds.
Adds functionality to the gcc toolchain template to be able to insert strings before and after the libs. Adds a wrapper template for android toolchains that sets these accordingly to get the gross Android crtbegin/end files inserted in the right place on the linker line.
Made the android_ndk_root variable relative to the source root rather than the system root. Uses of this now rebase according to their own needs which makes some of the arguments a lot easier to follow.
Build file updates for base and libevent for Android. Implement ashmem library.
The only change on desktop linux is the addition of -Wl,--fatal-warnings to the linker line.
R=ajwong@chromium.org, cjhopman@chromium.org, scottmg@chromium.org
Review URL: https://codereview.chromium.org/275703003
git-svn-id: http://src.chromium.org/svn/trunk/src/build@270138 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This does the net target. I started doing some more that are commented out at the bottom, and there are a few more after that do do. The deps of these targets started to build up to an unreasonable level and this should be a good checkpoint.
Fix grit rule.
Fix SSL dependent configs
Add TLD cleanup
Add gconf and gio targets for Linux.
Add sources filtering for ChromeOS, .rc, and .mm files. Remove built-in code that removes .rc and .mm files (this wasn't quite complete so causes problems).
BUG=
R=scottmg@chromium.org
Review URL: https://codereview.chromium.org/236713002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@263967 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This is for the base shared library target on desktop Linux.
The remaining difference on Linux is that GYP's base build specifies -Wno-write-strings on Linux. This dates back to the first GYP file. I don't know why we would specify this for only base, and it seems not to trigger any warning without this flag, so I didn't add it.
This changes the pkg-config invocation from --libs to --libs-only-L and --libs-only-l. The output seems slightly different (--libs was producing an extra --export-dynamic for gmodule-2.0 that aren't present when invoking the other way, which is what the GYP build does).
R=thakis@chromium.org
Review URL: https://codereview.chromium.org/165873004
git-svn-id: http://src.chromium.org/svn/trunk/src/build@252409 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Updates all rebase_path calls to use the new parameter ordering.
Use the new getenv function and delete the Python script we had to get the home directory.
Takes advantage of the new ability to have the default value of declare_args blocks be dependent on other values. This simplifies some code.
R=scottmg@chromium.org
Review URL: https://codereview.chromium.org/164773005
git-svn-id: http://src.chromium.org/svn/trunk/src/build@252065 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This hooks up Clang in the pure GN build (not the hybrid GYP mode).
Clang gave some warnings about compiler flags which made me realize that we were giving linker flags to the compiler in some cases. So I enhanced our pkg-config wrapper to to add libraries to the cflags (missing else), return ldflags separately, and also strip out -pthread which was getting included over and over.
BUG=
Review URL: https://codereview.chromium.org/147923010
git-svn-id: http://src.chromium.org/svn/trunk/src/build@248477 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Separates out some "SDK" related setup on Mac land Linux like we do on Windows. I'm trying to make the "compiler" BUILD file just compiler warnings and CPU options, and have system library stuff on the platform directories.
This adds the capability for GN to produce GYP files on Mac that vary according
to the GYP generator as well as target-vs-host. I added a bunch of logic to the
GN iOS build to set up stuff accordingly based on my current knowledge of
what's required.
Sadly, this means we now have an 8-way GN build (all combinations of
debug/release, host/target, and xcode/ninja). I did some refactoring of the GYP
code in GN to make this less unreasonable.
I checked that the GYP files look the way I want, but I didn't actually test
the resulting builds yet. There is still likely to be some conditions wrong or
things not being set properly. I'm going to follow up with a second pass based on actual testing.
I believe, however, that with this new GYP generator code in GN, we can express
in the .gn files what we need to do the iOS build.
Review URL: https://codereview.chromium.org/149163005
git-svn-id: http://src.chromium.org/svn/trunk/src/build@248476 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Adds arm version and some android configuration build flags.
This adds most of the logic from common.gypi to the Android GN build.
This is currently missing the crtbegin/end stuff and won't actually make real Android builds. The logic in this patch is just the initial conversion that will require testing and several more passes of fixes.
R=torne@chromium.org, torne
Review URL: https://codereview.chromium.org/121173005
git-svn-id: http://src.chromium.org/svn/trunk/src/build@243681 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This adds support similar to the GYP scripts for running pkg-config in the presence of sysroots.
It also adds the linker flags by calling the existing horrible sysroot_ld_path.sh shell script that extracts stuff from the sysroot's configuration.
With this change, official 32-bit linux builds work in the checked in 32-bit Debian sysroots.
R=piman@chromium.org
Review URL: https://codereview.chromium.org/116803003
git-svn-id: http://src.chromium.org/svn/trunk/src/build@241397 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This passes the official build and branding flags to the GN build. Currently, this is used to hook up the proper sysroot for compiling on Linux for official builds. The 32-bit branded build does not compile currently due to pending pkgconfig issues.
Fix a bug where assertions in the build config would not get reported properly. This was because I forgot to actually throw the error at the toplevel.
BUG=
R=piman@chromium.org
Review URL: https://codereview.chromium.org/115643002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@240918 4ff67af0-8c30-449e-8e8b-ad334ec8d88c