Ticket #3133 (closed defect: fixed)

Opened 1 year ago

Last modified 1 year ago

日記作成・編集画面での編集モード変更時、特定のfontタグがあるとブラウザが固まる

Reported by: tsukamoto Assigned to: akamine
Priority: minor Milestone: OpenPNE2.12.6
Component: 指定しない Version: 2.12.x & 2.14.x
Keywords: OpenPNE2.13.5 Cc:

Description (Last modified by akamine)

■現象

日記作成・編集画面で、以下の手順でブラウザが固まります。

  1. 後述のHTMLファイルをブラウザで表示し、全文コピーしておく。
  2. 日記作成を開き、本文領域をプレビューモードにする。
  3. 上でコピーしておいた内容を、ペーストする。
  4. テキストモードにする。

以下に、問題の発生するHTML例を貼付します。

 <html><body>
 問題は<font size="2">size=2などのfontタグ</font>でおきます。
 </body></html>

実際には、プレビューモードからテキストモードへの切替時、editor_plugin.js.src内のconvertHtmlTagToDecoTag処理で、特定のfontタグを処理しようとした際に無限ループが発生するようです。

同処理で、fontタグがcolor属性を持っている際はop:colorタグに、size属性で5が指定されている時はop:largeタグに、1が指定されている時はop:smallタグに変換されます。これ以外のfontタグがあった場合、この処理では属性を持たないfontタグに変換されてしまいます。ここでfontタグ(旧)がfontタグ(新)に変換され、fontタグ(新)がまた変換対象になる、ということを繰り返し、無限ループが発生しています。

対応するop:*タグがないfontタグは、削除されるのが妥当ではないかと思われます。私達の環境では先の修正をし、問題を解消できました。あまり起こるケースではなさそうですが、私達のユーザーからすでに指摘を受けており、実際にユーザーが何度も起こしてしまっているようです。ブラウザが固まると弊害も大きく、修正をお願いします。

OpenPNE 2.12.5に対するパッチを添付します。

■原因

プレビューモードからテキストモードへの切替時、editor_plugin.js.src内のconvertHtmlTagToDecoTag処理で、特定のfontタグを処理しようとした際に無限ループが発生する

■修正内容

public_html/js/tiny_mce/plugins/openpne/内の

editor_plugin.js.srcとeditor_plugin.jsを修正

修正したことで 「問題はsize=2などのfontタグでおきます。」のような文章を

  1. 日記作成を開き、本文領域をプレビューモードにする。
  1. テキストモードにする。

を行ってもブラウザが固まらないようになりました。

■関連情報

Attachments

openpne_2.12.5_diff.txt (3.6 kB) - added by tsukamoto on 11/11/08 12:25:36.
Diff for 2.12.5 (trunk)

Change History

11/11/08 12:25:36 changed by tsukamoto

  • attachment openpne_2.12.5_diff.txt added.

Diff for 2.12.5 (trunk)

11/11/08 12:43:14 changed by ebihara

  • keywords changed from 2.13要望 to OpenPNE2.13.5.
  • version changed from 2.12.x to 2.12.x & 2.13.x.
  • milestone set to OpenPNE2.12.6.

ご報告ならびにパッチをご提供いただきましてありがとうございます。

現象が確認できましたので、今回の安定版および次回の開発版に変更を適用したいと思います。

11/12/08 17:29:03 changed by kiwa

  • type changed from enhancement to defect.

11/14/08 10:54:22 changed by akamine

対応します

11/14/08 10:54:31 changed by akamine

  • owner changed from nobody to akamine.
  • status changed from new to assigned.

11/14/08 12:26:21 changed by akamine

  • description changed.

以下のリビジョンを更に修正しました。

11/14/08 12:26:56 changed by akamine

  • keywords changed from OpenPNE2.13.5 to OpenPNE2.13.5 確認中.
  • description changed.

11/16/08 14:44:46 changed by ebihara

  • keywords changed from OpenPNE2.13.5 確認中 to OpenPNE2.13.5 差し戻し.

public_html/js/tiny_mce/plugins/openpne/editor_plugin.js はツールによって生成してください。

11/17/08 15:19:09 changed by akamine

  • keywords changed from OpenPNE2.13.5 差し戻し to OpenPNE2.13.5 確認中.

以下のリビジョンを更に修正しました。 (no fileですが、editor_plugin.jsは生成ツールから作成したファイルをコミットしています)

11/20/08 18:09:21 changed by ebihara

  • keywords changed from OpenPNE2.13.5 確認中 to OpenPNE2.13.5 テスト待ち.

11/20/08 19:26:11 changed by kiwa

  • keywords changed from OpenPNE2.13.5 テスト待ち to OpenPNE2.13.5.
  • status changed from assigned to closed.
  • resolution set to fixed.

確認しました。問題ありません。