Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

[Linux][a11y] implement AtkText::get_text/string_at_offset() #38144

Merged
merged 6 commits into from
Jun 7, 2023

Conversation

jpnurmi
Copy link
Member

@jpnurmi jpnurmi commented Dec 8, 2022

This PR implements AtkText::get_string_at_offset() (and the deprecated AtkText::get_text_at_offset() still used by e.g. Orca) for FlAccessibleTextField to allow Orca to read out loud the current character while moving the text cursor around.

Before (unmute to hear the screen reader)

textfield-a11y-before.webm

After (unmute to hear the screen reader)

textfield-a11y-after.webm

Fixes: flutter/flutter#113049

Pre-launch Checklist

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • I read the Tree Hygiene wiki page, which explains my responsibilities.
  • I read and followed the Flutter Style Guide and the C++, Objective-C, Java style guides.
  • I listed at least one issue that this PR fixes in the description above.
  • I added new tests to check the change I am making or feature I am adding, or Hixie said the PR is test-exempt. See testing the engine for instructions on writing and running engine tests.
  • I updated/added relevant documentation (doc comments with ///).
  • I signed the CLA.
  • All existing and new tests are passing.

Copy link
Contributor

@robert-ancell robert-ancell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@jpnurmi
Copy link
Member Author

jpnurmi commented Dec 9, 2022

Linux Unopt CI job failed because of indirect memory leaks. I can reproduce the fontconfig leaks with:

#include <cairo/cairo.h>
#include <fontconfig/fontconfig.h>
#include <pango/pango.h>
#include <pango/pangocairo.h>

int main()
{
    PangoFontMap* font_map = pango_cairo_font_map_get_default();

    PangoContext* context = pango_font_map_create_context(font_map);
    pango_context_set_base_dir(context, PANGO_DIRECTION_LTR);

    PangoLayout* layout = pango_layout_new(context);
    pango_layout_set_text(layout, "Lorem ipsum dolor sit amet.", -1);

    gint n_attrs = 0;
    pango_layout_get_log_attrs_readonly(layout, &n_attrs);

    g_object_unref(context);
    g_object_unref(layout);

    //cairo_debug_reset_static_data(); // cairo-hash.c:217: _cairo_hash_table_destroy: Assertion `hash_table->live_entries == 0' failed.

    //FcFini(); // fccache.c:801: FcCacheFini: Assertion `fcCacheChains[i] == NULL' failed.
}
=================================================================
==661327==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 2560 byte(s) in 4 object(s) allocated from:
    #0 0x557f9e5bf1a6 in __interceptor_realloc (/home/jpnurmi/Temp/pango-test/pango-test+0xa41a6) (BuildId: 685597842a2e40c7906d33c2793590f2c36cd54f)
    #1 0x7f30b5df6ba0 in FcPatternObjectInsertElt /build/fontconfig-Aho6Ty/fontconfig-2.13.1/src/fcpat.c:536:24

Direct leak of 256 byte(s) in 1 object(s) allocated from:
    #0 0x557f9e5bed7e in malloc (/home/jpnurmi/Temp/pango-test/pango-test+0xa3d7e) (BuildId: 685597842a2e40c7906d33c2793590f2c36cd54f)
    #1 0x7f30b5df6b01 in FcPatternObjectInsertElt /build/fontconfig-Aho6Ty/fontconfig-2.13.1/src/fcpat.c:545:24

Indirect leak of 8224 byte(s) in 257 object(s) allocated from:
    #0 0x557f9e5bed7e in malloc (/home/jpnurmi/Temp/pango-test/pango-test+0xa3d7e) (BuildId: 685597842a2e40c7906d33c2793590f2c36cd54f)
    #1 0x7f30b5de389f in FcConfigValues /build/fontconfig-Aho6Ty/fontconfig-2.13.1/src/fccfg.c:1374:25

Indirect leak of 2967 byte(s) in 247 object(s) allocated from:
    #0 0x557f9e5a90b3 in __interceptor_strdup (/home/jpnurmi/Temp/pango-test/pango-test+0x8e0b3) (BuildId: 685597842a2e40c7906d33c2793590f2c36cd54f)
    #1 0x7f30b5de2f5a in IA__FcValueSave /build/fontconfig-Aho6Ty/fontconfig-2.13.1/src/fcpat.c:103:10
    #2 0x7f30b5de2f5a in FcConfigEvaluate /build/fontconfig-Aho6Ty/fontconfig-2.13.1/src/fccfg.c:996:6

Indirect leak of 2272 byte(s) in 71 object(s) allocated from:
    #0 0x557f9e5bef68 in __interceptor_calloc (/home/jpnurmi/Temp/pango-test/pango-test+0xa3f68) (BuildId: 685597842a2e40c7906d33c2793590f2c36cd54f)
    #1 0x7f30b5df95fe in FcValueListCreate /build/fontconfig-Aho6Ty/fontconfig-2.13.1/src/fcpat.c:136:12
    #2 0x7f30b5df95fe in FcPatternObjectAddWithBinding /build/fontconfig-Aho6Ty/fontconfig-2.13.1/src/fcpat.c:707:11

Indirect leak of 1600 byte(s) in 50 object(s) allocated from:
    #0 0x557f9e5bef68 in __interceptor_calloc (/home/jpnurmi/Temp/pango-test/pango-test+0xa3f68) (BuildId: 685597842a2e40c7906d33c2793590f2c36cd54f)
    #1 0x7f30b5df673a in FcValueListCreate /build/fontconfig-Aho6Ty/fontconfig-2.13.1/src/fcpat.c:136:12
    #2 0x7f30b5df673a in FcValueListDuplicate /build/fontconfig-Aho6Ty/fontconfig-2.13.1/src/fcpat.c:230:16

Indirect leak of 447 byte(s) in 46 object(s) allocated from:
    #0 0x557f9e5a90b3 in __interceptor_strdup (/home/jpnurmi/Temp/pango-test/pango-test+0x8e0b3) (BuildId: 685597842a2e40c7906d33c2793590f2c36cd54f)
    #1 0x7f30b5df65d7 in FcValueSave /build/fontconfig-Aho6Ty/fontconfig-2.13.1/src/fcpat.c:103:10

Indirect leak of 192 byte(s) in 6 object(s) allocated from:
    #0 0x557f9e5bef68 in __interceptor_calloc (/home/jpnurmi/Temp/pango-test/pango-test+0xa3f68) (BuildId: 685597842a2e40c7906d33c2793590f2c36cd54f)
    #1 0x7f30b5dff1ee in FcValueListCreate /build/fontconfig-Aho6Ty/fontconfig-2.13.1/src/fcpat.c:136:12
    #2 0x7f30b5dff1ee in FcValueListPrepend /build/fontconfig-Aho6Ty/fontconfig-2.13.1/src/fcpat.c:180:11
    #3 0x7f30b5dff1ee in FcFontRenderPrepare /build/fontconfig-Aho6Ty/fontconfig-2.13.1/src/fcmatch.c:601:13

Indirect leak of 192 byte(s) in 6 object(s) allocated from:
    #0 0x557f9e5bef68 in __interceptor_calloc (/home/jpnurmi/Temp/pango-test/pango-test+0xa3f68) (BuildId: 685597842a2e40c7906d33c2793590f2c36cd54f)
    #1 0x7f30b5dff18d in FcValueListCreate /build/fontconfig-Aho6Ty/fontconfig-2.13.1/src/fcpat.c:136:12
    #2 0x7f30b5dff18d in FcValueListPrepend /build/fontconfig-Aho6Ty/fontconfig-2.13.1/src/fcpat.c:180:11
    #3 0x7f30b5dff18d in FcFontRenderPrepare /build/fontconfig-Aho6Ty/fontconfig-2.13.1/src/fcmatch.c:597:13

Indirect leak of 96 byte(s) in 2 object(s) allocated from:
    #0 0x557f9e5bed7e in malloc (/home/jpnurmi/Temp/pango-test/pango-test+0xa3d7e) (BuildId: 685597842a2e40c7906d33c2793590f2c36cd54f)
    #1 0x7f30b5dedc24 in IA__FcLangSetCreate /build/fontconfig-Aho6Ty/fontconfig-2.13.1/src/fclang.c:476:10
    #2 0x7f30b5dedc24 in FcLangSetCopy /build/fontconfig-Aho6Ty/fontconfig-2.13.1/src/fclang.c:504:11

Indirect leak of 64 byte(s) in 2 object(s) allocated from:
    #0 0x557f9e5bef68 in __interceptor_calloc (/home/jpnurmi/Temp/pango-test/pango-test+0xa3f68) (BuildId: 685597842a2e40c7906d33c2793590f2c36cd54f)
    #1 0x7f30b5df66dc in FcValueListCreate /build/fontconfig-Aho6Ty/fontconfig-2.13.1/src/fcpat.c:136:12
    #2 0x7f30b5df66dc in FcValueListDuplicate /build/fontconfig-Aho6Ty/fontconfig-2.13.1/src/fcpat.c:234:16

SUMMARY: AddressSanitizer: 18870 byte(s) leaked in 692 allocation(s).

@chinmaygarde
Copy link
Member

Was this leak related to the patch?

@jpnurmi
Copy link
Member Author

jpnurmi commented Dec 27, 2022

Yeah, the leak is related to this patch. An indirect dependency (libfontconfig) leaks some static data that I didn't find a way to reset.

@chinmaygarde
Copy link
Member

chinmaygarde commented Jan 5, 2023

If its static data in a third party dependency, we can add it to the list of suppressions to work around it. The suppressions list is at lsan_suppressions.txt here. Let's add a suppression and move on.

@chinmaygarde
Copy link
Member

The suppressions seemed to have worked but the test failure seems related to the patch.

@jpnurmi
Copy link
Member Author

jpnurmi commented Jan 13, 2023

@chinmaygarde could it be that the CI is missing libfontconfig debug symbols?

The tests are passing locally with the same build flags and sanitizers and with libfontconfig1-dbgsym installed:

$ fle-test --gtest_filter="*FlAccessibleTextField*"
[INFO:test_timeout_listener.cc(76)] Test timeout of 120 seconds per test case will be enforced.
Note: Google Test filter = *FlAccessibleTextField*
[==========] Running 16 tests from 1 test suite.
[----------] Global test environment set-up.
[----------] 16 tests from FlAccessibleTextFieldTest
[ RUN      ] FlAccessibleTextFieldTest.SetValue
[       OK ] FlAccessibleTextFieldTest.SetValue (9 ms)
[ RUN      ] FlAccessibleTextFieldTest.SetTextSelection
[       OK ] FlAccessibleTextFieldTest.SetTextSelection (5 ms)
[ RUN      ] FlAccessibleTextFieldTest.PerformAction
[       OK ] FlAccessibleTextFieldTest.PerformAction (4 ms)
[ RUN      ] FlAccessibleTextFieldTest.GetCharacterCount
[       OK ] FlAccessibleTextFieldTest.GetCharacterCount (3 ms)
[ RUN      ] FlAccessibleTextFieldTest.GetText
[       OK ] FlAccessibleTextFieldTest.GetText (4 ms)
[ RUN      ] FlAccessibleTextFieldTest.GetCaretOffset
[       OK ] FlAccessibleTextFieldTest.GetCaretOffset (5 ms)
[ RUN      ] FlAccessibleTextFieldTest.SetCaretOffset
[       OK ] FlAccessibleTextFieldTest.SetCaretOffset (4 ms)
[ RUN      ] FlAccessibleTextFieldTest.GetNSelections
[       OK ] FlAccessibleTextFieldTest.GetNSelections (6 ms)
[ RUN      ] FlAccessibleTextFieldTest.GetSelection
[       OK ] FlAccessibleTextFieldTest.GetSelection (8 ms)
[ RUN      ] FlAccessibleTextFieldTest.AddSelection
[       OK ] FlAccessibleTextFieldTest.AddSelection (9 ms)
[ RUN      ] FlAccessibleTextFieldTest.RemoveSelection
[       OK ] FlAccessibleTextFieldTest.RemoveSelection (8 ms)
[ RUN      ] FlAccessibleTextFieldTest.SetSelection
[       OK ] FlAccessibleTextFieldTest.SetSelection (10 ms)
[ RUN      ] FlAccessibleTextFieldTest.SetTextContents
[       OK ] FlAccessibleTextFieldTest.SetTextContents (15 ms)
[ RUN      ] FlAccessibleTextFieldTest.InsertDeleteText
[       OK ] FlAccessibleTextFieldTest.InsertDeleteText (18 ms)
[ RUN      ] FlAccessibleTextFieldTest.CopyCutPasteText
[       OK ] FlAccessibleTextFieldTest.CopyCutPasteText (15 ms)
[ RUN      ] FlAccessibleTextFieldTest.TextBoundary
[       OK ] FlAccessibleTextFieldTest.TextBoundary (64 ms)
[----------] 16 tests from FlAccessibleTextFieldTest (197 ms total)

[----------] Global test environment tear-down
[==========] 16 tests from 1 test suite ran. (197 ms total)
[  PASSED  ] 16 tests.
-----------------------------------------------------
Suppressions used:
  count      bytes template
   1027      27939 Fc*
-----------------------------------------------------

If I uninstall libfontconfig1-dbgsym, I get similar results than the CI:

$ fle-test --gtest_filter="*FlAccessibleTextField*"
[INFO:test_timeout_listener.cc(76)] Test timeout of 120 seconds per test case will be enforced.
Note: Google Test filter = *FlAccessibleTextField*
[==========] Running 16 tests from 1 test suite.
[----------] Global test environment set-up.
[----------] 16 tests from FlAccessibleTextFieldTest
[ RUN      ] FlAccessibleTextFieldTest.SetValue
[       OK ] FlAccessibleTextFieldTest.SetValue (11 ms)
[ RUN      ] FlAccessibleTextFieldTest.SetTextSelection
[       OK ] FlAccessibleTextFieldTest.SetTextSelection (3 ms)
[ RUN      ] FlAccessibleTextFieldTest.PerformAction
[       OK ] FlAccessibleTextFieldTest.PerformAction (3 ms)
[ RUN      ] FlAccessibleTextFieldTest.GetCharacterCount
[       OK ] FlAccessibleTextFieldTest.GetCharacterCount (4 ms)
[ RUN      ] FlAccessibleTextFieldTest.GetText
[       OK ] FlAccessibleTextFieldTest.GetText (5 ms)
[ RUN      ] FlAccessibleTextFieldTest.GetCaretOffset
[       OK ] FlAccessibleTextFieldTest.GetCaretOffset (6 ms)
[ RUN      ] FlAccessibleTextFieldTest.SetCaretOffset
[       OK ] FlAccessibleTextFieldTest.SetCaretOffset (7 ms)
[ RUN      ] FlAccessibleTextFieldTest.GetNSelections
[       OK ] FlAccessibleTextFieldTest.GetNSelections (10 ms)
[ RUN      ] FlAccessibleTextFieldTest.GetSelection
[       OK ] FlAccessibleTextFieldTest.GetSelection (16 ms)
[ RUN      ] FlAccessibleTextFieldTest.AddSelection
[       OK ] FlAccessibleTextFieldTest.AddSelection (19 ms)
[ RUN      ] FlAccessibleTextFieldTest.RemoveSelection
[       OK ] FlAccessibleTextFieldTest.RemoveSelection (16 ms)
[ RUN      ] FlAccessibleTextFieldTest.SetSelection
[       OK ] FlAccessibleTextFieldTest.SetSelection (13 ms)
[ RUN      ] FlAccessibleTextFieldTest.SetTextContents
[       OK ] FlAccessibleTextFieldTest.SetTextContents (14 ms)
[ RUN      ] FlAccessibleTextFieldTest.InsertDeleteText
[       OK ] FlAccessibleTextFieldTest.InsertDeleteText (11 ms)
[ RUN      ] FlAccessibleTextFieldTest.CopyCutPasteText
[       OK ] FlAccessibleTextFieldTest.CopyCutPasteText (10 ms)
[ RUN      ] FlAccessibleTextFieldTest.TextBoundary
[       OK ] FlAccessibleTextFieldTest.TextBoundary (54 ms)
[----------] 16 tests from FlAccessibleTextFieldTest (216 ms total)

[----------] Global test environment tear-down
[==========] 16 tests from 1 test suite ran. (216 ms total)
[  PASSED  ] 16 tests.

=================================================================
==497613==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 3840 byte(s) in 6 object(s) allocated from:
    #0 0x555ec77521f8 in __interceptor_realloc (/home/jpnurmi/Projects/flutter/engine/src/out/host_debug_unopt/flutter_linux_unittests+0x27b21f8) (BuildId: 2969a0e1625b6bd5644513c6a4bee2f1d698cf77)
    #1 0x7fc54c419ba0  (/lib/x86_64-linux-gnu/libfontconfig.so.1+0x1fba0) (BuildId: ce289bdc2072549c61ee8b046ce1b3d42cab36be)

Direct leak of 256 byte(s) in 1 object(s) allocated from:
    #0 0x555ec7751dce in malloc (/home/jpnurmi/Projects/flutter/engine/src/out/host_debug_unopt/flutter_linux_unittests+0x27b1dce) (BuildId: 2969a0e1625b6bd5644513c6a4bee2f1d698cf77)
    #1 0x7fc54c419b01  (/lib/x86_64-linux-gnu/libfontconfig.so.1+0x1fb01) (BuildId: ce289bdc2072549c61ee8b046ce1b3d42cab36be)

Indirect leak of 12192 byte(s) in 381 object(s) allocated from:
    #0 0x555ec7751dce in malloc (/home/jpnurmi/Projects/flutter/engine/src/out/host_debug_unopt/flutter_linux_unittests+0x27b1dce) (BuildId: 2969a0e1625b6bd5644513c6a4bee2f1d698cf77)
    #1 0x7fc54c40689f  (/lib/x86_64-linux-gnu/libfontconfig.so.1+0xc89f) (BuildId: ce289bdc2072549c61ee8b046ce1b3d42cab36be)

Indirect leak of 4493 byte(s) in 372 object(s) allocated from:
    #0 0x555ec773bd50 in strdup (/home/jpnurmi/Projects/flutter/engine/src/out/host_debug_unopt/flutter_linux_unittests+0x279bd50) (BuildId: 2969a0e1625b6bd5644513c6a4bee2f1d698cf77)
    #1 0x7fc54c405f5a  (/lib/x86_64-linux-gnu/libfontconfig.so.1+0xbf5a) (BuildId: ce289bdc2072549c61ee8b046ce1b3d42cab36be)

Indirect leak of 3360 byte(s) in 105 object(s) allocated from:
    #0 0x555ec7751fb8 in calloc (/home/jpnurmi/Projects/flutter/engine/src/out/host_debug_unopt/flutter_linux_unittests+0x27b1fb8) (BuildId: 2969a0e1625b6bd5644513c6a4bee2f1d698cf77)
    #1 0x7fc54c41c5fe  (/lib/x86_64-linux-gnu/libfontconfig.so.1+0x225fe) (BuildId: ce289bdc2072549c61ee8b046ce1b3d42cab36be)

Indirect leak of 2304 byte(s) in 72 object(s) allocated from:
    #0 0x555ec7751fb8 in calloc (/home/jpnurmi/Projects/flutter/engine/src/out/host_debug_unopt/flutter_linux_unittests+0x27b1fb8) (BuildId: 2969a0e1625b6bd5644513c6a4bee2f1d698cf77)
    #1 0x7fc54c41973a  (/lib/x86_64-linux-gnu/libfontconfig.so.1+0x1f73a) (BuildId: ce289bdc2072549c61ee8b046ce1b3d42cab36be)

-----------------------------------------------------
Suppressions used:
  count      bytes template
     90       1494 Fc*
-----------------------------------------------------

SUMMARY: AddressSanitizer: 26445 byte(s) leaked in 937 allocation(s).

@chinmaygarde
Copy link
Member

Not sure. cc @cbracken might know.

@zanderso
Copy link
Member

zanderso commented Feb 2, 2023

@chinmaygarde @cbracken @jason-simmons Do we know why fontconfig is dynamically linked? Looks like we're DEPSing it in here https://github.com/flutter/engine/blob/main/DEPS#L578.

@cbracken
Copy link
Member

cbracken commented Feb 2, 2023

I think the TL;DR is that what's going on is a static allocation in libfontconfig that's being caught by asan, but because it's not built with debug symbols availabole, we're unable to filter it out in our allow-list. If we're building fontconfig ourselves, then we can probably just update build flags for the debug build, assuming we're not running sanitisers on non-debug builds.

@chinmaygarde
Copy link
Member

If we're building fontconfig ourselves

Are we building it ourselves? I don't see build rules for it.

@chinmaygarde
Copy link
Member

cc @cbracken. This seems to have been blocked for a while. I am not sure how to make progress here. Can you please take a look at this when you get a chance please?

@chinmaygarde
Copy link
Member

Closing as stale.

@jpnurmi jpnurmi reopened this May 25, 2023
@jpnurmi
Copy link
Member Author

jpnurmi commented May 25, 2023

Testing if #40725 helped

@chinmaygarde
Copy link
Member

I don't think it did. Can we asses the scope of the leak and suppress it and investigate in a followup?

@jpnurmi
Copy link
Member Author

jpnurmi commented Jun 1, 2023

libfontconfig is now dynamically linked but debug symbols are still not there so suppressing Fc* symbols wouldn't work. I came across this in build/sanitizers/lsan_suppressions.cc which doesn't need debug symbols.

// False positives in libfontconfig. http://crbug.com/39050
"leak:libfontconfig\n"

@jpnurmi jpnurmi requested a review from cbracken June 2, 2023 16:16
Copy link
Member

@cbracken cbracken left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

re-lgtm!

@cbracken cbracken added the autosubmit Merge PR when tree becomes green via auto submit App label Jun 7, 2023
@auto-submit auto-submit bot merged commit 671a846 into flutter:main Jun 7, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jun 7, 2023
zanderso pushed a commit to flutter/flutter that referenced this pull request Jun 7, 2023
…128460)

