Commit Graph

1500 Commits

Author SHA1 Message Date
Sean Feng
35929d7fef Bug 1662265 - Fix input events handling for sync XHR when both TaskController and e10s are enabled r=smaug
There are two issues in our current setup

1) Input events which are occurring in the same tab are going to be lost
because sync XHR. We have event handling suppression for synx XHR, so input
events are going to be discarded.

2) Input events that are happening in another tab (same process as the
synx XHR tab) are not going to be delayed. This is not correct since
sync XHR should block the Javascript execution.

This patches fixes the above cases for when both TaskController and e10s are
enabled by suspending the InputTaskManager during sync XHR, which
delays the input event handling and keeps the events around.

Differential Revision: https://phabricator.services.mozilla.com/D90780
2020-12-03 03:13:04 +00:00
Simon Giesecke
c83a083a0c Bug 1676365 - Move SpinEventLoopUntil to separate header. r=#xpcom-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D96556

Depends on D96554
2020-11-23 16:10:41 +00:00
Simon Giesecke
eae3689379 Bug 1673931 - Avoid including Document.h from header files. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D95046

Depends on D95045
2020-11-23 16:07:43 +00:00
Emilio Cobos Álvarez
2b07538a3f Bug 1674731 - Warn a bit harder on debug builds when printing errors. r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D95502
2020-11-02 11:59:18 +00:00
Kagami Sascha Rosylight
9f561b810e Bug 1615296 - Part 3: Fix remaining MOZ_CAN_RUN_SCRIPT warnings r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D93600
2020-10-15 19:12:47 +00:00
Razvan Maries
04a59f4eee Backed out changeset 428c9c1eabb8 (bug 1655866) for multiple failures. CLOSED TREE 2020-10-09 22:28:00 +03:00
Kris Maglione
cc0312f2f5 Bug 1655866: Part 9 - Use the same PermitUnloadAction enum in WGP and nsIContentViewer. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D90939
2020-10-09 18:29:34 +00:00
Kris Maglione
c1e7bd4902 Bug 1669096: Add missing kungFuDeathGrip. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D92490
2020-10-06 18:05:32 +00:00
Denis Palmeiro
759ed522ab Bug 1664475: Add telemetry probes to collect data for script delazification, xdr encoding time, bytecode caching time, and baseline compilation time. r=nbp,Dexter,sefeng,smaug
Differential Revision: https://phabricator.services.mozilla.com/D90798
2020-10-08 13:46:29 +00:00
Daniel Holbert
27ad0428d8 Bug 1669774 part 2: Rename some APIs and variables for accuracy (s/page/sheet/) in nsPrintJob, nsPagePrintTimer, and nsDocumentViewer. r=TYLin
Differential Revision: https://phabricator.services.mozilla.com/D92791
2020-10-07 21:00:26 +00:00
Cameron McCormack
1a10f8e9fc Bug 1662839 - Set author style disabled state correctly on newly created iframes. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D90953
2020-10-04 03:25:16 +00:00
Kris Maglione
68a4b05ec3 Bug 1667491: Fix null pointer deref. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D91834
2020-09-30 19:18:19 +00:00
Jonathan Watt
0eb06c9ddf Bug 1668301. Merge the 'printing-widget' NSPR module into the 'printing' module. r=bobowen
Differential Revision: https://phabricator.services.mozilla.com/D91949
2020-09-30 16:36:29 +00:00
Razvan Maries
6471ce2794 Backed out changeset 736e01530c6d (bug 1667491) for perma failures on 1667491.html. CLOSED TREE 2020-09-30 06:08:24 +03:00
Kris Maglione
246b40aa09 Bug 1667491: Fix null pointer deref. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D91834
2020-09-29 20:31:05 +00:00
Olli Pettay
517a59e62b Bug 1667449 - Hide fission.sessionHistoryInParent pref getter behind a function r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D91462
2020-09-28 12:01:12 +00:00
Emilio Cobos Álvarez
3f160fefb4 Bug 1667342 - Make the "deferred window close" keep making sense after bug 1636728. r=smaug
This was only being checked on OnDonePrinting() which isn't called in
the original docshell. Move it to the window because we don't need to
care about document viewers getting closed during print operations,
they're top level browsers that don't run script.

