office-gobmx/desktop
Michael Weghorn 2d25e27069 win a11y: Assert creating MSAAService succeeds
Add an assert that creating the MSAAservice/a11 bridge
succeeds in ImplInitAccessBridge on Windows, as this
should never fail unless the LibreOffice installation is broken.

Drop the return values of the ImplInitAccessBridge
and InitAccessBridge functions accordingly and
simplify code calling them.

While at it, also switch to using `#ifdef _WIN32` for
the Windows-specific code in `InitAccessBridge`
instead of having it in the `#else` branch of
`#if defined UNX`, to align this with the `#ifdef _WIN32`
condition for the `ImplInitAccessBridge` declaration,
as that's the function that gets called.

Even if the creation of the service should fail for some
reason, the DeploymentException in ImplInitAccessBridge
is still handled, so unless I'm missing something, this
commit shouldn't cause any harm. The "EnableATToolSupport"
setting would then incorrectly be set to true indicating
that AT support is enabled, but besides being used in
the a11y bridge code itself, that's only used to determine
whether or not to pre-populate menus, so they are
available in the a11y hierarchy before the corresponding
(sub)menu gets activated, s. MenuBarManager::FillMenuManager,
the corresponding commit that originally introduced this,

    commit 08fe2669a0
    Author: Rüdiger Timm <rt@openoffice.org>
    Date:   Fri May 13 06:29:54 2005 +0000

        INTEGRATION: CWS tbe22 (1.25.30); FILE MERGED
        2005/05/04 14:21:00 tbe 1.25.30.1: #i48612# Opening a menu with GOK shows Tips instead of entries (fixed by CD)

and the referenced bug report [1], in particular comment 3 [2]:

> TBE->CD: As discussed, the accessibility hierarchy is built up, but part of the
> information is missing, e.g. Menu::GetItemText()  returns an empty string.
> Also keyboard shortcuts should be available.
> In addition, the File/New menu and the File/Wizards menu are missing.
> All this information is only available, after the corresponding menus have
> been opened by the user.
>
> In OO.o 1.1.x all this was working. The AT tools require, that the whole menu
> hierarchy is available as soon as the menu bar is visible, that means before
> a user has opened a menu.
>
> The whole menu hierarchy must be only provided, if accessiblity is enabled.
> This can be checked by
> BOOL bAccessibilityEnabled =
> Application::GetSettings().GetMiscSettings().GetEnableATToolSupport();

This commit is also in preparation of further simplifying
the handling for that setting.

[1] https://bz.apache.org/ooo/show_bug.cgi?id=48612
[2] https://bz.apache.org/ooo/show_bug.cgi?id=48612#c3

