Chromium change:
https://chromium.googlesource.com/chromium/src/+/18371dfa10268ba754ca5cbd75beda9038f82503
[omnibox] Rename Android secure state icons to reflect their function.
The omnibox secure state indicator was refreshed last year to show a page info icon instead of a lock icon. As of https://crrev.com/c/5982459, the refreshed state became the only state for the omnibox indicator but the icon was still named "refresh" and the old lock icon was still in use in other surfaces.
This CL changes the icon names to "page_info" and "lock" to clearly distinguish them.
Change-Id: Ic7175efccbed0dbbd1523827873b26c4209b4e67
This interferes with our own overriding of these functions.
Chromium change:
https://chromium.googlesource.com/chromium/src/+/592492865d6da30f5835d50ac06bde0e156baca1
commit 592492865d6da30f5835d50ac06bde0e156baca1
Author: Christoph Schwering <schwering@google.com>
Date: Fri Nov 22 12:40:48 2024 +0000
[Autofill] Mark {Android,Chrome}AutofillClient functions as final
{Android,Chrome}AutofillClient do several virtual function calls
during construction. It's hard to keep an overview because they
pass references to themselves to their members, which may in turn
call functions from the AutofillClient.
The best solution would be an Init() function or a factory, but
that'd be a bigger change and may come with its own challenges.
As an alternative, this CL marks almost all functions as `final`.
We can't mark the entire class as `final` because four tests derive
from the class. Two of those only need to expose the protected
constructor, but the other two need to override a function:
ShowAutofillSuggestions(). Overriding this is safe because it's
not called during construction or destruction.
Bug: 40100455
Cromium change:
https://chromium.googlesource.com/chromium/src/+/6843e247ba75da6d5c46adf72599d719537de7d3
commit 6843e247ba75da6d5c46adf72599d719537de7d3
Author: mark a. foltz <mfoltz@chromium.org>
Date: Fri Nov 22 23:20:04 2024 +0000
[Media Router] Removes GlobalMediaControlsStartStop feature and flag.
The feature was enabled by default everywhere in M123 and the
flag expired in M130.
This required some refactoring of the Media Router browser tests,
which were written to run on both the GMC and Harmony Cast dialogs.
Since the latter is only used for mirroring, the tests only need
to run on the GMC dialog.
Bug: 380369297
Fixed: 361122370
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/5bc342f6ad23504c31e6926ad2689b81ebea9760
commit 5bc342f6ad23504c31e6926ad2689b81ebea9760
Author: Alex Yang <aycyang@chromium.org>
Date: Wed Nov 20 19:51:42 2024 +0000
Move WebUI Mojo loading code to a shared location
In a future commit, this code will be re-used in the implementation of
an in-renderer resource loader, which will not be located in
//content/browser.
Bug: 362511750
Chromium change:
https://chromium.googlesource.com/chromium/src/+/d96efaa48b18dd1e919b949732858e86c7ae5e2a
[Tab Model] Make TabModel#closeTabs package private
This CL moves closeTabs to TabModelInternal making it effectively
package private.
Former callers have been migrated to go through TabRemover to ensure
proper handling of placeholder tabs and dialogs. Future callers should
also use TabRemover.
The only remaining callers are inside the tabmodel package for
TabGroupModelFilterImpl which calls this method via TabRemover
subclasses. TabGroupModelFilterImpl is involved to properly handle
hiding tab groups.
Possible future refactoring of the TabModel may extract much of the tab closure logic into TabRemover (TBD).
Bug: 345854441
This had broken an existing substitution.
Chromium change:
https://chromium.googlesource.com/chromium/src/+/0d98cc5468dbf56e44d91e7e1d0e5b1d3af63ed7
commit 0d98cc5468dbf56e44d91e7e1d0e5b1d3af63ed7
Author: Matt Reynolds <mattreynolds@google.com>
Date: Wed Nov 20 18:22:33 2024 +0000
geolocation: Rename SetHighAccuracy -> SetHighAccuracyHint
`SetHighAccuracy` gives the false impression that position estimates
returned by the service are guaranteed to have the requested accuracy
level. The actual behavior depends on the provider, and in many cases
requesting high accuracy has no effect on accuracy.
Bug: 379302634
This has broken our overrides for this function, as it renamed the
variable the override was referring to, and it now has a different type.
Chromium change:
https://chromium.googlesource.com/chromium/src/+/738dff33b71be885f30ff1ea165189e77c4449e0
commit 738dff33b71be885f30ff1ea165189e77c4449e0
Author: Alex Yang <aycyang@chromium.org>
Date: Wed Nov 20 19:50:29 2024 +0000
Move WebUI HTTP request header byte range handling to a shared location
In a future commit, this code will be re-used in the implementation of
an in-renderer resource loader, which will not be located in
//content/browser.
Bug: 36251175
This is just a simple path reorganising.
Chromium change:
https://chromium.googlesource.com/chromium/src/+/7697ee463f896649c32634d395921aa6e3ebdc9a
commit 7697ee463f896649c32634d395921aa6e3ebdc9a
Author: Florian Leimgruber <fleimgruber@google.com>
Date: Wed Nov 20 15:46:38 2024 +0000
Create components/autofill/core/browser/form_import
See go/components-autofill-restructure. This CL was auto-generated using
the following commands:
DIR=components/autofill/core/browser
mkdir $DIR/form_import
git mv $DIR/address_profile_save_manager* $DIR/form_import/
git mv $DIR/autofill_profile_import_process* $DIR/form_import/
git mv $DIR/autofill_save_update_address_profile_delegate_ios*
$DIR/form_import/
git mv $DIR/form_data_importer* $DIR/form_import/
./tools/git/mass-rename.py
git cl format
Bug: 376223525
Chromium change:
https://chromium.googlesource.com/chromium/src/+/272a97cf5dd0cb0319ce98fd6c726e4c47beda76
Create EdgeToEdgeSystemBarColorHelper in the E2EManager
With this change, the E2EManager will create the EdgeToEdgeSystemBarColorHelper for managing system bar coloring edge-to-edge. EdgeToEdgeSystemBarColorHelper will receive a supplier from ChromeBaseAppCompatActivity through the E2EManager for coloring Chrome-based system bars (as opposed to the OS system bars from the Window) - for most activities, this will be the EdgeToEdgeLayout if the edge-to-edge-everywhere flag is enabled, though the ChromeTabbedActivity will instead supply the bottom chin.
Currently, this doesn't fully support the status bar color, the EdgeToEdgeSystemBarColorHelper will have to be expanded to fully account for the status bar and top insets.
Bug: 377959835
Chromium change:
https://chromium.googlesource.com/chromium/src/+/1598764f95396242e0ddfc47e43e5133c2bd8da3
Move AccessibilitySettings to the accessibility component
This CL moves the AccessibilitySettings class to the accessibility
component: //components/browser_ui/accessibility
The class has previously been tied to //chrome/browser, even though
there was a delegate to provide embedder-specific implementations. We
have moved all deps to the delegate, and now AccessibilitySettings
depends only on //content_public/ and //components/, and we can move
this to be alongside the rest of the accessibility browser_ui files.
AX-Relnotes: N/A
Bug: 379128588
Chormium change:
https://source.chromium.org/chromium/chromium/src/+/c7c2131f0802a47d1ca20033fc4f68c33912fc9f
commit c7c2131f0802a47d1ca20033fc4f68c33912fc9f
Author: Steven Holte <holte@google.com>
Date: Tue Nov 5 21:07:37 2024 +0000
Remove IsOnDeviceModelAdaptationEnabled.
* Removes support for kModelAdaptationCompose = Disabled
* Removes support for kOnDeviceModelTestFeature with
"enable_adaptation" = false.
* Eliminates IsOnDeviceModelAdaptationEnabled as redundant with
IsOnDeviceModelEnabled.
* Consolidates IsOnDeviceModelEnabled and GetOptimizationTargetFor...,
since we don't need the target if it's not enabled.
Bug: 376754799
The signature of the changed, which is incosequential for the override
itself.
Chromium change:
https://chromium.googlesource.com/chromium/src/+/2e0675aa8312c555c8a8da67c2a62f7194ef117e
commit 2e0675aa8312c555c8a8da67c2a62f7194ef117e
Author: Christoph Schwering <schwering@google.com>
Date: Tue Nov 19 15:12:42 2024 +0000
[Autofill] Let AutofillClient::GetPersonalDataManager() return reference
This CL changes the return type of
AutofillClient::GetPersonalDataManager() from pointer to reference.
The motivation is that
- most callsites do not null-check the returned pointer, and
- luckily, no existing existing call may return a nullptr.
That is because
- ChromeAutofillClient, ChromeAutofillClientIOS, and
WebViewAutofillClientIOS always return non-nullptr, and
- AndroidAutofillClient may return nullptr but is never called.
This CL therefore makes the return type a reference and marks
AndroidAutofillClient::GetPersonalDataManager() as NOTREACHED()
(it may be erased by addressing crbug.com/378952614).
See crbug.com/379646966 for further analysis.
Bug: 379646966
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/f84431d2e5ead09c6934890eb4c11eeb3eb0c4b4
commit f84431d2e5ead09c6934890eb4c11eeb3eb0c4b4
Author: Michael Wojcicka <mwoj@google.com>
Date: Fri Nov 15 20:25:30 2024 +0000
Task Manager Refresh - Implement metrics for different opening sources
- Added 4 new browser_command ids:
- IDC_TASK_MANAGER_APP_MENU (Canonically "More Tools")
- IDC_TASK_MANAGER_CONTEXT_MENU (Right Click Menu, or Toolbar)
- IDC_TASK_MANAGER_SHORCUT (Shift/Search+Esc, or custom shortcut)
- IDC_TASK_MANAGER_MAIN_MENU (Menu bar in macOS or KDE env.)
- Tracked down all the invocation locations for TaskManager and updated
their browser_command id to the appropriate version.
- Some locations call chrome::OpenTaskManager() directly, updated those
manually to use the correct StartAction.
- Any locations that were not specified (e.g. BackgroundModeManager,
unit tests, etc.) will default to using kOther.
Bug: b:366296185
../../chrome/common/importer/firefox_importer_utils.cc:335:38: error: use of undeclared identifier 'IDS_IMPORT_FROM_ICEWEASEL'
335 | return l10n_util::GetStringUTF16(IDS_IMPORT_FROM_ICEWEASEL);
| ^
../../chrome/common/importer/firefox_importer_utils.cc:336:36: error: use of undeclared identifier 'IDS_IMPORT_FROM_FIREFOX'
336 | return l10n_util::GetStringUTF16(IDS_IMPORT_FROM_FIREFOX);
| ^
2 errors generated.
Upstream has these strings only for non-Android platforms, but we are
using the importer code on Android as well, so the string need to be
re-added for Android.
Chromium change:
https://chromium.googlesource.com/chromium/src/+/726b6623ef36168b805cafe6dfb48b2d51bc4ff6
Add toggle for v8 optimization for Android in settings
This CL adds a "v8 optimization" entry to
- The "Site settings" page
- The "Privacy and Security" page
This matches settings in desktop Chrome
BUG=378076277
Change-Id: I90b41398fccd6bd758519ce97b16182734e3e8a3
Chromium change:
https://chromium.googlesource.com/chromium/src/+/20d5954df30f7c8db5731ae2161d75fdf4630282
[Anchor] Short circuit focus animation when controls are bottom-anchored
This is one piece of a larger set of changes implementing the omnibox
focus animation for bottom-anchored toolbar. Note that it also:
* Removes old logic that inadvertently canceled the defocus animation
(woops)
* Wires a function to autocomplete allowing it to trigger its own logic
for this scenario
Bug: 369134015
Chromium change:
https://chromium.googlesource.com/chromium/src/+/6b9b09c6e2f30f30a41940fb8a259dc0abfe95c2
Reland "[clank] Set web contents visibility based on occlusion"
This is a reland of commit d9120f8afd4b64a4f5d427636347c74f735dd6b3
Original change's description:
> [clank] Set web contents visibility based on occlusion
>
> This CL uses the trusted presentation API to determine occlusion for
> clank windows and plumbs it through to web contents visibility.
>
> from Android system server
>
> Low-Coverage-Reason: HARD_TO_TEST This code interfaces with messages
> Bug: 349735915
> Test: CQ
> Change-Id: I4b6d14cd36bea6e1b56aca8714665281d0cbc76b
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5754164
> Commit-Queue: Eliot Courtney <edcourtney@chromium.org>
> Reviewed-by: Ted Choc <tedchoc@chromium.org>
> Reviewed-by: Richard (Torne) Coles <torne@chromium.org>
> Reviewed-by: David Trainor <dtrainor@chromium.org>
> Reviewed-by: Simeon Anfinrud <sanfin@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#1380048}
Low-Coverage-Reason: HARD_TO_TEST Interfaces with Android system server
Bug: 349735915
This is of no consequence, as we only use this function for a browser
test.
Chromium change:
https://chromium.googlesource.com/chromium/src/+/6698137dd207ee31e3edd31d4a2591d5c341c919
commit 6698137dd207ee31e3edd31d4a2591d5c341c919
Author: Robert Ferens <rferens@google.com>
Date: Fri Nov 15 10:37:17 2024 +0000
[AWC] Block user-initiated fullscreen in non-resizable windows
The resizable/setResizable API, when set to false, should prevent
user-initiated fullscreen requests (e.g. shortcuts, window buttons).
This CL fixes not blocked yet cases like F11 key, or ⋮-> ⛶ button
in UI (CrOS).
Technically, the condition is checked in `FullscreenController`, so all
browser (not tab) fullscreen requests going through it in non-resizable
windows are blocked. It had no direct access to `BrowserView::
CanFullscreenFromWebAPI`, so CL adds `CanUserEnterFullscreen()` method
to `ExclusiveAccessContext` implemented by BrowserView. The interface
previously contained a dual CanUserExitFullscreen() method.
Other classes implement CanUserEnterFullscreen() as `return true`
so their behavior won't change.
AWC: "Additional Windowing Controls", read more:
https://github.com/explainers-by-googlers/additional-windowing-
controls/blob/main/README.md
Design doc on fullscreen in non-resizable windows:
https://docs.google.com/document/d/
1OvzO6mEwpiuvXur6wSHbie0JvnDKIVdZDqVhJ8ushf0/edit?
tab=t.0#heading=h.y6pkfjbs82cp
Bug: 309956837, 369130644
Fixed: 361538188
ERROR at //chrome/utility/importer/bookmark_html_reader.h:12:11: Include not allowed.
#include "chrome/common/importer/importer_data_types.h"
^-------------------------------------------
It is not in any dependency of
//chrome/utility:utility
The include file is in the target(s):
//chrome/common/importer:importer
which should somehow be reachable.
___________________
ERROR at //chrome/utility/services.cc:57:11: Include not allowed.
#include "chrome/common/importer/profile_import.mojom.h"
^--------------------------------------------
It is not in any dependency of
//chrome/utility:utility
The include file is in the target(s):
//chrome/common/importer:interfaces
//chrome/common/importer:interfaces__generator
at least one of which should somehow be reachable.
Chromium change:
https://chromium.googlesource.com/chromium/src/+/ea47a4a0d7615ba215e8f23383ebb033d606adc8
commit ea47a4a0d7615ba215e8f23383ebb033d606adc8
Author: Sylvain Defresne <sdefresne@chromium.org>
Date: Wed Nov 13 14:49:11 2024 +0000
[ios] Move rest of Profile deferred initialization to ProfileController
Move the rest of the Profile initialization from MainController to
ProfileController. This ensure the code is run even for Profiles that
are loaded dynamically after the MainController is initialized.
Bug: 353683675, 40769058, 333863468
The was only one caller for it. Unfortunately we will have to rely on an
unsafe buffer read for this case, because we are retrieving this buffer
from libxml.
Chromium change:
https://chromium.googlesource.com/chromium/src/+/f179e94443e0ba171f9b3be9c9a49ebf8e52c9a5
commit f179e94443e0ba171f9b3be9c9a49ebf8e52c9a5
Author: Kent Tamura <tkent@chromium.org>
Date: Thu Nov 14 13:32:48 2024 +0000
Spanification: Remove String::FromUTF8(const uint8_t*, size_t)
We prefer FromUTF8(base::span<const uint8_t>).
This CL has no behavior changes.
Bug: 351564777
This is a refactoring that is taking place upstream, and it means that
some of the methods in `TabModel` are now virtual.
Chromium change:
https://chromium.googlesource.com/chromium/src/+/fd073100198716731e50e2c364036325ec924dab
commit fd073100198716731e50e2c364036325ec924dab
Author: Taylor Bergquist <tbergquist@chromium.org>
Date: Thu Nov 14 04:00:52 2024 +0000
Misc TabModel -> TabInterface
Primarily this removes some TabModel methods that now have TabInterface
equivalents, and migrates callers of those to TabInterface while we're
at it.
The changes are 100% mechanical except for the two places I left
resolved Gerrit comments.
Bug: 376752361
Chromium change:
https://chromium.googlesource.com/chromium/src/+/63b1a8198591dd90b302af8622c41fa7a6cacf57
[BCIV] Plumbing for bottom controls
This CL adds the necessary metadata to BrowserControlsOffsetTagsInfo for moving bottom controls in viz. Also plumbs the OffsetTag to the BottomControlsMediator, in preparation for the next CL that will add logic for viz to move the tab group bottom toolbar.
Bug: 368648329
This error appeared in a clean build for `cr133`.
```
../../brave/browser/importer/brave_external_process_importer_client.h:12:10: fatal error: 'brave/common/importer/profile_import.mojom.h' file not found
12 | #include "brave/common/importer/profile_import.mojom.h"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
This CL had been cherry-picked into brave to help with the unsafe
buffers fixes, but now it is available in chromium's master.
Chromium change:
https://chromium.googlesource.com/chromium/src/+/e4c7665bcd2e1f8b5f480bfd937beed994633f50
commit e4c7665bcd2e1f8b5f480bfd937beed994633f50
Author: Claudio DeSouza <cdesouza@chromium.org>
Date: Wed Nov 13 04:28:00 2024 +0000
Add a for-range loop `zip` adapter
This CL adds a `zip` helper to base utility types to allows us to do
basic `zip` operations in lockstep with different ranges.
```cxx
std::vector<int> a = {1, 2, 3};
std::vector<double> b = {4.5, 5.5, 6.5};
std::vector<std::string> c = {"x", "y", "z"};
for (auto [x, y, z] : zip(a, b, c)) {
LOG(INFO) << x << " " << y << " " << z;
}
```
Bug: 377940847
This is just a renaming from our use perspective.
Chromium change:
https://chromium.googlesource.com/chromium/src/+/6dc6be07291764d37d58bbe11e8bcbbacce5ea51
commit 6dc6be07291764d37d58bbe11e8bcbbacce5ea51
Author: Thomas Guilbert <tguilbert@chromium.org>
Date: Wed Nov 13 17:16:04 2024 +0000
Remove Prefixed Video Fullcreen APIs
This CL removes the following APIs:
- webkitSupportsFullscreen
- webkitDisplayingFullscreen
- webkitEnterFullscreen / webkitEnterFullScreen
- webkitExitFullscreen / webkitExitFullScreen
These APIs have been deprecated for years, and turned off by default
since M125. They are replaced by standard fullscreen APIs, available
since M78.
I2S: https://groups.google.com/a/chromium.org/g/blink-dev/c/srGFORpjjI8
Fixed: 40352864
We disable extension telemetry.
Chromium change:
https://chromium.googlesource.com/chromium/src/+/c191522686dc3dda797a85ea5fee4fd64631f887
commit c191522686dc3dda797a85ea5fee4fd64631f887
Author: Adam Psarouthakis <psarouthakis@google.com>
Date: Wed Nov 13 19:20:16 2024 +0000
Remove the extension tabs API telemetry signal feature flags
The extensions tabs API telemetry signals have been fully launched since
M126. Remove the corresponding feature flags and any conditional code
that is no longer required.
Bug: 41482487
Chromium change:
https://chromium.googlesource.com/chromium/src/+/936ba32422c40d955ab2e1f77a41eea870e1170c
commit 936ba32422c40d955ab2e1f77a41eea870e1170c
Author: Taylor Bergquist <tbergquist@chromium.org>
Date: Wed Nov 13 19:10:18 2024 +0000
Clean up TabHandle usage.
TabHandle should only be used when there is a possibility the tab might
be closed during the lifetime of the handle. This wasn't true of most
uses; switch those over to TabInterface*. This will make it easier to
move TabHandle over to TabInterface.
This CL also includes some cleanup in TabStripModel, removing some
TabHandle convenience methods and switching use of TabModel methods to
the TabInterface equivalents. Some of it is a bit forward looking - the
next CL will remove some of those TabModel only methods.
The CL also includes a small cleanup in TabInterface::MaybeGetFromHandle
so it resolves TabHandle IDs in the normal way (no behavior change).
Bug: 376752361
This is a new upstream string file we have to map.
Chromium change:
https://chromium.googlesource.com/chromium/src/+/3a1f77759049d1ebdcfd36467b5107ca11520c2e
commit 3a1f77759049d1ebdcfd36467b5107ca11520c2e
Author: Ritika Gupta <ritikagup@google.com>
Date: Wed Nov 13 15:17:22 2024 +0000
[Data Sharing] Add translation strings for Shared Tab Groups for Android.
In this CL,
- Add a new file `collaboration_strings.grdp`
- Add png.sha1 for all string ids for Android.
The new GRD was created by following the instructions at
https://www.chromium.org/developers/design-documents/ui-localization/.
Approach:Creating strings with different names here. Talking with
Desktop about merging the strings for different platforms for
better separately.
Bug: 370412425
This move makes sense as the manager was being used as a roundabout way
to get this information.
Chromium change:
https://chromium.googlesource.com/chromium/src/+/8d07e73a173eb04b8c831cf847b21cde4d306e2b
commit 8d07e73a173eb04b8c831cf847b21cde4d306e2b
Author: Christoph Schwering <schwering@google.com>
Date: Tue Nov 12 23:28:25 2024 +0000
[Autofill] Move IsAutofill*Enabled() to AutofillClient
This CL moves IsAutofill*Enabled() from BrowserAutofillManager to
AutofillClient.
This is necessary to move form submission handling from BAM
(per frame) to AutofillClient (per tab) because
BAM::MaybeImportFromSubmittedForm() calls IsAutofill*Enabled().
Apart from that, it makes sense because similar functions are already
in AutofillClient.
Bug: 374086145