2010/03/04

Web+の巻

将来のHaikuの標準ブラウザと予想される、WebPositiveいじりです。
今週はトラボー続きで、すっかりネタが古くなっちゃた…

ソースの取得やらビルドについては、本家説明を参照ください。
注意点は、必ずexport NDEBUG=1をつけて、Releaseビルドで行う(Debugビルドだとバイナリが動かない。今週はこれでエラクはまった…)のと、GPerfはfirefoxで落さないこと(代わりにwgetを使用)の2点です。

日本語が出ないのは、フォントの設定がDejaVuで固定されているからなので、ソースを探して日本語フォントに入れ替えるだけです。例として、Haiku標準のVLゴシックにしていますが、SansやSerifの設定があるのでIPAやTakaoフォントを当てはめるのも面白いかも知れません。
===================================================================
--- WebKit/haiku/API/WebSettingsPrivate.cpp (revision 280)
+++ WebKit/haiku/API/WebSettingsPrivate.cpp (working copy)
@@ -76,10 +76,10 @@
settings->setDefaultFixedFontSize(14);
settings->setDefaultFontSize(14);

- settings->setSerifFontFamily("DejaVu Serif");
- settings->setSansSerifFontFamily("DejaVu Sans");
- settings->setFixedFontFamily("DejaVu Sans Mono");
- settings->setStandardFontFamily("DejaVu Serif");
+ settings->setSerifFontFamily("VL PGothic");
+ settings->setSansSerifFontFamily("VL PGothic");
+ settings->setFixedFontFamily("VL Gothic");
+ settings->setStandardFontFamily("VL PGothic");
settings->setDefaultTextEncodingName("UTF-8");
} else {
int32 count = sAllSettings.CountItems();
Index: WebCore/platform/graphics/haiku/FontPlatformDataHaiku.cpp
===================================================================
--- WebCore/platform/graphics/haiku/FontPlatformDataHaiku.cpp (revision 280)
+++ WebCore/platform/graphics/haiku/FontPlatformDataHaiku.cpp (working copy)
@@ -37,21 +37,21 @@

static void findMatchingFontFamily(const AtomicString& familyName, font_family* fontFamily)
{
- if (BFont().SetFamilyAndStyle(familyName.string().utf8().data(), 0) == B_OK)
- strncpy(*fontFamily, familyName.string().utf8().data(), B_FONT_FAMILY_LENGTH + 1);
- else {
+// if (BFont().SetFamilyAndStyle(familyName.string().utf8().data(), 0) == B_OK)
+// strncpy(*fontFamily, familyName.string().utf8().data(), B_FONT_FAMILY_LENGTH + 1);
+// else {
// If no font family is found for the given name, we use a generic font.
if (familyName.contains("Sans", false) != B_ERROR)
- strncpy(*fontFamily, "DejaVu Sans", B_FONT_FAMILY_LENGTH + 1);
+ strncpy(*fontFamily, "VL PGothic", B_FONT_FAMILY_LENGTH + 1);
else if (familyName.contains("Serif", false) != B_ERROR)
- strncpy(*fontFamily, "DejaVu Serif", B_FONT_FAMILY_LENGTH + 1);
+ strncpy(*fontFamily, "VL PGothic", B_FONT_FAMILY_LENGTH + 1);
else if (familyName.contains("Mono", false) != B_ERROR)
- strncpy(*fontFamily, "DejaVu Mono", B_FONT_FAMILY_LENGTH + 1);
+ strncpy(*fontFamily, "VL Gothic", B_FONT_FAMILY_LENGTH + 1);
else {
// This is the fallback font.
- strncpy(*fontFamily, "DejaVu Serif", B_FONT_FAMILY_LENGTH + 1);
+ strncpy(*fontFamily, "VL PGothic", B_FONT_FAMILY_LENGTH + 1);
}
- }
+// }
}

FontPlatformDataHaiku.cppで一部コメントアウトしているのは、たぶんhtmlにフォント名が記載されている時の処理だと思いますが詳細不明です。

お試し版置いときます。

1 件のコメント:

  1. すばらしい!あとはインライン入力対応ですね。 ;)

    Koki (Web+ から)

    返信削除