Change-Id: I46149ed215c354d33003513d55defe4920a7c381
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175565
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-10-25 11:09:35 +02:00
..
inc tdf#161048 Revert "move opencl check at startup inside its own thread" 2024-05-28 18:02:22 +02:00
qa Related: cool#9735 vcl lok: add an AnyInput() callback 2024-08-14 11:17:33 +02:00
scripts valgrind: dhat is no longer experimental 2024-07-09 10:53:31 +02:00
source win a11y: Assert creating MSAAService succeeds 2024-10-25 11:09:35 +02:00
test/deployment cui, dbaccess, desktop, external, filter, librelogo: fix issues found by 2024-07-27 12:51:55 +02:00
uiconfig/ui Resave with newer Glade version 2024-06-24 15:37:25 +02:00
unx/source cid#1608081 silence Overflowed array index write 2024-09-02 21:15:36 +02:00
util Properly implement cppu::throwException for Emscripten 2024-07-10 12:32:15 +02:00
win32/source Revert "Fall back to old bootstrap.ini [Win32] section, for backwards compatibility" 2024-09-30 09:44:34 +02:00
AllLangMoTarget_dkt.mk migrate to boost::gettext 2017-07-21 08:20:50 +01:00
CppunitTest_desktop_app.mk Drop support for OpenGL denylist on X11 2022-03-28 14:31:07 +02:00
CppunitTest_desktop_dialogs_test.mk gbuild: Remove MSVC 2013 legacy code 2017-04-21 18:18:44 +02:00
CppunitTest_desktop_lib.mk Test paintPartTile behavior for views with different schemes 2023-08-03 09:14:19 +02:00
CppunitTest_desktop_lokinit.mk
CppunitTest_desktop_version.mk Enable desktop/qa/deployment_misc/test_dp_version.cxx 2015-05-04 13:50:47 +02:00
CustomTarget_desktop_unopackages_install.mk makefile simplification: replace $(call gb_CustomTarget_get_workdir,foo) 2024-05-03 16:06:14 +02:00
CustomTarget_soffice.mk makefile simplification: replace $(call gb_CustomTarget_get_workdir,foo) 2024-05-03 16:06:14 +02:00
CustomTarget_soffice_bin-emscripten-exports.mk Properly implement cppu::throwException for Emscripten 2024-07-10 12:32:15 +02:00
Executable_minidump_upload.mk
Executable_oosplash.mk tdf#156825 Half of the splash screen is visible on both monitors under Linux 2023-08-22 13:15:57 +02:00
Executable_quickstart.mk Add version resource to executables where it was missing 2019-08-31 00:22:28 +02:00
Executable_sbase.mk Unify executables to take version resource from default.rc 2019-08-31 02:48:18 +02:00
Executable_scalc.mk Unify executables to take version resource from default.rc 2019-08-31 02:48:18 +02:00
Executable_sdraw.mk Unify executables to take version resource from default.rc 2019-08-31 02:48:18 +02:00
Executable_simpress.mk Unify executables to take version resource from default.rc 2019-08-31 02:48:18 +02:00
Executable_smath.mk Unify executables to take version resource from default.rc 2019-08-31 02:48:18 +02:00
Executable_soffice_bin.mk Make --disable-emscripten-proxy-to-pthread configurable 2024-10-10 14:39:24 +02:00
Executable_soffice_com.mk Unify executables to take version resource from default.rc 2019-08-31 02:48:18 +02:00
Executable_soffice_exe.mk Unify executables to take version resource from default.rc 2019-08-31 02:48:18 +02:00
Executable_soffice_safe.mk desktop: separate executable shortcut for safe-mode 2020-07-13 10:53:12 +02:00
Executable_sweb.mk Unify executables to take version resource from default.rc 2019-08-31 02:48:18 +02:00
Executable_swriter.mk
Executable_unoinfo.mk Add version resource to executables where it was missing 2019-08-31 00:22:28 +02:00
Executable_unopkg.mk Make unopkg.com proper launcher for unopkg.bin on Windows 2020-01-23 06:20:22 +01:00
Executable_unopkg_bin.mk
Executable_unopkg_com.mk Make unopkg.com proper launcher for unopkg.bin on Windows 2020-01-23 06:20:22 +01:00
Extension_test-active.mk Re-enable building test-active.oxt 2013-12-16 11:24:12 +01:00
Extension_test-crashextension.mk Add LibreOffice Crash extension 2022-02-14 21:39:35 +01:00
Extension_test-passive.mk Add some help content to test-passive.oxt 2018-06-13 13:32:05 +02:00
GeneratedPackage_desktop_unopackages_install.mk makefile simplification: replace $(call gb_CustomTarget_get_workdir,foo) 2024-05-03 16:06:14 +02:00
IwyuFilter_desktop.yaml tdf#146619 Remove unused #includes from C/C++ files 2024-04-02 17:27:27 +02:00
Jar_active_java.mk
Jar_passive_java.mk Generally determine Rdb content from gb_*_set_componentfile calls 2021-12-10 08:14:24 +01:00
Library_active_native.mk Introduce gb_*_set_external_code 2014-12-18 16:39:43 +01:00
Library_crashextension.mk Add LibreOffice Crash extension 2022-02-14 21:39:35 +01:00
Library_crashreport.mk officecfg,*: add Office::Security::Net::AllowInsecureProtocols 2023-11-09 16:51:31 +01:00
Library_deployment.mk Generally determine Rdb content from gb_*_set_componentfile calls 2021-12-10 08:14:24 +01:00
Library_deploymentgui.mk Generally determine Rdb content from gb_*_set_componentfile calls 2021-12-10 08:14:24 +01:00
Library_deploymentmisc.mk do not require $(SRCDIR) in every gb_Library_set_precompiled_header 2019-09-23 10:47:25 +02:00
Library_migrationoo2.mk Generally determine Rdb content from gb_*_set_componentfile calls 2021-12-10 08:14:24 +01:00
Library_migrationoo3.mk Move tools/diagnose_ex.h to comphelper/diagnose_ex.hxx 2022-08-18 17:10:19 +02:00
Library_offacc.mk officecfg,desktop: add Office::Security::Net::AllowInsecureUNORemoteProtocol 2023-11-09 17:11:00 +01:00
Library_passive_native.mk Generally determine Rdb content from gb_*_set_componentfile calls 2021-12-10 08:14:24 +01:00
Library_sofficeapp.mk Init Embind-ings manually, once UNO is set up 2024-02-28 07:53:21 +01:00
Library_spl.mk Generally determine Rdb content from gb_*_set_componentfile calls 2021-12-10 08:14:24 +01:00
Library_unopkgapp.mk gbuild: Remove MSVC 2013 legacy code 2017-04-21 18:18:44 +02:00
lokclipboard.component Make LOKClipboard available to other modules 2023-02-06 17:02:54 +00:00
Makefile re-base on ALv2 code. Includes: 2012-11-19 17:44:55 +00:00
Module_desktop.mk Properly implement cppu::throwException for Emscripten 2024-07-10 12:32:15 +02:00
Package_branding.mk Replace Galaxy icon theme by Colibre 2018-05-05 10:19:26 +02:00
Package_branding_custom.mk gbuild: set Package default target to INSTDIR 2013-10-28 20:17:26 +01:00
Package_sbase_sh.mk desktop: split up Package_script corresponding to scp2 modules 2014-10-31 23:42:20 +01:00
Package_scalc_sh.mk desktop: split up Package_script corresponding to scp2 modules 2014-10-31 23:42:20 +01:00
Package_scripts.mk Unify condition names and fix "else" paths 2022-01-08 12:26:30 +01:00
Package_sdraw_sh.mk
Package_simpress_sh.mk
Package_smath_sh.mk desktop: split up Package_script corresponding to scp2 modules 2014-10-31 23:42:20 +01:00
Package_soffice_sh.mk makefile simplification: replace $(call gb_CustomTarget_get_workdir,foo) 2024-05-03 16:06:14 +02:00
Package_swriter_sh.mk desktop: split up Package_script corresponding to scp2 modules 2014-10-31 23:42:20 +01:00
Pagein_calc.mk Move to MPLv2 license headers, with ESC decision and author's permission. 2013-04-22 09:37:38 +01:00
Pagein_common.mk reduce number of framework libraries 2020-07-04 22:42:54 +02:00
Pagein_draw.mk Revert "merge sdui library into sd" 2024-02-15 08:57:53 +01:00
Pagein_impress.mk Revert "merge sdui library into sd" 2024-02-15 08:57:53 +01:00
Pagein_writer.mk Move to MPLv2 license headers, with ESC decision and author's permission. 2013-04-22 09:37:38 +01:00
Pyuno_passive_python.mk Generally determine Rdb content from gb_*_set_componentfile calls 2021-12-10 08:14:24 +01:00
Rdb_crashextension.mk Add LibreOffice Crash extension 2022-02-14 21:39:35 +01:00
Rdb_passive_generic.mk Generally determine Rdb content from gb_*_set_componentfile calls 2021-12-10 08:14:24 +01:00
Rdb_passive_platform.mk Generally determine Rdb content from gb_*_set_componentfile calls 2021-12-10 08:14:24 +01:00
README.md Add LibreOffice Crash extension 2022-02-14 21:39:35 +01:00
README.vars comphelper lok: remove the g_bViewCallback global 2016-06-17 12:47:46 +00:00
StaticLibrary_winlauncher.mk Drop UNICODE/_UNICODE defines 2019-04-04 13:57:59 +02:00
StaticLibrary_winloader.mk
UIConfig_deployment.mk weld ExtMgrDialog and UpdateRequiredDialog 2019-06-14 16:33:45 +02:00
WinResTarget_quickstart.mk sysui: remove Package_icons 2013-10-30 00:01:36 +01:00
WinResTarget_sbase.mk Unify executables to take version resource from default.rc 2019-08-31 02:48:18 +02:00
WinResTarget_scalc.mk
WinResTarget_sdraw.mk Unify executables to take version resource from default.rc 2019-08-31 02:48:18 +02:00
WinResTarget_simpress.mk Unify executables to take version resource from default.rc 2019-08-31 02:48:18 +02:00
WinResTarget_smath.mk Unify executables to take version resource from default.rc 2019-08-31 02:48:18 +02:00
WinResTarget_soffice.mk Unify executables to take version resource from default.rc 2019-08-31 02:48:18 +02:00
WinResTarget_sofficebin.mk Unify executables to take version resource from default.rc 2019-08-31 02:48:18 +02:00
WinResTarget_sweb.mk
WinResTarget_swriter.mk Unify executables to take version resource from default.rc 2019-08-31 02:48:18 +02:00