Differential Revision: https://phabricator.services.mozilla.com/D91416
2020-09-25 13:39:01 +00:00
Peter Van der Beken
eb219331eb Bug 1666881 - Make fission.sessionHistoryInParent require a restart when switching. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D91260
2020-09-25 09:03:58 +00:00
Mihai Alexandru Michis
5875dcbe89 Backed out changeset 88337b6e4e3e (bug 1666881) for causing failures regarding the fission.autostart pref.
CLOSED TREE
2020-09-24 15:41:33 +03:00
Peter Van der Beken
97d3d4638e Bug 1666881 - Make fission.sessionHistoryInParent require a restart when switching. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D91260
2020-09-24 11:14:51 +00:00
Bogdan Tara
0b359244d1 Backed out changeset 1bfa83880712 (bug 1662839) for browser_disable_author_style_oop.js failures CLOSED TREE 2020-09-24 05:55:25 +03:00
Cameron McCormack
bbad6d2354 Bug 1662839 - Set author style disabled state correctly on newly created iframes. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D90953
2020-09-24 01:24:57 +00:00
Kris Maglione
49362ffbc0 Bug 1655866: Part 4 - Handle OOP beforeunload listeners in PermitUnload(). r=nika
Differential Revision: https://phabricator.services.mozilla.com/D88317
2020-09-21 22:41:01 +00:00
Kris Maglione
80b8098c95 Bug 1655866: Part 3 - Refactor PermitUnload to simplify handling OOP frames. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D88316
2020-09-21 22:40:53 +00:00
Sylvestre Ledru
c4843648f0 Bug 1519636 - Reformat recent changes to the Google coding style r=andi
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D90793
2020-09-20 10:14:09 +00:00
Kris Maglione
73574dafc2 Bug 1662841: Remove Fission-incompatible nsDocumentViewer::AppendSubtree. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D90615
2020-09-17 22:43:47 +00:00
Emilio Cobos Álvarez
6f7cd547ea Bug 1663826 - Keep freezing navigation during window.print() for compat. r=smaug
This broke in bug 1636728 because we started setting the bit in the
cloned docshell rather than the original one.

Behavior in other browsers seems to be a bit all over the place, but for
now keeping our behavior during window.print() seems sane.

Differential Revision: https://phabricator.services.mozilla.com/D90456
2020-09-16 22:55:19 +00:00
Andreas Farre
4589444b55 Bug 1662410 - Part 1: Fix usage of ChildSHistory.legacySHistory . r=peterv
ChildSHistory.legacySHistory isn't valid for content processes when
session history in the parent is enabled. We try to fix this by either
delegating to the parent by IPC or move the implementation partially
or as a whole to the parent.

Differential Revision: https://phabricator.services.mozilla.com/D89353
2020-09-16 14:51:01 +00:00
Emilio Cobos Alvarez
28d2fce338 Bug 1663426 - Add a null-check to SetDocumentInternal. r=bobowen
This shouldn't generally happen, but seems it can under some circumstances and
even though I've fixed the error condition that triggers this a null-check here is harmless.

Differential Revision: https://phabricator.services.mozilla.com/D89453
2020-09-08 12:32:15 +00:00
Emilio Cobos Álvarez
bb845a8fba Bug 1661838 - Fix builds with --disable-printing. r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D89166
2020-09-02 16:13:01 +00:00
Jonathan Watt
e6296b4513 Bug 1657220. Add telemetry for new print UI. r=bobowen,mbalfanz
Differential Revision: https://phabricator.services.mozilla.com/D87303
2020-09-01 18:47:15 +00:00
Jonathan Watt
2e793fcf9a Bug 1653340. Add new FrameLoader.printPreview() API. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D88703
2020-09-01 11:00:36 +00:00
Emilio Cobos Álvarez
2042d6df12 Bug 1662204 - Prevent all printed documents, not just print preview, from getting a regular non-print presentation. r=jwatt
Before bug 1636728 this couldn't happen because print documents weren't
hosted in an <browser>. The presentation of documents that are being
printed should be managed by the print job.

