안드로이드에서 브라우저 뒤로가기 기능이 간헐적으로 작동하지 않음

아직 이 문제의 원인을 정확히 파악하지는 못했지만, 기본 브라우저 기능이 깨지는 문제이기 때문에 조기에 보고하게 되었습니다.

최근 약 1주일 전부터 CDCK SaaS 인스턴스인 Tappara.co에서 새로운 문제가 발생하고 있습니다.

가끔 브라우저의 뒤로 가기 버튼을 누르면 원래 있던 인덱스 페이지로 돌아가는 대신, 그 전에 읽던 다른 토픽으로 이동하는 경우가 있습니다.

저는 이 문제를 자주 목격하고 있으며, 여러 사용자들도 동일한 문제를 보고했습니다. 지금까지의 보고는 모두 Android/Chrome 사용자들로부터 접수되었습니다.

3개의 좋아요

안녕하세요 @ljpp - 이 문제를 보고해 주셔서 감사합니다. 최근 ‘뒤로’ 내비게이션을 처리하는 코드에 몇 가지 업그레이드가 이루어졌기 때문에, 회귀 오류(regression)가 발생했거나 사용자의 사이트에서 테마/플러그인과 호환성 문제가 생긴 것일 수 있습니다.

해당 문제를 재현할 수 있는 특정 페이지 방문 순서가 있으신가요?

1개의 좋아요

아직 재현 패턴은 없지만, 빈번하게 발생합니다. 지난 며칠간 관련이 있을 수 있는 몇 가지 다른 이상한 동작도 관찰되었습니다.

  • 브라우저를 새로고침했을 때, 새로고침을 실행했던 페이지가 아닌 다른 페이지로 이동했습니다.
  • 인덱스 페이지에서 토픽을 탭했을 때 열리지 않는 현상을 확인했습니다.
1개의 좋아요

저도 지금 같은 문제가 발생하고 있습니다. 뒤로 가기 버튼을 사용하면 해당 토픽의 다른 게시글로 점프한 뒤 최신 게시글 목록이 다시 표시되는 것을 확인했습니다. 그 후에는 다시 해당 토픽을 열 수 없었습니다. 페이지를 새로고침하면 토픽이 정상적으로 표시됩니다.
뒤로 가기 버튼을 눌러도 마지막에 있던 최신 게시글 목록으로 바로 돌아가지 않는다는 점에 유의하세요. 이 문제를 유발하는 것 같아 이전에 해당 토픽을 여러 번 방문했습니다. (토픽의 다른 게시글로 가는 링크나 첫 번째 게시글의 “전체 게시글 보기” 버튼 때문일 수 있지만, 아직 명확한 재현 단계를 파악하지 못했습니다.)

더 재현해 보았습니다. 뒤로 가기 버튼이 최신 게시글 목록으로 바로 되돌려주지 않고, 토픽 목록으로 돌아가기 전에 다른 게시글로 점프하는 경우가 분명히 발생하고 있습니다.

3개의 좋아요

iPad/DiscourseHub에서도 왼쪽에서 오른쪽으로 스와이프할 때 같은 현상이 발생합니다. 실제로 어제부터 시작되어 여기에서도 나타나고 있습니다. 꽤 짜증나네요 :smirking_face:

그리고 항상 그런 것은 아닙니다. 때로는 1초 전의 이전 주제를 표시한 뒤 포럼을 새로고침하고 정상적으로 홈으로 돌아갑니다. 또는 읽지 않은(빨간색) 주제들의 히스토리를 거치는 것처럼 보이기도 합니다.

물론 이는 다른 문제일 수 있지만, 증상이 비슷해 보이기 때문에 새 주제를 만들지 않았습니다.

3개의 좋아요

모두 감사합니다. 가능한 원인을 계속 조사하겠습니다. 이 문제가 발생할 때 브라우저 콘솔에서 오류를 확인해 주실 수 있다면 큰 도움이 될 것입니다. (모바일에서는 쉽지 않다는 걸 잘 알고 있습니다!)

2개의 좋아요

최신 탭에서 주제를 열었고, 뒤로 가기 버튼을 눌러 최신 탭으로 돌아간 뒤 다시 해당 주제를 클릭했습니다. 그런데 주제가 열리지 않습니다. 다음과 같은 오류가 발생합니다.

Uncaught TypeError: Cannot read properties of undefined (reading 'refresh')
    at e.navigatedToPost (url.js:335:20)
    at e.routeTo (url.js:240:14)
    at e.E [as navigateToTopic] (topic-list-item.js:44:16)
    at e.click (topic-list-item.js:284:19)
    at e.trigger (core_view.js:63:1)
    at e.r [as trigger] (index.js:383:1)
    at e.trigger (ember-events.js:138:30)
    at e.r [as trigger] (index.js:383:1)
    at HTMLTableRowElement.o (ember-events.js:203:39)
navigatedToPost @ url.js:335
routeTo @ url.js:240
E @ topic-list-item.js:44
click @ topic-list-item.js:284
trigger @ core_view.js:63
r @ index.js:383
trigger @ ember-events.js:138
r @ index.js:383
o @ ember-events.js:203
5개의 좋아요

하지만 어딘가에서는 아무 오류 없이 같은 일이 발생할 수 있습니다:


그리고 그때 뒤로 가기 버튼도 최신 상태로 되돌려주지 않습니다.

뒤로 가기 버튼이 최신 상태로 되돌려주지 않을 때 오류가 발생하지 않습니다

5개의 좋아요

상세한 정보를 알려주셔서 감사합니다, @Moin. 문제를 해결하기 위해 커밋을 병합했습니다. 앞으로 30~60분 이내에 Meta에 반영될 예정입니다.

5개의 좋아요

잠시 세션을 진행한 후 이제 iPad도 정상적으로 작동하는 것 같습니다. 그래서 안드로이드만의 문제가 아니었던 건가요?

2개의 좋아요

음, 안드로이드에 국한된 문제는 아니라고 생각해요.

해당 문제는 네트워크/CPU 성능에 어느 정도 의존적이었기 때문에, 태블릿에서 더 자주 확인된 이유가 될 수 있어요. 하지만 개발자 도구의 네트워크/CPU 성능을 낮추면 macOS의 Chrome에서도 문제를 재현할 수 있었습니다.

2개의 좋아요

메타에서 해당 수정으로 인해 어떤 회귀 문제도 발생하지 않았다면, Tappara.co에도 배포해 주시겠어요?

2개의 좋아요

‘로딩 인디케이터’ 사이트 설정이 기본값이 아닌 '스피너’로 설정되어 있을 때 문제가 발생하는 것으로 보입니다. 최대한 빨리 수정하겠습니다.

2개의 좋아요

해당 ‘로딩 표시기 = 스피너’ 문제는 FIX: Ensure topic route does not replaceState after navigation (#24563) · discourse/discourse@86f3e86 · GitHub 에서 해결됩니다.

2개의 좋아요

이 주제는 20시간 후 자동으로 닫혔습니다. 더 이상 새 답글을 작성할 수 없습니다.