Merge release parent#3627
Conversation
refs: MBL-19863 affects: Student, Teacher, Parent release note: - (cherry picked from commit fae7557)
* Fix New Login UI changes in E2E tests. refs: MBL-19864 affects: Student, Teacher, Parent release note: - * Fix LoginSignInPage UI element selectors + Stub a test (needs further investigation). * Add util function for react input notifying. * Stabilize Login tests by waiting for email and password field to be displayed before making interaction with them. * Stub Student DashboardE2ETest (cherry picked from commit 92883f8)
Removed @singleton annotation because it caused issues (cherry picked from commit b777ed4)
# Conflicts: # apps/parent/src/androidTest/java/com/instructure/parentapp/ui/e2e/compose/LoginE2ETest.kt
🧪 Unit Test Results📊 Summary
Last updated: Tue, 07 Apr 2026 08:55:03 GMT |
There was a problem hiding this comment.
Review Summary
This PR adds support for downloading Canvas file URLs (on canvas-user-content.com) that are intercepted in shouldInterceptRequest, and wires up the MediaDownloadCallback in SimpleWebViewFragment for the Parent app. The approach is consistent with the existing Studio and caption-file download patterns in CanvasWebView. Version bump from 4.10.1 → 4.11.0 looks correct.
Issues Found
-
Incorrect filename extraction — downloaded files will always be named
"file"(CanvasWebView.ktline 444):parseFileNameFromContentDisposition(url, url)passes the raw URL as the content-disposition value. The function only extracts a name when"filename="is present in thecontentargument; since a Canvas download URL contains no such string, every download resolves to the default"file"with no extension and no uniqueness hash. See inline comment for a suggested fix. -
/downloadsubstring is slightly too broad inisCanvasFileDownload(CanvasWebView.ktline 1062):url.contains("/download")matches paths like/bulk-downloador/download-center. Changing tourl.contains("/download?")tightens the check to the actual query-string boundary. See inline comment.
Observations (no action required)
- Making
isStudioDownloadandisInternalFileDownloadLinkprivateis a correct cleanup — both are internal implementation details, and all call sites are within the enclosing class. - The fall-through to
super.shouldInterceptRequestafter the newisCanvasFileDownloadblock (rather than returningWebResourceResponse(null, null, null)) matches the existing Studio download pattern and its associated comment about empty responses breaking the displayed page. - No unit tests are added for
isCanvasFileDownload, but this is consistent with howisStudioDownloadandisInternalFileDownloadLinkare currently handled in the codebase.
📊 Code Coverage Report✅ Student
✅ Teacher
✅ Pandautils
📈 Overall Average
|
No description provided.