지난 포스트에서는 ShellBrowserMain()에서 content::BrowserMainRunner 객체를 생성하고, 이
객체의 초기화(Initialize()), 실행(Run())을 통해 Content Shell이 구동되는 것을 보았다.
ShellBrowserMain()의 마지막에 실행되는 Run()이고 이 함수가 종료되면 브라우저가 종료된다.
BrowserMainRunnerImpl 객체는 BrowserMainLoop 객체를 통해 실제 브라우저의 구동을 수행하고 있다.
이제 이 단계에서 Content Shell 분석의 방향이 어디로 진행되어야할 지 고민이다.
브라우저의 실행 코드를 따라가며 분석을 해야할 지, 아니면 src/content/shell 아래의 내용에
대한 분석을 이어나가야 할 지 말이다.
고민결과, 브라우저 코드를 따라가면서(BrowserMainLoop) 분석을 하는 것이 맞을 것 같다.
Content Shell만의 내용 분석은 조금 늦어지겠지만, 브라우저 코드를 분석하다보면 브라우저의 전체 실행 흐름에 대해서도 알 수 있을 것이다.
Content Shell 부분은 Content Module에서 ContentClient를 참조하는 부분을 통해 언제 어느 부분에서 Shell이 참조되는지 알게 될 것이다.
따라서 다음 포스트부터 BrowserMainLoop 클래스에 대해 분석을 시작하겠다.
댓글 없음:
댓글 쓰기