Task #363: native PageRenderTree bridge API#385
Conversation
|
PR 검토했습니다. 먼저, 이번에 Firefox AMO 등록 (Task #338, PR #339) 작업해 주셔서 감사합니다. rhwp-firefox 가 정상적으로 스토어에 등록되는 데 큰 도움이 되었습니다. 본 PR (Task #363) 의 변경은 기존 `build_page_tree` 를 감싸는 thin wrapper 형태로 회귀 위험이 낮고, alhangeul-macos 의 검증 commit 으로 사전 확인된 방향이 명확합니다. 다만 head 머지 전에 메인테이너 측 정책 검토 항목이 있어 의견 부탁드립니다:
상기 항목은 작업지시자 (메인테이너) 가 결정합니다. DRAFT 상태로 두신 의도와도 부합하니, 결정 결과를 본 댓글에 추가로 알려드리겠습니다. 상세 검토: `mydocs/pr/pr_385_review.md` |
|
정책 검토 결과 정상 머지로 진행합니다. 이전 댓글의 검토 항목 (PageRenderTree 안정성, semver, native bridge 방향, serde 의존성) 은 작업지시자가 진행 가능으로 판단했습니다. DRAFT 상태이신 PR 을 cherry-pick 방식으로 devel 에 머지하겠습니다 (작성자 attribution 보존). 머지 완료 후 본 PR 은 close 됩니다. 검증 + 머지 진행 후 결과 회신드리겠습니다. |
PR #385 (Task #363): DocumentCore::build_page_render_tree + get_bin_data public API + Serialize derive. native bridge (alhangeul-macos) use case 지원. cherry-pick 으로 작성자 attribution 보존 (4 commit). orders 수동 통합. 검증: 1014 → 1016 passed (+2 신규 테스트), svg_snapshot 6/6, clippy / wasm32 check 통과. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
DocumentCore 에 build_page_render_tree + get_bin_data public API 추가. Serialize derive 로 native bridge JSON 직렬화 지원. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
cherry-pick 으로 devel 에 머지 완료했습니다 (작성자 attribution 보존, 4 commit). 먼저, 이번에 Firefox AMO 등록 (Task #338, PR #339) 작업해 주셔서 감사합니다. rhwp-firefox 가 정상적으로 스토어에 등록되는 데 큰 도움이 되었습니다. 검증:
`PageRenderTree` 의 native bridge API 가 release contract 로 노출되었습니다. alhangeul-macos 의 use case 검증 결과 반영 부탁드립니다. 상세: `mydocs/pr/pr_385_report.md` |
|
cherry-pick 으로 devel 에 머지 완료. |
- 작성자: @postmelee (#363 후속 — PR #385 흡수 후 자연스러운 단계) - 수락 + CONTRIBUTING.md 절차 안내. 6개 점검/합의 항목 (schema 정리, schemaVersion 정책, 변환 정확성, PR 범위 좁히기, surface 우선순위, 회귀 테스트) 댓글 - enhancement 라벨 추가, 이슈 OPEN 유지 (PR 대기) - mydocs/feedback/issue_364_pagelayertree_review.md 추가 - mydocs/orders/20260426.md 갱신 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
@edwardkim 안녕하세요.
|
요약
DocumentCore::build_page_render_tree(page_num)public API를 추가했습니다.DocumentCore::get_bin_data(index)public API를 추가했습니다.PageRenderTree를 직렬화할 수 있도록 render tree 관련 타입에serde::Serialize를 정리했습니다.ImageNode.bin_data_id+get_bin_data(index)로 별도 조회하도록 문서화했습니다.배경
Issue #363은 이미 존재하는
PageRenderTree생성 경로를 native viewer/bridge에서 안정적으로 사용할 수 있도록 public API 경계를 정리하는 작업입니다.기존 WASM
getPageRenderTree(pageNum)경로와 SVG/HTML/Canvas 렌더링 경로는 유지하고, Rust core 사용자용 public API만 추가했습니다.주요 변경
src/document_core/queries/rendering.rsbuild_page_render_tree(page_num)추가get_bin_data(index)추가src/renderer/*,src/model/*Serializederive 추가ImageNode.data,PageBackgroundImage.data는#[serde(skip)]mydocs/manual/native_render_tree_bridge_api.mdmydocs/tech/hwp_spec_errata.mdImageNode.bin_data_id와get_bin_data(index)기준 보강인덱스 기준
ImageNode.bin_data_id: 1-based 참조값DocumentCore::get_bin_data(index): 0-basedbin_data_content배열 인덱스검증
cargo buildcargo test결과:
hwpx_roundtrip_integration14 passed,hwpx_to_hwp_adapter25 passed,issue_3011 passed,svg_snapshot6 passed,tab_cross_run1 passed기존 테스트 경고 4건이 출력되었으나 이번 변경과 무관합니다.