flutter/engine@4f4486b...1089ce6

2023-06-07 jonahwilliams@google.com [Impeller] Add buffer to texture
blit for Vulkan. (flutter/engine#41706)
2023-06-07 chris@bracken.jp [macOS] Add platformview creation parameter
support (flutter/engine#42607)
2023-06-07 30870216+gaaclarke@users.noreply.github.com [Impeller] Added
a switch to turn on vulkan (flutter/engine#42585)
2023-06-07 skia-flutter-autoroll@skia.org Roll ANGLE from f8220fa3a729
to 15a29438b099 (1 revision) (flutter/engine#42627)
2023-06-07 jacksongardner@google.com Bump Chrome version to 114 for
testing (flutter/engine#42623)
2023-06-07 skia-flutter-autoroll@skia.org Roll Skia from d607cbb0db78 to
773765ca1dd2 (7 revisions) (flutter/engine#42624)
2023-06-07 jpnurmi@gmail.com [Linux][a11y] implement
AtkText::get_text/string_at_offset() (flutter/engine#38144)
2023-06-07 skia-flutter-autoroll@skia.org Roll ANGLE from 176989ad00cc
to f8220fa3a729 (1 revision) (flutter/engine#42621)
2023-06-07 skia-flutter-autoroll@skia.org Roll Skia from ee90e9ae2e62 to
d607cbb0db78 (1 revision) (flutter/engine#42618)
2023-06-07 skia-flutter-autoroll@skia.org Roll ANGLE from 1ad4ae4d63bf
to 176989ad00cc (1 revision) (flutter/engine#42617)
2023-06-07 dkwingsmt@users.noreply.github.com Revert "[Android] Return
keyboard pressed state" (flutter/engine#42616)
2023-06-07 skia-flutter-autoroll@skia.org Roll Skia from bde894438f29 to
ee90e9ae2e62 (1 revision) (flutter/engine#42614)
2023-06-07 skia-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from
lpbkSRJBMkPs0FM7_... to sEHtHM1iFt79roP-x... (flutter/engine#42613)
2023-06-07 skia-flutter-autoroll@skia.org Roll Skia from cd3e1665dcd1 to
bde894438f29 (1 revision) (flutter/engine#42612)
2023-06-07 skia-flutter-autoroll@skia.org Roll ANGLE from 16841d6256da
to 1ad4ae4d63bf (1 revision) (flutter/engine#42611)
2023-06-07 bdero@google.com [Impeller] Reland 2: Add Impeller Metal
support in the embedder API (#42411) (flutter/engine#42597)
2023-06-07 skia-flutter-autoroll@skia.org Roll Skia from a01f49f539ab to
cd3e1665dcd1 (1 revision) (flutter/engine#42610)
2023-06-07 skia-flutter-autoroll@skia.org Roll Fuchsia Mac SDK from
atrYtfHWi2cmV9B_C... to ojwVlxZWrbsG4WGSE... (flutter/engine#42609)
2023-06-07 skia-flutter-autoroll@skia.org Roll Skia from 521b8c4bb011 to
a01f49f539ab (4 revisions) (flutter/engine#42608)
2023-06-07 skia-flutter-autoroll@skia.org Roll Skia from cef18d10b363 to
521b8c4bb011 (1 revision) (flutter/engine#42605)

Also rolling transitive DEPS:
  fuchsia/sdk/core/linux-amd64 from lpbkSRJBMkPs to sEHtHM1iFt79
  fuchsia/sdk/core/mac-amd64 from atrYtfHWi2cm to ojwVlxZWrbsG

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC jacksongardner@google.com,rmistry@google.com,zra@google.com on
the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
@jpnurmi jpnurmi deleted the atk-text-get-string-at-offset branch July 1, 2023 07:00
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
autosubmit Merge PR when tree becomes green via auto submit App platform-linux
Projects
None yet
Development

Successfully merging this pull request may close these issues.

TextField accessibility on Linux
5 participants