본문 바로가기

Programing

구글 크롬 소스코드

최근에 depot_tools이 다운로드가 되지 않아서 잘 안되더라...



크롬 소트코드 디렉토리들

The Chromium Projects > FDHTGetting Around the Chromium Source Code Directories

번역 by 나모 (필요에 의해서는 의역도 했습니다. 개발자의 관점에서..)

참고로 소스코드를 얻고 싶으시면 소스코드 얻기를 이용세요.

  • 서브버전(SVN) 경로 : svn://svn.chromium.org/chrome
  • tarball 파일 : http://chromium-browser-source.commondatastorage.googleapis.com/chromium_tarball.html

 

High레벨 개요

Chromium는 3개의 메인 파트로 나뉘어있다.(다른 라이브러리들을 포함해서): 브라우저(browser), 렌더러(renderer), 웹킷(Webkit).

  • 브라우저 - 메인 프로세서와 모든 UI를 표시하고 입출력(I/O)을 처리한다.
  • 렌더러 - 브라우저에 의해 동작하는 서브 프로세서이다. 보통 탭(tab)으로 보이는 별도의 창(프로세서)을 생각하면 된다.
  • 웹킷 - 레이아웃과 렌더링을 한다.

멀티 프로세스 아키텍처가 어떻게 되어있는지와 어떻게 Chromium이 웹 페이지들을 표시하는지가 궁금하다면 링크를 클릭해보라(영문이다!)

 

솔루션 파일에 대한 빠른 소개

솔루션 파일명: chrome.sln  (.sln파일은 Visual Studio에서 열 수 있습니다. 자신이 설치한 버전보다 높을 경우에는 열리지 않습니다.ㅡㅡ;)

 

2개의 솔루션파일이 있다. chrome.sln는 자바스크립트 엔진인 V8를 사용하는 평범한 버전. hrome_kjs.sln는 Webkit의 JavaScriptCore (JSC)엔진을 사용하는 것. 보통 V8 버전을 사용하는 것을 원할 것이다. 우리는 V8와 관련된 버그들이 완전히 고쳐질 때까지 JSC 버전을 유지할 것이다.

  • 시작 코드는 App/chrome_dll 과 App/chrome_exe 프로젝트에 있다.
  • 공통 공유 라이브러리코드는 Libraries/base 프로젝트에 있다. 이 코드는 모든 프로젝트들과 공유된다. 그리고 필요한 것만으로 작게 유지하려고 한다.
  • 공통의 브라우저 specific 코드는 Browser/common 프로젝트에 있다. 이것은 브라우저와 렌더러 사이에 공유된다.
  • 웹킷 코드는 Webkit(읽기만 가능) 프로젝트에 있다. On top of this is Google's WebKit(ours)/port which interfaces with Windows, and then WebKit(ours)/glue which is our embedding layer.
  • The glue talks to the Browser/renderer project, which represents the subprocess where we run each tab.
  • Browser/browser 프로젝트는 사용자 인터페이스, 저장, 네트워크 요청 등을 제공한다.

 

소스코드 설치후

어랍쇼...

지정된 경로를 찾을 수 없다고 하네..

브라우저에서 http://src.chromium.org 를 찾아 들어가면 분명 보이는데

http://src.chromium.org 로 이동하면 http://src.chromium.org/viewvc/ 로 리다이렉트 된다.

 

소스코드 동기화 문제는 접어두고..

 

다행히 회사에서 개발하는 쪽이 Visual Studio 2005를 쓰는 일이라서 개발도구는 OK.

그런데 크롬 소스의 솔루션 파일(chrome.sln)이 열리지 않는다.

결론적으로 봤을 때, SDK를 설치해야 했다.

소스코드만 641MB (672,176,051 바이트) 군... 헐~~

전체 크기는 1.41GB에 달한다.. 헉!

 

어쨌던 "Microsoft Windows SDK"를 설치하고 나니 솔루션 파일이 열린다!!!

솔루션 탐색기에서 디버깅 관련 인자(--user-data-dir=c:\tmp\DebugProfile) 주라 한 것을 설정해주고

F5!

컴파일이 잘 되다가 마지막 WTL관련 부분이 안된다.

이게 뭥미!

d:\chromiumtrunk\src\chrome\third_party\wtl\include\atluser.h(844) : error C2061: syntax error : identifier 'PICONINFOEX'

 

빌드가 안되는 분은 "Build Instructions (Windows)"를 참조하라고 한다.

Windows 2008 SDK도 지원한다면서 integrate를 해야 한다고 했는데,

아무리 찾아봐도 [시작][Visual Studio Registration > Integrate Windows SDK with Visual Studio 2005]는 없다.

이름이 달랐던 것.

실행한다음 아래와 같은 창에서 "Make Current"를 눌러준다.

경고창이 뜨고 업데이트가 되었다고 나온다.

 

윈도우 탐색기에서 "chrome.sln"을 더블클릭하지 말고,

반드시 비주얼 스튜디오 IDE를 띄워서 Open으로 연다. (더블클릭을 해서 로딩하려면 아무 반응이 없다)


'Programing' 카테고리의 다른 글

활성화된 네트워크 열거하기  (0) 2012.09.21
구글 크롬 소스코드 빌드하기  (0) 2012.09.21
Java NIO(New I/O)  (0) 2012.09.21
순서도(flow chart)  (0) 2012.09.17
디스크 드라이브  (0) 2012.08.28