duckduckgo / duckduckgo/Android
[Bug] Application not responding while in middle of importing large number of bookmarks
Nobody has claimed this yet.
- Dominant language
- Kotlin
- Stars
- 4.8k
- Forks
- 1.4k
- Avg merge
- 2d 17h
- Merged PRs (30d)
- 170
Description
Describe the bug
DuckDuckGo stops responding while in the middle of importing 50000 bookmarks. Choosing to not terminate the process makes DDG close the Bookmarks view after a while. After restarting the app (reentering the Bookmarks view), only fraction of bookmarks are correctly imported (for emulated Pixel 5 usually around 9000 imported sites, for Xiaomi Mi Note 10 Lite 18000 the first try and 33000 the second try).
On emulated Pixel 5 it also doesn't properly import 10000 bookmarks most of the times.
How to Reproduce
- Generate an html file with tens of thousands of bookmarks.
- Open the app, open the browser menu and open the Bookmarks view.
- Try importing the file via the import function in Bookmarks.
App stopped responding while importing:

The html file content:
<!DOCTYPE NETSCAPE-Bookmark-file-1>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<Title>Bookmarks</Title>
<H1>Bookmarks</H1>
<DL><p>
<DT><H3 ADD_DATE="1618844074" LAST_MODIFIED="1618844074" PERSONAL_TOOLBAR_FOLDER="true">DuckDuckGo Bookmarks</H3>
<DL><p>
<DT><A HREF="https://myanimelist.net/manga/1/" ADD_DATE="1618844074" LAST_MODIFIED="1618844074">Manga number 1</A>
<DT><A HREF="https://myanimelist.net/manga/2/" ADD_DATE="1618844074" LAST_MODIFIED="1618844074">Manga number 2</A>
[...]
<DT><A HREF="https://myanimelist.net/manga/49999/" ADD_DATE="1618844074" LAST_MODIFIED="1618844074">Manga number 49999</A>
</DL><p>
</DL><p>
Expected behavior
The bookmarks would be correctly imported.
Environment
- DDG App Version: 5.107.0
- Device: Pixel 5
- OS: Android 11.0
and
- DDG App Version: 5.105.1
- Device: Xiaomi Mi Note 10 Lite
- OS: Android 11.0
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the issue in the Bookmarks view using a generated HTML file containing tens of thousands of bookmarks, as described. Investigate the import path and verify completion by confirming that all 50,000 bookmarks are imported without the app becoming unresponsive or closing the view.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kotlin
- Domain
- mobile-dev, performance
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100