void ChunkedUpdateDrawingAreaProxy::update(UpdateChunk* updateChunk) { drawUpdateChunkIntoBackingStore(updateChunk); WebPageProxy* page = this->page(); page->process()->connection()->send(DrawingAreaMessage::DidUpdate, page->pageID(), CoreIPC::In()); }
void ChunkedUpdateDrawingAreaProxy::update(UpdateChunk* updateChunk) { if (!m_isVisible) { // We got an update request that must have been sent before we told the web process to suspend painting. // Don't paint this into the backing store, because that could leave the backing store in an inconsistent state. // Instead, we will just tell the drawing area to repaint everything when we resume painting. m_forceRepaintWhenResumingPainting = true; } else { // Just paint into backing store. drawUpdateChunkIntoBackingStore(updateChunk); } WebPageProxy* page = this->page(); page->process()->send(DrawingAreaMessage::DidUpdate, page->pageID(), CoreIPC::In(id())); }
void ChunkedUpdateDrawingAreaProxy::didSetSize(UpdateChunk* updateChunk) { ASSERT(m_isWaitingForDidSetFrameNotification); m_isWaitingForDidSetFrameNotification = false; IntSize viewSize = updateChunk->rect().size(); if (viewSize != m_lastSetViewSize) setSize(m_lastSetViewSize); invalidateBackingStore(); drawUpdateChunkIntoBackingStore(updateChunk); WebPageProxy* page = this->page(); page->process()->responsivenessTimer()->stop(); }