Web Inspector: do not aggregate non-main thread timeline events, handle them in a generic fashion
https://bugs.webkit.org/show_bug.cgi?id=112172

Reviewed by Vsevolod Vlasov.

- build nested event trees for non-main thread events similar to how it's done on the main thread;
- drop aggregation logic for Rasterize events;
- extract time conversion logic so that it may be reused in TimelineTraceEventProcessor.

* English.lproj/localizedStrings.js: drive-by: drop duplicate line.
* inspector/InspectorTimelineAgent.cpp:
(WebCore::TimelineTimeConverter::reset):
(WebCore):
(WebCore::InspectorTimelineAgent::pushGCEventRecords):
(WebCore::InspectorTimelineAgent::start):
(WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
(WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
(WebCore::InspectorTimelineAgent::appendRecord):
(WebCore::InspectorTimelineAgent::sendEvent):
(WebCore::InspectorTimelineAgent::timestamp):
* inspector/InspectorTimelineAgent.h:
(TimelineTimeConverter):
(WebCore::TimelineTimeConverter::TimelineTimeConverter):
(WebCore::TimelineTimeConverter::fromMonotonicallyIncreasingTime):
(WebCore):
(InspectorTimelineAgent):
(WebCore::InspectorTimelineAgent::timeConverter):
* inspector/TimelineRecordFactory.cpp:
(WebCore::TimelineRecordFactory::createBackgroundRecord):
(WebCore):
* inspector/TimelineRecordFactory.h:
(TimelineRecordFactory):
* inspector/TimelineTraceEventProcessor.cpp:
(WebCore::TimelineRecordStack::TimelineRecordStack):
(WebCore):
(WebCore::TimelineRecordStack::addScopedRecord):
(WebCore::TimelineRecordStack::closeScopedRecord):
(WebCore::TimelineRecordStack::addInstantRecord):
(WebCore::TimelineRecordStack::isOpenRecordOfType):
(WebCore::TimelineRecordStack::send):
(WebCore::TimelineTraceEventProcessor::TimelineTraceEventProcessor):
(WebCore::TimelineTraceEventProcessor::onBeginFrame):
(WebCore::TimelineTraceEventProcessor::onRasterTaskBegin):
(WebCore::TimelineTraceEventProcessor::onRasterTaskEnd):
(WebCore::TimelineTraceEventProcessor::createRecord):
* inspector/TimelineTraceEventProcessor.h:
(TimelineRecordStack):
(WebCore::TimelineRecordStack::Entry::Entry):
(Entry):
(WebCore::TimelineRecordStack::TimelineRecordStack):
(WebCore):
(WebCore::TimelineTraceEventProcessor::TimelineThreadState::TimelineThreadState):
(TimelineThreadState):
(TimelineTraceEventProcessor):
(WebCore::TimelineTraceEventProcessor::TraceEvent::TraceEvent):
(WebCore::TimelineTraceEventProcessor::TraceEvent::isNull):
(WebCore::TimelineTraceEventProcessor::threadState):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@145809 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] Add support for tiled shadow blur
https://bugs.webkit.org/show_bug.cgi?id=90082

Reviewed by Noam Rosenthal.

Use the optimized ShadowBlur::drawRectShadow as long as we do not
have a rotating transform. Such a transform would go through the
slow path in ShadowBlur anyway, and would end up using a transformed
TransparencyLayer with an alphaMap which causes scaling artifacts
for us.

Tested by fast/canvas/canvas-scale-fillRect-shadow.html
and fast/canvas/canvas-transforms-fillRect-shadow.html

* platform/graphics/ShadowBlur.cpp:
(WebCore::ShadowBlur::drawInsetShadowWithTiling):
    Handle scaling transforms when shadows ignore transforms.
(WebCore::ShadowBlur::drawRectShadowWithTiling):
    Ditto.
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::fillRect):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@145810 268f45cc-cd09-0410-ab3c-d52691b4dbfc