あんまりスター付かないので気付いてなかったのですが、Chrome 拡張の「はてなのお知らせ」とかに通知がこなくなっていることに気付きました。
おそらく「HTTPS にしたこと」というより、http: から https: に URL が代わったことにより Hatena.Star.Token
の更新が必要なんだと思います。が、s.hatena.ne.jp/cho45/blogs にログイン状態でアクセスすると現状タイムアウトしてしまうので、詰んでいます。
HatenaStar.js を読んでて気付いたのですが、
Hatena.Star.Token = null;
がベタに書いてあるため、async と併用するとそもそも Token が初期化されてしまうようでした……
HTTPS とか関係なかったです。HTTP ではてなスターに登録していても、リダイレクトしているなら、リダイレクト先の Token を読んで判断するようです。
しかしHTTPSにしたことによって過去のスターが消えてそうなことに気付いたので、どうしようか考えています。
結局にっちもさっちも行かないことがわかったので、HatenaStar.js のコピーを編集して使うようにしました。
はてなスターに渡すURLは http: に戻しました。HTTPS になってからついたスターが表示されなくなってしまいますが (申し分けないのですが)、HTTP のときについたスターは復活するはずです……
まぁそもそも、そろそろはてなスター止めてもいいかもしれないんですが、もうちょっと頑張ってみようという感じです。
--- HatenaStar.orig.js 2016-04-15 23:11:20.355944766 +0900
+++ HatenaStar.js 2016-04-15 23:11:34.687944255 +0900
@@ -4655,7 +4655,39 @@
/* start */
-new Hatena.Star.WindowObserver();
+// new Hatena.Star.WindowObserver();
+
+Hatena.Star.Token = '7743b0e60f0e3b267f9723d3a5cf96981a59e4f3';
+Hatena.Star.EntryLoader.loadEntries = function (node) {
+ console.log('custom EntryLoader');
+ var entries = [];
+ var entryNodes = node.getElementsByTagName('article');
+ for (var i = 0, entryNode; (entryNode = entryNodes[i]); i++) {
+ var uri = entryNode.querySelector('a.bookmark').href || '';
+ var title = entryNode.querySelector('h1').innerText;
+ var container = entryNode.querySelector('.social .hatena-star');
+
+ var sc = Hatena.Star.EntryLoader.createStarContainer();
+ container.appendChild(sc);
+ var cc = Hatena.Star.EntryLoader.createCommentContainer();
+ container.appendChild(cc);
+
+ entries.push({
+ uri: uri.replace(/^https:/, 'http:'),
+ title: title,
+ star_container: sc,
+ comment_container: cc
+ });
+ }
+
+ console.log('custom EntryLoader loaded', entries);
+
+ return entries;
+};
+
+window.addEventListener('load', function () {
+ new Hatena.Star.EntryLoader();
+});
/* Hatena.Star.SiteConfig */
/* sample configuration for Hatena Diary */