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:

committed by
Chromium LUCI CQ

parent
a6f4432696
commit
b8be952f6c
components
BUILD.gnautofill_strings.grdpcommerce_strings.grdpurl_request_context_config.ccgcm_account_mapper.ccgcm_account_tracker_unittest.ccgcm_client_impl.ccgcm_driver.hgcm_driver_desktop_unittest.ccpassword_manager_strings.grdpandroid_app_communication_lacros.ccinstallable_payment_app_crawler.ccpayment_request.ccpayment_request_converter.hpayment_request_web_contents_manager.ccsecure_payment_confirmation_app.ccsecure_payment_confirmation_app_factory.cc
account_manager_core
affiliations
core
browser
android_autofill
browser
arc
common
intent_helper
autofill
android
java
src
org
chromium
components
autofill
content
browser
renderer
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
autofill_profile.ccautofill_profile_comparator.ccautofill_structured_address_name.cccredit_card.hphone_number.cc
field_filling_address_util.hfield_filling_address_util_unittest.ccfield_types.hform_data_importer.hform_data_importer_unittest.ccform_filler.hform_parsing
credit_card_field_parser.cccredit_card_field_parser_unittest.ccname_field_parser.ccphone_field_parser_unittest.cc
geo
manual_testing_import.hmetrics
payments
account_info_getter.hautofill_payments_feature_availability.hautofill_save_card_delegate.hcredit_card_access_manager.cccredit_card_access_manager.hcredit_card_access_manager_unittest.cccredit_card_cvc_authenticator.cccredit_card_otp_authenticator.hcredit_card_risk_based_authenticator.hcredit_card_save_manager.cccredit_card_save_manager_unittest.ccfull_card_request.hfull_card_request_unittest.cclocal_card_migration_manager.hoffer_notification_handler.ccoffer_notification_options.hpayments_autofill_client.hpayments_network_interface_base.h
payments_data_manager.ccpayments_data_manager_unittest.ccsingle_field_form_fill_router.hpayments_requests
test_payments_network_interface.ccvirtual_card_enrollment_manager_unittest.ccui
webdata
common
ios
browser
common
form_util
background_fetch
background_task_scheduler
internal
android
java
src
org
chromium
components
background_task_scheduler
internal
blocked_content
blocklist
opt_out_blocklist
bookmarks
browser
bookmark_codec.ccbookmark_model.ccbookmark_model.hbookmark_node_data_unittest.ccbookmark_utils_unittest.ccbookmark_uuids.h
common
android
java
src
org
chromium
components
bookmarks
browser_sync
browser_ui
banners
android
java
src
org
chromium
components
browser_ui
banners
device_lock
android
java
src
org
chromium
components
browser_ui
device_lock
display_cutout
android
java
src
org
chromium
components
browser_ui
display_cutout
settings
android
java
managed_prefs_java_resources
res
values
src
org
chromium
components
browser_ui
settings
share
android
java
src
org
chromium
components
browser_ui
site_settings
android
java
res
layout
src
org
styles
android
java
res
theme
android
java
res
values
util
android
java
src
org
chromium
components
widget
android
java
res
src
org
chromium
components
browser_ui
browsing_data
content
cast
api_bindings
cast_streaming
cbor
cdm
certificate_transparency
chromeos_camera
client_hints
commerce
content
browser
core
component_updater
constrained_window
content_capture
android
junit
src
org
chromium
components
content_capture
browser
content_settings
browser
core
contextual_search
core
browser
crash
content
cronet
android
cronet_url_request.ccnative
stale_host_resolver.cctools
generators
custom_handlers
desks_storage
dom_distiller
content
ios
download
internal
background_service
scheduler
common
network
android
java
src
org
chromium
components
public
embedder_support
endpoint_fetcher
enterprise
browser
controller
reporting
common
proto
error_page
exo
client_controlled_shell_surface.ccclient_controlled_shell_surface_unittest.ccdata_device.ccdrag_drop_operation.ccextended_drag_source.ccinput_method_surface.cclayer_tree_frame_sink_holder.ccpointer.ccshell_surface.ccshell_surface_base.ccsurface.ccsurface_tree_host.cctext_input.cc
wayland
external_intents
android
java
src
org
chromium
components
external_intents
externalauth
android
java
src
org
chromium
components
externalauth
favicon
feature_engagement
feed
feedback
system_logs
flags_ui
fuchsia_component_support
fullscreen_control
gcm_driver
android
java
src
org
chromium
components
gcm_driver
instance_id
android
java
src
org
chromium
components
gcm_driver
instance_id
global_media_controls
grpc_support
guest_os
guest_view
gwp_asan
client
crash_handler
history
core
browser
ios
history_clusters
core
history_clusters_db_tasks.cchistory_clusters_service.cchistory_clusters_util.ccntp_visit_scores.ccurl_constants.h
history_clusters_internals
image_fetcher
android
java
src
org
chromium
components
image_fetcher
infobars
android
java
src
org
chromium
components
infobars
installedapp
android
java
src
org
chromium
components
installedapp
invalidation
impl
ip_protection
android_auth_client_lib
common
javascript_dialogs
js_injection
browser
keyed_service
lens
live_caption
location
android
java
src
org
chromium
components
location
lookalikes
media_message_center
media_router
browser
common
memory_pressure
memory_system
messages
android
metal_util
metrics
call_stacks
clean_exit_beacon.ccclean_exit_beacon.hdate_changed_helper_unittest.ccfield_trials_provider.cclog_store.hmetrics_log_uploader.hmetrics_pref_names.hmetrics_provider.hmetrics_service.ccmetrics_service.hmetrics_state_manager.ccpersistent_histograms.ccstructured
ukm_demographic_metrics_provider.hmetrics_services_manager
mirroring
service
ml
navigation_interception
network_hints
no_state_prefetch
ntp_tiles
offline_items_collection
core
offline_pages
omnibox
browser
autocomplete_controller.ccautocomplete_match_android.ccautocomplete_provider.ccautocomplete_result.ccautocomplete_result.hbase_search_provider.ccbookmark_provider_unittest.ccclipboard_provider.hlocation_bar_model_impl_unittest.ccmost_visited_sites_provider.ccomnibox_edit_model.ccomnibox_field_trial.homnibox_metrics_provider.ccon_device_head_model.ccopen_tab_provider.ccsearch_suggestion_parser_unittest.cc
optimization_guide
core
bert_model_executor_unittest.cchints_manager.cchints_manager.hhints_manager_unittest.ccmodel_validator_unittest.ccoptimization_guide_features.ccprediction_manager.h
optimization_guide_internals
proto
origin_trials
os_crypt
async
browser
sync
page_content_annotations
page_image_annotation
core
page_info
page_info_strings.grdppage_load_metrics
browser
metrics_web_contents_observer.ccpage_load_metrics_observer_delegate.hpage_load_metrics_observer_interface.hpage_load_metrics_update_dispatcher.ccpage_load_metrics_update_dispatcher.hpage_load_tracker.cc
observers
ad_metrics
assert_page_load_metrics_observer.hback_forward_cache_page_load_metrics_observer.ccback_forward_cache_page_load_metrics_observer_unittest.cccore
largest_contentful_paint_handler.cclargest_contentful_paint_handler.huma_page_load_metrics_observer.cc
prerender_page_load_metrics_observer.cccommon
paint_preview
browser
common
capture_result.hpaint_preview_tracker.ccpaint_preview_tracker.hserial_utils.ccsubset_font.ccsubset_font_unittest.cc
player
android
renderer
password_manager
content
core
browser
BUILD.gn
affiliation
credential_cache.hexport
features
field_info_manager.ccfield_info_manager.hform_fetcher_impl.ccform_parsing
generation
import
passkey_credential.ccpassword_autofill_manager.ccpassword_credential_filler_impl.ccpassword_form.ccpassword_form.hpassword_form_manager.hpassword_form_metrics_recorder.ccpassword_form_metrics_recorder_unittest.ccpassword_generation_frame_helper.hpassword_manager_client.hpassword_manager_constants.hpassword_manager_driver.hpassword_manager_util.ccpassword_manager_util.hpassword_reuse_manager_impl.hpassword_store
login_database.cclogin_database_ios.ccpassword_store.ccpassword_store.hpassword_store_backend.hpassword_store_consumer.hsmart_bubble_stats_store.htest_password_store.h
password_store_factory_util.ccsharing
sync
ui
votes_uploader.ccvotes_uploader_unittest.cccommon
ios
payments
content
android
java
src
org
core
journey_logger.hpayment_request_data_util.ccpayments_profile_comparator.ccsecure_payment_confirmation_metrics.h
mojom
pdf
browser
renderer
performance_manager
BUILD.gn
decorators
graph
performance_manager_feature_observer_client.ccperformance_manager_impl.ccperformance_manager_tab_helper.ccpersistence
power
prerendering_browsertest.ccresource_attribution
service_worker_context_adapter.hv8_memory
worker_watcher.ccworker_watcher.hpermissions
android
java
src
org
chromium
components
permissions
contexts
camera_pan_tilt_zoom_permission_context.ccwebxr_permission_context.ccwindow_management_permission_context.cc
object_permission_context_base.hpermission_context_base.ccpermission_manager.ccpermission_request_manager.ccpermission_uma_util.ccpermission_util.ccpermission_util.hpermissions_client.hrequest_type.cctest
policy
content
core
browser
common
test_support
tools
power_bookmarks
power_metrics
power_monitor
prefs
printing
privacy_sandbox
proxy_config
reading_list
remote_cocoa
resources
protobufs
safe_browsing
android
content
core
browser
saved_tab_groups
search
search_engines
default_search_manager.cctemplate_url_fetcher.cctemplate_url_parser.cctemplate_url_prepopulate_data.cctemplate_url_service.hutil.cc
security_interstitials
content
core
security_state
core
segmentation_platform
embedder
internal
public
send_tab_to_self
send_tab_to_self_bridge.ccsend_tab_to_self_infobar_delegate.hsend_tab_to_self_model_observer.hsend_tab_to_self_sync_service.cc
services
app_service
public
font
public
heap_profiling
paint_preview_compositor
print_compositor
storage
dom_storage
public
cpp
service_worker
service_worker_database.hservice_worker_database.protoservice_worker_storage_control_impl.ccservice_worker_storage_control_impl.h
shared_storage
storage_service_impl.ccsession_proto_db
sessions
content
core
ios
shared_highlighting
core
signin
core
internal
identity_manager
public
android
java
src
org
chromium
junit
src
org
chromium
components
signin
identitymanager
identity_manager
soda
spellcheck
sqlite_proto
startup_metric_utils
common
storage_monitor
subresource_filter
content
browser
ads_blocked_message_delegate.ccads_intervention_manager.ccchild_frame_navigation_filtering_throttle.ccchild_frame_navigation_filtering_throttle.hcontent_subresource_filter_throttle_manager.ccprofile_interaction_manager.ccsubresource_filter_content_settings_manager.hsubresource_filter_safe_browsing_client.h
shared
supervised_user
core
sync
PRESUBMIT_test.py
android
base
engine
model
DEPSclient_tag_based_model_type_processor.ccclient_tag_based_remote_update_handler.ccforwarding_model_type_controller_delegate.ccmodel_type_sync_bridge.hprocessor_entity.ccproxy_model_type_controller_delegate.ccsync_data.ccsyncable_service.cc
nigori
protocol
autofill_specifics.protodata_type_progress_marker.protoentity_specifics.protonigori_specifics.protosync.protosync_enums.proto
service
glue
model_load_manager.ccpassphrase_type_metrics_provider.ccsync_auth_manager.ccsync_client.hsync_prefs.hsync_service.hsync_service_crypto.ccsync_service_impl.ccsync_service_utils.hsync_user_settings.hsync_user_settings_impl.cctest
sync_bookmarks
bookmark_local_changes_builder.ccbookmark_model_observer_impl.ccbookmark_model_type_processor.ccbookmark_remote_updates_handler.ccbookmark_specifics_conversions_unittest.cc
sync_device_info
sync_preferences
common_syncable_prefs_database.ccdual_layer_user_pref_store.ccdual_layer_user_pref_store.hdual_layer_user_pref_store_unittest.ccpref_model_associator.ccpref_model_associator_unittest.ccpref_service_syncable.hpref_service_syncable_factory.cc
sync_sessions
test
components_test_suite.cc
data
password_manager
form_annotation_extension
subresource_filter
update_client
puffin_patch_test
translate
content
android
java
src
org
chromium
components
browser
core
browser
common
language_detection
ios
browser
trusted_vault
standalone_trusted_vault_backend.ccstandalone_trusted_vault_client.cc
test
trusted_vault_histograms.ccui_devtools
ukm
update_client
url_formatter
url_pattern
url_pattern_index
url_rewrite
user_education
views
user_manager
value_store
variations
DEPSchild_process_field_trial_syncer.ccclient_filterable_state.cclimited_entropy_mode_gate.ccmetrics.ccprocessed_study.cc
android
java
src
org
chromium
components
variations
firstrun
service
variations_crash_keys.ccvariations_layers.ccvariations_seed_store.ccvariations_seed_store.hvariations_seed_store_unittest.ccvector_icons
visitedlink
viz
BUILD.gn
client
common
quads
resources
host
service
BUILD.gn
display
dc_layer_overlay.ccdc_layer_overlay.hdirect_renderer.ccdisplay_resource_provider.ccdisplay_scheduler.ccframe_rate_decider_unittest.ccoverlay_candidate_factory.ccoverlay_processor_delegated.ccoverlay_processor_surface_control.ccrenderer_pixeltest.ccskia_renderer.ccsoftware_renderer.ccsurface_aggregator.cc
display_embedder
compositor_gpu_thread.ccimage_context_impl.ccoutput_presenter_gl.ccskia_output_device.ccskia_output_device.hskia_output_device_dcomp.ccskia_output_device_vulkan.ccskia_output_surface_impl.ccskia_output_surface_impl_on_gpu.cc
frame_sinks
compositor_frame_sink_support.cccompositor_frame_sink_support.hexternal_begin_frame_source_android.cc
video_capture
hit_test
main
surfaces
test
viz.gniweb_modal
web_package
webapps
browser
webauthn
content
webcrypto
webrtc
webrtc_logging
browser
webxr
android
mailbox_to_surface_bridge_impl.hwifi
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
|
||||
|
2
components/autofill/android/java/src/org/chromium/components/autofill/AutofillDropdownAdapter.java
2
components/autofill/android/java/src/org/chromium/components/autofill/AutofillDropdownAdapter.java
@ -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
Reference in New Issue
Block a user