The winprofile doc treats Android's live MaxRate=25000 as history - #1758
Merged
Merged
Conversation
httrack-android's OptionsMapper.java carries a fieldsDefaults row seeding MaxRate to 25000, and initializeMap() puts it into every fresh project. Its own golden argv records -A25000 for a run that sets no transfer rate, and WinProfileOmissionTest asserts the value reaches every saved profile. The paragraph called the literal MaxRate=25000 a thing old profiles carry, so it read a live writer as an old file. Two neighbouring claims went with it: the front ends no longer all "pass nothing at all", and "Both cells describe the target rather than WebHTTrack today" named the wrong front end once Android turned out to diverge too. Signed-off-by: Xavier Roche <roche@httrack.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> Signed-off-by: Xavier Roche <roche@httrack.com>
xroche
enabled auto-merge (squash)
September 23, 2026 10:36
The httrack-android session corrected the mechanism. ourDefaults() has one call site, inside serialize(), so it is the writer's omission table and never runs on a load. The reader substitution comes from HTTrackActivity.java loading a project with resetMap(), which seeds MaxRate to 25000, and then unserialize(), which overlays only the keys the file states. That makes the effect cross-repository, which is what this document is for: a winprofile.ini written by WinHTTrack or WebHTTrack without a MaxRate line opens there as a 25000 cap rather than as no cap. Android's own profiles are unaffected, because absentMeansSame() gives NO_DEFAULT priority and always writes the key. Verified against httrack-android through the GitHub API, not a checkout. Signed-off-by: Xavier Roche <roche@httrack.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> Signed-off-by: Xavier Roche <roche@httrack.com>
absentMeansSame() returns value.length() == 0 for a NO_DEFAULT key, so the key is written only while its baseline is non-empty. resetMap() runs initializeMap() and then loadDefaultPreferences(), and OptionsActivity's save-default menu item writes every field's current value into those preferences, so the baseline is not pinned at the 25000 seed. The httrack-android session caught it. The cross-front-end effect stands either way, because a file that omits the key never overwrites whatever baseline is in force. Signed-off-by: Xavier Roche <roche@httrack.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> Signed-off-by: Xavier Roche <roche@httrack.com>
The empty baseline that drops MaxRate on a save also fixes the read. resetMap() overlays the user's saved "" over the seed, unserialize() leaves it alone for a file that omits the key, and SimpleOption emits nothing for a non-numeric value, so the profile opens with no cap. The 25000 follows from the seeded baseline being in force, which is the default state rather than every state. Caught by the httrack-android session, which had just supplied the corner the claim contradicted. Signed-off-by: Xavier Roche <roche@httrack.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> Signed-off-by: Xavier Roche <roche@httrack.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Android's
OptionsMapper.javaseedsMaxRateto25000, so a project nobody edited carries-A25000. A profile from another front end that omits the key opens there as a cap too. The doc called that literal something old profiles carry, which read a live writer as history.