Skip to content

작성 툴바가 타이밍 가정에 기대고, 링크 검증이 유니코드 URL 을 거부 #1067

Closed

Description

@Sadturtleman

📜 Overview (Required)

PR #992 리뷰에서 나온 비차단 지적 둘. 둘 다 «지금은 대체로 동작하지만 가정이 깨지면 조용히 틀리는» 종류다.

1. KEYBOARD_SETTLE_MS = 300 — 타이밍 가정

WriteTextField.kt 가 키보드가 300ms 안에 올라온다고 가정하고 패널을 연다. 저사양 기기나 커스텀 IME 에서 그 안에 안 올라오면 방금 켠 패널이 닫힌다.

WindowInsets.isImeVisible 이 실제로 true 가 될 때까지 기다리는 형태(snapshotFlow { imeVisible }.first { it } + 타임아웃)로 바꾸면 가정이 사라진다. 지금 구조를 유지하더라도 상수 옆에 «왜 300인가» 근거가 있어야 다음 사람이 조정할 수 있다.

2. isSupportedLinkUrl 이 유니코드 URL 을 거부

HtmlText.kt 의 URI(trimmed) 는 한글 도메인·한글 경로에서 URISyntaxException 을 던져 정상 주소도 막는다.

https://한글.com          → 거부
https://example.com/한글   → 거부

붙여넣기로 흔히 들어오는 형태다. java.net.IDN 으로 호스트를 punycode 변환하거나, 경로를 percent-encoding 한 뒤 검증하는 방식이 필요하다. 스킴 제한(http/https 만 허용, javascript: 차단)은 그대로 유지해야 한다.

📌 Child Issue(Optional)

No response

📍 Note (Optional)

Activity

  1. self-assigned this
    on Aug 24, 2026
  2. changed the title [-]fix(mindrecord): 작성 툴바가 타이밍 가정에 기대고, 링크 검증이 유니코드 URL 을 거부[/-] [+]작성 툴바가 타이밍 가정에 기대고, 링크 검증이 유니코드 URL 을 거부[/+] on Aug 28, 2026
  3. added a commit that references this issue on Aug 29, 2026
  4. added
    pr-open이 이슈를 구현하는 PR 이 열려 있다 — base 가 기본 브랜치가 아니어도 드러낸다
    on Aug 29, 2026
  5. removed
    pr-open이 이슈를 구현하는 PR 이 열려 있다 — base 가 기본 브랜치가 아니어도 드러낸다
    on Aug 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:mindrecord마음의 기록 기능 영역bugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions