mirror of
https://github.com/bitwarden/android.git
synced 2026-03-09 03:33:36 -05:00
BIT-621: Add URI matching for autofill (#842)
This commit is contained in:
committed by
Álison Fernandes
parent
0e5e6b4444
commit
0c6ea8d18d
15411
scripts/public_suffix_list.dat
Normal file
15411
scripts/public_suffix_list.dat
Normal file
File diff suppressed because it is too large
Load Diff
76
scripts/public_suffix_list_generator.sh
Normal file
76
scripts/public_suffix_list_generator.sh
Normal file
@@ -0,0 +1,76 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This shell script is for parsing `public_suffix_list.dat` and writing its contents into a string
|
||||
# array resource. We need these public suffixes for extracting a domain name from a URI. For more
|
||||
# information about why that is, checkout the original PR description here:
|
||||
# https://github.com/bitwarden/android/pull/842.
|
||||
#
|
||||
# For an updated `public_suffix_list.dat` file, go here: https://publicsuffix.org/list/index.html
|
||||
|
||||
RAW_PREFIXES_DATA_PATH="public_suffix_list.dat"
|
||||
RESOURCE_OUTPUT_PATH="../app/src/main/res/values/public_suffix_list.xml"
|
||||
EXCEPTION_SUFFIXES_STRING_ARRAY_HEADER=" <string-array name=\"exception_suffixes\">\n"
|
||||
NORMAL_SUFFIXES_STRING_ARRAY_HEADER=" <string-array name=\"normal_suffixes\">\n"
|
||||
WILD_CARD_SUFFIXES_STRING_ARRAY_HEADER=" <string-array name=\"wild_card_suffixes\">\n"
|
||||
STRING_ARRAY_FOOTER=" </string-array>\n"
|
||||
STRING_RESOURCE_FOOTER="</resources>\n"
|
||||
STRING_RESOURCE_HEADER="<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n A list of valid public domain suffixes. This file is generated by running\n \`scripts/public_suffix_list_generator.sh\` \n-->\n<resources>\n"
|
||||
|
||||
# Setup the header of the file.
|
||||
newFileContents=$STRING_RESOURCE_HEADER
|
||||
|
||||
exceptionSuffixes=()
|
||||
normalSuffixes=()
|
||||
wildcardSuffixes=()
|
||||
|
||||
addItemToContents() {
|
||||
newFileContents+=" <item>$1</item>\n"
|
||||
}
|
||||
|
||||
while IFS= read -r string || [[ -n "$string" ]]; do
|
||||
if [[ -z "$string" || "$string" == "//"* ]]; then
|
||||
# Remove comments and empty lines
|
||||
continue
|
||||
elif [[ "$string" == "*"* ]]; then
|
||||
# Drop the "*."
|
||||
wildcardSuffixes+=("${string#??}")
|
||||
elif [[ "$string" == "!"* ]]; then
|
||||
# Drop the "!."
|
||||
exceptionSuffixes+=("${string#?}")
|
||||
else
|
||||
normalSuffixes+=("$string")
|
||||
fi
|
||||
done < "$RAW_PREFIXES_DATA_PATH"
|
||||
|
||||
# Add all exception suffix items to the new file contents.
|
||||
if [ ${#exceptionSuffixes[@]} -gt 0 ]; then
|
||||
newFileContents+=$EXCEPTION_SUFFIXES_STRING_ARRAY_HEADER
|
||||
for item in "${exceptionSuffixes[@]}"; do
|
||||
addItemToContents "$item"
|
||||
done
|
||||
newFileContents+=$STRING_ARRAY_FOOTER
|
||||
fi
|
||||
|
||||
# Add all normal suffix items to the new file contents.
|
||||
if [ ${#normalSuffixes[@]} -gt 0 ]; then
|
||||
newFileContents+=$NORMAL_SUFFIXES_STRING_ARRAY_HEADER
|
||||
for item in "${normalSuffixes[@]}"; do
|
||||
addItemToContents "$item"
|
||||
done
|
||||
newFileContents+=$STRING_ARRAY_FOOTER
|
||||
fi
|
||||
|
||||
# Add all wild card suffix items to the new file contents.
|
||||
if [ ${#wildcardSuffixes[@]} -gt 0 ]; then
|
||||
newFileContents+=$WILD_CARD_SUFFIXES_STRING_ARRAY_HEADER
|
||||
for item in "${wildcardSuffixes[@]}"; do
|
||||
addItemToContents "$item"
|
||||
done
|
||||
newFileContents+=$STRING_ARRAY_FOOTER
|
||||
fi
|
||||
|
||||
# Setup the footer of the file.
|
||||
newFileContents+=$STRING_RESOURCE_FOOTER
|
||||
|
||||
# Write the contents to the output file.
|
||||
echo -e "$newFileContents" > "$RESOURCE_OUTPUT_PATH"
|
||||
Reference in New Issue
Block a user