Dead Zone

Stand alone.

謎・・・twitter.com

2015-07-26 11:46:35 | 雑記

なんか昨日あたりからFirefox Nightlyでtwitter.comにアクセスすると、"Popular now"なんて余計なモンが表示されて、しかもどこまでが該当ツイートでどこからが最新ツイートなのか判別できないので困る(-_-)。最新ツイートも最新じゃなく(-_-)。しばらく待ってると新着とか言ってくるけどいやそれ新着じゃなくてとっくの昔の旧着だから。そういう通知もなく欠落してるツイートもあるし。「ツイートと返信」だと出てくるけど。あとツイートの一部が不定期に白い矩形で塗りつぶされる現象も(-_-)。マウスポインタを持っていくと消えてなくなるし。HWAとは関係ないようだけど何の矩形なんだか。
もうボロボロすぎて何が原因なのかNightlyのせいなのかtwitter.comがクソなのかさっぱり分からん(-_-)。Popular nowはtwitter.comのせいだけどFirefox39では発生しないのに42.0a1で湧いて出てくるのは解せん。useragent変えてみたけど変化なく(←でも1回ちょこっと試してみただけだから無関係かどうかは断定できないけど)。
それでなくてもクソ暑いのに(-_-)

[追記]
別の新規プロファイルで試したら不具合発生せず(-_-)。なのでcookieを削除してみたら、白ベタ以外は不具合解消したっぽい(-_-;)。なんだったんだ(-_-;)...

[7/27追記]
Popular nowは出なく(出せなく)なったけど、考えてみるとこのタイトルだけ英語で出るのは変だなと。英語版なら出るのかとAccept languageからjaを外して試すもやはり出ず。
別件ですが。またまたまたプロフィールページのデザイン(というかレイアウト)が変更になったらしく(-_-) アカウント持ってない(持たない)身には鬱陶しくてしょうがない(-_-)

と思ったらこれも変更になったわけではなくて...一時的な現象だったらしい(-_-)
なんでこんなに不安定なんだろう(-_-;)

 

コメント

今頃気付いたLiveBookmarkの不具合

2015-07-18 16:22:20 | 雑記

Firefox 40.0beta(20150713153304)の今頃になって気付いたんですが、Live Bookmarkが直ちに既読アイコン(グレー)にならないという...
フォルダを閉じて開き直すと既読アイコンにはなるけれど。
bugzillaで検索してもヒットせず。
39.0ではOKなので、FTPサイトから40.0a1(Nightly)を片っ端からダウンロードして試してみたら。
2015-04-27はOK、2015-04-28と2015-04-29はLive Bookmarkがぶっ壊れてて、2015-04-30はNG
だったので、mozillaZineを頼って
The Official Win32 20150430 builds are out • mozillaZine Forums
bugfixリストを見ると
1159346 – rss feeds appear as empty folders
こいつの修正が不十分だったんじゃないか? と思ったら。Depends onに記載のある
1182046 – RSS history not marked at first load
うわ、まさにこれ(-_-) なんだよ〜(-_-;)

ま、私の場合Live Bookmarkは1件しか使ってないんですけどね... RSSリーダーとして使っているのはこれ。
Bamboo Feed Reader :: Add-ons for Thunderbird
(おや、Add-ons ManagerからHomepageを開いたらThunderbirdのページが...)

 

コメント

Clicking on ads that should open in a new tab instead open in the parent tab

2015-07-12 18:13:30 | 雑記

原文はこちら。
Clicking on ads that should open in a new tab instead open in the parent tab · Issue #412 · gorhill/uBlock · GitHub
何かというと…

target属性がついているリンクがブロックされている場合、uBlock Originはtarget先ではなく元のページにブロックページ(uBlock Origin has prevented the following page from loading:ってやつ)を表示してしまう(ただしFirefoxのみらしい)

