When RemotePrintJobChild::InitializePrint sends a message to the parent
process to ask it to initialize printing it spins the event loop and
waits for a reply. If the parent fails to initialize printing it will
send back an error message followed immediately by a second message
telling the child process to delete its RemotePrintJobChild. The error
message causes the nested event loop to terminate and blocks
RemotePrintJobChild::InitializePrint. We then do various async things
to clean up, some of which can try to post messages to the parent
process's RemotePrintJobParent. This is a problem since the delete
message is pending in the child process's event loop resulting in a
race between the code that wants to use the RemotePrintJobChild to send
a message to the parent process, and the delete event that will make us
crash if anyone tries to use the RemotePrintJobChild.
This patch makes sure that if nsDeviceContextSpecProxy's BeginDocument
returns failure (remote print job initialization failed) that its
EndDocument and AbortDocument methods are then no-ops and will not try
to use its RemotePrintJobChild. (BeginPage and EndPage are not changed
since they are not called if BeginDocument returns an error result.)
MozReview-Commit-ID: 2H6GHjngX7R
The logging added in this patch was landed to help debug very rare shutdown
failures on android, but the logging runs on other platforms and is annoying.
No one is looking at fixing the rare shutdown problem on Android. So remove the
logging until fixing the shutdown failure becomes a priority.
It is totally valid to declare an empty style in styled console.log.
But we were appending a space after a string with empty style because
we were checking that the style wasn't falsy, and empty string is falsy.
We fix that by checking against undefined.
A test is added to make sure we don't regress that.
MozReview-Commit-ID: EOQ49Gt0Cr9
--HG--
extra : rebase_source : bf711afa76dd784d3cf1f973c47e4aa139d5bc5e
nsBase64Encoder::Finish currently works by calling PL_Base64Encode to
allocate a base64-encoded string, then Assign()'ing that to the result
string, another allocation. mozilla::Base64Encode enables us to base64
encode directly into the result string with a single allocation, saving
an allocation. (Base64Encode is also slightly more efficient, because
we don't have to do a strlen() on the string being Assign()'d.) Let's
use Base64Encode instead.
Refrests without specifing reftest-no-flush flush all pending styles so that
we don't need to wait for a requestAnimationFrame to apply the final style
changes.
MozReview-Commit-ID: lAFsFG8CrE
--HG--
extra : rebase_source : 46ba219da0ccbb1bee0d8243b7e2ee5f8d81a13f
This test is supposed to append *animating* element to the document.
MozReview-Commit-ID: 39kvw6IYRF9
--HG--
extra : rebase_source : 510e99190fb60067b0bf404c37d7250e2d994ff0
getComputedStyle() ensures triggering new transitions, so we don't need to wait
for a requestAnimationFrame callback.
MozReview-Commit-ID: Bes1vQeHohI
--HG--
extra : rebase_source : fdb8face312a471be5f93229a9fbbfd4fc59418f
In some cases we have SourceLocation objections that are isMacroId()
rather than isFileId() and so don't have a filename at all. In other
cases the filename is something clang-internal like "<scratch>". In
both of these situations we don't want to output any analysis data.
However, the code previously was taking the empty filename and resolving
it relative to the source folder, and then tried to write to the
source folder or create a file corresponding to a subfolder. This
resulted in general badness. This patch makes sure we ignore analysis
from places that don't have a corresponding file so that we don't
have this problem.
MozReview-Commit-ID: 7WluygY9Uy8
--HG--
extra : rebase_source : 35d7e71fc05bbd5a3357a57db9de25782178622a
This adds an RAII class and macro that can be quickly added in functions
to log entry/exit from the function. This is useful to debugging.
MozReview-Commit-ID: 4Ud8jLOxI0R
--HG--
extra : rebase_source : 518d30fe44dff67bffb186e23c1eb858c02280af
The indexer has paths handed to it on Windows with the backslash path separator.
However it currently hard-codes the forward-slash Unix/macOS path separator,
so we need to generify that code appropriately.
MozReview-Commit-ID: Iy8bImt2BXW
--HG--
extra : rebase_source : 4b88b44319c05ce816afc4e690d3d33d39b7e43c