We should, in fact, probably just make mDocument->IsStaticDocument() the
condition, or such.

Differential Revision: https://phabricator.services.mozilla.com/D88901
2020-08-31 20:16:11 +00:00
Emilio Cobos Álvarez
2464675b6e Bug 1636728 - Make calling window.print() before load keep deferring the actual printing and closing the window until load. r=smaug
Other engines also do this, but with my previous patch breaks it
(because we only hit print() on the print-content-viewer _after_ doing
the clone).

So move it before triggering all the machinery, and only for
window.print().  Given we didn't check this for print preview etc, I
think it's fine to carry on for user-triggered loads.

Trivial test-case (which I'm not quite sure how to turn into an
automated test...)

    <!doctype html>
    <h1>I do get printed but...</h1>

    <script>
      window.print();
    </script>

    <h2>Do I?</h2>

Note that this is broken with the new print preview UI already, this
fixes it.

Differential Revision: https://phabricator.services.mozilla.com/D87898
2020-08-25 17:45:24 +00:00
Emilio Cobos Álvarez
2c0dea8fd4 Bug 1636728 - Centralize printing entry points in nsGlobalWindowOuter, and move cloning out of nsPrintJob. r=jwatt,geckoview-reviewers,smaug,agi
This centralizes our print and preview setup in nsGlobalWindowOuter so
that we never re-clone a clone, and so that we reuse the window.open()
codepath to create the browsing context to clone into.

For window.print, for both old print dialog / silent printing and new
print preview UI, we now create a hidden browser (as in with visibility:
collapse, which takes no space but still gets a layout box).

 * In the modern UI case, this browser is swapped with the actual print
   preview clone, and the UI takes care of removing the browser.

 * In the print dialog / silent printing case, the printing code calls
   window.close() from nsDocumentViewer::OnDonePrinting().

 * We don't need to care about the old print preview UI for this case
   because it can't be open from window.print().

We need to fall back to an actual window when there's no
nsIBrowserDOMWindow around for WPT print tests and the like, which don't
have one. That seems fine, we could special-case this code path more if
needed but it doesn't seem worth it.

Differential Revision: https://phabricator.services.mozilla.com/D87063
2020-08-25 17:45:12 +00:00
Daniel Holbert
2a2243433a Bug 1660502 part 1: Give nsIWebBrowserPrint a "rawNumPages" attribute. r=TYLin
This is backed by an existing nsPageSequenceFrame API, which this patch also
renames to use the word "Raw" for consistency across the full callstack.

Differential Revision: https://phabricator.services.mozilla.com/D87886
2020-08-24 23:53:11 +00:00
Hiroyuki Ikezoe
aa0344455a Bug 1660213 - Fixed an used variable error in nsDocumentViewer::GetCurrentSheetFrameAndPageNumber. r=heycam
Differential Revision: https://phabricator.services.mozilla.com/D87806
2020-08-20 22:02:54 +00:00
Hiroyuki Ikezoe
fb4a56c1e9 Bug 1657550 - Rewrite nsDocumentViewer::PrintPreviewScrollToPage. r=emilio
This change consists of;

1) Use switch statement for the given PrintPreview Navigation type.
2) Simply iterate over the children of nsPageSequenceFrame for
   PRINTPREVIEW_GOTO_PAGENUM
3) Use GetCurrentSheetFrameAndPageNumber for PRINTPREVIEW_PREV_PAGE and
   PRINTPREVIEW_NEXT_PAGE so that it should now match
   printPreviewCurrentPageNumber
   (that means the edge case where the current scroll position is in
    the gap between pages has been fixed by this change)
4) Scroll to the position where the target frame is positioned at the center of
   the print preview scroll port in the cases of PRINTPREVIEW_PREV_PAGE,
   PRINTPREVIEW_NEXT_PAGE and PRINTPREVIEW_GOTO_PAGENUM

4) is a bit debatable but it can be now easily modified by changing
ComputeScrollPositionFrameAtCenter later if it turns out the current way is not
reasonable.

Differential Revision: https://phabricator.services.mozilla.com/D87548
2020-08-19 22:50:54 +00:00
Hiroyuki Ikezoe
39d06a60e1 Bug 1657550 - Make GetCurrentPageNumberInPrintPreview return the current sheet frame along with the current page. r=emilio
We need the current sheet frame for PRINTPREVIEW_NEXT_PAGE and
PRINTPREVIEW_PREV_PAGE cases.

Differential Revision: https://phabricator.services.mozilla.com/D87547
2020-08-19 22:50:39 +00:00
Hiroyuki Ikezoe
6d12e36241 Bug 1657550 - Factor out the function to get the current page number in the print preview. r=emilio
We have to use the logic in the function for
nsDocumentViewer::PrintPreviewScrollToPage in subsequent changes.

Differential Revision: https://phabricator.services.mozilla.com/D87546
2020-08-19 22:50:29 +00:00
Hiroyuki Ikezoe
a6b0a02678 Bug 1657550 - Preserve x-axis scroll position on printPreviewScrollToPage call in any cases. r=emilio
That's what we've done for PRINTPREVIEW_PREV_PAGE, PRINTPREVIEW_NEXT_PAGE
and PRINTPREVIEW_GOTO_PAGENUM.

Differential Revision: https://phabricator.services.mozilla.com/D87545
2020-08-19 22:50:15 +00:00
Hiroyuki Ikezoe
4027cabdc4 Bug 1657550 - Use scrollTopMax position for PRINTPREVIEW_END. r=emilio
I suppose PRINTPREVIEW_END doesn't mean the last page.

Differential Revision: https://phabricator.services.mozilla.com/D87544
2020-08-19 22:50:05 +00:00
Hiroyuki Ikezoe
5adf475ada Bug 1657550 - Copy nsDocumentViewer::PrintPreviewScrollToPage for the old print preview UI. r=emilio
So that we can keep using the logic in the old print preview UI.

For the new print preview UI, the original PrintPreviewScrollToPage will be
modified gradually in subsequent changes.

Differential Revision: https://phabricator.services.mozilla.com/D87543
2020-08-19 22:51:07 +00:00
Jonathan Watt
9343bc2e26 Bug 1659489. Rename nsPrintJob's mIsDoingPrintPreview to mCreatedForPrintPreview. r=bobowen
Differential Revision: https://phabricator.services.mozilla.com/D87296
2020-08-17 21:27:00 +00:00
Emilio Cobos Álvarez
f196215976 Bug 1659432 - Don't reuse the existing print job when restarting print preview. r=bobowen
Differential Revision: https://phabricator.services.mozilla.com/D87417
2020-08-18 12:03:38 +00:00
Hiroyuki Ikezoe
9fb494d150 Bug 1657763 - Choose the closest page to the center of the scroll port as the "current" page. r=emilio
Unfortunately there is no particular way to write automated tests without
exposing a bunch of metrics in the print preview window, such as each
PrintedSheetFrame height, the gap length between the sheets, print preview
scale, the scroll port rect, the current scroll position, etc. etc. So I just
tested this change with the frontend change to show the current page number
there by :mstriemer. [1]

[1] https://phabricator.services.mozilla.com/D86427

Differential Revision: https://phabricator.services.mozilla.com/D87203
2020-08-17 20:54:06 +00:00
Emilio Cobos Álvarez
a7cfa4a572 Bug 1658903 - Remove nsPrintJob::TurnScriptingOn. r=jwatt
This code was there to prevent stuff like bug 424377, but nowadays clone
documents are data documents to begin with, so they can't load scripts.

Differential Revision: https://phabricator.services.mozilla.com/D86948
2020-08-13 12:22:56 +00:00
Mihai Alexandru Michis
5d098d0387 Bug 1657515 - Fix bustages regarding nsDocumentViewer.cpp and 'pageCount'. a=bustage-fix
CLOSED TREE
2020-08-07 07:37:28 +03:00
Hiroyuki Ikezoe
3011a6101c Bug 1657515 - Add nsIWebBrowserPrint.printPreviewCurrentPageNumber. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D86151
2020-08-06 22:54:16 +00:00
Hiroyuki Ikezoe
f9adc8812e Bug 1657515 - Constify some nsIDocumentViewerPrint methods. r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D86149
2020-08-06 22:54:16 +00:00