具体例としては、FileHippoのSMPlayerダウンロードページ(http://filehippo.com/jp/download_smplayer/)でSMPlayerのホームページへのリンク(http://smplayer.sourceforge.net/)をクリックすると、NewTabは開かれるもののブランクのままで、ダウンロードページの方にブロックページが表示されてしまいます。

Firefoxにはリンクを開く際に開いてよいかどうかをshouldLoadを呼び出して問い合わせる仕掛けがあるらしいんですが、targetありの場合、元のウィンドウ(tab)で問い合わせ、さらにtargetウィンドウ(tab)で問い合わせ、と、二重にshouldLoadを呼び出しており…

uBlockはブロックされているページへの遷移(=ブロックページを表示)をpending requestで処理しているらしく(?)、同一URLへのpending requestを配列処理している箇所があるんですが。
vapi-background.jsのhttpObserverのcreatePendingRequestにて
        bucket = this.pendingURLToIndex.get(url);
        if ( bucket === undefined ) {
            this.pendingURLToIndex.set(url, i);
        } else if ( Array.isArray(bucket) ) {
            bucket = bucket.push(i);
        } else {
            bucket = [bucket, i];
        }
1発目で、
  this.pendingURLToIndex.set(url, i);
がセットされますが、2発目で
  bucket = [bucket, i];
ってやってもbucketが配列になるだけで元データは配列になったりはしません。ここでiは失われます。
なので、uBlockはFirefoxの1発目の要求だけを処理することになって元のページにブロックページを表示してしまい、2発目の要求は失われてしまって何も処理されないのでブランクのままになります。
もしも上記部分をちゃんと配列になるよう修正したとしても、pending requestを回す部分(httpObserverのobserve)が1個しか処理しないため、そこも修正する必要があります。
そのあたり修正したとしても、そもそもFirefoxの振る舞いがuBlockにとっては都合が悪いので、そのままでは元のページとNewTabの両方にブロックページが表示されてしまいます。

というわけで、Firefoxの1発目の要求を無視(スルー)するしかないんじゃないかな、というのが冒頭の原文の主旨です。
ただ、あのままだとパフォーマンスに悪影響を与えるようなので、手元では
        // Omit the invalid request - having target and not for the target
        let element = context.document.activeElement;
        if ( element
            && element.target
            && !context.opener
            && ( element.target === "_blank"
                || ( element.target !== "_self" && element.target !== "_top"
                && element.target !== "_parent" && element.target !== context.name ) ) ) {
            return this.ACCEPT;
        }
にしてますけど。Javascriptは分からん(-_-;)

ま、どうでもいいんですけどね。

 

コメント

1171173 - After start, Disabling/Enabling uBlock considerably lowers page load times with E10s

2015-07-08 21:04:02 | 雑記

1171173 – After start, Disabling/Enabling uBlock considerably lowers page load times with E10s

Hmm... I can say the last part of the patch(adding multiprocessCompatible: aAddon.multiprocessCompatible) is enough as I stated before.
I'll pray the other enormous code has no any regressions...

We need a lot of luck.

 

コメント

1177341 - Bookmarks favicon of twitter sometimes becomes black

2015-07-08 19:23:27 | 雑記

1177341 – Bookmarks favicon of twitter sometimes becomes black
Bookmarksサイドバーのtwitterのアイコンが黒くなる件ですが。
いい加減うんざりしてきたので(^^;)起動時にfavicon.svgをFailedFaviconに登録するという荒業なextensionをこさえて回避。…たぶん。
たったこんだけ。(add-on sdkでcfx init後のmain.jsに)

const { Cc, Ci } = require("chrome");

var faviconService
    = Cc["@mozilla.org/browser/favicon-service;1"].getService(Ci.nsIFaviconService);
var ioService
    = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService);

var failedFavicons = ["https://abs.twimg.com/a/1436203639/img/t1/favicon.svg"];
for (failedFavicon of failedFavicons) {
    let url = ioService.newURI(failedFavicon, null, null);
    faviconService.addFailedFavicon(url);
}

勘違いかもしれませんがfaviconをfetchしてるのがfavicon-serviceだからなのかuBlockでは抑止できなかったので。
FailedFaviconは保存(永続化)されないので。
PageInfoのMediaでブロックできるのはサイト単位だけのようでabs.twimg.comをブロックすると絵文字も同時にブロックされるようなので。
なのでextensionに。

これもいつか徒労と化す定め。チ~ン

[7/9追記]
今頃気がついたけど、bing.comもfaviconがsvgなんですね。道理で...
ついでなのでfailedFaviconsに"http://www.bing.com/fd/s/a/hp/bing.svg"を追加。

 

コメント

Nightly: apz

2015-07-02 11:27:39 | 雑記

