Skip to content

Google Chrome

구글 크롬(Google Chrome)은 웹키트 레이아웃 엔진을 이용하여 개발중인 프리웨어 웹 브라우저이다. 구글 크롬은 간단하고 효율적인 사용자 인터페이스를 제공하며 현존하는 다른 웹 브라우저들에 비해 나은 안정성과 속도, 그리고 보안성을 갖는 것을 목표하고 있다. 2008년 9월 3일 마이크로소프트 윈도용 베타 버전이 나왔으며, 2008년 12월 11일 첫 안정화 버전이 나왔다. 크롬이란 뜻은 원래 그래픽 사용자 인터페이스에서 창틀을 가리키는데, 여기서는 브라우저 틀 영역을 가리키며, 이 영역을 최소화시키자는 목표로 크롬이라고 이름을 지었다고 한다. 스탯카운터 통계 기준으로 2012년 현재 전 세계에서 첫 번째로 가장 많이 쓰이는 웹 브라우저이다.

Categories

Plugins

Command Menu

F12 를 누르면 개발자 화면이 출력된다. 여기에서 Shift + Ctrl + P 를 누르면 Command Menu 팝업이 뜬다.

  • Screenshot - 스크린샷 찍기, 특정 노드만 찍는것도 가능.
  • Coverage - 파일 사용 퍼센테이지 출력.
  • Sensor - 자이로, GPS 등 시뮬레이션 가능
  • Block adds - 광고 제거 시뮬레이션

DevTools

Chrome DevTools 항목 참조.

특별한 페이지 목록 (Special pages)

chrome://webrtc-internals/
WebRTC재생시 프로파일 정보를 확인할 수 있다.
chrome://flags
Chrome에 활성화된 플래그 목록 확인.
chrome://version
Chrome 버전 및 적용된 플래그 목록 확인 가능.
chrome://net-export/
네트워크 로그를 캡쳐한다.
chrome://net-internals/
Events, Proxy, DNS, Sockets, Domain Security Policy 메뉴 있다.
특히 HTTPS 로 강제하는 HSTS (HTTP Strict Transport Security) 설정이 여기 있다.
특정 도메인에서 강제로 https 로 전환되는 현상이 귀찮다면 Domain Security Policy 메뉴에서 "Delete domain security polices" 에 해당 도메인을 입력후 제거하면 된다.

Install on CentOS

/etc/yum.repos.d/google-chrome.repo위치에 새로운 Google repository를 아래와 같이 추가한다.

