크롬에서 지원하는 모든 명령행 옵션|
게시일: 2009/05/07 | 글쓴이: doa | 19432 번 | 프린트 | 메일
의 장점은 기능이 아니라 속도
이다. 사실 기능이 부족한 크롬에 빠져 크롬을 주 브라우저로 사용할 수 있는 가장 큰 이유는 빠른 속도
와 어지간하면 죽지 않는 안정성
이었다. 처음 크롬
이 발표됐을 때 궁금했던 점 중 하나는 "크롬은 언제쯤 베타 딱지를 뗄 수 있을까?"였다. 알고 보면
이기 때문이다. 이미 출시된지 상당히 오래됐고 기능이나 안정성면에서 흠잡을데 없는 G메일
도 아직 베타딱지를 달고 있기 때문이다.
은 이런 구글의 프로그램 치고는 의외로 아주 빨리 베타 딱지를 떼었다. 작년 9월에 첫 베타
가 발표되고 작년 12월에 정식판이 발표
됐기 때문에 고작 3개월만에 베타 딱지를 뗀 셈이다. 또 1.0이 발표된 후 얼마되지 않아 다시 2.0 베타가 발표됐다. 외관상 베타나 1.0, 2.0의 차이는 크지 않다. 2.0에 추가된 기능이 상당히 여러가지 있지만 이런 기능을 일반 사용자가 확인하기도 힘들다.
그런데 오늘 크롬
의 소스를 보다가 크롬 2.0에는 이미 수없이 많은 기능이 포함되어 있다는 것을 알았다. 크롬에서 ActiveX를 사용
할 수 있고, 그리스몽키와 같은 사용자 스크립트
와 확장까지 사용할 수 있다
는 것을 알았다. 그러나 이 것은 크롬
이 가지고 있는 기능 중 일부에 불과했다. 현재 크롬 2.0에 구현된 기능 중 눈에 띄는 기능은 다음과 같았다.
- DNS 미리가져오기: DNS 정보를 미리 가져오는 기능
- SDCH(Shared Dictionary Compression over HTTP) : 구글 도구막대에서 지원하는 HTTP를 통한 사전 압축 기능
- 패스트백 페이지 캐시: 패스트백 페이지를 캐시하는 기능
- 옴니 박스 2: 크롬의 주소 표시줄에 단어를 입력하면 나타나는 옴니 박스의 겉모습이 조더 예뻐짐
- 다중 프로필 기능: 사용자 디렉토리를 따로 지정할 수 있으며 명령행 옵션으로 프로파일을 구분하는 기능
- HTML5 Worker 지원
- User-Agent 변경 지원: 명령행 옵션으로 User-Agent 변경
이런 기능에 대한 조금 자세한 내용은 크롬에 유용한 명령행 옵션
을 참조하기 바란다.
물론 이 외에도 책갈피를 도구 막대에 표시하는 기능, Ctrl-Shift-J를 이용해서 요소 검사창을 띄우는 기능등 개선 사항이 상당히 많았다. 다만 이러한 기능들을 옵션에서 설정할 수 있는 것이 아니라 아직까지는 명령행을 통해 지원했다. 다음은 chrome_switches.cc
를 통해 확인한 크롬 2.0에서 지원하는 명령행 옵션이다.
크롬의 모든 명랭행 옵션
- Allow initialization of all activex controls. This is only to help website developers test their controls to see if they are compatible in Chrome. Note there's a duplicate value in activex_shared.cc (to avoid dependency on chrome module). Please change both locations at the same time.
- Enable web inspector for all windows, even if they're part of the browser. Allows us to use our dev tools to debug browser windows itself.
- Specifies that the associated value should be launched in "application" mode.
- Causes the browser process to throw an assertion on startup.
- The value of this switch tells the app to listen for and broadcast automation-related messages on IPC channel with the given ID.
- Enables the bookmark menu.
- Path to the exe to run for the renderer and plugin subprocesses.
- The value of this switch tells the child process which IPC channel the browser expects to use to communicate with it.
- The Country we should use. This is normally obtained from the operating system during first run and cached in the preferences afterwards. This is a string value, the 2 letter code from ISO 3166-1.
- Causes the browser process to crash on startup.
- Will add kDebugOnStart to every child processes. If a value is passed, it will be used as a filter to determine if the child process should have the kDebugOnStart flag passed on or not.
- Enables support to debug printing subsystem.
- Use a specific disk cache location, rather than one derived from the UserDatadir.
- Replaces the audio IPC layer for <audio> and <video> with a mock audio device, useful when using remote desktop or machines without sound cards. This is temporary until we fix the underlying problem.
TODO(scherkus): remove --disable-audio when we have a proper fallback mechanism.
- Browser flag to disable the web inspector for all renderers.
- Suppresses hang monitor dialogs in renderer processes
- Prevent images from loading.
- Prevent Java from running.
- Force logging to be disabled. Logging is enabled by default in debug builds.
- Completely disables UMA metrics system.
- Prevent plugins from running.
- Disable pop-up blocking.
- Normally when the user attempts to navigate to a page that was the result of a post we prompt to make sure they want to. This switch may be used to disable that check. This switch is used during automated testing.
- Don't enforce the same-origin policy. (Used by people testing their sites.)
- Chrome will support prefetching of DNS information. Until this becomes the default, we'll provide a command line switch.
- Specifies if the dom_automation_controller_ needs to be bound in the renderer. This binding happens on per-frame basis and hence can potentially be a performance bottleneck. One should only enable it when automating dom based tests.
- Dump any accumualted histograms to the log when browser terminates (requires logging to be enabled to really do anything). Used by developers and test scripts.
- Enable extensions.
- Enable the fastback page cache.
- By default, cookies are not allowed on file://. They are needed in for testing, for example page cycler and layout tests. See bug 1157243.
- Force logging to be enabled. Logging is disabled by default in release builds.
- Enables the Omnibox2 popup and functionality.
- [email protected]
- Turns on the accessibility in the renderer. Off by default until http://b/issue?id=1432077 is fixed.
- [email protected]
- Enable support for SDCH filtering (dictionary based expansion of content). Optional argument is *the* only domain name that will have SDCH suppport. Default is "-enable-sdch" to advertise SDCH on all domains. Sample usage with argument: "-enable-sdch=.google.com" SDCH is currently only supported server-side for searches on google.com.
- Enables StatsTable, logging statistics to a global named shared memory table.
- Whether the multiple profiles feature based on the user-data-dir flag is enabled or not.
- Enable user script support.
- Spawn threads to watch for excessive delays in specified message loops. User should set breakpoints on Alarm() to examine problematic thread.
Order of the listed sub-arguments does not matter.
- Enable HTML5 Worker support
- Display the First Run experience when the browser is started, regardless of whether or not it's actually the first run.
- Debug only switch to specify which gears plugin dll to load.
- Make Windows happy by allowing it to show "Enable access to this program" checkbox in Add/Remove Programs->Set Program Access and Defaults. This only shows an error box because the only way to hide Chrome is by uninstalling it.
- The value of this switch specifies which page will be displayed in newly-opened tabs. We need this for testing purposes so that the UI tests don't depend on what comes up for http://google.com .
- Perform importing from another browser. The value associated with this setting encodes the target browser and what items to import.
- Runs plugins inside the renderer process
- Install the extension specified in the argument. This is for MIME type handling so that users can double-click on an extension.
- Causes the browser to launch directly in incognito mode.
- On POSIX only: use FIFO for IPC channels so that "unrelated" process can connect to a channel, provided it knows its name. For debugging purposes.
- Specifies the flags passed to JS engine
- The language file that we want to try to open. Of the form language[-country] where language is the 2 letter code from ISO-639.
- Load an extension from the specified directory.
- Load an NPAPI plugin from the specified path.
- Will filter log messages to show only the messages that are prefixed with the specified value
- Sets the minimum log level. Valid values are from 0 to 3:
INFO = 0, WARNING = 1, LOG_ERROR = 2, LOG_FATAL = 3.
- Make Chrome default browser
- Configure Chrome's memory model. Does chrome really need multiple memory models? No. But we get a lot of concerns from individuals about how the changes work on *their* system, and we need to be able to experiment with a few choices.
- Enable dynamic loading of the Memory Profiler DLL, which will trace all memory allocations during the run.
- Enable histograming of tasks served by MessageLoop. See about:histograms/Loop for results, which show frequency of messages on each thread, including APC count, object signalling count, etc.
- Enables the recording of metrics reports but disables reporting. In contrast to kDisableMetrics, this executes all the code that a normal client would use for reporting, except the report is dropped rather than sent to the server. This is useful for finding issues in the metrics code during UI and performance tests.
- Temparary option for new ftp implemetation.
- Don't record/playback events when using record & playback.
- Bypass the First Run experience when the browser is started, regardless of whether or not it's actually the first run. Overrides kFirstRun in case you're for some reason tempted to pass them both.
- Runs the renderer outside the sandbox.
- Number of entries to show in the omnibox popup.
- Specifies the path to the user data folder for the parent profile.
- Chrome supports a playback and record mode. Record mode saves *everything* to the cache. Playback mode reads data exclusively from the cache. This allows us to record a session into the cache and then replay it at will.
- auses the process to run as a plugin subprocess.
- Specifies the plugin data directory, which is where plugins (Gears specifically) will store its state.
- Specifies a command that should be used to launch the plugin process. Useful for running the plugin process through purify or quantify. Ex:
- Tells the plugin process the path of the plugin to load
- Causes the plugin process to display a dialog on launch.
- Runs a single process for each site (i.e., group of pages from the same registered domain) the user visits. We default to using a renderer process for each site instance (i.e., group of pages from the same registered domain with script connections to each other).
- Runs each set of script-connected tabs (i.e., a BrowsingInstance) in its own renderer process. We default to using a renderer process for each site instance (i.e., group of pages from the same registered domain with script connections to each other).
- Use a specified proxy server, overrides system settings. This switch only affects HTTP and HTTPS requests.
- enable remote debug / automation shell on the specified port
- Causes the process to run as renderer instead of as browser.
- Causes the renderer process to throw an assertion on launch.
- On POSIX only: the contents of this flag are prepended to the renderer command line. (Useful values might be "valgrind" or "gdb --args")
- Causes the renderer process to crash on launch.
- Causes the renderer process to display a dialog on launch.
- Indicates the last session should be restored on startup. This overrides the preferences value and is primarily intended for testing. The value of this switch is the number of tabs to wait until loaded before 'load completed' is sent to the ui_test.
- Runs the plugin processes inside the sandbox.
- Change the DCHECKS to dump memory and continue instead of displaying error dialog. This is valid only in Release mode when --enable-dcheck is specified.
- Replaces the buffered data source for <audio> and <video> with a simplified resource loader that downloads the entire resource into memory.
TODO(scherkus): remove --simple-data-source when our media resource loading is cleaned up and playback testing completed.
- Runs the renderer and plugins in the same process as the browser
- Start the browser maximized, regardless of any previous settings.
- Used to set the value of SessionRestore::num_tabs_to_load_. See session_restore.h for details.
- Pass the name of the current running automated test to Chrome.
- Runs the security test for the sandbox.
- The value of this switch tells the app to listen for and broadcast testing-related messages on IPC channel with the given ID.
- Excludes these plugins from the plugin sandbox. This is a comma-separated list of plugin library names and activex clsid.
- string used to override the default user agent with a custom one.
- directory to locate user scripts in as an over-ride of the default
- Runs un-installation steps that were done by chrome first-run.
- Use the low fragmentation heap for the CRT.
- Specifies the user data directory, which is where the browser will look for all of its state.
- Enables experimental views under gtk.
- Will add kWaitForDebugger to every child processes. If a value is passed, it will be used as a filter to determine if the child process should have the kWaitForDebugger flag passed on or not.
- Causes the worker process allocation to use as many processes as cores.
- Causes workers to run together in one process, depending on their domains. Note this is duplicated in webworkerclient_impl.cc
- Use WinHTTP to fetch and evaluate PAC scripts. Otherwise the default is to use Chromium's network stack to fetch, and V8 to evaluate.
- Causes the process to run as a worker subprocess.