LibreOffice Binary

Code for the LibreOffice main binary (soffice) resides here. The soffice_main function for the soffice binary can be found here.

Stable Interface

Some of the artifacts built here are part of a LibreOffice installation set's stable interface, which (programmatic) clients can depend on. Among them are:

soffice

In the program directory (program/ on Linux and Windows, Contents/MacOS/ on macOS).

unoinfo

In the program directory (program/ on Linux and Windows, Contents/MacOS/ on macOS).

When called with a sole argument of c++, it prints to stdout an absolute pathname denoting the directory where the public URE libraries are found.

When called with a sole argument of java, it prints to stdout a marker character (either an ASCII '0' or '1') followed by a sequence of zero or more absolute pathnames denoting jars or directories that need to be included in a class loader's search locations.

If the marker character is '0' (on Linux and macOS), the pathnames are encoded as bytes, and any two pathnames in the sequence are separated from each other by NUL bytes.

If the marker character is '1' (on Windows), the pathnames are encoded as UTF-16-LE two-byte code units, and any two pathnames in the sequence are separated from each other by two-byte NUL code units.

Other Binaries

oosplash

Splash screen for the LibreOffice soffice binary.

Extensions

The directory test/deployment contains some extensions to be used for testing:

  • test/deployment/crashextension: C++ extension to make LibreOffice crash. Useful for testing Crashreporter.
    • Build with Extension_test-crashextension.
    • Extension can be found in workdir/Extension/test-crashextension.oxt
  • test/deployment/passive: C++, Java and Python extension samples with passive registration.
    • Build with make Extension_test-passive.
    • Extension can be found in workdir/Extension/test-passive.oxt
  • test/deployment/active: C++, Java and Python extension samples with active registration.
    • Build with make Extension_test-active.
    • Extension can be found in workdir/Extension/test-active.oxt