Opened 7 years ago

Closed 7 years ago

#5732 closed Bug (fixed)

Safari: SCAYT + offline causes floatpanel and dialog issues

Reported by: tobiasz.cudnik Owned by:
Priority: Normal Milestone: CKEditor 3.4.2
Component: UI : Spell Checker Version: 3.3.1
Keywords: Cc:

Description (last modified by fredck)

SCAYT + offline causes floatpanel and dialog issues.


  1. Go offline (or steal SCAYT hostname in OS's hosts file).
  2. Use multi-instance example (eg Skins) from local machine.
  3. Don't disable SCAYT.
  4. Start opening floatpanels (may be only color ones) in various instances.
  5. Try to open dialogs in same way.


  1. Some of floatpanels don't appear at all.
  2. Dialogs almost always appears with big delay.


  1. Everything functions same as when SCAYT host/webservice works.

I think this is very important thing to consider when we decide to ship CKEditor with SCAYT enabled by default. Editor installations shouldn't be affected by (possible) SCAYT downtimes. Other browsers may also be affected.

Attachments (1)

5732.patch (382 bytes) - added by alfonsoml 7 years ago.
Proposed patch

Download all attachments as: .zip

Change History (16)

comment:1 Changed 7 years ago by

We cannot reproduce this. Please provide more clear steps to reproduce.

comment:2 Changed 7 years ago by garry.yao

It can reproduce with a slow connection to SCAYT server in Firefox with Throttle plugin,

actually a common problem in all browsers, where SCAYT scripts loading is blocking the executing (though loaded in parallel) of other laterly requested editor resources.

comment:3 Changed 7 years ago by fredck

  • Component changed from General to UI : Spell Checker
  • Description modified (diff)
  • Keywords Confirmed added; Safari removed

You need to setup in your hosts file to point to an invalid IP. In this way, the SCAYT scripts will not get loaded by the browser.

The problem here is quite serious, as any other script execution in the page is blocked while SCAYT scripts are not loaded and executed. This can be an issue with slow connections also, which can impact effectively on the load of editor files, when opening the styles combo, or any dialog, for example.

There may be a solution for that, but we need to understand if it really works. At runtime, SCAYT should create an <iframe>, compatible with the current page, and load all scripts into that iframe. I think that, in that case, the script loading time will not block the execution of other scripts in the page.

This impact all browsers.

comment:4 Changed 7 years ago by

Current SCAYT plug-in/core perfroms follwing steps when loading

  1. plug-in tries to load scayt by loading scayt loader script. If it is not loaded initialization of plug-in (event handlers) is perfromed partially. Event handlers which were initialized contains a code which verify that scayt exists. Plug-in does not affect editor.
  2. loader script tries to load core. If it is not able to load core no initialization of SCAYT core will be performed. No event handlers will be assinged, so SCAYT should not affect editor.
  3. core initialize scayt core object, scayt controls and sends request(s) to server. If there is no answers from server for 30 seconds then core stop to send any new requests. It retries request #1 each 30 seconds. core still tries to collect words from text, but does not send any info to server until it recieves response for request #1.

comment:5 Changed 7 years ago by fredck

  • Milestone changed from CKEditor 3.3 to CKEditor 3.4

Postponing, but we need a solution here asap.

comment:6 Changed 7 years ago by alfonsoml

People are reporting problems due to this:

Changed 7 years ago by alfonsoml

Proposed patch

comment:7 Changed 7 years ago by alfonsoml

  • Keywords Review? added
  • Owner set to alfonsoml
  • Status changed from new to assigned

I haven't been able to reproduce the problem in Safari or Chrome, but it's very clear and annoying in Firefox.

This patch fixes it.

comment:8 Changed 7 years ago by garry.yao

  • Keywords Review+ added; Review? removed

Congratulation, with script async at least we have no problem in FF3.6, but considering the issue is still producible in e.g. 3.5, let's leave the ticket open for a fix in SCAYT.

comment:9 Changed 7 years ago by alfonsoml

  • Keywords Review+ removed
  • Owner alfonsoml deleted
  • Status changed from assigned to new

Patch added with [5574]

comment:10 Changed 7 years ago by team is in progress with the problem and prepared prototype which move all scripts related to the SCAYT to separate iframe as suggested earlier by CKSource team. The problem is resolved in prototype. team continue to work on the solution.

comment:11 Changed 7 years ago by fredck

  • Milestone CKEditor 3.4 deleted

comment:12 Changed 7 years ago by Hardy

  • Version set to 3.3.1

Would please update the status of this ticket? I'm struggling with larger ckeditor docs where I don't need a full-time spellchecker (the situation does exist!). Spellchecker takes too long to query the remote server, yielding perpetual hangs on 'transferring data from'. This is an annoying dependency!

Of course, Ckeditor should definitely provide the option to disable this feature, regardless of whether or not the server is behaving optimally. I need to know if it is time to totally disable this plugin or not (see CKSource forum

Drupal 6, Ckeditor module 6.x-1.1, Ckeditor 3.3.1 with svc.spellchecker 2.5.0 (96)

comment:13 Changed 7 years ago by team has fixed this issue in the new SCAYT core and moved all scripts related to the SCAYT to separate iframe as suggested earlier by CKSource team.

So the described problem should be resolved after swithching SCAYT to new version with this patch

comment:14 Changed 7 years ago by

  • Keywords Review? added

comment:15 Changed 7 years ago by garry.yao

  • Keywords Review? removed
  • Milestone set to CKEditor 3.4.2
  • Resolution set to fixed
  • Status changed from confirmed to closed

Confirm to be fixed in all browsers.

Note: See TracTickets for help on using tickets.
© 2003 – 2017 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy