Skip to content

Commit 26d8555

Browse files
committed
Upgrade iframe-resizer to its latest version.
The `iframe-resizer` has been replaced with the `@iframe-resizer/parent` and `@iframe-resizer/child` packages. The latest version is 5.5.2 which this upgrades to. There are several changes needed for this. The `data-iframe-height` and `data-iframe-width` options are deprecated and now there is only the `data-iframe-size` option. This requires a small change to PG as well. Also, the `iFrameResize` method is deprecated and replaced with the `iframeResize` method (annoying change here). The `iFrameResizer` property set on the iframe still exists but is not documented. The `iframeResizer` property replaces it. I assume the `iFrameResizer` is also deprecated, so that switch was made.
1 parent a0b875d commit 26d8555

File tree

8 files changed

+95
-35
lines changed

8 files changed

+95
-35
lines changed

htdocs/js/ProblemSetDetail/problemsetdetail.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@
250250
() => {
251251
document.querySelectorAll('.rpc_render_area').forEach((renderArea) => {
252252
const iframe = renderArea.querySelector('[id^="psr_render_area_"][id$="_iframe"]');
253-
if (iframe && iframe.iFrameResizer) iframe.iFrameResizer.close();
253+
if (iframe && iframe.iframeResizer) iframe.iframeResizer.close();
254254
});
255255
},
256256
{ passive: true }
@@ -379,8 +379,8 @@
379379
const id = renderButton.id.match(/^pdr_render_(\d+)/)[1];
380380
const renderArea = document.getElementById(`psr_render_area_${id}`);
381381
const iframe = document.getElementById(`psr_render_area_${id}_iframe`);
382-
if (iframe && iframe.iFrameResizer) {
383-
iframe.iFrameResizer.close();
382+
if (iframe && iframe.iframeResizer) {
383+
iframe.iframeResizer.close();
384384
renderArea.innerHTML = '';
385385
} else if (/\S/.test(renderArea.innerHTML)) {
386386
renderArea.innerHTML = '';

htdocs/js/RenderProblem/renderproblem.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
if (!renderArea || !renderArea.id) return resolve();
99

1010
let iframe = renderArea.querySelector(`#${renderArea.id}_iframe`);
11-
if (iframe && iframe.iFrameResizer) iframe.contentDocument.location.replace('about:blank');
11+
if (iframe && iframe.iframeResizer) iframe.contentDocument.location.replace('about:blank');
1212

1313
const ro = {
1414
courseID: document.getElementsByName('hidden_course_id')[0]?.value,
@@ -65,7 +65,7 @@
6565
)
6666
throw 'There was an error rendering this problem!';
6767

68-
if (!(iframe && iframe.iFrameResizer)) {
68+
if (!(iframe && iframe.iframeResizer)) {
6969
iframe = document.createElement('iframe');
7070
iframe.id = `${renderArea.id}_iframe`;
7171
iframe.style.border = 'none';
@@ -77,12 +77,13 @@
7777
container.innerHTML = data.pg_flags.comment;
7878
iframe.after(container);
7979
}
80-
iFrameResize(
80+
iframeResize(
8181
{
8282
checkOrigin: false,
8383
warningTimeout: 20000,
8484
scrolling: 'omit',
85-
heightCalculationMethod: 'taggedElement'
85+
heightCalculationMethod: 'taggedElement',
86+
license: 'GPLv3'
8687
},
8788
iframe
8889
);

htdocs/js/SetMaker/setmaker.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -428,7 +428,7 @@
428428
// Render any problems that were hidden that have not yet been rendered.
429429
for (const area of unshownAreas) {
430430
const iframe = area.querySelector('iframe[id^="problem_render_area_"][id$="_iframe"]');
431-
if (iframe && iframe.iFrameResizer) iframe.iFrameResizer.resize();
431+
if (iframe && iframe.iframeResizer) iframe.iframeResizer.resize();
432432
else await render(area.id.match(/^pgrow(\d+)/)[1]);
433433
}
434434
mltIcon.textContent = 'L';

htdocs/package-lock.json

Lines changed: 78 additions & 20 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

htdocs/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,11 @@
1414
},
1515
"dependencies": {
1616
"@fortawesome/fontawesome-free": "^7.0.0",
17+
"@iframe-resizer/child": "^5.5.2",
18+
"@iframe-resizer/parent": "^5.5.2",
1719
"@openwebwork/pg-codemirror-editor": "^0.0.5",
1820
"bootstrap": "~5.3.7",
1921
"flatpickr": "^4.6.13",
20-
"iframe-resizer": "^4.4.2",
2122
"jquery": "^3.7.1",
2223
"jquery-ui-dist": "^1.13.3",
2324
"luxon": "^3.7.1",

lib/FormatRenderedProblem.pm

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,9 @@ sub formatRenderedProblem {
8787
# The second element of each array in the following is whether or not the file is a theme file.
8888
# The third element is a hash containing the necessary attributes for the script tag.
8989
my @third_party_js = map { [ getAssetURL($ce, $_->[0], $_->[1]), $_->[2] ] } (
90-
[ 'node_modules/jquery/dist/jquery.min.js', 0, {} ],
91-
[ 'node_modules/jquery-ui-dist/jquery-ui.min.js', 0, {} ],
92-
[ 'node_modules/iframe-resizer/js/iframeResizer.contentWindow.min.js', 0, {} ],
90+
[ 'node_modules/jquery/dist/jquery.min.js', 0, {} ],
91+
[ 'node_modules/jquery-ui-dist/jquery-ui.min.js', 0, {} ],
92+
[ 'node_modules/@iframe-resizer/child/index.umd.js', 0, {} ],
9393
[ 'js/MathJaxConfig/mathjax-config.js', 0, { defer => undef } ],
9494
[ 'node_modules/mathjax/es5/tex-svg.js', 0, { defer => undef, id => 'MathJax-script' } ],
9595
[ 'node_modules/bootstrap/dist/js/bootstrap.bundle.min.js', 0, { defer => undef } ],

templates/ContentGenerator/Instructor/ProblemSetDetail.html.ep

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
defer => undef =%>
2626
<%= javascript getAssetURL($ce, 'js/DatePicker/datepicker.js'), defer => undef =%>
2727
<%= javascript getAssetURL($ce, 'node_modules/sortablejs/Sortable.min.js'), defer => undef =%>
28-
<%= javascript getAssetURL($ce, 'node_modules/iframe-resizer/js/iframeResizer.min.js') =%>
28+
<%= javascript getAssetURL($ce, 'node_modules/@iframe-resizer/parent/index.umd.js') =%>
2929
<%= javascript getAssetURL($ce, 'js/RenderProblem/renderproblem.js'), defer => undef =%>
3030
<%= javascript getAssetURL($ce, 'js/ProblemSetDetail/problemsetdetail.js'), defer => undef =%>
3131
% end

templates/RPCRenderFormats/default.html.ep

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
%== $extra_header_text
3535
</head>
3636
<body>
37-
<div class="container-fluid" data-iframe-height="1">
37+
<div class="container-fluid" data-iframe-size="1">
3838
<div class="row g-0">
3939
<div class="col-12 problem">
4040
%== $resultSummary
@@ -193,7 +193,7 @@
193193
</div>
194194
% # Show the footer unless it is explicity disabled.
195195
% if ($showFooter ne '0') {
196-
<div id="footer" data-iframe-height="1">
196+
<div id="footer" data-iframe-size="1">
197197
WeBWorK &copy; <%= $ce->{WW_COPYRIGHT_YEARS} || 'unknown' %> |
198198
host: <%= $SITE_URL %> |
199199
course: <%= $courseID %> |

0 commit comments

Comments
 (0)