New issue
Advanced search Search tips

Issue 850616 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Bug



Sign in to add a comment

xmlns namespaces are inconsistent

Project Member Reported by bsazonov@chromium.org, Jun 7 2018

Issue description

Currently, different Chrome XML files use different XML namespace names for "http://schemas.android.com/apk/res-auto" namespace.

Here's breakdown:
xmlns:app: 107
xmlns:chrome: 77
xmlns:settings: 3
xmlns:tools: 1

There are multiple issues that arise from these inconsistency:
1. Readability (and confusion for people without lots of Android experience).
2. It's harder to search for usages of non-Android XML attributes.
3. It's harder to migrate/rename attributes if they are referenced using different namespaces in different files.

All Android samples (or at least the ones I've seen) use xmlns:app. We should do the same in Chrome.
 
+1000...in the back of my mind, I always assumed it was done for some reason I didn't understand...I wanted to believe that.
Unifying would be awesome! I'll start enforcing this in code review. Maybe we can work in a presubmit warning or error at some point.
Project Member

Comment 3 by bugdroid1@chromium.org, Jun 8 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/899b95e41eb540e234b81eeaa9d79af57d67ea59

commit 899b95e41eb540e234b81eeaa9d79af57d67ea59
Author: Boris Sazonov <bsazonov@chromium.org>
Date: Fri Jun 08 12:11:22 2018

[Android] Change XML namespace declarations to use 'app' prefix

This CL brings consistency to "http://schemas.android.com/apk/res-auto"
XML namespace declarations. Before, these declarations used different
prefixes: 'xmlns:app', 'xmlns:chrome', 'xmlns:settings' and
'xmlns:tools' (sorted in decreasing popularity order). This CL changes
all these declarations to use 'app' prefix.
Presubmit check to enforce this consistency will be added in
subsequent CL.

Bug:  850616 
Change-Id: Icc1e1305c583906a8bb0b47965c0c5dcd3e3612c
Reviewed-on: https://chromium-review.googlesource.com/1091192
Commit-Queue: Boris Sazonov <bsazonov@chromium.org>
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#565612}
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/accept_languages_item.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/accessibility_tab_switcher.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/accessibility_tab_switcher_list_item.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/account_signin_view.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/bookmark_add_edit_folder_activity.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/bookmark_edit.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/bookmark_row_content.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/button_preference_button.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/button_preference_layout.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/clear_storage.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/content_suggestions_all_dismissed_card_modern.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/contextual_search_promo_view.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/contextual_suggestions_toolbar.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/custom_tabs_bottombar.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/custom_tabs_toolbar.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/data_reduction_main_menu_item.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/data_usage_breakdown.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/data_usage_breakdown_row.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/data_usage_chart.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/default_search_engine_first_run_fragment.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/download_item_view.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/download_location_dialog.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/download_manager_ui_space_widget.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/empty_background_view_tablet.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/fre_data_reduction_proxy.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/fre_tosanduma.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/history_item_view.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/history_toolbar.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/item_chooser_dialog.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/keyboard_accessory_action.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/lightweight_fre_tos.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/list_menu_button.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/menu_item.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/modal_dialog_view.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/new_tab_page_all_dismissed.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/new_tab_page_incognito.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/new_tab_page_incognito_md.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/new_tab_page_layout.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/new_tab_page_snippets_card_large_thumbnail.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/new_tab_page_status_card.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/ntp_shortcuts.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/object_permission.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/offline_download_header.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/page_info.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/page_info_permission_row.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/payment_request.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/payment_request_bottom_bar.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/payment_request_editor.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/payment_request_error.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/promo_dialog_layout.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/sad_tab.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/search_toolbar.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/signin_view.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/sync_promo_view.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/tabular_context_menu_row.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/textbubble_text_with_image.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/tile_view_classic.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/tile_view_classic_condensed.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/tile_view_modern.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/tile_view_modern_condensed.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/title_button_menu_item.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/toolbar_phone_common.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/translate_menu_item_checked.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/update_menu_item.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/layout/updating_gms_progress_view.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/menu/languages_action_bar_menu.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/menu/password_entry_editor_action_bar_menu.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/menu/prefeditor_editor_menu.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/menu/save_password_preferences_action_bar_menu.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/menu/website_preferences_menu.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/xml/clear_browsing_data_preferences_tab.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/xml/contextual_search_preferences.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/xml/contextual_suggestions_preferences.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/xml/data_reduction_preferences_off.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/xml/do_not_track_preferences.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/xml/homepage_preferences.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/xml/translate_preferences.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/xml/usage_and_crash_reports_preferences.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/res/xml/website_preferences.xml
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/src/org/chromium/chrome/browser/widget/BoundedLinearLayout.java
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/src/org/chromium/chrome/browser/widget/ImageViewTinter.java
[modify] https://crrev.com/899b95e41eb540e234b81eeaa9d79af57d67ea59/chrome/android/java/src/org/chromium/chrome/browser/widget/MaterialProgressBar.java

Project Member

Comment 4 by bugdroid1@chromium.org, Jun 11 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e9a41e34104f51f2c1194db1bbdfbd87c6edcba5

commit e9a41e34104f51f2c1194db1bbdfbd87c6edcba5
Author: Boris Sazonov <bsazonov@chromium.org>
Date: Mon Jun 11 12:28:16 2018

[Android] Add presubmit check to validate XML namespace prefixes

This CL is a follow-up to https://crrev.com/c/1091192. It adds presubmit
check to enforce prefix consistency for the most used XML namespace
("http://schemas.android.com/apk/res-auto").

Bug:  850616 
Change-Id: I03e3825b22a65d9637a6da0cdf3cfd1e233e46a7
Reviewed-on: https://chromium-review.googlesource.com/1092744
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Commit-Queue: Boris Sazonov <bsazonov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#565976}
[modify] https://crrev.com/e9a41e34104f51f2c1194db1bbdfbd87c6edcba5/chrome/android/java/res/PRESUBMIT.py
[modify] https://crrev.com/e9a41e34104f51f2c1194db1bbdfbd87c6edcba5/chrome/android/java/res/PRESUBMIT_test.py

Status: Fixed (was: Started)

Sign in to add a comment