Google Chrome の Beta 版がバージョンアップ
はじめに
Google Chrome の Beta 版がバージョンアップしましたね。
と言う訳で Google Chrome の Beta 版や開発版にアップデートする方法とかを解説して行きたいと思います。
手順
手順は 2 ステップ
1. Google Chrome Channel Chooser でアップデート対象を選ぶ
以下へ行って Google Chrome Channel Chooser をダウンロードします。
Chrome Release Channels - The Chromium Projects
で、ダウンロードした exe ファイルを実行します。
この画面で Beta 版か開発版かを選択します。
- Beta はある程度安定したバージョンのみアップデートする
- Dev は毎週最新の開発版にアップデートする
って感じです。
一度これをやっておくと、以降は普通にアップデートの確認をするだけでよくなります。
2. アップデートの確認
工具アイコンから「 Google Chrome について」を選択
するとアップデートしますか?って聞かれるので
「今すぐアップデート」をクリック
しばらくすると
完了するので、再起動
ちなみに
リリースノートはここに追加されていくようです。
http://sites.google.com/a/chromium.org/dev/getting-involved/dev-channel/release-notes
まとめ
アップデートできるよ(・∀・)!!
via: http://news.cnet.com/8301-1001_3-10042670-92.html
Google Chrome で Greasemokey。「Greasemetal」登場。
id:kazuhooku さんが
Google Chrome の Greasemonkey を作ったみたいです><
速い速すぎるよママン><
という訳で
この前作った
Pathtraq API を使って、はてブにアクセスチャートを出す Greasemonkey を作りました! - IT戦記
の User JavaScript を試してみた
おおお。動いたー
という訳で
ちょろめユーザーは、れっつダウンロード!
Greasemetal - an Userscript Runtime for Google Chrome
V8 を使った CodeRepos のプロジェクト
すごいなー。速いなー。参考にします><
Google Chrome の JavaScript エンジン V8 を試す
(基本だらだら進行で、過程を追記していきます)
Google Chrome が出ました
Google Chrome で JavaScript エンジンが刷新されたということで、その JavaScript エンジン V8 についていろいろ調べてみようと思います。
Issues - v8 - V8 JavaScript Engine - Monorail
ビルドしてみる
まず、 svn からソースを持ってくる
$ svn co http://v8.googlecode.com/svn/trunk/ v8
おおお。以外と少ない
で、 trunk の中に入って
$ cd v8
scons でビルド(scons が入ってない人は、 port や apt-get で入れる)
$ scons scons: Reading SConscript files ... scons: done reading SConscript files. scons: Building targets ... g++ -o obj/release/third_party/jscre/pcre_compile.o -c -ansi -w -fno-strict-aliasing -O2 -fno-rtti -fno-exceptions -ansi -w -fno-strict-aliasing -O2 -DENABLE_LOGGING_AND_PROFILING -DSUPPORT_UTF8 -DNO_RECURSE -DSUPPORT_UCP src/third_party/jscre/pcre_compile.cpp : : ranlib libv8.a
libv8.a が出来た。ここまでは順調
Shell をビルドしてみる
scons のオプションを見る
$ scons --help scons: Reading SConscript files ... scons: done reading SConscript files. mode: compilation mode (debug, release) default: release actual: release sample: build sample (shell, process) default: actual: env: override environment settings (NAME1:value1,NAME2:value2) default: actual: toolchain: toolchain (gcc, msvc) default: gcc actual: gcc simulator: simulator (arm, none) default: none actual: none arch: arch (arm, ia32) default: ia32 actual: ia32 library: library (static, shared) default: static actual: static wordsize: wordsize (64, 32) default: 32 actual: 32 snapshot: snapshot (on, off) default: off actual: off os: os (linux, macos, win32) default: macos actual: macos
いろいろとあるが sample フラグで shell を作れるっぽいことが分かる
shell をビルドする
$ scons sample=shell scons: Reading SConscript files ... scons: done reading SConscript files. scons: Building targets ... g++ -o shell obj/sample/shell/release/shell.o -L. -lv8 -lpthread scons: done building targets.
shell.o と libv8 と libpthread をリンクして完了。 shell というバイナリが出来た。
実行してみる。
$ ./shell V8 version 0.2.5 > for (var n in function () { return this } ()) print(n) n load quit print version > quit()
おおおおお。 JavaScript が動いた
shell のソースを見てみる
shell.cc をエディタで開く
$ vim samples/shell.cc
209 行くらいのシンプルなファイルだ。
とりあえず雰囲気だけ分かった。
Hello, world を雰囲気で書いてみる
雰囲気だけ分かったので、雰囲気で Hello, world してみる
// v8.h を読み込む #include <v8.h> v8::Handle<v8::Value> Print(const v8::Arguments& args); int main(int argc, char* argv[]) { // 準備 v8::HandleScope handle_scope; // グローバルオブジェクトの生成 v8::Handle<v8::ObjectTemplate> global = v8::ObjectTemplate::New(); // 関数名の生成 v8::Handle<v8::String> str_print = v8::String::New("print"); // 関数オブジェクトの生成 v8::Handle<v8::FunctionTemplate> fn_print = v8::FunctionTemplate::New(Print); // グローバルオブジェクトのプロパティに関数を設定 global->Set(str_print, fn_print); // グローバルオブジェクトから環境を生成 v8::Handle<v8::Context> context = v8::Context::New(NULL, global); // 環境からスコープを生成 v8::Context::Scope context_scope(context); // 実行する文字列を生成 v8::Handle<v8::String> str = v8::String::New("print('Hello, world!')"); // Undefined を生成(ファイル名がないから) v8::Handle<v8::Primitive> undefined = v8::Undefined(); // コンパイル v8::Handle<v8::Script> script = v8::Script::Compile(str, undefined); // 実行 v8::Handle<v8::Value> result = script->Run(); // 終了 return 0; } // 関数オブジェクト print の実体 v8::Handle<v8::Value> Print(const v8::Arguments& args) { v8::String::AsciiValue str(args[0]); printf("%s\n", *str); return v8::Undefined(); }
ビルドする(-L と -I は適宜)
$ g++ helloworld.cc -L. -lv8 -Isrc
おお。成功
$ ./a.out Hello, world!
おおおお。動いた
gdb で追いかけてみる
デバッグビルドする
$ scons mode=debug
こんどは、 libv8_g.a というファイルが出来た。
さっきの helloworld.cc のデバッグ版を作る
$ g++ -O0 -g helloworld.cc -L. -lv8_g -Isrc
で、 gdb コマンドで実行
$ gdb ./a.out GNU gdb 6.3.50-20050815 (Apple version gdb-768) (Tue Oct 2 04:07:49 UTC 2007) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-apple-darwin"...Reading symbols for shared libraries .... done (gdb) b main Breakpoint 1 at 0x25c1: file helloworld.cc, line 33. (gdb) r Starting program: /Users/amachang/v8/a.out Reading symbols for shared libraries +++. done Breakpoint 1, main (argc=1, argv=0xbffff9b4) at helloworld.cc:33 33 v8::HandleScope handle_scope; (gdb) s v8::HandleScope::HandleScope (this=0xbffff940) at v8.h:397 397 } (gdb) v8::HandleScope::HandleScope (this=0xbffff940) at v8.h:395 395 HandleScope() : previous_(current_), is_closed_(false) { (gdb) 396 current_.extensions = 0; (gdb) 397 } (gdb) 0x00022ac1 in v8::HandleScope::HandleScope (this=0xbffff940) at v8.h:397 397 } (gdb) main (argc=1, argv=0xbffff9b4) at helloworld.cc:35 35 v8::Handle<v8::ObjectTemplate> global = v8::ObjectTemplate::New(); (gdb) v8::ObjectTemplate::New () at src/api.cc:824 824 return New(Local<FunctionTemplate>());
おおお
Google Chrome 斜め読み
何か大きなニュースがあれば更新します。
ニュース速報
マイクロソフトウインドウズOS搭載PCで世界100か国以上でダウンロードできるようになる予定
http://jp.ibtimes.com/article/biznews/080902/22449.html
今後MacOSやLinux上でも起動できるようにしていく予定
今後マイクロソフトとグーグル間の緊張関係がますます激化することが考えられる
Sundar Pichai 氏「Chromeは多くのオプション機能や斬新さに満ちている。Chromeによってインターネットライフがより良いものになることを期待している」
自社公式サイトで独自開発のブラウザー(インターネット閲覧ソフト)の無償提供サービスを2日から始めると発表
http://www.jiji.com/jc/c?g=int_30&k=2008090200149
8割近くの世界シェアを握る米マイクロソフト(MS)に対抗、別途開発中の基本ソフト(OS)「アンドロイド」や携帯電話と連動し、ネット顧客基盤を一気に拡充する狙い
サイト閲覧速度を飛躍的に向上させたほか、双方向性やシンプルな操作性能が特徴
米国時間の2日から、世界100カ国以上で試験版をネット経由で無償配布
経済、株価、ビジネス、政治のニュース:日経電子版
利用者にとってネットへの「入り口」であるブラウザーを自社展開することで、検索など各種ネットサービスの強化につなげる
MSの主力ソフト製品に正面から立ち向かうグーグルにとって大きな賭け
http://www.47news.jp/CN/200809/CN2008090201000188.html
設計情報「ソースコード」を公開する予定で、ソフト開発に積極的な姿勢をアピール
新たなブラウザを開発した理由として,「Webは,単純なテキストのページから,リッチでインタラクティブなアプリケーションへと進化した」と指摘
Google,オープンソースのWebブラウザ「Google Chrome」を公開へ | 日経 xTECH(クロステック)
安定性,高速性,操作性,安全性,オープンソースという5つの観点
各タブがそれぞれ別プロセス
レンダリング・エンジン「Webkit」を採用
表示履歴やクッキーをパソコンに保存せずに利用できるプライバシ・モードも備える
各プロセスをサンドボックス化
フィッシング・サイトやマルウエア・サイトのURLの最新リストを常時ダウンロード
独自の強力なJavaScriptエンジン「V8」を搭載
Googleが独自ブラウザ「Google Chrome」を9月2日にリリース
Linus Upson 氏「我々が本当に必要としたのは、単なるブラウザだけでなく、Webページとアプリケーションのためのモダンなプラットフォームだ。それこそが我々が始めたものなのだ」
今後、MozillaとGoogleがどのように共存するのか、あるいは部分的に競争関係に発展していくのかについては未知数
Sundar Pichai 氏「Webがシンプルなテキストページからリッチなインタラクティブ・アプリケーションへと進化したのに伴い、Webブラウザも根本的に考え直されるべきだ。今のわれわれに必要なのは単なるブラウザではなく、Webページとアプリケーションのためのモダン・プラットフォームだ」「Webページ、サイト、アプリケーションなど、Webの重要な構成要素を実行するための唯一のツールである」「初期のGoogleホームページのようにクリーンで高速。ユーザーを目的の場所へと素早く導く」「Webは、より多くのオプションとイノベーションによって向上する。Google Chromeもオプションの1つであり、Webのさらなる前進に寄与する存在になってほしい」
http://journal.mycom.co.jp/news/2008/09/02/009/
プラグイン向けの許可設定を設ける
よりスムーズなドラッグ&ドロップ操作
米グーグル、新ブラウザー投入を計画=WSJ | ロイター
ChromeのURL入力フィールドには、「Omnibox」という名称が付けられ、ブラウジング履歴とリアルタイムの検索結果に基づいて、URLを提案するフィードが供給される
「Gears」を、Chromeに組み込んで、「あらゆるブラウザの基本機能の改善」に広く用いられるようになることを願っている
Chromeは、OpenSocialやGoogle Gearsなど、他のGoogleのオープンソースプロジェクトとマッチしている
まとめ
- 公開に関する情報
- 今日明日中
- 100 ヶ国
- 開発者向け情報
- 描画には WebKit を採用
- JavaScript には V8 という新しい VM を使う(詳細不明、速いらしい)
- ソースコードは公開される
- プラグインがある??
- ユーザ向け情報
- 今後とか狙いとか
- Microsoft との競争激化か?
- Mozilla との関係はどうなるのだろうか?
- Google Gears 復旧も狙い?