Changeset 192711 in webkit
- Timestamp:
- Nov 20, 2015 5:42:11 PM (8 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r192709 r192711 1 2015-11-20 Katlyn Graff <kgraff@apple.com> 2 3 Renaming PageCache suspension code to support more reasons for suspension. 4 https://bugs.webkit.org/show_bug.cgi?id=151527 5 6 Reviewed by Ryosuke Niwa. 7 8 No new tests because this is simply a refactor. 9 10 Renamed Element:: and Document:: documentWillSuspendForPageCache(), 11 documentDidResumeFromPageCache(), 12 registerForPageCacheSuspensionCallbacks(), 13 unregisterForPageCacheSuspensionCallbacks() to prepare to support 14 alternate reasons for document-level suspension. 15 16 * dom/Document.cpp: 17 (WebCore::Document::suspend): 18 (WebCore::Document::resume): 19 (WebCore::Document::registerForDocumentSuspensionCallbacks): 20 (WebCore::Document::unregisterForDocumentSuspensionCallbacks): 21 (WebCore::Document::documentWillSuspendForPageCache): Deleted. 22 (WebCore::Document::documentDidResumeFromPageCache): Deleted. 23 (WebCore::Document::registerForPageCacheSuspensionCallbacks): Deleted. 24 (WebCore::Document::unregisterForPageCacheSuspensionCallbacks): Deleted. 25 * dom/Document.h: 26 * dom/Element.h: 27 (WebCore::Element::prepareForDocumentSuspension): 28 (WebCore::Element::resumeFromDocumentSuspension): 29 (WebCore::Element::documentWillSuspendForPageCache): Deleted. 30 (WebCore::Element::documentDidResumeFromPageCache): Deleted. 31 * history/CachedFrame.cpp: 32 (WebCore::CachedFrameBase::restore): 33 (WebCore::CachedFrame::CachedFrame): 34 * html/HTMLFormElement.cpp: 35 (WebCore::HTMLFormElement::~HTMLFormElement): 36 (WebCore::HTMLFormElement::parseAttribute): 37 (WebCore::HTMLFormElement::resumeFromDocumentSuspension): 38 (WebCore::HTMLFormElement::didMoveToNewDocument): 39 (WebCore::HTMLFormElement::documentDidResumeFromPageCache): Deleted. 40 * html/HTMLFormElement.h: 41 * html/HTMLInputElement.cpp: 42 (WebCore::HTMLInputElement::~HTMLInputElement): 43 (WebCore::HTMLInputElement::registerForSuspensionCallbackIfNeeded): 44 (WebCore::HTMLInputElement::unregisterForSuspensionCallbackIfNeeded): 45 (WebCore::HTMLInputElement::resumeFromDocumentSuspension): 46 (WebCore::HTMLInputElement::prepareForDocumentSuspension): 47 (WebCore::HTMLInputElement::didMoveToNewDocument): 48 (WebCore::HTMLInputElement::documentDidResumeFromPageCache): Deleted. 49 (WebCore::HTMLInputElement::documentWillSuspendForPageCache): Deleted. 50 * html/HTMLInputElement.h: 51 * html/HTMLMediaElement.cpp: 52 (WebCore::HTMLMediaElement::registerWithDocument): 53 (WebCore::HTMLMediaElement::unregisterWithDocument): 54 (WebCore::HTMLMediaElement::prepareForDocumentSuspension): 55 (WebCore::HTMLMediaElement::resumeFromDocumentSuspension): 56 (WebCore::HTMLMediaElement::documentWillSuspendForPageCache): Deleted. 57 (WebCore::HTMLMediaElement::documentDidResumeFromPageCache): Deleted. 58 * html/HTMLMediaElement.h: 59 * html/HTMLPlugInImageElement.cpp: 60 (WebCore::HTMLPlugInImageElement::~HTMLPlugInImageElement): 61 (WebCore::HTMLPlugInImageElement::createElementRenderer): 62 (WebCore::HTMLPlugInImageElement::didMoveToNewDocument): 63 (WebCore::HTMLPlugInImageElement::prepareForDocumentSuspension): 64 (WebCore::HTMLPlugInImageElement::resumeFromDocumentSuspension): 65 (WebCore::HTMLPlugInImageElement::documentWillSuspendForPageCache): Deleted. 66 (WebCore::HTMLPlugInImageElement::documentDidResumeFromPageCache): Deleted. 67 * html/HTMLPlugInImageElement.h: 68 * loader/FrameLoader.cpp: 69 (WebCore::FrameLoader::commitProvisionalLoad): 70 * svg/SVGSVGElement.cpp: 71 (WebCore::SVGSVGElement::SVGSVGElement): 72 (WebCore::SVGSVGElement::~SVGSVGElement): 73 (WebCore::SVGSVGElement::didMoveToNewDocument): 74 (WebCore::SVGSVGElement::prepareForDocumentSuspension): 75 (WebCore::SVGSVGElement::resumeFromDocumentSuspension): 76 (WebCore::SVGSVGElement::documentWillSuspendForPageCache): Deleted. 77 (WebCore::SVGSVGElement::documentDidResumeFromPageCache): Deleted. 78 * svg/SVGSVGElement.h: 79 1 80 2015-11-20 Simon Fraser <simon.fraser@apple.com> 2 81 -
trunk/Source/WebCore/dom/Document.cpp
r192369 r192711 4505 4505 } 4506 4506 4507 void Document:: documentWillSuspendForPageCache()4507 void Document::suspend() 4508 4508 { 4509 4509 documentWillBecomeInactive(); 4510 4510 4511 4511 for (auto* element : m_documentSuspensionCallbackElements) 4512 element-> documentWillSuspendForPageCache();4512 element->prepareForDocumentSuspension(); 4513 4513 4514 4514 #ifndef NDEBUG … … 4524 4524 } 4525 4525 4526 void Document:: documentDidResumeFromPageCache()4526 void Document::resume() 4527 4527 { 4528 4528 Vector<Element*> elements; 4529 4529 copyToVector(m_documentSuspensionCallbackElements, elements); 4530 4530 for (auto* element : elements) 4531 element-> documentDidResumeFromPageCache();4531 element->resumeFromDocumentSuspension(); 4532 4532 4533 4533 if (renderView()) … … 4541 4541 } 4542 4542 4543 void Document::registerFor PageCacheSuspensionCallbacks(Element* e)4543 void Document::registerForDocumentSuspensionCallbacks(Element* e) 4544 4544 { 4545 4545 m_documentSuspensionCallbackElements.add(e); 4546 4546 } 4547 4547 4548 void Document::unregisterFor PageCacheSuspensionCallbacks(Element* e)4548 void Document::unregisterForDocumentSuspensionCallbacks(Element* e) 4549 4549 { 4550 4550 m_documentSuspensionCallbackElements.remove(e); -
trunk/Source/WebCore/dom/Document.h
r192354 r192711 1003 1003 void setInPageCache(bool flag); 1004 1004 1005 // Elements can register themselves for the " documentWillSuspendForPageCache()" and1006 // " documentDidResumeFromPageCache()" callbacks1007 void registerFor PageCacheSuspensionCallbacks(Element*);1008 void unregisterFor PageCacheSuspensionCallbacks(Element*);1005 // Elements can register themselves for the "suspend()" and 1006 // "resume()" callbacks 1007 void registerForDocumentSuspensionCallbacks(Element*); 1008 void unregisterForDocumentSuspensionCallbacks(Element*); 1009 1009 1010 1010 void documentWillBecomeInactive(); 1011 void documentWillSuspendForPageCache();1012 void documentDidResumeFromPageCache();1011 void suspend(); 1012 void resume(); 1013 1013 1014 1014 void registerForMediaVolumeCallbacks(Element*); -
trunk/Source/WebCore/dom/Element.h
r191452 r192711 347 347 348 348 // Use Document::registerForDocumentActivationCallbacks() to subscribe to these 349 virtual void documentWillSuspendForPageCache() { }350 virtual void documentDidResumeFromPageCache() { }349 virtual void prepareForDocumentSuspension() { } 350 virtual void resumeFromDocumentSuspension() { } 351 351 352 352 // Use Document::registerForMediaVolumeCallbacks() to subscribe to this -
trunk/Source/WebCore/history/CachedFrame.cpp
r188659 r192711 136 136 #endif 137 137 138 m_document-> documentDidResumeFromPageCache();138 m_document->resume(); 139 139 } 140 140 … … 166 166 // Suspending must also happen after we've recursed over child frames, in case 167 167 // those create more objects. 168 m_document-> documentWillSuspendForPageCache();168 m_document->suspend(); 169 169 m_document->suspendScriptedAnimationControllerCallbacks(); 170 170 m_document->suspendActiveDOMObjects(ActiveDOMObject::PageCache); … … 180 180 frame.view()->clearScrollableAreas(); 181 181 182 // documentWillSuspendForPageCache() can set up a layout timer on the FrameView, so clear timers after that.182 // suspend() can set up a layout timer on the FrameView, so clear timers after that. 183 183 frame.clearTimers(); 184 184 -
trunk/Source/WebCore/html/HTMLFormElement.cpp
r191353 r192711 85 85 document().formController().willDeleteForm(this); 86 86 if (!shouldAutocomplete()) 87 document().unregisterFor PageCacheSuspensionCallbacks(this);87 document().unregisterForDocumentSuspensionCallbacks(this); 88 88 89 89 for (auto& associatedElement : m_associatedElements) … … 493 493 else if (name == autocompleteAttr) { 494 494 if (!shouldAutocomplete()) 495 document().registerFor PageCacheSuspensionCallbacks(this);495 document().registerForDocumentSuspensionCallbacks(this); 496 496 else 497 document().unregisterFor PageCacheSuspensionCallbacks(this);497 document().unregisterForDocumentSuspensionCallbacks(this); 498 498 } 499 499 else … … 811 811 } 812 812 813 void HTMLFormElement:: documentDidResumeFromPageCache()813 void HTMLFormElement::resumeFromDocumentSuspension() 814 814 { 815 815 ASSERT(!shouldAutocomplete()); … … 825 825 if (!shouldAutocomplete()) { 826 826 if (oldDocument) 827 oldDocument->unregisterFor PageCacheSuspensionCallbacks(this);828 document().registerFor PageCacheSuspensionCallbacks(this);827 oldDocument->unregisterForDocumentSuspensionCallbacks(this); 828 document().registerForDocumentSuspensionCallbacks(this); 829 829 } 830 830 -
trunk/Source/WebCore/html/HTMLFormElement.h
r191353 r192711 151 151 virtual bool isURLAttribute(const Attribute&) const override; 152 152 153 virtual void documentDidResumeFromPageCache() override;153 virtual void resumeFromDocumentSuspension() override; 154 154 155 155 virtual void didMoveToNewDocument(Document* oldDocument) override; -
trunk/Source/WebCore/html/HTMLInputElement.cpp
r191876 r192711 151 151 { 152 152 if (needsSuspensionCallback()) 153 document().unregisterFor PageCacheSuspensionCallbacks(this);153 document().unregisterForDocumentSuspensionCallbacks(this); 154 154 155 155 // Need to remove form association while this is still an HTMLInputElement … … 1400 1400 { 1401 1401 if (needsSuspensionCallback()) 1402 document().registerFor PageCacheSuspensionCallbacks(this);1402 document().registerForDocumentSuspensionCallbacks(this); 1403 1403 } 1404 1404 … … 1406 1406 { 1407 1407 if (!needsSuspensionCallback()) 1408 document().unregisterFor PageCacheSuspensionCallbacks(this);1408 document().unregisterForDocumentSuspensionCallbacks(this); 1409 1409 } 1410 1410 … … 1432 1432 } 1433 1433 1434 void HTMLInputElement:: documentDidResumeFromPageCache()1434 void HTMLInputElement::resumeFromDocumentSuspension() 1435 1435 { 1436 1436 ASSERT(needsSuspensionCallback()); 1437 1437 1438 1438 #if ENABLE(INPUT_TYPE_COLOR) 1439 // <input type=color> uses documentWillSuspendForPageCacheto detach the color picker UI,1439 // <input type=color> uses prepareForDocumentSuspension to detach the color picker UI, 1440 1440 // so it should not be reset when being loaded from page cache. 1441 1441 if (isColorControl()) … … 1446 1446 1447 1447 #if ENABLE(INPUT_TYPE_COLOR) 1448 void HTMLInputElement:: documentWillSuspendForPageCache()1448 void HTMLInputElement::prepareForDocumentSuspension() 1449 1449 { 1450 1450 if (!isColorControl()) … … 1503 1503 // Always unregister for cache callbacks when leaving a document, even if we would otherwise like to be registered 1504 1504 if (needsSuspensionCallback) 1505 oldDocument->unregisterFor PageCacheSuspensionCallbacks(this);1505 oldDocument->unregisterForDocumentSuspensionCallbacks(this); 1506 1506 if (isRadioButton()) 1507 1507 oldDocument->formController().checkedRadioButtons().removeButton(this); … … 1513 1513 1514 1514 if (needsSuspensionCallback) 1515 document().registerFor PageCacheSuspensionCallbacks(this);1515 document().registerForDocumentSuspensionCallbacks(this); 1516 1516 1517 1517 #if ENABLE(TOUCH_EVENTS) -
trunk/Source/WebCore/html/HTMLInputElement.h
r191876 r192711 377 377 virtual bool isOutOfRange() const override final; 378 378 379 virtual void documentDidResumeFromPageCache() override final;379 virtual void resumeFromDocumentSuspension() override final; 380 380 #if ENABLE(INPUT_TYPE_COLOR) 381 virtual void documentWillSuspendForPageCache() override final;381 virtual void prepareForDocumentSuspension() override final; 382 382 #endif 383 383 -
trunk/Source/WebCore/html/HTMLMediaElement.cpp
r192503 r192711 546 546 547 547 #if ENABLE(WIRELESS_PLAYBACK_TARGET) 548 document.registerFor PageCacheSuspensionCallbacks(this);548 document.registerForDocumentSuspensionCallbacks(this); 549 549 #endif 550 550 … … 580 580 581 581 #if ENABLE(WIRELESS_PLAYBACK_TARGET) 582 document.unregisterFor PageCacheSuspensionCallbacks(this);582 document.unregisterForDocumentSuspensionCallbacks(this); 583 583 #endif 584 584 … … 606 606 607 607 #if ENABLE(WIRELESS_PLAYBACK_TARGET) 608 void HTMLMediaElement:: documentWillSuspendForPageCache()608 void HTMLMediaElement::prepareForDocumentSuspension() 609 609 { 610 610 m_mediaSession->unregisterWithDocument(document()); 611 611 } 612 612 613 void HTMLMediaElement:: documentDidResumeFromPageCache()613 void HTMLMediaElement::resumeFromDocumentSuspension() 614 614 { 615 615 m_mediaSession->registerWithDocument(document()); -
trunk/Source/WebCore/html/HTMLMediaElement.h
r192354 r192711 748 748 749 749 #if ENABLE(WIRELESS_PLAYBACK_TARGET) 750 virtual void documentWillSuspendForPageCache() override final;751 virtual void documentDidResumeFromPageCache() override final;750 virtual void prepareForDocumentSuspension() override final; 751 virtual void resumeFromDocumentSuspension() override final; 752 752 753 753 enum class UpdateMediaState { -
trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp
r190859 r192711 124 124 { 125 125 if (m_needsDocumentActivationCallbacks) 126 document().unregisterFor PageCacheSuspensionCallbacks(this);126 document().unregisterForDocumentSuspensionCallbacks(this); 127 127 } 128 128 … … 201 201 if (!m_needsDocumentActivationCallbacks) { 202 202 m_needsDocumentActivationCallbacks = true; 203 document().registerFor PageCacheSuspensionCallbacks(this);203 document().registerForDocumentSuspensionCallbacks(this); 204 204 } 205 205 … … 302 302 { 303 303 if (m_needsDocumentActivationCallbacks) { 304 oldDocument->unregisterFor PageCacheSuspensionCallbacks(this);305 document().registerFor PageCacheSuspensionCallbacks(this);304 oldDocument->unregisterForDocumentSuspensionCallbacks(this); 305 document().registerForDocumentSuspensionCallbacks(this); 306 306 } 307 307 … … 312 312 } 313 313 314 void HTMLPlugInImageElement:: documentWillSuspendForPageCache()314 void HTMLPlugInImageElement::prepareForDocumentSuspension() 315 315 { 316 316 if (renderer()) 317 317 Style::detachRenderTree(*this); 318 318 319 HTMLPlugInElement:: documentWillSuspendForPageCache();320 } 321 322 void HTMLPlugInImageElement:: documentDidResumeFromPageCache()319 HTMLPlugInElement::prepareForDocumentSuspension(); 320 } 321 322 void HTMLPlugInImageElement::resumeFromDocumentSuspension() 323 323 { 324 324 setNeedsStyleRecalc(ReconstructRenderTree); 325 325 326 HTMLPlugInElement:: documentDidResumeFromPageCache();326 HTMLPlugInElement::resumeFromDocumentSuspension(); 327 327 } 328 328 -
trunk/Source/WebCore/html/HTMLPlugInImageElement.h
r190859 r192711 121 121 virtual void willDetachRenderers() override final; 122 122 123 virtual void documentWillSuspendForPageCache() override final;124 virtual void documentDidResumeFromPageCache() override final;123 virtual void prepareForDocumentSuspension() override final; 124 virtual void resumeFromDocumentSuspension() override final; 125 125 126 126 virtual void defaultEventHandler(Event*) override final; -
trunk/Source/WebCore/loader/FrameLoader.cpp
r192354 r192711 1821 1821 m_frame.page()->chrome().didReceiveDocType(&m_frame); 1822 1822 #endif 1823 m_frame.document()-> documentDidResumeFromPageCache();1823 m_frame.document()->resume(); 1824 1824 1825 1825 // Force a layout to update view size and thereby update scrollbars. -
trunk/Source/WebCore/svg/SVGSVGElement.cpp
r191002 r192711 69 69 ASSERT(hasTagName(SVGNames::svgTag)); 70 70 registerAnimatedPropertiesForSVGSVGElement(); 71 document.registerFor PageCacheSuspensionCallbacks(this);71 document.registerForDocumentSuspensionCallbacks(this); 72 72 } 73 73 … … 86 86 if (m_viewSpec) 87 87 m_viewSpec->resetContextElement(); 88 document().unregisterFor PageCacheSuspensionCallbacks(this);88 document().unregisterForDocumentSuspensionCallbacks(this); 89 89 document().accessSVGExtensions().removeTimeContainer(this); 90 90 } … … 93 93 { 94 94 if (oldDocument) 95 oldDocument->unregisterFor PageCacheSuspensionCallbacks(this);96 document().registerFor PageCacheSuspensionCallbacks(this);95 oldDocument->unregisterForDocumentSuspensionCallbacks(this); 96 document().registerForDocumentSuspensionCallbacks(this); 97 97 SVGGraphicsElement::didMoveToNewDocument(oldDocument); 98 98 } … … 659 659 } 660 660 661 void SVGSVGElement:: documentWillSuspendForPageCache()661 void SVGSVGElement::prepareForDocumentSuspension() 662 662 { 663 663 pauseAnimations(); 664 664 } 665 665 666 void SVGSVGElement:: documentDidResumeFromPageCache()666 void SVGSVGElement::resumeFromDocumentSuspension() 667 667 { 668 668 unpauseAnimations(); -
trunk/Source/WebCore/svg/SVGSVGElement.h
r185503 r192711 140 140 virtual void svgAttributeChanged(const QualifiedName&) override; 141 141 virtual bool selfHasRelativeLengths() const override; 142 virtual void documentWillSuspendForPageCache() override;143 virtual void documentDidResumeFromPageCache() override;142 virtual void prepareForDocumentSuspension() override; 143 virtual void resumeFromDocumentSuspension() override; 144 144 virtual AffineTransform localCoordinateSpaceTransform(SVGLocatable::CTMScope) const override; 145 145
Note: See TracChangeset
for help on using the changeset viewer.