[Webkit-unassigned] [Bug 124043] [GTK] Crash when printing via javascript in WebKit2
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Fri Nov 8 09:29:19 PST 2013
https://bugs.webkit.org/show_bug.cgi?id=124043
--- Comment #5 from Carlos Garcia Campos <cgarcia at igalia.com> 2013-11-08 09:28:04 PST ---
(In reply to comment #4)
> (From update of attachment 216401 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=216401&action=review
>
> > Source/WebKit2/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:732
> > + GMainLoop* mainLoop;
> > + unsigned idlePriority;
> > + if (m_printMode == PrintInfo::PrintModeSync) {
> > + ASSERT(data->mainLoop);
> > + mainLoop = data->mainLoop.get();
> > +
> > + // Make sure the print pages idle has more priority than IPC messages comming from
> > + // the IO thread, so that the EndPrinting message is always handled once the print
> > + // operation has finished. See https://bugs.webkit.org/show_bug.cgi?id=122801.
> > + idlePriority = G_PRIORITY_DEFAULT - 10;
> > + } else {
> > + mainLoop = 0;
> > + idlePriority = G_PRIORITY_DEFAULT_IDLE + 10;
> > + }
> > + m_printPagesIdleId = gdk_threads_add_idle_full(idlePriority, printPagesIdle, data.leakPtr(), printPagesIdleDone);
> > + if (mainLoop)
> > + g_main_loop_run(mainLoop);
>
> What do you think about simplifying this to something like:
>
> // Make sure the print pages idle has more priority than IPC messages comming from
> // the IO thread, so that the EndPrinting message is always handled once the print
> // operation has finished. See https://bugs.webkit.org/show_bug.cgi?id=122801.
> unsigned idlePriority = m_printMode == PrintInfo::PrintModeSync ? G_PRIORITY_DEFAULT - 10 : G_PRIORITY_DEFAULT_IDLE + 10;
> m_printPagesIdleId = gdk_threads_add_idle_full(idlePriority, printPagesIdle, data.leakPtr(), printPagesIdleDone);
> if (m_printMode == PrintInfo::PrintModeSync) {
> ASSERT(data->mainLoop);
> g_main_loop_run(data->mainLoop);
This is not possible, at this point data contains a NULL pointer, because of the leakPtr(). That's why we first need to save the pointer.
> }
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list