This CL scopes the ARIA Notify API to accept only a string
`announcement` and a ax::mojom::AriaNotificationPriority `priority`
(values of which can be "high" or "normal", with "normal" being the
default value).
This API shape will serve as V1 of the feature, as agreed upon by the
ARIA working group: https://github.com/w3c/aria/issues/2426
Future versions of the API may include properties of `interrupt` and
`notification_id` (soon to be renamed `type`). More information about
these properties, and the feature in general, can be found in the
explainer:
https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/Accessibility/AriaNotify/explainer.md
This CL gates the use of `interrupt` and `notification_id` behind the
"AriaNotifyV2" feature flag. As part of the process of serializing the
ARIA notification attributes, `notification_id` will be passed to the
AXNodeData as an empty string and `interrupt` will be passed as kNone
unless the AriaNotifyV2 flag is enabled.
We cannot even read the value of the `notification_id` or `interrupt`
properties that may be passed by the web author as a part of V1 -- if we
don't avoid reading the properties, then feature detection for those
properties will be enabled. See more:
https://github.com/w3c/aria/issues/2426#issuecomment-2634700360
This CL also adds new tests that use the AriaNotifyV2 feature flag.
AX-Relnotes: This feature is behind a feature flag so it should not
impact the experience of users who are not enabling the flag.
Bug: 326277796
Change-Id: Id72dab40aea10daab3449bd32d2ab99a3746d76d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6306426
Reviewed-by: Alison Maher <almaher@microsoft.com>
Commit-Queue: Evelynn Kaplan <evelynn.kaplan@microsoft.com>
Reviewed-by: Benjamin Beaudry <benjamin.beaudry@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#1431762}
A few cleanups and quality-of-life improvements for GVariantRef:
* Remove iteration functionality from gvariant::Type. It was not
entirely obvious what iterating should mean for a type string.
Explicitly getting a string_view to iterate makes it clear that one
is iterating characters.
* Update various usages of pointers to instead use std::string_views or
base::spans in gvariant::Type.
* Add GVariantFrom() helper function to infer the GVariant type string
from the passed C++ types. E.g., GVariantFrom("foo") returns a
GVariantRef<"s">.
* Add BoxedRef() and FilledMaybeRef() helper functions to more easily
wrap a reference to an existing value.
* Introduce ObjectPathCStr and TypeSignatureCStr, which reference an
unowned string that is known to be a valid object path or type
signature, respectively. They can reference a constant string (which
will be verified at compile time to be valid) or an owned ObjectPath
or TypeSignature object, and are thus useful as function parameters.
Bug: 378932951
Change-Id: Idf625de0caf5b711c477da12d34a0d2a0a2306b8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6334519
Commit-Queue: Erik Jensen <rkjnsn@chromium.org>
Reviewed-by: Lambros Lambrou <lambroslambrou@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1431759}
This is part 2 of 6 of relanding code that was originally landed in
crrev.com/c/6309053 but was reverted.
This CL adds methods to the DownloadProtectionDelegate interface to
allow the delegate to specify platform-specific behavior for
1) sampled pings for allowlisted downloads, and 2) sampled pings for
unsupported file types.
For Android download protection, these are both disabled:
1) sampling allowlisted downloads does not yet make sense because the
allowlist check is not yet implemented for Android download protection
(it will be in the future);
2) sampled pings for unsupported file types are not supported.
There is no behavior change for download protection on desktop
platforms.
Bug: 397407934
Change-Id: Id61a148fa6a2a88ada60c05a4193510fa01c532d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6341930
Commit-Queue: Lily Chen <chlily@chromium.org>
Reviewed-by: Daniel Rubery <drubery@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1431755}
During scrolling, it is very common to have a compositor frame that
needs no raster. This is the case for instance when the page is static,
and we do not need a new prepaint tile. In this case, we still add three
completion tasks to the task graph, and run them on the thread pool (on
a single thread, because they are NONCONCURRENT).
This CL runs the tasks directly if they are the only required
tasks. This saves quite a bit of overhead, and 2 thread hops (compositor
-> thread pool -> compositor) per frame. From local testing, this back
and forth often takes 800us-1ms even on a relatively simple page.
Change-Id: Ic889eddbc0d121770563fb6b0fa01f4194564972
Bug: 40419088
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6330735
Reviewed-by: Jonathan Ross <jonross@chromium.org>
Reviewed-by: Victor Miura <vmiura@chromium.org>
Commit-Queue: Benoit Lize <lizeb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1431753}
This CL uses `GapIntersections` set up from crrev.com/c/6313080 to paint
gap decorations within grid. Gap decorations are painted based on
(start, end) pairs of GapIntersection points. Hence, this change uses
these intersection points stored in the gap geometry for painting.
Currently, this CL does not account for the `*-rule-break` and
`*-rule-outset` properties, meaning gap decorations are painted from the
first intersection to the last intersection within a gap (i.e.
rule-break: none).
Tests that exercise this CL were added in crrev.com/c/6101656 and
augmented in crrev.com/c/6300029.
Subsequent CLs will augment the paint code to factor in `rule-break` and
`rule-outset` properties and eventually clean up the old implementation
of gap geometry.
Bug: 357648037
Change-Id: Ice50a0cf2bb9281c44fb0517f83ad07167bb0516
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6321085
Reviewed-by: Kevin Babbitt <kbabbitt@microsoft.com>
Reviewed-by: Alison Maher <almaher@microsoft.com>
Commit-Queue: Sam Davis Omekara <samomekarajr@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#1431747}
This only works for Mac; more changes are needed for Windows.
No attempt is made yet to prevent automatic bounds changes during
manual resizing, nor to enforce minimum or maximum sizes.
Bug: 402795394
Change-Id: I1fdea39e1a54887775a7c7d39c6671a25221bcd0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6349300
Commit-Queue: Ian Wells <iwells@chromium.org>
Reviewed-by: Erik Chen <erikchen@chromium.org>
Auto-Submit: Ian Wells <iwells@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1431741}
query_history_continuation_ should always be set when it is run as it
runs onScrolledToBotton of the History UI and is set during the init.
However, sometimes it is not. While this doesn't fix the root cause it
should prevent the crashes.
Bug: 401529290
Change-Id: I1c38f7cee3d2c00d0dd66dac81cd766a992a934b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6347837
Reviewed-by: John Lee <johntlee@chromium.org>
Commit-Queue: Marlon Facey <mfacey@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1431740}
It previously used absl::variant, which appears not to be as constexpr
friendly. E.g., it is possible for a constexpr function to return
base::expected<void, std::string> when using std::variant, but not when
using absl::variant.
Additionally adds the include for absl::variant to a few files that were
previously relying on it being included transitively via
base/types/expected.h so they continue to compile, and removes one
instance of an unused variable that the compiler can properly detect now
that std::variant is used.
Change-Id: Ibab13382202c69fd45c5aff318e8f56b3ac0d30f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6345816
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Erik Jensen <rkjnsn@chromium.org>
Owners-Override: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1431735}
Kept an instance of NullUnmarked for MockPersistedTabData as it passes
null for a callback that production code expects to be non-null. This
should likely be fixed in the test instead of adding a ton of
unnecessary null checks in production code.
Patch 1: automated annotator
Patch 2: manual changes
Patch 3: formatting
Patch 4: commit description update
Patch 5: add a ton of manual fixes
Patch 6: fix a test
Patch 7: commit description update
Bug: 389129271
Change-Id: I4081876927bcd87ccbe1baa34004b093937d378a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6344014
Auto-Submit: Peter Wen <wnwen@chromium.org>
Owners-Override: Peter Wen <wnwen@chromium.org>
Reviewed-by: Martin Kong <martinkong@google.com>
Commit-Queue: Peter Wen <wnwen@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1431732}
Since the target that defines these files in the org.chromium package
also define chromium_code=false, the annotator does not annotate them,
so we can ignore them for the time being as potential targets to
annotate.
Add various levels of verbosity and documentation printed at the end of
each run to make it easier to understand what the numbers mean.
R=martinkong@google.com
Bug: 389129271
Change-Id: I1f0fa8c102126f6d8d69ec18f4c18cdcaa5c2145
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6347918
Auto-Submit: Peter Wen <wnwen@chromium.org>
Commit-Queue: Martin Kong <martinkong@google.com>
Reviewed-by: Martin Kong <martinkong@google.com>
Cr-Commit-Position: refs/heads/main@{#1431728}
The SendTabToSelfToolbarIconController was previously only created when
retrieved for the first time, prior to the toolbar pinning clean up this
was not a problem since the SendTabToSelfToolbarIconView retrieved it in
its constructor. When the SendTabToSelfToolbarIconView was deleted the
controller was no longer being created, since it acts as the
BrowserListObserver and triggers the bubble/button to show this meant
that they were not being triggered to show. This cl forces the
controller to be created for all applicable browsers and adds a
regression test.
Bug: 402388541
Change-Id: Ic202a41dca0fa29e4cc9242e876f27d79759af39
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6345733
Reviewed-by: Victor Vianna <victorvianna@google.com>
Commit-Queue: Caroline Rising <corising@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1431725}
When the bot was initially configured, "--enable-feature" was
incorrectly used when it should have been "--enable-features". This CL
fixes that. Since it's possible the bot won't stay green with this
change, temporarily disable its ability to close the tree.
Bug: 40259221
Change-Id: Ida766b469d92a624bdc53610f16f504bac2bbe37
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6347936
Commit-Queue: James Maclean <wjmaclean@chromium.org>
Reviewed-by: Ben Pastene <bpastene@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1431720}
Right now, there are two ExtensionApiTest implementations, which are
nearly identical. Compile the "main" ExtensionApiTest implementation on
Desktop Android.
One complication here is that the subclasses of ExtensionApiTest (i.e.,
individual test suites) may rely on functionality in
ExtensionBrowserTest, which is still unavailable in Android. Solve this
by having ExtensionApiTest inherit from ExtensionPlatformBrowserTest on
Desktop Android builds, and ExtensionBrowserTest on other builds. While
this does make the inheritance tree a little more complex, in practice,
this is what users on ExtensionPlatformApiTest are already doing (since
ExtensionApiTest inherits from ExtensionBrowserTest, while
ExtensionPlatformApiTest inherits from ExtensionPlatformBrowserTest).
After this inheritance change, modifying the rest of ExtensionApiTest
to compile is fairly straightforward, either compiling with no
changes or trivial modifications, or being cleanly separated by other
features (like platform apps). The one exception to this is the method
to open a URL, which has different implementations on desktop android
and other platforms. To accommodate this, introduce an
ExtensionBrowserTestPlatformDelegate, which can be responsible for
handling these so that we isolate the platform-specific code and avoid
adding lots of if-defs in the other test classes. In the future, this
can be used in ExtensionPlatformBrowserTest to clean it up a bit.
This CL paves the way for getting rid of DesktopAndroidExtensionApiTest.
Bug: 401522580
Change-Id: I9ff3d1deb9f5fdb0b09c65392d1928286fdbe791
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6335690
Reviewed-by: David Bertoni <dbertoni@chromium.org>
Commit-Queue: Devlin Cronin <rdevlin.cronin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1431718}
All callsites of SharedImageInterface::Flush have been removed since
the Flush now happens as a delayed post task when the client shared
image is destroyed.
This change removes SharedImageInterface::Flush and its associated
implementations.
Bug: 399387909
Change-Id: Iffc41457a39cfef13de6e92efe7e7e327bea63d3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6348176
Commit-Queue: Saifuddin Hitawala <hitawala@chromium.org>
Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1431714}