0

Migrate TODOs referencing old crbug IDs to the new issue tracker IDs

The canonical bug format is TODO(crbug.com/<id>). TODOs of the
following forms will all be migrated to the new format:

- TODO(crbug.com/<old id>)
- TODO(https://crbug.com/<old id>)
- TODO(crbug/<old id>)
- TODO(crbug/monorail/<old id>)
- TODO(<old id>)
- TODO(issues.chromium.org/<old id>)
- TODO(https://issues.chromium.org/<old id>)
- TODO(https://issues.chromium.org/u/1/issues/<old id>)
- TODO(bugs.chromium.org/<old id>)

Bug id mapping is sourced from go/chrome-on-buganizer-prod-issues.
See go/crbug-todo-migration for details.

#crbug-todo-migration

Bug: b/321899722
Change-Id: I89f0a4d7ddeb7c9585f3a0e5421aef8ce5a6f0f2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5455854
Reviewed-by: Taylor Bergquist <tbergquist@chromium.org>
Commit-Queue: Alison Gale <agale@chromium.org>
Owners-Override: Alison Gale <agale@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1287738}
This commit is contained in:
Alison Gale
2024-04-16 00:00:31 +00:00
committed by Chromium LUCI CQ
parent a6f4432696
commit b8be952f6c
905 changed files with 1343 additions and 1292 deletions
components
BUILD.gn
account_manager_core
affiliations
android_autofill
arc
autofill
android
java
src
org
chromium
content
core
browser
address_normalizer_impl.ccautofill_client.hautofill_data_util.hautofill_driver_router.ccautofill_external_delegate_unittest.ccautofill_field.ccautofill_manager.ccautofill_manager.hautofill_optimization_guide.ccautofill_optimization_guide_unittest.ccautofill_suggestion_generator.ccautofill_suggestion_generator.hbrowser_autofill_manager.ccbrowser_autofill_manager_test_delegate.h
crowdsourcing
data_model
field_filling_address_util.hfield_filling_address_util_unittest.ccfield_types.hform_data_importer.hform_data_importer_unittest.ccform_filler.h
form_parsing
geo
manual_testing_import.h
metrics
payments
payments_data_manager.ccpayments_data_manager_unittest.ccsingle_field_form_fill_router.h
ui
webdata
common
ios
autofill_strings.grdp
background_fetch
background_task_scheduler
internal
android
java
src
org
chromium
components
background_task_scheduler
blocked_content
blocklist
opt_out_blocklist
bookmarks
browser_sync
browser_ui
banners
android
java
src
org
chromium
components
browser_ui
device_lock
android
java
src
org
chromium
components
browser_ui
display_cutout
android
java
src
org
chromium
components
browser_ui
settings
android
java
managed_prefs_java_resources
res
values
src
org
chromium
components
share
android
java
src
org
chromium
site_settings
styles
theme
android
java
res
util
android
widget
android
java
res
src
org
chromium
components
browsing_data
cast
cast_streaming
cbor
cdm
certificate_transparency
chromeos_camera
client_hints
commerce
commerce_strings.grdp
component_updater
constrained_window
content_capture
content_settings
contextual_search
crash
cronet
custom_handlers
desks_storage
dom_distiller
download
embedder_support
endpoint_fetcher
enterprise
error_page
exo
external_intents
android
java
src
org
chromium
externalauth
android
java
src
org
chromium
components
favicon
feature_engagement
feed
feedback
flags_ui
fuchsia_component_support
fullscreen_control
gcm_driver
android
java
src
org
chromium
components
gcm_driver
gcm_account_mapper.ccgcm_account_tracker_unittest.ccgcm_client_impl.ccgcm_driver.hgcm_driver_desktop_unittest.cc
instance_id
android
java
src
org
chromium
components
gcm_driver
global_media_controls
grpc_support
guest_os
guest_view
gwp_asan
history
history_clusters
image_fetcher
android
java
src
org
chromium
components
infobars
android
java
src
org
chromium
components
infobars
installedapp
android
java
src
org
chromium
components
invalidation
ip_protection
android_auth_client_lib
javascript_dialogs
js_injection
keyed_service
lens
live_caption
location
android
java
src
org
chromium
components
lookalikes
media_message_center
media_router
memory_pressure
memory_system
messages
metal_util
metrics
metrics_services_manager
mirroring
ml
navigation_interception
network_hints
no_state_prefetch
ntp_tiles
offline_items_collection
offline_pages
omnibox
optimization_guide
origin_trials
os_crypt
page_content_annotations
page_image_annotation
page_info
page_info_strings.grdp
page_load_metrics
paint_preview
password_manager
password_manager_strings.grdp
payments
pdf
performance_manager
permissions
policy
power_bookmarks
power_metrics
power_monitor
prefs
printing
privacy_sandbox
proxy_config
reading_list
remote_cocoa
resources
safe_browsing
saved_tab_groups
search
search_engines
security_interstitials
security_state
segmentation_platform
send_tab_to_self
services
session_proto_db
sessions
shared_highlighting
signin
soda
spellcheck
sqlite_proto
startup_metric_utils
storage_monitor
subresource_filter
supervised_user
sync
sync_bookmarks
sync_device_info
sync_preferences
sync_sessions
test
components_test_suite.cc
data
password_manager
form_annotation_extension
subresource_filter
update_client
puffin_patch_test
translate
trusted_vault
ui_devtools
ukm
update_client
url_formatter
url_pattern
url_pattern_index
url_rewrite
user_education
user_manager
value_store
variations
vector_icons
visitedlink
viz
web_modal
web_package
webapps
webauthn
webcrypto
algorithms
jwk.cc
webrtc
webrtc_logging
webxr
wifi
winhttp

@ -163,7 +163,7 @@ test("components_unittests") {
additional_manifest_fragments = [
"//build/config/fuchsia/test/fonts.shard.test-cml",
# TODO(https://crbug.com/1185811): Investigate removing the requirement
# TODO(crbug.com/40055105): Investigate removing the requirement
# for VmexResource.
"//build/config/fuchsia/test/mark_vmo_executable.shard.test-cml",
"//build/config/fuchsia/test/network.shard.test-cml",
@ -402,7 +402,7 @@ test("components_unittests") {
"//components/fuchsia_legacymetrics:unit_tests",
]
} else {
# TODO(crbug.com/1290514): Enable all relevant tests on Fuchsia too.
# TODO(crbug.com/40818181): Enable all relevant tests on Fuchsia too.
deps += [
"//components/browser_sync:unit_tests",
"//components/send_tab_to_self:unit_tests",

@ -352,7 +352,7 @@ void AccountManagerFacadeImpl::GetAccounts(
remote_version_ < RemoteMinVersions::kGetAccountsMinVersion) {
// Remote side is disconnected or doesn't support GetAccounts. Do not return
// an empty list as that may cause Lacros to delete user profiles.
// TODO(https://crbug.com/1287297): Try to reconnect, or return an error.
// TODO(crbug.com/40211181): Try to reconnect, or return an error.
return;
}
RunAfterInitializationSequence(

@ -8,7 +8,7 @@
namespace account_manager {
Account CreateTestGaiaAccount(const std::string& raw_email) {
// TODO(https://crbug.com/1150770): Use signin::GetTestGaiaIdForEmail here.
// TODO(crbug.com/40158025): Use signin::GetTestGaiaIdForEmail here.
AccountKey key(std::string("gaia_id_for_") + raw_email, AccountType::kGaia);
return {key, raw_email};
}

@ -164,7 +164,7 @@ void AccountManagerMojoService::CreateAccessTokenFetcher(
mojom::AccountKeyPtr mojo_account_key,
const std::string& oauth_consumer_name,
CreateAccessTokenFetcherCallback callback) {
// TODO(https://crbug.com/1175741): Add metrics.
// TODO(crbug.com/40747515): Add metrics.
VLOG(1) << "Received a request for access token from: "
<< oauth_consumer_name;

@ -95,7 +95,7 @@ struct AffiliationServiceImpl::FetchInfo {
base::OnceClosure callback;
};
// TODO(crbug.com/1246291): Create the backend task runner in Init and stop
// TODO(crbug.com/40789139): Create the backend task runner in Init and stop
// passing it in the constructor.
AffiliationServiceImpl::AffiliationServiceImpl(
scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,

@ -535,9 +535,9 @@ void AutofillProviderAndroid::OnDidFillAutofillFormData(
if (manager != manager_.get() || !IsIdOfLinkedForm(form.global_id())) {
return;
}
// TODO(crbug.com/1198811): Investigate passing the actually filled fields, in
// case the passed fields to be filled are different from the fields that were
// actually filled.
// TODO(crbug.com/40760916): Investigate passing the actually filled fields,
// in case the passed fields to be filled are different from the fields that
// were actually filled.
bridge_->OnDidFillAutofillFormData();
}
@ -781,7 +781,7 @@ AutofillProviderAndroid::PasswordParserOverrides::FromLoginForm(
}
// A login form must always have a username field and a password field.
if (!result.username_field_id || !result.password_field_id) {
// TODO(crbug.com/1523259): This should never be reachable. Remove once it
// TODO(crbug.com/41496211): This should never be reachable. Remove once it
// is clear how it can happen.
SCOPED_CRASH_KEY_NUMBER("crbug1523259", "pw_form.username_id",
pw_form.username_element_renderer_id.value());

@ -66,7 +66,7 @@ class FormDataAndroid {
kNameAttribute = 1 << 3,
kUrl = 1 << 4,
kAction = 1 << 5,
// TODO(crbug.com/1265655): Remove.
// TODO(crbug.com/40801589): Remove.
kIsFormTag = 1 << 6,
kFields = 1 << 7,
kMaxValue = kFields

@ -357,7 +357,7 @@ public class AutofillProviderUMA {
public void onFormSubmitted(int submissionSource) {
if (mRecorder != null) mRecorder.record(SessionRecorder.EVENT_FORM_SUBMITTED);
recordSession();
// TODO(crbug.com/1484985): Consider moving the call to the ServerPredictionRecorder
// TODO(crbug.com/40933028): Consider moving the call to the ServerPredictionRecorder
// into recordSession. Is it unclear why this is only recorded on form submission.
if (mServerPredictionRecorder != null) mServerPredictionRecorder.recordHistograms();
// We record this no matter autofill service is disabled or not.

@ -362,9 +362,9 @@ void ActivityIconLoader::OnIconsReady(
return;
}
// TODO(crbug.com/1083331): Remove when the adaptive icon feature is enabled
// TODO(crbug.com/40131344): Remove when the adaptive icon feature is enabled
// by default.
// TODO(crbug.com/1272349): Adaptive Icon is not supported in Lacros now. Do
// TODO(crbug.com/40806186): Adaptive Icon is not supported in Lacros now. Do
// not remove this until it's supported.
base::ThreadPool::PostTaskAndReplyWithResult(
FROM_HERE,

@ -84,7 +84,7 @@ void LinkHandlerModel::OpenLinkWithHandler(uint32_t handler_id) {
}
#if BUILDFLAG(IS_CHROMEOS_ASH)
// TODO(crbug.com/1275075): Take metrics in Lacros as well.
// TODO(crbug.com/40808069): Take metrics in Lacros as well.
ArcMetricsService::RecordArcUserInteraction(
context_, arc::UserInteractionType::APP_STARTED_FROM_LINK_CONTEXT_MENU);
#endif

@ -255,7 +255,7 @@ public class AutofillDropdownAdapter extends ArrayAdapter<DropdownItem> {
}
iconView.setImageDrawable(item.getIconDrawable());
iconView.setVisibility(View.VISIBLE);
// TODO(crbug.com/874077): Add accessible text for this icon.
// TODO(crbug.com/40589327): Add accessible text for this icon.
return iconView;
}

@ -345,7 +345,7 @@ void ContentAutofillDriver::SendAutofillTypePredictionsToRenderer(
const std::vector<raw_ptr<FormStructure, VectorExperimental>>& forms) {
std::vector<FormDataPredictions> type_predictions =
FormStructure::GetFieldTypePredictions(forms);
// TODO(crbug.com/1185232) Send the FormDataPredictions object only if the
// TODO(crbug.com/40753022) Send the FormDataPredictions object only if the
// debugging flag is enabled.
router().SendAutofillTypePredictionsToRenderer(
this, type_predictions,

@ -230,7 +230,7 @@ class ContentAutofillDriver : public AutofillDriver,
// Group (1c): browser -> renderer events, unrouted (see comment above).
// autofill::AutofillDriver:
// TODO(crbug.com/1281695): This event is currently not routed, but it looks
// TODO(crbug.com/40209327): This event is currently not routed, but it looks
// like it should be breadcast to all renderers.
void GetFourDigitCombinationsFromDOM(
base::OnceCallback<void(const std::vector<std::string>&)>

@ -260,7 +260,7 @@ void AutofillAgent::FocusStateNotifier::NotifyIfChanged(
return;
}
// TODO(crbug.com/1425166): Move FocusedInputChanged to AutofillDriver.
// TODO(crbug.com/40260756): Move FocusedInputChanged to AutofillDriver.
agent_->GetPasswordManagerDriver().FocusedInputChanged(
new_focused_field_id, new_focused_field_type);
@ -335,7 +335,7 @@ void AutofillAgent::DidDispatchDOMContentLoadedEvent() {
void AutofillAgent::DidChangeScrollOffset() {
if (!config_.focus_requires_scroll) {
// Post a task here since scroll offset may change during layout.
// TODO(crbug.com/804886): Do not cancel other tasks and do not invalidate
// TODO(crbug.com/40559425): Do not cancel other tasks and do not invalidate
// PasswordAutofillAgent::autofill_agent_.
weak_ptr_factory_.InvalidateWeakPtrs();
if (auto* render_frame = unsafe_render_frame()) {
@ -752,7 +752,7 @@ void AutofillAgent::ClearSection() {
void AutofillAgent::ClearPreviewedForm() {
WebFormControlElement last_queried_element = last_queried_element_.GetField();
// TODO(crbug.com/816533): It is very rare, but it looks like the |element_|
// TODO(crbug.com/40564702): It is very rare, but it looks like the |element_|
// can be null if a provisional load was committed immediately prior to
// clearing the previewed form.
if (last_queried_element.IsNull()) {
@ -970,7 +970,7 @@ void AutofillAgent::PreviewPasswordGenerationSuggestion(
void AutofillAgent::ShowSuggestions(
const WebFormControlElement& element,
AutofillSuggestionTriggerSource trigger_source) {
// TODO(crbug.com/1467359): Make this a CHECK.
// TODO(crbug.com/40068004): Make this a CHECK.
DCHECK(form_util::MaybeWasOwnedByFrame(element, unsafe_render_frame()));
CHECK_NE(trigger_source, AutofillSuggestionTriggerSource::kUnspecified);

@ -499,7 +499,7 @@ class AutofillAgent : public content::RenderFrameObserver,
// Timers for throttling handling of frequent events.
base::OneShotTimer select_or_selectlist_option_change_batch_timer_;
base::OneShotTimer datalist_option_change_batch_timer_;
// TODO(crbug.com/1444566): Merge some or all of these timers?
// TODO(crbug.com/40267764): Merge some or all of these timers?
base::OneShotTimer process_forms_after_dynamic_change_timer_;
base::OneShotTimer process_forms_form_extraction_timer_;
base::OneShotTimer process_forms_form_extraction_with_response_timer_;

@ -313,7 +313,7 @@ std::vector<FormIssue> CheckForLabelsWithIncorrectForAttribute(
void MaybeEmitFormIssuesToDevtools(blink::WebLocalFrame& web_local_frame,
base::span<const FormData> forms) {
// TODO(crbug.com/1399414): Only calculate and emit these issues if devtools
// TODO(crbug.com/40249826): Only calculate and emit these issues if devtools
// is open.
WebDocument document = web_local_frame.GetDocument();
std::vector<FormIssue> form_issues;

@ -42,7 +42,7 @@ struct FormIssue {
// `forms` contains information about the parsed `FormFieldData` which holds
// label parsing details used to emit issues. See
// `CheckForLabelsWithIncorrectForAttribute()`.
// TODO(crbug.com/1399414): Once issues are only emitted when devtools is open,
// TODO(crbug.com/40249826): Once issues are only emitted when devtools is open,
// consider re-extracting labels inside `MaybeEmitFormIssuesToDevtools()` not to
// have to pass `forms`.
void MaybeEmitFormIssuesToDevtools(blink::WebLocalFrame& web_local_frame,

@ -111,7 +111,7 @@ constexpr size_t kMaxShadowLevelsUp = 2;
// Text features to detect form submission buttons. Features are selected based
// on analysis of real forms and their buttons.
// TODO(crbug.com/910546): Consider to add more features (e.g. non-English
// TODO(crbug.com/41429204): Consider to add more features (e.g. non-English
// features).
const char* const kButtonFeatures[] = {"button", "btn", "submit",
"boton" /* "button" in Spanish */};
@ -1958,7 +1958,7 @@ void WebFormControlElementToFormField(
// Traverse up through shadow hosts to see if we can gather missing
// attributes.
// TODO(crbug.com/1268085): Make sure this works for all shadow DOM cases,
// TODO(crbug.com/40204601): Make sure this works for all shadow DOM cases,
// including cases in which the owning form is multiple (shadow DOM) levels
// apart from the form control element. Also check whether we cannot simplify
// some of the shadow DOM traversals here.

@ -80,7 +80,7 @@ blink::FormElementPiiType MapTypePredictionToFormElementPiiType(
// (1) At least one form field is not-checkable. (See crbug.com/1489075.)
// (2) At least one field has a non-empty autocomplete attribute.
// (3) There is at least one iframe.
// TODO(crbug.com/1489075): Should an element that IsCheckableElement() also be
// TODO(crbug.com/40283901): Should an element that IsCheckableElement() also be
// IsAutofillableInputElement()?
bool IsFormInteresting(const FormData& form) {
return !form.child_frames.empty() ||

@ -466,7 +466,7 @@ void FillAndCheckState(
}
TEST_F(FormCacheBrowserTest, FillAndClear) {
// TODO(crbug.com/1422114): Make test work without explicit <selectlist>
// TODO(crbug.com/40259488): Make test work without explicit <selectlist>
// tabindex.
LoadHTML(R"(
<input type="text" name="text" id="text">
@ -687,7 +687,7 @@ TEST_F(FormCacheBrowserTest, FrameLimit) {
// - the forms [kMaxExtractableChildFrames, kMaxExtractableFields) should have
// empty FormData::child_frames,
// - the forms [kMaxExtractableFields, end) should be skipped.
// TODO(https://crbug.com/1287782): Flaky on android.
// TODO(crbug.com/40816477): Flaky on android.
#if BUILDFLAG(IS_ANDROID)
#define MAYBE_FieldAndFrameLimit DISABLED_FieldAndFrameLimit
#else

@ -61,7 +61,7 @@ class FieldRef {
FieldRendererId field_renderer_id_;
};
// TODO(crbug.com/785531): Track the select and checkbox change.
// TODO(crbug.com/40550175): Track the select and checkbox change.
// This class is used to track user's change of form or WebFormControlElement,
// notifies observers of form's change and submission.
class FormTracker : public content::RenderFrameObserver,
@ -77,7 +77,7 @@ class FormTracker : public content::RenderFrameObserver,
kSelectChanged,
};
// TODO(crbug.com/1126017): Find a better name for this method.
// TODO(crbug.com/40147954): Find a better name for this method.
// Invoked when form needs to be saved because of |source|, |element| is
// valid if the callback caused by source other than
// WILL_SEND_SUBMIT_EVENT, |form| is valid for the callback caused by

@ -499,7 +499,7 @@ bool HasTextInputs(const FormData& form_data) {
// Returns a prediction whether the form that contains `username_element` and
// `password_element` will be ready for submission after filling these two
// elements.
// TODO(crbug/1393271): Consider to reduce `SubmissionReadinessState` to a
// TODO(crbug.com/40248146): Consider to reduce `SubmissionReadinessState` to a
// boolean value (ready or not). The non-binary state is not needed for
// auto-submission (crbug.com/1283004), but showing TTF proactively
// (crbug.com/1393043) may need to check whether or not a given form comprises
@ -778,7 +778,7 @@ void PasswordAutofillAgent::NotifyPasswordManagerAboutFieldModification(
web_input_to_password_info_[iter->second].password_was_edited_last = true;
// Note that the suggested value of `mutable_element` was reset when its
// value changed.
// TODO(crbug.com/415449): Do this through const WebInputElement.
// TODO(crbug.com/41132785): Do this through const WebInputElement.
WebInputElement mutable_element = element; // We need a non-const.
mutable_element.SetAutofillState(WebAutofillState::kNotFilled);
}

@ -211,7 +211,7 @@ struct PasswordGenerationAgent::GenerationItemInfo {
// True if the generation popup was shown during this navigation. Used to
// track UMA stats per page visit rather than per display, since the former
// is more interesting.
// TODO(crbug.com/845458): Remove this or change the description of the
// TODO(crbug.com/40577440): Remove this or change the description of the
// logged event as calling AutomaticgenerationStatusChanged will no longer
// imply that a popup is shown. This could instead be logged with the
// metrics collected on the browser process.
@ -638,7 +638,7 @@ bool PasswordGenerationAgent::TextDidChangeInTextField(
}
bool PasswordGenerationAgent::MaybeOfferAutomaticGeneration() {
// TODO(crbug.com/852309): Add this check to the generation element class.
// TODO(crbug.com/40580560): Add this check to the generation element class.
if (current_generation_item_->is_manually_triggered_) {
return false;
}

@ -29,7 +29,7 @@ base::span<const std::string_view> KnownUsernamePlaceholders();
// https://www.example.com, there is a chance that the website prefills
// the username field with "@example.com".
//
// TODO(crbug.com/832622): Remove this once a stable solution is in place.
// TODO(crbug.com/41383074): Remove this once a stable solution is in place.
bool PossiblePrefilledUsernameValue(const std::string& username_value,
const std::string& possible_email_domain);

@ -316,7 +316,7 @@ void AddressNormalizerImpl::OnAddressValidationRulesLoaded(
for (size_t i = 0; i < it->second.size(); ++i) {
// Some NormalizationRequest are null, and served only to load the rules.
if (it->second[i]) {
// TODO(crbug.com/777417): |success| appears to be true even when the
// TODO(crbug.com/40546097): |success| appears to be true even when the
// key was not actually found.
it->second[i]->OnRulesLoaded(AreRulesLoadedForRegion(region_code),
address_validator_.get());

@ -459,7 +459,7 @@ class AutofillClient {
// Gets the StrikeDatabase associated with the client. Note: Nullptr may be
// returned so check before use.
// TODO(crbug.com/1472094): Make sure all strike database usages check for
// TODO(crbug.com/40926442): Make sure all strike database usages check for
// the nullptr.
virtual StrikeDatabase* GetStrikeDatabase() = 0;
@ -739,7 +739,7 @@ class AutofillClient {
// Hide the Autofill popup if one is currently showing.
virtual void HideAutofillPopup(PopupHidingReason reason) = 0;
// TODO(crbug.com/1093057): Rename all the "domain" in this flow to origin.
// TODO(crbug.com/40134864): Rename all the "domain" in this flow to origin.
// The server is passing down full origin of the
// urls. "Domain" is no longer accurate.
// Notifies the client to update the offer notification when the `offer` is

@ -86,7 +86,7 @@ struct PaymentRequestData {
// the three, at least).
bool IsCJKName(std::u16string_view name);
// TODO(crbug.com/586510): Investigate the use of app_locale to do better name
// TODO(crbug.com/41239336): Investigate the use of app_locale to do better name
// splitting.
// Returns the different name parts (given, middle and family names) of the full
// |name| passed as a parameter.

@ -274,7 +274,7 @@ void AutofillDriverRouter::HidePopup(AutofillDriver* source,
// We don't know which AutofillManager is currently displaying the popup.
// Since the the general approach of popup hiding in Autofill seems to be
// "better safe than sorry", broadcasting this event is fine.
// TODO(crbug.com/1490905): This event should go away when the popup-hiding
// TODO(crbug.com/40284890): This event should go away when the popup-hiding
// mechanism has been cleaned up.
ForEachFrame(form_forest_, callback);
}

@ -2526,7 +2526,7 @@ TEST_F(AutofillExternalDelegateCardsFromAccountTest,
1)));
}
// TODO(crbug.com/1510618): Add test case where 'Show cards from your Google
// TODO(crbug.com/41483208): Add test case where 'Show cards from your Google
// account' button is clicked. Encountered issues with test sync setup when
// attempting to make it.

@ -271,9 +271,9 @@ void AutofillField::set_server_predictions(
experimental_server_predictions_.push_back(std::move(prediction));
}
} else {
// TODO(crbug.com/1376045): captured tests store old autofill api response
// recordings without `source` field. We need to maintain the old behavior
// until these recordings will be migrated.
// TODO(crbug.com/40243028): captured tests store old autofill api
// response recordings without `source` field. We need to maintain the old
// behavior until these recordings will be migrated.
server_predictions_.push_back(std::move(prediction));
}
}

@ -823,8 +823,8 @@ void AutofillManager::OnLoadedServerPredictions(
// and therefore appear only once. This ensures that
// FindCachedFormsBySignature() produces an output without duplicates in the
// forms.
// TODO(crbug/1064709): |queried_forms| could be a set data structure; their
// order should be irrelevant.
// TODO(crbug.com/40123827): |queried_forms| could be a set data structure;
// their order should be irrelevant.
DCHECK_EQ(queried_forms.size(),
std::set<FormStructure*>(queried_forms.begin(), queried_forms.end())
.size());

@ -179,7 +179,7 @@ class AutofillManager
virtual void OnFormSubmitted(AutofillManager& manager, FormGlobalId form) {}
};
// TODO(crbug.com/1151542): Move to anonymous namespace once
// TODO(crbug.com/40733066): Move to anonymous namespace once
// BrowserAutofillManager::OnLoadedServerPredictions() moves to
// AutofillManager.
static void LogAutofillTypePredictionsAvailable(

@ -134,7 +134,7 @@ AutofillOptimizationGuide::AutofillOptimizationGuide(
AutofillOptimizationGuide::~AutofillOptimizationGuide() = default;
// TODO(crbug.com/1519658): Pass PersonalDataManager by reference and remove
// TODO(crbug.com/41492637): Pass PersonalDataManager by reference and remove
// check for presence.
void AutofillOptimizationGuide::OnDidParseForm(
const FormStructure& form_structure,

@ -74,8 +74,8 @@ class AutofillOptimizationGuideTest : public testing::Test {
personal_data_manager_(std::make_unique<TestPersonalDataManager>()),
autofill_optimization_guide_(
std::make_unique<AutofillOptimizationGuide>(decider_.get())) {
// TODO(crbug.com/1519664): Cleanup default credit card creation in Autofill
// Optimization Guide unittests by defining the credit card in each
// TODO(crbug.com/41492641): Cleanup default credit card creation in
// Autofill Optimization Guide unittests by defining the credit card in each
// individual test.
CreditCard card = test::GetVirtualCard();
test_api(card).set_network_for_virtual_card(kVisaCard);

@ -1207,7 +1207,7 @@ AutofillSuggestionGenerator::CreateSuggestionsFromProfiles(
}
if (base::FeatureList::IsEnabled(
features::kAutofillGranularFillingAvailable)) {
// TODO(crbug.com/1502162): Make the granular filling options vary
// TODO(crbug.com/40942505): Make the granular filling options vary
// depending on the locale.
AddAddressGranularFillingChildSuggestions(last_targeted_fields,
trigger_field_type, *profile,
@ -1445,7 +1445,7 @@ AutofillSuggestionGenerator::GetSuggestionsForVirtualCardStandaloneCvc(
autofill_metrics::CardMetadataLoggingContext& metadata_logging_context,
base::flat_map<std::string, VirtualCardUsageData::VirtualCardLastFour>&
virtual_card_guid_to_last_four_map) {
// TODO(crbug.com/1453739): Refactor credit card suggestion code by moving
// TODO(crbug.com/40916587): Refactor credit card suggestion code by moving
// duplicate logic to helper functions.
std::vector<Suggestion> suggestions;
std::vector<CreditCard> cards_to_suggest = GetOrderedCardsToSuggest(
@ -1469,7 +1469,7 @@ AutofillSuggestionGenerator::GetSuggestionsForVirtualCardStandaloneCvc(
suggestion.feature_for_iph =
&feature_engagement::kIPHAutofillVirtualCardCVCSuggestionFeature;
SetCardArtURL(suggestion, credit_card, /*virtual_card_option=*/true);
// TODO(crbug.com/1511277): Create translation string for standalone CVC
// TODO(crbug.com/41483863): Create translation string for standalone CVC
// suggestion which includes spacing.
const std::u16string main_text =
l10n_util::GetStringUTF16(
@ -1811,7 +1811,7 @@ bool AutofillSuggestionGenerator::ShouldShowVirtualCardOption(
return ShouldShowVirtualCardOptionForServerCard(*candidate_server_card);
}
// TODO(crbug.com/1346331): Separate logic for desktop, Android dropdown, and
// TODO(crbug.com/40232456): Separate logic for desktop, Android dropdown, and
// Keyboard Accessory.
Suggestion AutofillSuggestionGenerator::CreateCreditCardSuggestion(
const CreditCard& credit_card,

@ -66,7 +66,7 @@ class AutofillSuggestionGenerator {
// `with_cvc` is set to true if ANY card has cvc saved.
// `metadata_logging_context` contains card metadata related information used
// for metrics logging.
// TODO(crbug.com/1519179): Merging out-parameters into a struct.
// TODO(crbug.com/41492160): Merging out-parameters into a struct.
std::vector<Suggestion> GetSuggestionsForCreditCards(
const FormFieldData& trigger_field,
FieldType trigger_field_type,

@ -867,7 +867,7 @@ void BrowserAutofillManager::OnFormSubmittedImpl(const FormData& form,
MaybeStartVoteUploadProcess(std::move(submitted_form),
/*observed_submission=*/true);
// TODO(crbug.com/803334): Add FormStructure::Clone() method.
// TODO(crbug.com/41365645): Add FormStructure::Clone() method.
// Create another FormStructure instance.
submitted_form = ValidateSubmittedForm(form);
DCHECK(submitted_form);
@ -1202,8 +1202,8 @@ void BrowserAutofillManager::OnAskForValuesToFillImpl(
// due to an unrecognized autocomplete attribute. Note that in the context
// of Autofill, the popup for credit card related fields is not getting
// suppressed due to an unrecognized autocomplete attribute.
// TODO(crbug.com/1344590): Revisit here to see whether we should offer IBAN
// filling for fields with unrecognized autocomplete attribute
// TODO(crbug.com/40853053): Revisit here to see whether we should offer
// IBAN filling for fields with unrecognized autocomplete attribute
if (context.suppress_reason == SuppressReason::kAutocompleteUnrecognized) {
FormStructure* form_structure = nullptr;
AutofillField* autofill_field = nullptr;
@ -1493,7 +1493,7 @@ void BrowserAutofillManager::OnFocusOnFormFieldImpl(
}
#endif
// TODO(https://crbug.com/848427): Add metrics for performance impact.
// TODO(crbug.com/41392130): Add metrics for performance impact.
std::vector<Suggestion> suggestions;
SuggestionsContext context;
// This code path checks if suggestions to be announced to a screen reader are
@ -1518,7 +1518,7 @@ void BrowserAutofillManager::OnSelectControlDidChangeImpl(
const FormData& form,
const FormFieldData& field,
const gfx::RectF& bounding_box) {
// TODO(crbug.com/814961): Handle select control change.
// TODO(crbug.com/40564270): Handle select control change.
}
void BrowserAutofillManager::OnDidFillAutofillFormDataImpl(
@ -2405,7 +2405,7 @@ void BrowserAutofillManager::OnFormProcessed(
if (data_util::ContainsPhone(data_util::DetermineGroups(form_structure))) {
has_observed_phone_number_field_ = true;
}
// TODO(crbug.com/869482): avoid logging developer engagement multiple
// TODO(crbug.com/41405154): avoid logging developer engagement multiple
// times for a given form if it or other forms on the page are dynamic.
LogDeveloperEngagementUkm(client().GetUkmRecorder(),
client().GetUkmSourceId(), form_structure);

@ -12,7 +12,7 @@ namespace autofill {
// Deprecated. Use AutofillManager::Observer instead, especially WaitForEvent()
// instead.
// TODO(crbug.com/1476270): Remove this class.
// TODO(crbug.com/40279936): Remove this class.
class BrowserAutofillManagerTestDelegate : public AutofillManager::Observer {
public:
BrowserAutofillManagerTestDelegate();

@ -838,7 +838,7 @@ void ProcessServerPredictionsQueryResponse(
form->UpdateAutofillCount();
form->RationalizeFormStructure(form_interactions_ukm_logger, log_manager);
// TODO(crbug.com/1154080): By calling this with true, autocomplete section
// TODO(crbug.com/40159300): By calling this with true, autocomplete section
// attributes will be ignored.
form->IdentifySections(/*ignore_autocomplete=*/true);
// Metrics are intentionally only emitted after the sever response, not when

@ -560,7 +560,7 @@ void InitActiveExperiments() {
variations::VariationsIdsProvider::GetInstance();
DCHECK(variations_ids_provider != nullptr);
// TODO(crbug.com/1331322): Retire the hardcoded GWS ID ranges and only read
// TODO(crbug.com/40227501): Retire the hardcoded GWS ID ranges and only read
// the finch parameter.
std::vector<variations::VariationID> active_experiments =
variations_ids_provider->GetVariationsVector(

@ -666,7 +666,7 @@ bool AutofillProfile::IsSubsetOfForFieldSet(
if (value.empty()) {
continue;
}
// TODO(crbug.com/1417975): Use rewriter rules for all kAddressHome types.
// TODO(crbug.com/40257475): Use rewriter rules for all kAddressHome types.
if (type == ADDRESS_HOME_STREET_ADDRESS || type == ADDRESS_HOME_LINE1 ||
type == ADDRESS_HOME_LINE2 || type == ADDRESS_HOME_LINE3) {
// This will compare street addresses after applying appropriate address

@ -617,7 +617,7 @@ bool AutofillProfileComparator::MergePhoneNumbers(
}
// Figure out a country code hint.
// TODO(crbug.com/1313862) |GetNonEmptyOf()| prefers |p1| in case both are
// TODO(crbug.com/40221178) |GetNonEmptyOf()| prefers |p1| in case both are
// non empty.
std::string region = UTF16ToUTF8(
GetNonEmptyOf(p1, p2, AutofillType(HtmlFieldType::kCountryCode)));

@ -109,7 +109,7 @@ void NameLast::ParseValueAndAssignSubcomponentsByFallbackMethod() {
SetValueForType(NAME_LAST_SECOND, GetValue(), VerificationStatus::kParsed);
}
// TODO(crbug.com/1113617): Honorifics are temporally disabled.
// TODO(crbug.com/40143553): Honorifics are temporally disabled.
NameFull::NameFull() : AddressComponent(NAME_FULL, {}, MergeMode::kDefault) {
RegisterChildNode(&first_);
RegisterChildNode(&middle_);

@ -575,7 +575,7 @@ class CreditCard : public AutofillDataModel {
// The nickname of the card. May be empty when nickname is not set.
std::u16string nickname_;
// TODO(crbug.com/1394514): Consider removing this field and all its usage
// TODO(crbug.com/40248631): Consider removing this field and all its usage
// after `issuer_id_` is used.
// The issuer for the card. This is populated from the sync response. It has a
// default value of CreditCard::Issuer::kIssuerUnknown.

@ -121,7 +121,7 @@ void PhoneNumber::GetMatchingTypes(const std::u16string& text,
base::RemoveChars(stripped_text, u" .()-", &stripped_text);
FormGroup::GetMatchingTypes(stripped_text, app_locale, matching_types);
// TODO(crbug.com/581391): Investigate the use of PhoneNumberUtil when
// TODO(crbug.com/41236729): Investigate the use of PhoneNumberUtil when
// matching phone numbers for upload.
// If there is not already a match for PHONE_HOME_WHOLE_NUMBER, normalize the
// |text| based on the app_locale before comparing it to the whole number. For

@ -33,7 +33,7 @@ std::pair<std::u16string, FieldType> GetFillingValueAndTypeForProfile(
// Returns the phone number value for the given `field_max_length`. The
// returned value might be `number`, or `city_and_number`, or could possibly
// be a meaningful subset `number`, if that's appropriate for the field.
// TODO(crbug.com/1495294): Move to anonymous namespace in source file.
// TODO(crbug.com/40286472): Move to anonymous namespace in source file.
std::u16string GetPhoneNumberValueForInput(
uint64_t field_max_length,
const std::u16string& number,

@ -139,7 +139,7 @@ INSTANTIATE_TEST_SUITE_P(
AutofillPhoneFieldFillerTestCase{HtmlFieldType::kTelLocalSuffix,
/*field_max_length=*/0, u"4578",
u"+15145554578"},
// TODO(crbug.com/581485): There should be a test case where the full
// TODO(crbug.com/40453991): There should be a test case where the full
// number is requested (HtmlFieldType::kTel) but a
// field_max_length of 3 would fill the prefix. Filling a phone type
// field with a max length of 4 should fill only the suffix.
@ -293,7 +293,7 @@ INSTANTIATE_TEST_SUITE_P(
u"Virginia",
u"VA - Virginia"},
// Do accidentally match "Virginia" to "West Virginia".
// TODO(crbug.com/624770): This test should not pass, but it does
// TODO(crbug.com/40475034): This test should not pass, but it does
// because "Virginia" is a substring of "West Virginia".
FillSelectTestCase{{"WV - West Virginia", "TX - Texas"},
u"Virginia",

@ -166,7 +166,7 @@ enum FieldType {
ADDRESS_HOME_CITY = 33,
ADDRESS_HOME_STATE = 34,
ADDRESS_HOME_ZIP = 35,
// TODO(crbug.com/1434216): Autofill stores country codes. When
// TODO(crbug.com/40264633): Autofill stores country codes. When
// ADDRESS_HOME_COUNTRY is accessed through `AutofillProfile::GetRawInfo()`, a
// country code is returned. When retrieved using
// `AutofillProfile::GetInfo()`, the country name is returned.

@ -40,7 +40,7 @@ class FormDataImporter : public PersonalDataManagerObserver,
public history::HistoryServiceObserver {
public:
// Record type of the credit card extracted from the form, if one exists.
// TODO(crbug.com/1412326): Remove this enum and user CreditCard::RecordType
// TODO(crbug.com/40255227): Remove this enum and user CreditCard::RecordType
// instead.
enum CreditCardImportType {
// No card was successfully extracted from the form.

@ -1821,7 +1821,7 @@ TEST_F(FormDataImporterTest,
UnorderedElementsCompareEqual(expected));
}
// TODO(crbug.com/634131): Create profiles if part of a standalone part of a
// TODO(crbug.com/41267680): Create profiles if part of a standalone part of a
// composed country name is present. Currently this is treated as an invalid
// country, which is ignored on import.
TEST_F(FormDataImporterTest,

@ -95,8 +95,8 @@ class FormFiller {
// `field_types_to_fill` and the classified fields for which we have data
// stored.
// `filling_product` is the type of filling calling this function.
// TODO(crbug/1275649): Add the case removed in crrev.com/c/4675831 when the
// experiment resumes.
// TODO(crbug.com/40207153): Add the case removed in crrev.com/c/4675831 when
// the experiment resumes.
// TODO(crbug.com/1481035): Make `optional_type_groups_originally_filled` also
// a FieldTypeSet.
// TODO(crbug/1331312): Keep only one of 'field' and 'autofill_field'.

@ -196,7 +196,7 @@ std::unique_ptr<FormFieldParser> CreditCardFieldParser::Parse(
}
}
// TODO(crbug.com/591816): Make sure parsing cc-numbers of type password
// TODO(crbug.com/41242238): Make sure parsing cc-numbers of type password
// doesn't have bad side effects.
raw_ptr<AutofillField> current_number_field;
if (ParseFieldSpecifics(context, scanner, kCardNumberRe, kMatchNumTelAndPwd,
@ -801,7 +801,7 @@ CreditCardFieldParser::DetermineExpirationDateFormat(
bool matches = false;
if (base::FeatureList::IsEnabled(
features::kAutofillEnableExpirationDateImprovements)) {
// TODO(crbug/1326244): We should use a language specific regex.
// TODO(crbug.com/40225734): We should use a language specific regex.
// If you add new languages, also update other places labeled with
// [EXP_DATE_FORMAT].
static constexpr char16_t kFormatRegex[] =

@ -578,7 +578,7 @@ TEST_P(CreditCardFieldParserTest, ParseCreditCardContextualNameNotCard) {
TEST_P(CreditCardFieldParserTest,
ParseCreditCardContextualNameNotCardAcctMatch) {
// TODO(crbug.com/1167977): This should be not parseable, but waiting before
// TODO(crbug.com/40743092): This should be not parseable, but waiting before
// changing kNameOnCardRe to use word boundaries.
AddTextFormFieldData("acctNum", "Account ID", CREDIT_CARD_NUMBER);
AddTextFormFieldData("acctName", "Account Name", CREDIT_CARD_NAME_FULL);

@ -240,7 +240,7 @@ FirstTwoLastNamesField::ParseComponentNames(ParsingContext& context,
// Scan for the honorific prefix before checking for unrelated name fields
// because a honorific prefix field is expected to have very specific labels
// including "Title:". The latter is matched with |kNameIgnoredRe|.
// TODO(crbug.com/1098943): Remove check once feature is launched or
// TODO(crbug.com/40137264): Remove check once feature is launched or
// removed.
if (!v->honorific_prefix_ &&
ParseField(context, scanner, kHonorificPrefixRe,

@ -353,7 +353,7 @@ TEST_P(PhoneFieldParserTest, IsPhoneCountryCodeField) {
{"0091", "0049", "001", "0020", "001242", "00593", "007"}};
for (size_t i = 0; i < augmented_field_options_list.size(); ++i) {
// TODO(crbug/1151473): The country code check fails in iteration 4.
// TODO(crbug.com/40158319): The country code check fails in iteration 4.
if (i == 4)
continue;

@ -164,7 +164,7 @@ class AlternativeStateNameMap {
// allowed to construct the class.
friend class base::NoDestructor<AlternativeStateNameMap>;
// TODO(crbug.com/1425951): Remove lock.
// TODO(crbug.com/40261113): Remove lock.
mutable base::Lock lock_;
// A map that stores the alternative state names. The map is keyed

@ -148,7 +148,7 @@ LogBuffer& operator<<(LogBuffer& buffer, const AutofillCountry& country) {
base::span<const AutofillCountry::AddressFormatExtension>
AutofillCountry::address_format_extensions() const {
// TODO(crbug.com/1300548): Extend more countries. FR and GB already have
// TODO(crbug.com/40216312): Extend more countries. FR and GB already have
// overwrites, because libaddressinput already provides string literals.
static constexpr std::array<AddressFormatExtension, 1> fr_extensions{
{{.type = FieldType::ADDRESS_HOME_STATE,

@ -74,8 +74,8 @@ void FormatValidatedNumber(const ::i18n::phonenumbers::PhoneNumber& number,
// Drop the leading '+' for US/CA numbers as some sites can't handle the "+",
// and in these regions dialing "+1..." is the same as dialing "1...".
// TODO(crbug/226778): Investigate whether the leading "+" is desirable in
// other regions. Closed bug crbug/98911 contains additional context.
// TODO(crbug.com/40311205): Investigate whether the leading "+" is desirable
// in other regions. Closed bug crbug/98911 contains additional context.
std::string prefix;
if (processed_number[0] == '+') {
processed_number = processed_number.substr(1);

@ -53,7 +53,7 @@ namespace autofill {
// All profiles and credit cards specified in the file are imported. They
// replace any existing data.
// The profiles are expected to be fully structured.
// TODO(crbug/1413177): remove `profiles` from flags' name.
// TODO(crbug.com/40255599): remove `profiles` from flags' name.
constexpr char kManualFileImportForTestingFlag[] =
"autofill-profiles-for-manual-testing";
constexpr char kManualContentImportForTestingFlag[] =

@ -645,7 +645,7 @@ class AutofillMetrics {
return static_cast<uint64_t>(QualitativeMetric());
}
// TODO(crbug.com/1275953): Remove once the new UKM metric has gained
// TODO(crbug.com/40207287): Remove once the new UKM metric has gained
// traction.
autofill_metrics::FormEvent QualitativeFillableFormEvent() const;
autofill_metrics::FormEvent QualitativeFillFormEvent() const;

@ -63,7 +63,7 @@ class AutofillMetricsBaseTest {
// Removes all existing credit cards and then invokes CreateCreditCards to
// create the cards.
// TODO(crbug/1216615): Migrate this to a params builder pattern or
// TODO(crbug.com/40770602): Migrate this to a params builder pattern or
// something.
void RecreateCreditCards(bool include_local_credit_card,
bool include_masked_server_credit_card,
@ -130,7 +130,7 @@ class AutofillMetricsBaseTest {
timestamp);
}
// TODO(crbug.com/1368096): Remove this method once the metrics are fixed.
// TODO(crbug.com/40240189): Remove this method once the metrics are fixed.
void SimulateUserChangedTextFieldWithoutActuallyChangingTheValue(
const FormData& form,
FormFieldData& field,

@ -2506,7 +2506,7 @@ TEST_P(
// Test to log when a local card is autofilled and its duplicated
// server card exists.
// TODO(crbug.com/1443718): Delete this test when
// TODO(crbug.com/40267452): Delete this test when
// kAutofillSuggestServerCardInsteadOfLocalCard is launched.
TEST_P(AutofillMetricsIFrameTest,
CreditCardFilledFormEventsUsingDuplicateServerCard) {

@ -70,7 +70,7 @@ class CreditCardFormEventLogger : public FormEventLoggerBase {
bool is_virtual_card_standalone_cvc_field,
autofill_metrics::CardMetadataLoggingContext metadata_logging_context);
// TODO(crbug.com/1495879): Remove redundant parameters.
// TODO(crbug.com/40937936): Remove redundant parameters.
// form_parsed_timestamp and off_the_record value can be removed, as their
// values can be retrieved from 'form' or 'client_'.
void OnDidShowSuggestions(

@ -122,7 +122,7 @@ CardMetadataLoggingContext GetMetadataLoggingContext(
return metadata_logging_context;
}
// TODO(crbug.com/1521067): Refactor and cleanup FormEvent logging.
// TODO(crbug.com/41494039): Refactor and cleanup FormEvent logging.
void LogCardWithMetadataFormEventMetric(
CardMetadataLoggingEvent event,
const CardMetadataLoggingContext& context,

@ -15,7 +15,7 @@ class AccountInfoGetter {
// Returns the account info that should be used when communicating with the
// Payments server. The AccountInfo could be empty if there is no account to
// be used by the Payments server.
// TODO(crbug.com/1411720): Make it return std::optional.
// TODO(crbug.com/40254942): Make it return std::optional.
virtual CoreAccountInfo GetAccountInfoForPaymentsServer() const = 0;
// Returns true - When user is both signed-in and enabled sync.

@ -28,7 +28,7 @@ bool VirtualCardFeatureEnabled();
// authentication option.
bool IsVcn3dsEnabled();
// TODO(crbug.com/1431355): Move here payments related feature availability
// TODO(crbug.com/40263500): Move here payments related feature availability
// checks from autofill_experiments.
} // namespace autofill

@ -58,7 +58,7 @@ class AutofillSaveCardDelegate {
AutofillClient::SaveCardOfferUserDecision user_decision,
AutofillClient::UserProvidedCardDetails user_provided_details);
// TODO(crbug.com/1486941): Make GatherAdditionalConsentIfApplicable() a pure
// TODO(crbug.com/40283111): Make GatherAdditionalConsentIfApplicable() a pure
// virtual function.
// This function by default saves the credit card, but allows subclasses to
// override if there are prerequisites to saving the card (ex: Android

@ -251,7 +251,7 @@ void CreditCardAccessManager::OnDidGetUnmaskDetails(
unmask_details_request_in_progress_ = false;
unmask_details_ = unmask_details;
// TODO(crbug.com/1409151): Rename `offer_fido_opt_in`, and check that the
// TODO(crbug.com/40253859): Rename `offer_fido_opt_in`, and check that the
// user is off the record separately.
unmask_details_.offer_fido_opt_in =
unmask_details_.offer_fido_opt_in && !client_->IsOffTheRecord();
@ -676,14 +676,15 @@ void CreditCardAccessManager::OnCvcAuthenticationComplete(
// call below will return true and we will safely pass nullptr and that it is
// an error into the `OnCreditCardFetchedCallback`, and end the flow.
if (response.card) {
// TODO(crbug/1478392): Deprecate `response.cvc` and `response.card.cvc`.
// TODO(crbug.com/40929439): Deprecate `response.cvc` and
// `response.card.cvc`.
card_ = std::make_unique<CreditCard>(*response.card);
card_->set_cvc(response.cvc);
}
// Log completed CVC authentication if auth was successful. Do not log for
// kCvcThenFido flow since that is yet to be completed.
// TODO(crbug/1477839): Refactor log into the new
// TODO(crbug.com/40280410): Refactor log into the new
// LogMetricsAndFillFormForServerUnmaskFlows().
if (response.did_succeed &&
unmask_auth_flow_type_ != UnmaskAuthFlowType::kCvcThenFido) {

@ -147,7 +147,7 @@ class CreditCardAccessManager
// Caches CreditCard and corresponding CVC for unmasked card so that
// card info can later be filled without attempting to auth again.
// TODO(crbug/1069929): Add browsertests for this.
// TODO(crbug.com/40126138): Add browsertests for this.
void CacheUnmaskedCardInfo(const CreditCard& card, const std::u16string& cvc);
// Return the info for the server cards present in the

@ -2916,7 +2916,7 @@ TEST_F(CreditCardAccessManagerTest, IntentToOptOut_OptOutFailure) {
EXPECT_FALSE(IsCreditCardFIDOAuthEnabled());
}
// TODO(crbug.com/1409172): Extend the FIDOAuthOptChange tests to more
// TODO(crbug.com/40253866): Extend the FIDOAuthOptChange tests to more
// use-cases.
TEST_F(CreditCardAccessManagerTest, FIDOAuthOptChange_OptOut) {
credit_card_access_manager().FIDOAuthOptChange(/*opt_in=*/false);
@ -2929,7 +2929,7 @@ TEST_F(CreditCardAccessManagerTest, FIDOAuthOptChange_OptOut_OffTheRecord) {
ASSERT_FALSE(fido_authenticator().IsOptOutCalled());
}
// TODO(crbug.com/1109296) Debug issues and re-enable this test on MacOS.
// TODO(crbug.com/40707930) Debug issues and re-enable this test on MacOS.
#if !BUILDFLAG(IS_APPLE)
// Ensures that PrepareToFetchCreditCard() is properly rate limited.
TEST_F(CreditCardAccessManagerTest, PreflightCallRateLimited) {

@ -165,7 +165,7 @@ bool CreditCardCvcAuthenticator::UserOptedInToFidoFromSettingsPageOnMobile()
#endif
payments::FullCardRequest* CreditCardCvcAuthenticator::GetFullCardRequest() {
// TODO(crbug.com/951669): iOS and Android clients should use
// TODO(crbug.com/40622637): iOS and Android clients should use
// CreditCardAccessManager to retrieve cards from payments instead of calling
// this function directly.
if (!full_card_request_) {

@ -18,7 +18,7 @@
namespace autofill {
// TODO(crbug.com/1220990): Extract common functions to a parent class after
// TODO(crbug.com/40186650): Extract common functions to a parent class after
// full card request is removed from the flow.
// Authenticates credit card unmasking through OTP (One-Time Password)
// verification.

@ -85,7 +85,7 @@ class CreditCardRiskBasedAuthenticator {
const RiskBasedAuthenticationResponse& response) = 0;
// Callback function invoked when an unmask response for a virtual card has
// been received.
// TODO(crbug.com/1487282): Merge virtual card authentication response
// TODO(crbug.com/40934051): Merge virtual card authentication response
// handling logic with OnRiskBasedAuthenticationResponseReceived().
virtual void OnVirtualCardRiskBasedAuthenticationResponseReceived(
AutofillClient::PaymentsRpcResult result,

@ -389,7 +389,7 @@ void CreditCardSaveManager::AttemptToOfferCvcUploadSave(
show_save_prompt_.reset();
show_save_prompt_ = !DetermineAndLogCvcSaveStrikeDatabaseBlockDecision();
// TODO(crbug.com/1481933): Refactor ConfirmSaveCreditCardToCloud to change
// TODO(crbug.com/40931101): Refactor ConfirmSaveCreditCardToCloud to change
// legal_message_lines_ to optional.
client_->ConfirmSaveCreditCardToCloud(
card_save_candidate_, legal_message_lines_,
@ -404,7 +404,8 @@ bool CreditCardSaveManager::IsCreditCardUploadEnabled() {
#if BUILDFLAG(IS_IOS)
// If observer_for_testing_ is set, assume we are in a browsertest and
// credit card upload should be enabled by default.
// TODO(crbug.com/859761): Remove dependency from iOS tests on this behavior.
// TODO(crbug.com/40583419): Remove dependency from iOS tests on this
// behavior.
if (observer_for_testing_) {
return true;
}
@ -709,7 +710,7 @@ void CreditCardSaveManager::OfferCardLocalSave() {
client_->ConfirmSaveCreditCardLocally(
card_save_candidate_,
AutofillClient::SaveCreditCardOptions()
// TODO(crbug.com/1479239): Refactor SaveCreditCardOptions.
// TODO(crbug.com/40280819): Refactor SaveCreditCardOptions.
.with_show_prompt(show_save_prompt_.value_or(true))
.with_card_save_type(card_save_type),
base::BindOnce(&CreditCardSaveManager::OnUserDidDecideOnLocalSave,

@ -438,7 +438,7 @@ class CreditCardSaveManagerTest : public testing::Test {
MockAutofillClient autofill_client_;
std::unique_ptr<MockVirtualCardEnrollmentManager>
virtual_card_enrollment_manager_;
// TODO(crbug.com/1291003): Refactor to use the real CreditCardSaveManager.
// TODO(crbug.com/40818490): Refactor to use the real CreditCardSaveManager.
// Ends up getting owned (and destroyed) by TestFormDataImporter:
raw_ptr<TestCreditCardSaveManager> credit_card_save_manager_;
@ -697,10 +697,10 @@ TEST_F(CreditCardSaveManagerTest, LocalCreditCard_WithNonFocusableField) {
EXPECT_FALSE(credit_card_save_manager_->CreditCardWasUploaded());
}
// TODO(crbug/1507185): Remove duplicate code present between server and local
// CVC test suites below.
// Tests that when triggering AttemptToOfferCvcLocalSave function, SaveCard
// dialog will be triggered with `kCvcSaveOnly` option.
// TODO(crbug.com/40947875): Remove duplicate code present between server and
// local CVC test suites below. Tests that when triggering
// AttemptToOfferCvcLocalSave function, SaveCard dialog will be triggered with
// `kCvcSaveOnly` option.
TEST_F(CreditCardSaveManagerTest,
AttemptToOfferCvcLocalSave_ShouldShowSaveCardLocallyWithCvcSaveOnly) {
CreditCard local_card = test::GetCreditCard();

@ -36,7 +36,7 @@ class AutofillMetricsBaseTest;
namespace payments {
// Retrieves the full card details, including the pan and the cvc.
// TODO(crbug/1061638): Refactor to use base::WaitableEvent where possible.
// TODO(crbug.com/40679719): Refactor to use base::WaitableEvent where possible.
class FullCardRequest final : public CardUnmaskDelegate {
public:
// The type of failure.

@ -99,7 +99,7 @@ class MockPaymentsDataManager : public TestPaymentsDataManager {
(override));
};
// TODO(crbug.com/881835): Simplify this test setup.
// TODO(crbug.com/41412501): Simplify this test setup.
// The test fixture for full card request.
class FullCardRequestTest : public testing::Test {
public:
@ -411,7 +411,7 @@ TEST_F(FullCardRequestTest, GetFullCardPanAndCvcForExpiredMaskedServerCard) {
// Verify getting the full PAN, the expiration and the dCVV for a virtual card
// using CVC authentication.
// TODO(crbug/1373232): Add a FullCardRequest test case for Virtual Card
// TODO(crbug.com/40241969): Add a FullCardRequest test case for Virtual Card
// retrieval via FIDO as well.
TEST_F(FullCardRequestTest,
GetFullCardPanAndExpirationAndDcvvForVirtualCardViaCvc) {

@ -242,7 +242,7 @@ class LocalCardMigrationManager {
// The local credit cards to be uploaded. Owned by LocalCardMigrationManager.
// The order of cards should not be changed.
// TODO(crbug.com/867194): Currently we will not handle the case of local
// TODO(crbug.com/40586517): Currently we will not handle the case of local
// cards added/deleted during migration.
std::vector<MigratableCreditCard> migratable_credit_cards_;

@ -83,7 +83,7 @@ void OfferNotificationHandler::UpdateOfferNotificationVisibility(
// can have a delay.
if (ValidOfferExistsForUrl(url) &&
!commerce::UrlContainsDiscountUtmTag(url)) {
// TODO(crbug.com/1203811): GetOfferForUrl needs to know whether to give
// TODO(crbug.com/40179715): GetOfferForUrl needs to know whether to give
// precedence to card-linked offers or promo code offers. Eventually,
// promo code offers should take precedence if a bubble is shown.
// Currently, if a url has both types of offers and the promo code offer
@ -104,7 +104,7 @@ void OfferNotificationHandler::UpdateOfferNotificationVisibility(
base::BindOnce(&OfferNotificationHandler::
UpdateOfferNotificationForShoppingServiceOffer,
weak_ptr_factory_.GetWeakPtr(),
// TODO(crbug.com/1521706): Align lifecycles.
// TODO(crbug.com/41494674): Align lifecycles.
std::ref(client));
}

@ -12,7 +12,7 @@ namespace autofill {
struct OfferNotificationOptions {
// Indicates whether this notification has been shown since profile start-up.
// This is only used in Android.
// TODO(crbug.com/1483010): Revisit if we can consolidate
// TODO(crbug.com/40931835): Revisit if we can consolidate
// notification_has_been_shown and show_notification_automatically.
bool notification_has_been_shown = false;
// Indicates whether the notification will automatically expand upon being

@ -87,8 +87,8 @@ class PaymentsAutofillClient : public RiskDataLoader {
// Called after credit card upload is finished. Will show upload result to
// users. `card_saved` indicates if the card is successfully saved.
// TODO(crbug.com/932818): This function is overridden in iOS codebase and in
// the desktop codebase. If iOS is not using it to do anything, please keep
// TODO(crbug.com/40614280): This function is overridden in iOS codebase and
// in the desktop codebase. If iOS is not using it to do anything, please keep
// this function for desktop.
virtual void CreditCardUploadCompleted(bool card_saved);

@ -119,7 +119,7 @@ class PaymentsNetworkInterfaceBase {
std::string access_token_;
// Denotes incognito mode.
// TODO(crbug.com/1409158): Remove this variable, as it should not be the
// TODO(crbug.com/40888896): Remove this variable, as it should not be the
// PaymentsNetworkInterface's responsibility to check if the user is off the
// record. The sole responsibility of the PaymentsNetworkInterface is to send
// requests to the Google Payments server.

@ -21,8 +21,8 @@
namespace autofill::payments {
// TODO(crbug/1372613): Extend tests in this file to all of the possible card
// unmasking test cases. The cases that are not in this file are currently
// TODO(crbug.com/40241790): Extend tests in this file to all of the possible
// card unmasking test cases. The cases that are not in this file are currently
// tested in PaymentsNetworkInterface tests, but they should be tested here as
// well.
class UnmaskCardRequestTest : public testing::Test {
@ -189,8 +189,8 @@ TEST_F(UnmaskCardRequestTest, ContextTokenAndPanNotReturned) {
// Params of the VirtualCardUnmaskCardRequestTest:
// -- autofill::CardUnmaskChallengeOptionType challenge_option_type
// -- bool autofill_enable_3ds_for_vcn_yellow_path
// TODO(crbug.com/1430297): Extend this texting fixture to test the OTP cases as
// well.
// TODO(crbug.com/40901660): Extend this texting fixture to test the OTP cases
// as well.
class VirtualCardUnmaskCardRequestTest
: public UnmaskCardRequestTest,
public testing::WithParamInterface<

@ -272,8 +272,8 @@ std::unique_ptr<base::Value::Dict> TestPaymentsNetworkInterface::LegalMessage()
"}");
DCHECK(parsed_json);
}
// TODO(crbug/1303949): Refactor when `base::JSONReader::Read` is updated to
// return a Dict.
// TODO(crbug.com/40826246): Refactor when `base::JSONReader::Read` is updated
// to return a Dict.
return std::make_unique<base::Value::Dict>(std::move(parsed_json->GetDict()));
}

@ -297,7 +297,7 @@ TEST_F(VirtualCardEnrollmentManagerTest, OnDidGetDetailsForEnrollResponse) {
{VirtualCardEnrollmentSource::kUpstream,
VirtualCardEnrollmentSource::kDownstream,
VirtualCardEnrollmentSource::kSettingsPage}) {
// TODO(crbug.com/1320938): Makes the following test
// TODO(crbug.com/40223706): Makes the following test
// PersonalDataManagerTest.AddUpdateRemoveCreditCards fail on iOS.
// That other test fails when SetNetworkImageInResourceBundle is called here.
#if BUILDFLAG(IS_IOS)

@ -1458,10 +1458,10 @@ void PaymentsDataManager::ClearAllServerDataForTesting() {
// off (meaning this class won't even query for the server data) so don't
// check the server_credit_cards_/profiles_ before posting to the DB.
// TODO(crbug.com/864519): Move this null check logic to the database helper.
// The server database can be null for a limited amount of time before the
// sync service gets initialized. Not clearing it does not matter in that case
// since it will not have been created yet (nothing to clear).
// TODO(crbug.com/40585321): Move this null check logic to the database
// helper. The server database can be null for a limited amount of time before
// the sync service gets initialized. Not clearing it does not matter in that
// case since it will not have been created yet (nothing to clear).
if (GetServerDatabase()) {
GetServerDatabase()->ClearAllServerData();
}

@ -2079,10 +2079,10 @@ TEST_F(PaymentsDataManagerTest, AddAndGetCreditCardArtImage) {
ASSERT_TRUE(actual_image);
EXPECT_TRUE(gfx::test::AreImagesEqual(expected_image, *actual_image));
// TODO(crbug.com/1284788): Look into integrating with PaymentsDataManagerMock
// and checking that PaymentsDataManager::FetchImagesForUrls() does not get
// triggered when PaymentsDataManager::GetCachedCardArtImageForUrl() is
// called.
// TODO(crbug.com/40210242): Look into integrating with
// PaymentsDataManagerMock and checking that
// PaymentsDataManager::FetchImagesForUrls() does not get triggered when
// PaymentsDataManager::GetCachedCardArtImageForUrl() is called.
gfx::Image* cached_image =
personal_data_->payments_data_manager().GetCachedCardArtImageForUrl(
GURL("https://www.example.com"));

@ -63,7 +63,7 @@ class SingleFieldFormFillRouter : public SingleFieldFormFiller {
private:
// Handles autocompleting single fields. The `AutocompleteHistoryManager` is
// a KeyedService that outlives the `SingleFieldFormFillRouter`.
// TODO(crbug.com/1501199): Once WebView doesn't have an
// TODO(crbug.com/40941458): Once WebView doesn't have an
// AutocompleteHistoryManager anymore, this should become a raw_ptr instead.
raw_ref<AutocompleteHistoryManager> autocomplete_history_manager_;

@ -78,7 +78,7 @@ void AutofillImageFetcher::FetchImagesForURLs(
}
GURL AutofillImageFetcher::ResolveCardArtURL(const GURL& card_art_url) {
// TODO(crbug.com/1313616): There is only one gstatic card art image we are
// TODO(crbug.com/40221039): There is only one gstatic card art image we are
// using currently, that returns as metadata when it isn't. Remove this logic
// and append FIFE URL suffix by default when the static image is deprecated,
// and we send rich card art instead.

@ -18,7 +18,7 @@ enum class PopupHidingReason {
// An interstitial page displaces the popup.
kAttachInterstitialPage = 1,
// The text field is no longer edited - sent directly before a focus change.
// TODO(crbug.com/1469610): Deprecate in favor of kFocusChanged.
// TODO(crbug.com/40277556): Deprecate in favor of kFocusChanged.
kEndEditing = 2,
// Focus removed from field. Follows kEndEditing.
kFocusChanged = 3,

@ -733,7 +733,7 @@ AddressAutofillTable::GetAutofillProfileFromLegacyTable(
return profile;
}
// TODO(crbug.com/1443393): This function's implementation is very similar to
// TODO(crbug.com/40267335): This function's implementation is very similar to
// `GetAutofillProfiles()`. Simplify somehow.
bool AddressAutofillTable::GetAutofillProfilesFromLegacyTable(
std::vector<std::unique_ptr<AutofillProfile>>* profiles) const {

@ -79,7 +79,7 @@ AutofillProfileSyncDifferenceTracker::IncorporateRemoteProfile(
}
// Check if profile appears under a different storage key to be de-duplicated.
// TODO(crbug.com/1043683): Deal with rare cases when an remote update
// TODO(crbug.com/40669170): Deal with rare cases when an remote update
// contains several exact duplicates (with different guids). We should not
// only search in local only entries but also in |update_to_local_| and
// |add_to_local_|. Likely needs a bit of refactoring to make the resulting

@ -59,7 +59,7 @@ PreconditionState GetPreconditionStateFromAccountChildStatus(
}
const AccountCapabilities& capabilities =
identity_manager.FindExtendedAccountInfo(core_account_info).capabilities;
// TODO(crbug.com/1423319): Multiple types of child accounts exists, and this
// TODO(crbug.com/40259988): Multiple types of child accounts exists, and this
// excludes all of them. Once it becomes clear which subset of child accounts
// actually needs to be excluded, this logic can be relaxed.
return capabilities.is_subject_to_parental_controls() ==

@ -393,7 +393,7 @@ bool AutocompleteTable::AddFormFieldValueTime(
if (!db_->is_open()) {
return false;
}
// TODO(crbug.com/1424298): Remove once it is understood where the `false`
// TODO(crbug.com/40260352): Remove once it is understood where the `false`
// results are coming from.
auto create_debug_info = [this](const char* failure_location) {
std::vector<std::string> message_parts = {base::StringPrintf(

@ -40,8 +40,8 @@ class AutocompleteChange {
using AutocompleteChangeList = std::vector<AutocompleteChange>;
// Change notification details for Autofill related changes.
// TODO(crbug/1476099): Update the name for `AutofillDataModelChange` as it now
// captures non data model changes.
// TODO(crbug.com/40928146): Update the name for `AutofillDataModelChange` as it
// now captures non data model changes.
template <typename DataType, typename KeyType>
requires std::derived_from<DataType, AutofillDataModel> ||
std::same_as<DataType, ServerCvc>

@ -700,8 +700,8 @@ WebDatabase::State AutofillWebDataBackendImpl::AddServerCvc(
const ServerCvcChange change{ServerCvcChange::ADD, instrument_id,
server_cvc};
for (auto& db_observer : db_observer_list_) {
// TODO(crbug/1477924): Add integration tests for Add, Remove and Update
// for Wallet Credential data.
// TODO(crbug.com/40929129): Add integration tests for Add, Remove and
// Update for Wallet Credential data.
db_observer.ServerCvcChanged(change);
}
ReportResult(Result::kAddServerCvc_Success);

@ -115,7 +115,7 @@ AutofillWalletCredentialSyncBridge::ApplyIncrementalSyncChanges(
"Failed to delete the Wallet credential data from the table");
}
break;
// TODO(crbug/1472122): Merge the Add and Update APIs for
// TODO(crbug.com/40926464): Merge the Add and Update APIs for
// PaymentsAutofillTable.
case syncer::EntityChange::ACTION_ADD:
if (!table ||

@ -432,7 +432,7 @@ void AutofillWalletMetadataSyncBridge::ApplyDisableSyncChanges(
void AutofillWalletMetadataSyncBridge::CreditCardChanged(
const CreditCardChange& change) {
// TODO(crbug.com/1206306): Clean up old metadata for local cards, this early
// TODO(crbug.com/40765031): Clean up old metadata for local cards, this early
// return was missing for quite a while in production.
if (!IsSyncedWalletCard(change.data_model())) {
return;

@ -215,8 +215,8 @@ std::optional<syncer::ModelError> AutofillWalletSyncBridge::MergeFullSyncData(
// metadata bridge can track changes in the data bridge and react accordingly.
SetSyncData(entity_data, /*notify_webdata_backend=*/true);
// TODO(crbug.com/853688): Update the PaymentsAutofillTable API to know about
// write errors and report them here.
// TODO(crbug.com/40581165): Update the PaymentsAutofillTable API to know
// about write errors and report them here.
return std::nullopt;
}

@ -103,7 +103,7 @@ AutofillWalletUsageDataSyncBridge::ApplyIncrementalSyncChanges(
break;
case syncer::EntityChange::ACTION_ADD:
case syncer::EntityChange::ACTION_UPDATE: {
// TODO(crbug.com/1412207): AddOrUpdate VirtualCardUsageData method for
// TODO(crbug.com/40255173): AddOrUpdate VirtualCardUsageData method for
// Autofill Table
DCHECK(IsEntityDataValid(change->data()));
bool valid_data = IsVirtualCardUsageDataSpecificsValid(

Some files were not shown because too many files have changed in this diff Show More