| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2001 Dirk Mueller (mueller@kde.org) | 4 * (C) 2001 Dirk Mueller (mueller@kde.org) |
| 5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) | 5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) |
| 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012 Apple Inc. All r
ights reserved. | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012 Apple Inc. All r
ights reserved. |
| 7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) | 7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) |
| 8 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved. | 8 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved. |
| 9 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) | 9 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) |
| 10 * Copyright (C) Research In Motion Limited 2010-2011. All rights reserved. | 10 * Copyright (C) Research In Motion Limited 2010-2011. All rights reserved. |
| (...skipping 480 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 491 , m_isAnimatingFullScreen(false) | 491 , m_isAnimatingFullScreen(false) |
| 492 #endif | 492 #endif |
| 493 , m_loadEventDelayCount(0) | 493 , m_loadEventDelayCount(0) |
| 494 , m_loadEventDelayTimer(this, &Document::loadEventDelayTimerFired) | 494 , m_loadEventDelayTimer(this, &Document::loadEventDelayTimerFired) |
| 495 , m_referrerPolicy(ReferrerPolicyDefault) | 495 , m_referrerPolicy(ReferrerPolicyDefault) |
| 496 , m_directionSetOnDocumentElement(false) | 496 , m_directionSetOnDocumentElement(false) |
| 497 , m_writingModeSetOnDocumentElement(false) | 497 , m_writingModeSetOnDocumentElement(false) |
| 498 , m_writeRecursionIsTooDeep(false) | 498 , m_writeRecursionIsTooDeep(false) |
| 499 , m_writeRecursionDepth(0) | 499 , m_writeRecursionDepth(0) |
| 500 , m_wheelEventHandlerCount(0) | 500 , m_wheelEventHandlerCount(0) |
| 501 #if ENABLE(TOUCH_EVENTS) |
| 502 , m_touchEventHandlerCount(0) |
| 503 #endif |
| 501 , m_pendingTasksTimer(this, &Document::pendingTasksTimerFired) | 504 , m_pendingTasksTimer(this, &Document::pendingTasksTimerFired) |
| 502 , m_scheduledTasksAreSuspended(false) | 505 , m_scheduledTasksAreSuspended(false) |
| 503 , m_visualUpdatesAllowed(true) | 506 , m_visualUpdatesAllowed(true) |
| 504 , m_visualUpdatesSuppressionTimer(this, &Document::visualUpdatesSuppressionT
imerFired) | 507 , m_visualUpdatesSuppressionTimer(this, &Document::visualUpdatesSuppressionT
imerFired) |
| 505 , m_sharedObjectPoolClearTimer(this, &Document::sharedObjectPoolClearTimerFi
red) | 508 , m_sharedObjectPoolClearTimer(this, &Document::sharedObjectPoolClearTimerFi
red) |
| 506 #ifndef NDEBUG | 509 #ifndef NDEBUG |
| 507 , m_didDispatchViewportPropertiesChanged(false) | 510 , m_didDispatchViewportPropertiesChanged(false) |
| 508 #endif | 511 #endif |
| 509 { | 512 { |
| 510 m_document = this; | 513 m_document = this; |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 603 Document::~Document() | 606 Document::~Document() |
| 604 { | 607 { |
| 605 ASSERT(!renderer()); | 608 ASSERT(!renderer()); |
| 606 ASSERT(!m_inPageCache); | 609 ASSERT(!m_inPageCache); |
| 607 ASSERT(!m_savedRenderer); | 610 ASSERT(!m_savedRenderer); |
| 608 ASSERT(m_ranges.isEmpty()); | 611 ASSERT(m_ranges.isEmpty()); |
| 609 ASSERT(!m_styleRecalcTimer.isActive()); | 612 ASSERT(!m_styleRecalcTimer.isActive()); |
| 610 ASSERT(!m_parentTreeScope); | 613 ASSERT(!m_parentTreeScope); |
| 611 ASSERT(!m_guardRefCount); | 614 ASSERT(!m_guardRefCount); |
| 612 | 615 |
| 613 #if ENABLE(TOUCH_EVENT_TRACKING) | |
| 614 if (Document* ownerDocument = this->ownerDocument()) | |
| 615 ownerDocument->didRemoveEventTargetNode(this); | |
| 616 #endif | |
| 617 // FIXME: Should we reset m_domWindow when we detach from the Frame? | 616 // FIXME: Should we reset m_domWindow when we detach from the Frame? |
| 618 if (m_domWindow) | 617 if (m_domWindow) |
| 619 m_domWindow->resetUnlessSuspendedForPageCache(); | 618 m_domWindow->resetUnlessSuspendedForPageCache(); |
| 620 | 619 |
| 621 m_scriptRunner.clear(); | 620 m_scriptRunner.clear(); |
| 622 | 621 |
| 623 histogramMutationEventUsage(m_listenerTypes); | 622 histogramMutationEventUsage(m_listenerTypes); |
| 624 | 623 |
| 625 removeAllEventListeners(); | 624 removeAllEventListeners(); |
| 626 | 625 |
| (...skipping 4966 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5593 { | 5592 { |
| 5594 ASSERT(m_wheelEventHandlerCount > 0); | 5593 ASSERT(m_wheelEventHandlerCount > 0); |
| 5595 --m_wheelEventHandlerCount; | 5594 --m_wheelEventHandlerCount; |
| 5596 Frame* mainFrame = page() ? page()->mainFrame() : 0; | 5595 Frame* mainFrame = page() ? page()->mainFrame() : 0; |
| 5597 if (mainFrame) | 5596 if (mainFrame) |
| 5598 mainFrame->notifyChromeClientWheelEventHandlerCountChanged(); | 5597 mainFrame->notifyChromeClientWheelEventHandlerCountChanged(); |
| 5599 | 5598 |
| 5600 wheelEventHandlerCountChanged(this); | 5599 wheelEventHandlerCountChanged(this); |
| 5601 } | 5600 } |
| 5602 | 5601 |
| 5603 void Document::didAddTouchEventHandler(Node* handler) | 5602 void Document::didAddTouchEventHandler() |
| 5604 { | 5603 { |
| 5605 #if ENABLE(TOUCH_EVENTS) | 5604 #if ENABLE(TOUCH_EVENTS) |
| 5606 if (!m_touchEventTargets.get()) | 5605 ++m_touchEventHandlerCount; |
| 5607 m_touchEventTargets = adoptPtr(new TouchEventTargetSet); | 5606 if (m_touchEventHandlerCount > 1) |
| 5608 m_touchEventTargets->add(handler); | |
| 5609 if (Document* parent = parentDocument()) { | |
| 5610 parent->didAddTouchEventHandler(this); | |
| 5611 return; | 5607 return; |
| 5612 } | 5608 if (Page* page = this->page()) |
| 5613 if (Page* page = this->page()) { | 5609 page->chrome()->client()->needTouchEvents(true); |
| 5614 #if ENABLE(TOUCH_EVENT_TRACKING) | |
| 5615 if (ScrollingCoordinator* scrollingCoordinator = page->scrollingCoordina
tor()) | |
| 5616 scrollingCoordinator->touchEventTargetRectsDidChange(this); | |
| 5617 #endif | |
| 5618 if (m_touchEventTargets->size() == 1) | |
| 5619 page->chrome()->client()->needTouchEvents(true); | |
| 5620 } | |
| 5621 #else | |
| 5622 UNUSED_PARAM(handler); | |
| 5623 #endif | 5610 #endif |
| 5624 } | 5611 } |
| 5625 | 5612 |
| 5626 void Document::didRemoveTouchEventHandler(Node* handler) | 5613 void Document::didRemoveTouchEventHandler() |
| 5627 { | 5614 { |
| 5628 #if ENABLE(TOUCH_EVENTS) | 5615 #if ENABLE(TOUCH_EVENTS) |
| 5629 if (!m_touchEventTargets.get()) | 5616 ASSERT(m_touchEventHandlerCount); |
| 5617 --m_touchEventHandlerCount; |
| 5618 if (m_touchEventHandlerCount) |
| 5630 return; | 5619 return; |
| 5631 ASSERT(m_touchEventTargets->contains(handler)); | |
| 5632 m_touchEventTargets->remove(handler); | |
| 5633 if (Document* parent = parentDocument()) { | |
| 5634 parent->didRemoveTouchEventHandler(this); | |
| 5635 return; | |
| 5636 } | |
| 5637 | 5620 |
| 5638 Page* page = this->page(); | 5621 Page* page = this->page(); |
| 5639 if (!page) | 5622 if (!page) |
| 5640 return; | 5623 return; |
| 5641 #if ENABLE(TOUCH_EVENT_TRACKING) | |
| 5642 if (ScrollingCoordinator* scrollingCoordinator = page->scrollingCoordinator(
)) | |
| 5643 scrollingCoordinator->touchEventTargetRectsDidChange(this); | |
| 5644 #endif | |
| 5645 if (m_touchEventTargets->size()) | |
| 5646 return; | |
| 5647 for (const Frame* frame = page->mainFrame(); frame; frame = frame->tree()->t
raverseNext()) { | 5624 for (const Frame* frame = page->mainFrame(); frame; frame = frame->tree()->t
raverseNext()) { |
| 5648 if (frame->document() && frame->document()->hasTouchEventHandlers()) | 5625 if (frame->document() && frame->document()->touchEventHandlerCount()) |
| 5649 return; | 5626 return; |
| 5650 } | 5627 } |
| 5651 page->chrome()->client()->needTouchEvents(false); | 5628 page->chrome()->client()->needTouchEvents(false); |
| 5652 #else | |
| 5653 UNUSED_PARAM(handler); | |
| 5654 #endif | 5629 #endif |
| 5655 } | 5630 } |
| 5656 | 5631 |
| 5657 #if ENABLE(TOUCH_EVENT_TRACKING) | |
| 5658 void Document::didRemoveEventTargetNode(Node* handler) | |
| 5659 { | |
| 5660 if (m_touchEventTargets.get()) | |
| 5661 m_touchEventTargets->removeAll(handler); | |
| 5662 } | |
| 5663 #endif | |
| 5664 | |
| 5665 HTMLIFrameElement* Document::seamlessParentIFrame() const | 5632 HTMLIFrameElement* Document::seamlessParentIFrame() const |
| 5666 { | 5633 { |
| 5667 if (!shouldDisplaySeamlesslyWithParent()) | 5634 if (!shouldDisplaySeamlesslyWithParent()) |
| 5668 return 0; | 5635 return 0; |
| 5669 | 5636 |
| 5670 HTMLFrameOwnerElement* ownerElement = this->ownerElement(); | 5637 HTMLFrameOwnerElement* ownerElement = this->ownerElement(); |
| 5671 ASSERT(ownerElement->hasTagName(iframeTag)); | 5638 ASSERT(ownerElement->hasTagName(iframeTag)); |
| 5672 return static_cast<HTMLIFrameElement*>(ownerElement); | 5639 return static_cast<HTMLIFrameElement*>(ownerElement); |
| 5673 } | 5640 } |
| 5674 | 5641 |
| (...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5971 m_templateContentsOwnerDocument = HTMLDocument::create(0, blankURL()
); | 5938 m_templateContentsOwnerDocument = HTMLDocument::create(0, blankURL()
); |
| 5972 else | 5939 else |
| 5973 m_templateContentsOwnerDocument = Document::create(0, blankURL()); | 5940 m_templateContentsOwnerDocument = Document::create(0, blankURL()); |
| 5974 } | 5941 } |
| 5975 | 5942 |
| 5976 return m_templateContentsOwnerDocument.get(); | 5943 return m_templateContentsOwnerDocument.get(); |
| 5977 } | 5944 } |
| 5978 #endif | 5945 #endif |
| 5979 | 5946 |
| 5980 } // namespace WebCore | 5947 } // namespace WebCore |
| OLD | NEW |