1106280 – Vertical scroll position is not saved when pressing back button
Backで元の位置に戻らない件ですが。
ひょっとして今日(昨日?)のbuildで解消されたような…
スクロール時埋め込みFlashがワンテンポ遅れてスクロールする気持ち悪い動作はどうもまだ直ってないようですが、確認用のページを探すのに苦労したくらいなので(HTML5Playerは問題なし)、しばらくapz有効のまま様子見。

[追記]
しかし…crashしやすいのであった(-_-)

 

コメント

E10s & uBlock (3) 終了

2015-06-29 20:09:48 | 雑記

E10s+uBlockで、Disable/Enableで挙動が変化する件。
observeの2重callが無くなるのは、
DisableでRemoteAddonsParent.jsmのObserverParent.removeObserverが呼び出されるから。Enableで復旧しないのはたぶんRemoteAddonsParent.jsmのObserverParent.addObserverが呼び出されないから。Debuggerの挙動が信用できないので「たぶん」ですが。
で、RemoteAddons〜が出てくるのはmultiprocessShimsが関係しているはずで、こいつはE10s非対応Addonのためのもの(?)のはずだからそもそもおかしいような気がする。
multiprocessで調べてみると、対応Addonはinstall.rdfにmultiprocessCompatible=trueが指定されているそうで、uBlockも確かにそうなっている。
さらに調べてみると...
1172888 – Preference 'extensions.bootstrappedAddons' not updated properly.
この項目はprefs.jsに保存されているのだがそれが正しくない、と。
確かに!(@_@)
prefs.jsの該当項目はfalseになってました。
about:configでtrueにしてから終了するとtrueで保存されるので、起動時の読み込みでfalseになってしまっているようです。
というわけで、
Nightly起動時にE10s非対応とみなされて必要の無いRemoteAddons〜が有効になってしまって動作がおかしくなり、
Disable/Enableすると不正なデータがリセットされてmultiprocessCompatible=trueとなり不要なモジュールはロードされず動作もおかしくならない。
ってことで。
原因は、
createAddonDetails
でmultiprocessCompatibleをセットしていないのに
callBootstrapMethod
を呼び出して
aAddon.multiprocessCompatible || false
で常にfalseになるよう仕組まれていたから。
ダメじゃん(-_-)

[7/1追記]
あ、「不要なモジュールはロードされず」は違うな。「不要なモジュールから妨害工作は受けず」かな。
1行パッチ。