[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub

이제 아래와 같이 설치할 수 있다.

$ yum install google-chrome-stable

Disable JavaScript

아래의 순서대로 진행하면 된다.

  1. 개발자 도구를 연다.
  2. Control+Shift+P 또는 Command+Shift+P (Mac) 를 사용하여 "명령 메뉴"를 연다.
  3. Disable JavaScript를 입력하면 된다.
  4. Enable JavaScript를 입력하면 원상태로 복원된다.

Install on Ubuntu

$ wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
$ sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list'
$ sudo apt-get update
$ sudo apt-get install google-chrome-stable

Flags

--app=[URL]
You can run Chrome in application mode. (Application Mode를 사용할 경우 Address Bar가 사라진다)
Stackoverflow - How do you hide the Address bar in Google Chrome for Chrome Apps?
--incognito
사생활 보호 모드를 사용한다.
--no-sandbox
일반적으로 샌드박스 처리되는 모든 프로세스 유형에 대해 샌드박스를 비활성화합니다. 테스트 목적으로만 브라우저 수준 스위치로 사용하기 위한 것입니다. 1
--disable-dev-shm-usage
/dev/shm 파티션은 특정 VM 환경에서 너무 작아서 Chrome이 실패하거나 충돌하게 합니다 (http://crbug.com/715363 참조). 이 플래그를 사용하여 이 문제를 해결하십시오(임시 디렉토리는 항상 익명의 공유 메모리 파일을 생성하는 데 사용됨). 2
--disable-javascript
자바스크립트 비활성화.

JAVA Plugin

구글크롬에서 JAVA Plugin 을 설치하기 위한 방법을 설명한다.

Install Firefox / Google Chrome Java Plugin for Fedora 17

페도라17에서 구글크롬의 자바 플러그인 실행방법에 대하여 설명한다 (정상적으로 설치한다 하더라도 실행되지 않는 문제점이 있다).

JAVA를 다운로드하여 설치한 후 libnpjp2.so의 위치를 확인한다.

$ sudo updatedb
$ locate libnpjp2.so

심볼릭링크를 생성한다. ({NPJP2_PATH} 부분에 libnpjp2.so의 경로를 붙여넣는다.)

## Firefox Users:
$ cd /home/user/.mozilla/plugins (replace user with your username)
$ ln -s {NPJP2_PATH}

## Chrome Users:
$ cd /opt/google/chrome/
$ mkdir plugins
$ cd plugins
$ ln -s $PATH/libnpjp.so

Mac OSX의 Chrome에서 JAVA실행방법

Mac OS X에서 Java 7을 설치하게 되면 Chrome에서는 Java 플러그인을 사용할 수 없게 된다. 이유는 Chrome이 32bit 어플리케이션이라 64bit인 Java 7을 지원하지 않기 때문이다. Java 7을 안 쓰면 되는 일이긴 하지만 개발 등의 이유로 그럴 수 없는 경우도 있다. 이런 경우를 위한 해결책이다. Java 7을 설치하더라도 Java 6이 지워지지 않고 남아있기 때문에 인터넷 플러그인 파일만 Java 6으로 바꿔치기 하는 방식으로 해결한다.

#!/bin/sh

# Checks for backup directory for Java 7 plug-in
# and creates it if needed.

if [ -d "/Library/Internet Plug-Ins (Disabled)" ]; then
     echo "Backup Directory Found"
  else
     mkdir "/Library/Internet Plug-Ins (Disabled)"
     chown -R root:wheel "/Library/Internet Plug-Ins (Disabled)"
fi

# If a previous version of the Java 7 plug-in is already 
# in the backup directory, the previously backed up Java 7 
# plug-in is removed.

if [ -d "/Library/Internet Plug-Ins (Disabled)/JavaAppletPlugin.plugin" ]; then
      rm -rf "/Library/Internet Plug-Ins (Disabled)/JavaAppletPlugin.plugin"
fi

# Moves current Java 7 plug-in to the backup directory

if [ -d "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin" ]; then
     mv "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin" "/Library/Internet Plug-Ins (Disabled)/JavaAppletPlugin.plugin"
fi

# Create symlink to the Apple Java 6 plug-in in
# /Library/Internet Plug-Ins 

ln -sf /System/Library/Java/Support/Deploy.bundle/Contents/Resources/JavaPlugin2_NPAPI.plugin "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin"

# Re-enable Java SE 6 Web Start, which allows Java 
# applets to run in web browsers

ln -sf /System/Library/Frameworks/JavaVM.framework/Commands/javaws /usr/bin/javaws

exit 0

List of Plugin

Chrome youtube downloader
http://userscripts.org/scripts/show/62634
크롬에서 YouTube 비디오를 다운받을 수 있도록 도와주는 스크립트.
Chrome Mouse Stroke
http://code.google.com/p/chrome-mouse-stroke/
크롬에서 마우스 제스처를 사용할 수 있도록 도와주는 플러그인.

Troubleshooting

Target Packages (main/binary-amd64/Packages) is configured multiple times

만약 apt update 를 할 때, 다음과 같은 경고 메시지를 본다면

Target Packages (main/binary-amd64/Packages) is configured multiple times

이것은 구글 크롬 패키지가 특수한 파일 /etc/apt/sources.list.d/google-chrome.list 을 생성하기 때문인데 이 파일을 삭제하면 해결할 수 있다.

sudo rm /etc/apt/sources.list.d/google-chrome.list

See also

  • Java
  • Firefox
  • eruda - 모바일 브라우저에서 크롬의 개발자 도구 같은 기능을 제공
  • litehtml
  • Autotab - 복잡한 웹 작업을 API로 만들어 주는 도구

Favorite site

Article

  • 크롬 131, Direct Sockets API 추가 | GeekNews
    • Direct Sockets API - Chrome Platform Status
    • 격리된 웹앱이 TCP와 UDP를 통해 네트워크 기기 및 시스템과 직접 통신할 수 있으며, 웹앱이 들어오는 연결을 수신하고 허용할 수 있게 함
    • 많은 네트워크 기기들이 HTTPS 대신 TCP 또는 UDP를 통해 자체 프로토콜을 사용함
      • 이 API는 WebUSB, WebMIDI, WebBluetooth처럼 웹앱이 로컬 기기 및 정보 시스템과 통신할 수 있게 해줌
    • 격리된 웹앱(Isolated Web Apps, IWA)
      • PWA 설치와 웹 패키징에 관한 기존 작업을 확장한 것임 서버 침해 및 기타 변조에 대해 더 강력한 보호 기능을 제공함
      • 실시간 웹 서버에서 호스팅되고 HTTPS를 통해 가져오는 대신, 웹 번들로 패키징됨
      • 현재 IWA는 엔터프라이즈 관리형 ChromeOS 기기의 관리자 정책을 통해서만 설치 가능함
    • 말그대로 엔터프라이즈용이네요
    • [원문] Raw Sockets API · Issue #431 · mozilla/standards-positions - 악의적인 행위에 쓰일 수 있다고 반대했더군요.

References


  1. 원문: Disables the sandbox for all process types that are normally sandboxed. Meant to be used as a browser-level switch for testing purposes only. 

  2. 원문: The /dev/shm partition is too small in certain VM environments, causing Chrome to fail or crash (see http://crbug.com/715363). Use this flag to work-around this issue (a temporary directory will always be used to create anonymous shared memory files).