Skip to content

Commit 502f4fe

Browse files
committed
DOC-3238: Enhance migration guide with detailed checklists and improves crossorigin entry.
1 parent 8936452 commit 502f4fe

File tree

1 file changed

+97
-47
lines changed

1 file changed

+97
-47
lines changed

modules/ROOT/pages/migration-from-7x.adoc

Lines changed: 97 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,11 @@ editor.insertContent('<p>New content</p>');
6666

6767
*Impact*: This change simplifies content manipulation by consolidating insertion methods.
6868

69-
.Required Changes
70-
* Replace `editor.selection.setContent` with `editor.insertContent`
71-
* Update any plugins using the old method
69+
**Migration checklist:**
70+
71+
* [ ] Replace all instances of `editor.selection.setContent` with `editor.insertContent`
72+
* [ ] Update custom plugins that use the old method
73+
* [ ] Test content insertion in your editor instances
7274

7375
'''
7476

@@ -111,10 +113,12 @@ editor.execCommand('ToggleToolbarDrawer', false, { skipFocus: true });
111113

112114
**Impact**: This change simplifies focus management, reducing the risk of confusion and unexpected behavior.
113115

114-
**Migration steps:**
116+
**Migration checklist:**
115117

116-
* Replace all instances of `skip_focus` with `skipFocus`
117-
* Review any plugins or custom scripts that rely on the old method
118+
* [ ] Locate all instances of `ToggleToolbarDrawer` command usage
119+
* [ ] Replace `skip_focus` with `skipFocus` in command options
120+
* [ ] Update any custom plugins using this command
121+
* [ ] Test toolbar drawer behavior after changes
118122

119123

120124
=== Deprecated Methods
@@ -136,10 +140,12 @@ editor.dispatch('someEvent');
136140

137141
**Impact**: This change aligns {productname} with modern event handling conventions, making the API more intuitive for developers.
138142

139-
**Migration steps:**
143+
**Migration checklist:**
140144

141-
* Replace all instances of `fire()` with `dispatch()`
142-
* Review any third-party plugins for compatibility
145+
* [ ] Search codebase for all uses of the `fire()` method
146+
* [ ] Replace each instance with `dispatch()`
147+
* [ ] Review and update third-party plugins
148+
* [ ] Test all custom event handling
143149

144150

145151
=== Plugin Updates
@@ -159,11 +165,12 @@ tinymce.init({
159165

160166
**Impact**: Lists will no longer indent beyond the configured maximum level.
161167

162-
**Migration steps:**
168+
**Migration checklist:**
163169

164-
* Review your content for deeply nested lists that may be affected
165-
* Configure the `max_list_indent` setting according to your requirements
166-
* Update any documentation or user guides that reference list indentation behavior
170+
* [ ] Audit existing content for deeply nested lists
171+
* [ ] Determine appropriate maximum indentation level for your use case
172+
* [ ] Configure `max_list_indent` setting
173+
* [ ] Test list behavior with existing content
167174

168175
==== Renaming and deprecation of "legacy" Export Plugin
169176
// #TINY-12297
@@ -197,11 +204,14 @@ Language pack filenames have been standardized to follow the RFC5646 format. Thi
197204

198205
**Impact**: Custom language packs using the old naming format will need to be updated.
199206

200-
**Migration steps:**
207+
**Migration checklist:**
201208

202-
* Rename language pack files to follow the RFC5646 format (e.g., `en_GB.js` becomes `en-GB.js`)
203-
* Update any configuration or scripts that reference language pack filenames
204-
* If you maintain custom translations, ensure they follow the new naming convention
209+
* [ ] Identify all language pack files in your deployment
210+
* [ ] Rename files to RFC5646 format (e.g., `en_GB.js` → `en-GB.js`)
211+
* [ ] Update configuration references to language files
212+
* [ ] Update build scripts that handle language files
213+
* [ ] Test language switching in your application
214+
* [ ] Update custom translation files to new format
205215

206216
[source, javascript]
207217
----
@@ -219,10 +229,12 @@ The Image and Accessibility Checker plugins now follow the latest W3C standards
219229

220230
**Impact**: Customers using these plugins will need to update their configurations to ensure continued compliance with accessibility standards.
221231

222-
**Migration steps:**
232+
**Migration checklist:**
223233

224-
* Replace any `+role="presentation"+` attributes with a null alt attribute in your content
225-
* Review plugin configurations to ensure they align with the new standards
234+
* [ ] Identify images using `role="presentation"` in your content
235+
* [ ] Replace with null alt attributes (`alt=""`)
236+
* [ ] Update image plugin configuration if customized
237+
* [ ] Test accessibility checker with updated content
226238

227239

228240
==== Page Break plugin update for Export PDF/Word Compatibility
@@ -251,35 +263,54 @@ pagebreak_separator: '<div class="mce-pagebreak"></div>'
251263

252264
=== Technical Improvements and Cleanup
253265

254-
==== ScriptLoader Enhancements
255-
// #TINY-12228
266+
==== Cross-Origin Resource Loading Configuration
267+
// #TINY-12228, TINY-12326
256268

257-
The ScriptLoader now supports configurable crossorigin attributes, allowing better control over script loading behavior and CORS policies. This improvement is particularly important for {productname} Cloud deployments where browsers or security software (such as Norton Antivirus) might interfere with Referer headers.
269+
When upgrading to {productname} 8, you will need to review and possibly update how your integration handles cross-origin resource loading. {productname} 8 provides a new configuration option for controlling the `crossorigin` attribute on loaded resources.
258270

259-
Configure the crossorigin attribute in two ways:
271+
**What to check:**
260272

273+
. If you're using {cloudname}:
274+
+
275+
* Ensure your script tag includes both required attributes:
276+
+
261277
[source, html]
262278
----
263-
<!-- Method 1: Direct CDN script inclusion -->
264-
<script src="https://cdn.tiny.cloud/1/no-api-key/tinymce/8/tinymce.min.js" referrerpolicy="origin" crossorigin="anonymous"></script>
279+
<script src="{cdnurl}" referrerpolicy="origin" crossorigin="anonymous"></script>
265280
----
266-
281+
+
282+
. If your application loads resources (scripts or stylesheets) from different domains:
283+
+
284+
* Configure the new crossorigin function in your `tinymce.init`:
285+
+
267286
[source, javascript]
268287
----
269-
// Method 2: Global configuration
270288
tinymce.init({
271289
selector: 'textarea',
272-
crossorigin: 'anonymous'
290+
crossorigin: (url, resourceType) => {
291+
// Add crossorigin="anonymous" for cross-origin resources
292+
if (url.startsWith('https://your-cdn.com')) {
293+
return 'anonymous';
294+
}
295+
// Omit crossorigin attribute for same-origin resources
296+
return '';
297+
}
273298
});
274299
----
300+
+
301+
. If you're using content_css from a different domain:
275302

276-
**Impact**: This change improves security and compatibility with various hosting configurations, particularly ensuring consistent loading behavior for both the main {productname} script and plugins when using {productname} Cloud.
303+
* The `content_css_cors` option takes precedence for stylesheets.
304+
* Review your content_css configuration if you use cross-origin stylesheets.
277305

278-
**Migration steps:**
306+
**Migration checklist:**
307+
308+
* [ ] Verify script tag attributes for Cloud deployments.
309+
* [ ] Configure crossorigin function if using cross-origin resources.
310+
* [ ] Test resource loading in your deployment environment.
311+
* [ ] Review content_css configuration if using cross-origin stylesheets.
279312

280-
* Review your script loading configurations and update as needed
281-
* Add appropriate crossorigin attributes where required by your security policies
282-
* For {productname} Cloud deployments, consider setting `crossorigin: 'anonymous'` to prevent potential loading issues caused by security software
313+
For complete details on the new crossorigin function API, see: xref:tinymce-and-cors.adoc#crossorigin[crossorigin configuration option].
283314

284315
==== Removed Empty Files
285316
// #TINY-11287, #TINY-12084
@@ -291,10 +322,12 @@ Several empty files have been removed from the codebase to reduce clutter and im
291322

292323
**Impact**: These changes have no functional impact but may affect custom build processes that explicitly reference these files.
293324

294-
**Migration steps:**
325+
**Migration checklist:**
295326

296-
* Remove any direct references to these files from your build processes
297-
* Update any custom CSS/LESS imports that included these files
327+
* [ ] Check build processes for references to Comments plugin CSS
328+
* [ ] Check build processes for references to Mentions plugin LESS
329+
* [ ] Remove any imports of these empty files
330+
* [ ] Test Comments and Mentions plugins after removal
298331

299332
=== Content Handling Updates
300333

@@ -305,11 +338,12 @@ The handling of `<div>` elements during cut operations has been improved to prev
305338

306339
**Impact**: This change affects how div elements are handled during cut operations, particularly in complex document structures.
307340

308-
**Migration steps:**
341+
**Migration checklist:**
309342

310-
* Test cut/paste operations in your specific use cases, especially with complex nested div structures
311-
* Update any custom handling of div elements to align with the new behavior
312-
* Review and update any custom cleanup functions that process div elements
343+
* [ ] Test cut/paste with nested div structures
344+
* [ ] Update custom div handling code if present
345+
* [ ] Review custom cleanup functions affecting divs
346+
* [ ] Verify content structure after cut operations
313347

314348
=== Service and Configuration Changes
315349

@@ -440,6 +474,15 @@ tinymce.init({
440474

441475
For complete details on license key manager setup and troubleshooting, see xref:license-key.adoc##setting-up-the-commercial-license-key-manager[Setting up the Commercial License Key Manager].
442476

477+
**License Migration checklist:**
478+
479+
* [ ] Contact account manager for new {productname} {release-version} license key
480+
* [ ] Choose appropriate license type for your deployment
481+
* [ ] Install license key manager addon for commercial licenses
482+
* [ ] Update configuration with new license key format
483+
* [ ] Test editor functionality with new license
484+
* [ ] Verify all premium features are working
485+
443486
==== Discontinuation of Medical English (UK)
444487
// #TINY-12255
445488

@@ -448,10 +491,12 @@ The "Medical English (UK)" dictionary has been removed due to licensing constrai
448491

449492
**Impact**: Users relying on this dictionary will need to make alternative arrangements for medical-specific spell checking.
450493

451-
**Migration steps:**
494+
**Migration checklist:**
452495

453-
* Remove any configuration settings referencing "Medical English (UK)"
454-
* Explore third-party dictionary options as needed
496+
* [ ] Remove "Medical English (UK)" from spellchecker configurations
497+
* [ ] Remove any custom dictionary integrations related to Medical English
498+
* [ ] Test spellchecker functionality with remaining dictionaries
499+
* [ ] Configure alternative medical dictionary if required
455500

456501
==== Decoupling of Service Versions from {productname} Editor
457502
// #EPIC-247, #EPIC-265
@@ -471,10 +516,15 @@ Services previously bundled with the editor, such as Java Servlet services, are
471516

472517
**Impact**: This reduces infrastructure complexity and aligns with modern DevOps practices.
473518

474-
**Migration steps:**
519+
**Migration checklist:**
475520

476-
* Transition to xref:bundle-intro-setup.adoc[Containerized service deployments] as soon as possible
477-
* link:{supporturl}/[{supportname}] if continued access to legacy WAR files are required
521+
* [ ] Inventory current WAR file deployments
522+
* [ ] Review containerization requirements for your environment
523+
* [ ] Plan transition timeline to containerized services
524+
* [ ] Set up container infrastructure (Docker/Kubernetes)
525+
* [ ] Deploy and test containerized services
526+
* [ ] Update service connection configurations
527+
* [ ] Contact link:{supporturl}/[{supportname}] if legacy WAR files are still needed
478528

479529
For more information on deploying the server-side components using Docker, see: xref:bundle-intro-setup.adoc[Containerized service deployments].
480530

0 commit comments

Comments
 (0)