diff --git a/toolkit/mozapps/extensions/internal/XPIProvider.jsm b/toolkit/mozapps/extensions/internal/XPIProvider.jsm
--- a/toolkit/mozapps/extensions/internal/XPIProvider.jsm
+++ b/toolkit/mozapps/extensions/internal/XPIProvider.jsm
@@ -705,17 +705,18 @@ XPCOMUtils.defineLazyServiceGetter(this,
 function EM_R(aProperty) {
   return gRDF.GetResource(PREFIX_NS_EM + aProperty);
 }
 
 function createAddonDetails(id, aAddon) {
   return {
     id: id || aAddon.id,
     type: aAddon.type,
-    version: aAddon.version
+    version: aAddon.version,
+    multiprocessCompatible: aAddon.multiprocessCompatible
   };
 }
 
 /**
  * Converts an RDF literal, resource or integer into a string.
  *
  * @param  aLiteral
  *         The RDF object to convert

prefs.jsが正しく保存されていることとBrowser Consoleに〜XPCOM〜メッセージが出ないことを確認。prefs.jsを手編集してfalseにすれば不具合が再現することを確認。

でも当面は(bugfixされるのかどうかなので)、起動時にuBlockをDisable/Enableするextensionで問題回避する :-(

 

コメント

E10s & uBlock (2)

2015-06-27 07:59:02 | 雑記

Firefox Nightly + uBlock Origin の話なんですが。
だいぶ前に、Browser Consoleに妙なエラーメッセージが出てて。
1161418 – [e10s] uBlock Origin addon hits "TypeError: Date.now is not a function"
今、このメッセージは出ないんですが...
なんと...
uBlockのソースを見ると、exceptionをcatchしてメッセージを出さないようにコーディングされてました(-_-)
uBlock/frameModule.js at master · gorhill/uBlock · GitHub
>try {
>    lss(this.contentBaseURI + 'vapi-client.js', sandbox);
>    lss(this.contentBaseURI + 'contentscript-start.js', sandbox);
>} catch (ex) {
>    //console.exception(ex.msg, ex.stack);
>    return;
>}
で、"//"取ってconsole.exception(ex.message, ex.stack);にしてみると。
出ました"Date.now is not a function"。

前から思ってたんですが、Date.nowがfunctionじゃないとか発狂してるのにも関わらずuBlockはちゃんとお仕事している(=広告をブロックしている)のが激謎...

で、ソースをいじってトレースしてみたら...
どうもcontentObserver.observeが2度(というか2重に)呼び出されているようで...
1度はRemoteAddonsParentからCPOWを渡されていて、そいつから生成されたsandboxはDate.nowの無いイミフなブツで例外が発生して終了。ところがその後どこかから再度呼び出されていて、今度はCPOWではない通常のobjectを渡されているので普通のsandboxが生成されて(たぶん)その後の処理も正常にいっているらしく。ナンダコリャ
激謎...
Disable/Enable後はCPOW渡しの呼び出しはなくなります。
激謎...
uBlockは Services.obs.addObserverで"document-element-inserted"をobserveするよう登録していますが、どうもRemoteAddonsParentも"e10s-"を足して登録しているようで
mozilla-central mozilla/toolkit/components/addoncompat/RemoteAddonsParent.jsm
>Services.obs.addObserver(observer, "e10s-" + topic, ownsWeak);
そのせいで2重にobserveが呼び出されているような...

このあたり、何が正解なのか分からないので手の出しようもないんですが。なんだかE10sのバグ(?)を追及すると事態が悪化する(CPOW渡しだけになっちゃってuBlockが機能しなくなるとか)ような気がしてしょうがない...ブルブル

 

コメント

進展が無い...

2015-06-23 18:08:07 | 雑記

1171173 – After start, Disabling/Enabling uBlock considerably lowers page load times with E10s
ですが。
進展がありませんね(´・_・`)

Browser Consoleに大量の
>Sending message that cannot be cloned. Are you trying to send an XPCOM object?
が出る件については、こんなんがありまして。
1149896 – console reports "Sending message that cannot be cloned. Are you trying to send an XPCOM object?" as reading-list items are added.
これに倣ってublockのframeModule.jsを
205:            messageManager.sendRpcMessage(this.cpMessageName, JSON.stringify(details));
208:            messageManager.sendSyncMessage(this.cpMessageName, JSON.stringify(details));
に。vapi-background.jsを
1675:        var details = JSON.parse(e.data);
に変更すると、件のメッセージは出なくなりました。

が、パフォーマンスをチェックしてみると、とあるページで
修正なし:8.7秒 (5回reloadの平均)
修正あり:8.3秒
Disable/Enable後:7.0秒
ほとんど影響なし(^^;;
ホントにメッセージ抑止だけの効果しかないようで。
パフォーマンスを劣化させているのは本当はどこなのか・・・

 

コメント

間抜けな話

2015-06-15 16:53:13 | 雑記

つまらん話で恐縮ですが。

twitterのページを開いてスクロールすると...
プロフィールの画像がするっと小さいサイズに変わり、ナビゲーションバー(ツイート/フォロー/フォロワー等が表示されている部分)はスクロール領域から外れて固定表示になるわけですが。

ウチではそういう動作になるのがFirefox Nightly 41.0a1の或るプロファイル(e10s有効)だけでして。
IE11でもGoogle Chrome(43.0.2357.124)でもFirefox Beta 39.0でもFirefox Nightly 41.0a1のもう一つのプロファイル(e10s+apz有効)でも、プロフィール・ナビゲーションバーはスクロールアウトしてしまい、固定表示されるのは一番上の検索バーだけという状態になります。

なんでそうなるのか結構悩んだんですが、答は「ブラウザの表示サイズが狭いときは固定表示にはならない」でした(-_-) (ちなみにブラウザのウィンドウサイズはすべて縦768)
ブラウザウィンドウを拡げるとどのブラウザでもナビ・バーは固定表示になりました。そ、そんなことだったとは...(-_-;)
同じNightlyで動作するプロファイルと動作しないプロファイルがあるので、いったい何が違うのかと悩んだんですが、UIのカスタマイズは確かに違ってて、一方はほぼデフォルト(表示領域は小さい)、もう一方はCTR適用でタイトルバーも非表示(表示領域は大きい)。そこかよ! っていう...

ま、そういう落とし穴もあるってことで...
(というか、そういう所でつまずく奴もいるってことで...;_;)

 

コメント