| 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 382 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 393 if (!document->focusedNode()->isFocusable()) | 393 if (!document->focusedNode()->isFocusable()) |
| 394 document->setFocusedNode(0); | 394 document->setFocusedNode(0); |
| 395 } | 395 } |
| 396 }; | 396 }; |
| 397 | 397 |
| 398 Document::Document(Frame* frame, const KURL& url, DocumentClassFlags documentCla
sses) | 398 Document::Document(Frame* frame, const KURL& url, DocumentClassFlags documentCla
sses) |
| 399 : ContainerNode(0, CreateDocument) | 399 : ContainerNode(0, CreateDocument) |
| 400 , TreeScope(this) | 400 , TreeScope(this) |
| 401 , m_styleResolverThrowawayTimer(this, &Document::styleResolverThrowawayTimer
Fired) | 401 , m_styleResolverThrowawayTimer(this, &Document::styleResolverThrowawayTimer
Fired) |
| 402 , m_lastStyleResolverAccessTime(0) | 402 , m_lastStyleResolverAccessTime(0) |
| 403 , m_didCalculateStyleResolver(false) |
| 404 , m_ignorePendingStylesheets(false) |
| 405 , m_needsNotifyRemoveAllPendingStylesheet(false) |
| 406 , m_hasNodesWithPlaceholderStyle(false) |
| 407 , m_pendingSheetLayout(NoLayoutWithPendingSheets) |
| 408 , m_frame(frame) |
| 403 , m_activeParserCount(0) | 409 , m_activeParserCount(0) |
| 404 , m_contextFeatures(ContextFeatures::defaultSwitch()) | 410 , m_contextFeatures(ContextFeatures::defaultSwitch()) |
| 411 , m_wellFormed(false) |
| 412 , m_printing(false) |
| 413 , m_paginatedForScreen(false) |
| 414 , m_ignoreAutofocus(false) |
| 405 , m_compatibilityMode(NoQuirksMode) | 415 , m_compatibilityMode(NoQuirksMode) |
| 406 , m_compatibilityModeLocked(false) | 416 , m_compatibilityModeLocked(false) |
| 417 , m_textColor(Color::black) |
| 407 , m_didPostCheckFocusedNodeTask(false) | 418 , m_didPostCheckFocusedNodeTask(false) |
| 408 , m_domTreeVersion(++s_globalTreeVersion) | 419 , m_domTreeVersion(++s_globalTreeVersion) |
| 420 , m_listenerTypes(0) |
| 409 , m_mutationObserverTypes(0) | 421 , m_mutationObserverTypes(0) |
| 410 , m_styleSheetCollection(DocumentStyleSheetCollection::create(this)) | 422 , m_styleSheetCollection(DocumentStyleSheetCollection::create(this)) |
| 411 , m_visitedLinkState(VisitedLinkState::create(this)) | 423 , m_visitedLinkState(VisitedLinkState::create(this)) |
| 424 , m_visuallyOrdered(false) |
| 412 , m_readyState(Complete) | 425 , m_readyState(Complete) |
| 426 , m_bParsing(false) |
| 413 , m_styleRecalcTimer(this, &Document::styleRecalcTimerFired) | 427 , m_styleRecalcTimer(this, &Document::styleRecalcTimerFired) |
| 428 , m_inStyleRecalc(false) |
| 429 , m_closeAfterStyleRecalc(false) |
| 430 , m_gotoAnchorNeededAfterStylesheetsLoad(false) |
| 414 , m_pendingStyleRecalcShouldForce(false) | 431 , m_pendingStyleRecalcShouldForce(false) |
| 415 , m_frameElementsShouldIgnoreScrolling(false) | 432 , m_frameElementsShouldIgnoreScrolling(false) |
| 416 , m_containsValidityStyleRules(false) | 433 , m_containsValidityStyleRules(false) |
| 417 , m_updateFocusAppearanceRestoresSelection(false) | 434 , m_updateFocusAppearanceRestoresSelection(false) |
| 418 , m_ignoreDestructiveWriteCount(0) | 435 , m_ignoreDestructiveWriteCount(0) |
| 419 , m_titleSetExplicitly(false) | 436 , m_titleSetExplicitly(false) |
| 437 , m_markers(adoptPtr(new DocumentMarkerController)) |
| 420 , m_updateFocusAppearanceTimer(this, &Document::updateFocusAppearanceTimerFi
red) | 438 , m_updateFocusAppearanceTimer(this, &Document::updateFocusAppearanceTimerFi
red) |
| 439 , m_cssTarget(0) |
| 440 , m_processingLoadEvent(false) |
| 421 , m_loadEventFinished(false) | 441 , m_loadEventFinished(false) |
| 422 , m_startTime(currentTime()) | 442 , m_startTime(currentTime()) |
| 423 , m_overMinimumLayoutThreshold(false) | 443 , m_overMinimumLayoutThreshold(false) |
| 424 , m_scriptRunner(ScriptRunner::create(this)) | 444 , m_scriptRunner(ScriptRunner::create(this)) |
| 425 , m_xmlVersion("1.0") | 445 , m_xmlVersion("1.0") |
| 426 , m_xmlStandalone(StandaloneUnspecified) | 446 , m_xmlStandalone(StandaloneUnspecified) |
| 427 , m_hasXMLDeclaration(0) | 447 , m_hasXMLDeclaration(0) |
| 428 , m_designMode(inherit) | 448 , m_designMode(inherit) |
| 429 , m_hasAnnotatedRegions(false) | 449 , m_hasAnnotatedRegions(false) |
| 430 , m_annotatedRegionsDirty(false) | 450 , m_annotatedRegionsDirty(false) |
| (...skipping 14 matching lines...) Expand all Loading... |
| 445 , m_isAnimatingFullScreen(false) | 465 , m_isAnimatingFullScreen(false) |
| 446 , m_loadEventDelayCount(0) | 466 , m_loadEventDelayCount(0) |
| 447 , m_loadEventDelayTimer(this, &Document::loadEventDelayTimerFired) | 467 , m_loadEventDelayTimer(this, &Document::loadEventDelayTimerFired) |
| 448 , m_referrerPolicy(ReferrerPolicyDefault) | 468 , m_referrerPolicy(ReferrerPolicyDefault) |
| 449 , m_directionSetOnDocumentElement(false) | 469 , m_directionSetOnDocumentElement(false) |
| 450 , m_writingModeSetOnDocumentElement(false) | 470 , m_writingModeSetOnDocumentElement(false) |
| 451 , m_writeRecursionIsTooDeep(false) | 471 , m_writeRecursionIsTooDeep(false) |
| 452 , m_writeRecursionDepth(0) | 472 , m_writeRecursionDepth(0) |
| 453 , m_wheelEventHandlerCount(0) | 473 , m_wheelEventHandlerCount(0) |
| 454 , m_lastHandledUserGestureTimestamp(0) | 474 , m_lastHandledUserGestureTimestamp(0) |
| 475 , m_prerenderer(Prerenderer::create(this)) |
| 476 , m_textAutosizer(TextAutosizer::create(this)) |
| 455 , m_pendingTasksTimer(this, &Document::pendingTasksTimerFired) | 477 , m_pendingTasksTimer(this, &Document::pendingTasksTimerFired) |
| 456 , m_scheduledTasksAreSuspended(false) | 478 , m_scheduledTasksAreSuspended(false) |
| 457 , m_sharedObjectPoolClearTimer(this, &Document::sharedObjectPoolClearTimerFi
red) | 479 , m_sharedObjectPoolClearTimer(this, &Document::sharedObjectPoolClearTimerFi
red) |
| 458 #ifndef NDEBUG | 480 #ifndef NDEBUG |
| 459 , m_didDispatchViewportPropertiesChanged(false) | 481 , m_didDispatchViewportPropertiesChanged(false) |
| 460 #endif | 482 #endif |
| 461 , m_timeline(DocumentTimeline::create(this)) | 483 , m_timeline(DocumentTimeline::create(this)) |
| 462 , m_templateDocumentHost(0) | 484 , m_templateDocumentHost(0) |
| 463 , m_fontloader(0) | 485 , m_fontloader(0) |
| 464 , m_didAssociateFormControlsTimer(this, &Document::didAssociateFormControlsT
imerFired) | 486 , m_didAssociateFormControlsTimer(this, &Document::didAssociateFormControlsT
imerFired) |
| 465 { | 487 { |
| 466 ScriptWrappable::init(this); | 488 ScriptWrappable::init(this); |
| 467 m_printing = false; | |
| 468 m_paginatedForScreen = false; | |
| 469 | 489 |
| 470 m_ignoreAutofocus = false; | 490 if (m_frame) { |
| 491 provideContextFeaturesToDocumentFrom(this, m_frame->page()); |
| 471 | 492 |
| 472 m_frame = frame; | 493 m_cachedResourceLoader = m_frame->loader()->activeDocumentLoader()->cach
edResourceLoader(); |
| 473 if (m_frame) | 494 } |
| 474 provideContextFeaturesToDocumentFrom(this, m_frame->page()); | 495 |
| 496 if (!m_cachedResourceLoader) |
| 497 m_cachedResourceLoader = CachedResourceLoader::create(0); |
| 498 m_cachedResourceLoader->setDocument(this); |
| 475 | 499 |
| 476 // We depend on the url getting immediately set in subframes, but we | 500 // We depend on the url getting immediately set in subframes, but we |
| 477 // also depend on the url NOT getting immediately set in opened windows. | 501 // also depend on the url NOT getting immediately set in opened windows. |
| 478 // See fast/dom/early-frame-url.html | 502 // See fast/dom/early-frame-url.html |
| 479 // and fast/dom/location-new-window-no-crash.html, respectively. | 503 // and fast/dom/location-new-window-no-crash.html, respectively. |
| 480 // FIXME: Can/should we unify this behavior? | 504 // FIXME: Can/should we unify this behavior? |
| 481 if ((frame && frame->ownerElement()) || !url.isEmpty()) | 505 if ((m_frame && m_frame->ownerElement()) || !url.isEmpty()) |
| 482 setURL(url); | 506 setURL(url); |
| 483 | 507 |
| 484 m_markers = adoptPtr(new DocumentMarkerController); | |
| 485 | |
| 486 if (m_frame) | |
| 487 m_cachedResourceLoader = m_frame->loader()->activeDocumentLoader()->cach
edResourceLoader(); | |
| 488 if (!m_cachedResourceLoader) | |
| 489 m_cachedResourceLoader = CachedResourceLoader::create(0); | |
| 490 m_cachedResourceLoader->setDocument(this); | |
| 491 | |
| 492 m_prerenderer = Prerenderer::create(this); | |
| 493 m_textAutosizer = TextAutosizer::create(this); | |
| 494 m_visuallyOrdered = false; | |
| 495 m_bParsing = false; | |
| 496 m_wellFormed = false; | |
| 497 | |
| 498 m_textColor = Color::black; | |
| 499 m_listenerTypes = 0; | |
| 500 m_inStyleRecalc = false; | |
| 501 m_closeAfterStyleRecalc = false; | |
| 502 | |
| 503 m_gotoAnchorNeededAfterStylesheetsLoad = false; | |
| 504 | |
| 505 m_didCalculateStyleResolver = false; | |
| 506 m_ignorePendingStylesheets = false; | |
| 507 m_needsNotifyRemoveAllPendingStylesheet = false; | |
| 508 m_hasNodesWithPlaceholderStyle = false; | |
| 509 m_pendingSheetLayout = NoLayoutWithPendingSheets; | |
| 510 | |
| 511 m_cssTarget = 0; | |
| 512 | |
| 513 resetLinkColor(); | 508 resetLinkColor(); |
| 514 resetVisitedLinkColor(); | 509 resetVisitedLinkColor(); |
| 515 resetActiveLinkColor(); | 510 resetActiveLinkColor(); |
| 516 | 511 |
| 517 m_processingLoadEvent = false; | |
| 518 | |
| 519 initSecurityContext(); | 512 initSecurityContext(); |
| 520 initDNSPrefetch(); | 513 initDNSPrefetch(); |
| 521 | 514 |
| 522 static int docID = 0; | |
| 523 m_docID = docID++; | |
| 524 | |
| 525 for (unsigned i = 0; i < WTF_ARRAY_LENGTH(m_nodeListCounts); i++) | 515 for (unsigned i = 0; i < WTF_ARRAY_LENGTH(m_nodeListCounts); i++) |
| 526 m_nodeListCounts[i] = 0; | 516 m_nodeListCounts[i] = 0; |
| 527 | 517 |
| 528 InspectorCounters::incrementCounter(InspectorCounters::DocumentCounter); | 518 InspectorCounters::incrementCounter(InspectorCounters::DocumentCounter); |
| 529 } | 519 } |
| 530 | 520 |
| 531 static void histogramMutationEventUsage(const unsigned short& listenerTypes) | 521 static void histogramMutationEventUsage(const unsigned short& listenerTypes) |
| 532 { | 522 { |
| 533 HistogramSupport::histogramEnumeration("DOMAPI.PerDocumentMutationEventUsage
.DOMSubtreeModified", static_cast<bool>(listenerTypes & Document::DOMSUBTREEMODI
FIED_LISTENER), 2); | 523 HistogramSupport::histogramEnumeration("DOMAPI.PerDocumentMutationEventUsage
.DOMSubtreeModified", static_cast<bool>(listenerTypes & Document::DOMSUBTREEMODI
FIED_LISTENER), 2); |
| 534 HistogramSupport::histogramEnumeration("DOMAPI.PerDocumentMutationEventUsage
.DOMNodeInserted", static_cast<bool>(listenerTypes & Document::DOMNODEINSERTED_L
ISTENER), 2); | 524 HistogramSupport::histogramEnumeration("DOMAPI.PerDocumentMutationEventUsage
.DOMNodeInserted", static_cast<bool>(listenerTypes & Document::DOMNODEINSERTED_L
ISTENER), 2); |
| (...skipping 5091 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5626 return; | 5616 return; |
| 5627 | 5617 |
| 5628 Vector<RefPtr<Element> > associatedFormControls; | 5618 Vector<RefPtr<Element> > associatedFormControls; |
| 5629 copyToVector(m_associatedFormControls, associatedFormControls); | 5619 copyToVector(m_associatedFormControls, associatedFormControls); |
| 5630 | 5620 |
| 5631 frame()->page()->chrome().client()->didAssociateFormControls(associatedFormC
ontrols); | 5621 frame()->page()->chrome().client()->didAssociateFormControls(associatedFormC
ontrols); |
| 5632 m_associatedFormControls.clear(); | 5622 m_associatedFormControls.clear(); |
| 5633 } | 5623 } |
| 5634 | 5624 |
| 5635 } // namespace WebCore | 5625 } // namespace WebCore |
| OLD | NEW |