Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(142)

Side by Side Diff: third_party/WebKit/Source/core/html/HTMLLinkElement.cpp

Issue 1686483002: Oilpan: Remove most WillBe types from the code base (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 * Copyright (C) 2003, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv ed. 5 * Copyright (C) 2003, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv ed.
6 * Copyright (C) 2009 Rob Buis (rwlbuis@gmail.com) 6 * Copyright (C) 2009 Rob Buis (rwlbuis@gmail.com)
7 * Copyright (C) 2011 Google Inc. All rights reserved. 7 * Copyright (C) 2011 Google Inc. All rights reserved.
8 * 8 *
9 * This library is free software; you can redistribute it and/or 9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Library General Public 10 * modify it under the terms of the GNU Library General Public
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
117 return; 117 return;
118 } 118 }
119 if (state == ParseHeight && i > start) { 119 if (state == ParseHeight && i > start) {
120 int height = charactersToInt(value + start, i - start); 120 int height = charactersToInt(value + start, i - start);
121 iconSizes.append(IntSize(width, height)); 121 iconSizes.append(IntSize(width, height));
122 } 122 }
123 } 123 }
124 124
125 static LinkEventSender& linkLoadEventSender() 125 static LinkEventSender& linkLoadEventSender()
126 { 126 {
127 DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<LinkEventSender>, sharedLoadEvent Sender, (LinkEventSender::create(EventTypeNames::load))); 127 DEFINE_STATIC_LOCAL(Persistent<LinkEventSender>, sharedLoadEventSender, (Lin kEventSender::create(EventTypeNames::load)));
128 return *sharedLoadEventSender; 128 return *sharedLoadEventSender;
129 } 129 }
130 130
131 static bool styleSheetTypeIsSupported(const String& type) 131 static bool styleSheetTypeIsSupported(const String& type)
132 { 132 {
133 String trimmedType = ContentType(type).type(); 133 String trimmedType = ContentType(type).type();
134 return trimmedType.isEmpty() || MIMETypeRegistry::isSupportedStyleSheetMIMET ype(trimmedType); 134 return trimmedType.isEmpty() || MIMETypeRegistry::isSupportedStyleSheetMIMET ype(trimmedType);
135 } 135 }
136 136
137 void HTMLLinkElement::parseSizesAttribute(const AtomicString& value, Vector<IntS ize>& iconSizes) 137 void HTMLLinkElement::parseSizesAttribute(const AtomicString& value, Vector<IntS ize>& iconSizes)
(...skipping 10 matching lines...) Expand all
148 inline HTMLLinkElement::HTMLLinkElement(Document& document, bool createdByParser ) 148 inline HTMLLinkElement::HTMLLinkElement(Document& document, bool createdByParser )
149 : HTMLElement(linkTag, document) 149 : HTMLElement(linkTag, document)
150 , m_linkLoader(LinkLoader::create(this)) 150 , m_linkLoader(LinkLoader::create(this))
151 , m_sizes(DOMSettableTokenList::create(this)) 151 , m_sizes(DOMSettableTokenList::create(this))
152 , m_relList(RelList::create(this)) 152 , m_relList(RelList::create(this))
153 , m_createdByParser(createdByParser) 153 , m_createdByParser(createdByParser)
154 , m_isInShadowTree(false) 154 , m_isInShadowTree(false)
155 { 155 {
156 } 156 }
157 157
158 PassRefPtrWillBeRawPtr<HTMLLinkElement> HTMLLinkElement::create(Document& docume nt, bool createdByParser) 158 RawPtr<HTMLLinkElement> HTMLLinkElement::create(Document& document, bool created ByParser)
159 { 159 {
160 return adoptRefWillBeNoop(new HTMLLinkElement(document, createdByParser)); 160 return (new HTMLLinkElement(document, createdByParser));
161 } 161 }
162 162
163 HTMLLinkElement::~HTMLLinkElement() 163 HTMLLinkElement::~HTMLLinkElement()
164 { 164 {
165 #if !ENABLE(OILPAN) 165 #if !ENABLE(OILPAN)
166 m_sizes->setObserver(nullptr); 166 m_sizes->setObserver(nullptr);
167 m_link.clear(); 167 m_link.clear();
168 if (inDocument()) 168 if (inDocument())
169 document().styleEngine().removeStyleSheetCandidateNode(this); 169 document().styleEngine().removeStyleSheetCandidateNode(this);
170 linkLoadEventSender().cancelEvent(this); 170 linkLoadEventSender().cancelEvent(this);
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 ASSERT(!linkStyle() || !linkStyle()->hasSheet()); 223 ASSERT(!linkStyle() || !linkStyle()->hasSheet());
224 return nullptr; 224 return nullptr;
225 } 225 }
226 226
227 if (!m_link) { 227 if (!m_link) {
228 if (m_relAttribute.isImport()) { 228 if (m_relAttribute.isImport()) {
229 m_link = LinkImport::create(this); 229 m_link = LinkImport::create(this);
230 } else if (m_relAttribute.isManifest()) { 230 } else if (m_relAttribute.isManifest()) {
231 m_link = LinkManifest::create(this); 231 m_link = LinkManifest::create(this);
232 } else { 232 } else {
233 OwnPtrWillBeRawPtr<LinkStyle> link = LinkStyle::create(this); 233 RawPtr<LinkStyle> link = LinkStyle::create(this);
234 if (fastHasAttribute(disabledAttr)) { 234 if (fastHasAttribute(disabledAttr)) {
235 UseCounter::count(document(), UseCounter::HTMLLinkElementDisable d); 235 UseCounter::count(document(), UseCounter::HTMLLinkElementDisable d);
236 link->setDisabledState(true); 236 link->setDisabledState(true);
237 } 237 }
238 m_link = link.release(); 238 m_link = link.release();
239 } 239 }
240 } 240 }
241 241
242 return m_link.get(); 242 return m_link.get();
243 } 243 }
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 return; 300 return;
301 301
302 m_linkLoader->released(); 302 m_linkLoader->released();
303 303
304 if (m_isInShadowTree) { 304 if (m_isInShadowTree) {
305 ASSERT(!linkStyle() || !linkStyle()->hasSheet()); 305 ASSERT(!linkStyle() || !linkStyle()->hasSheet());
306 return; 306 return;
307 } 307 }
308 document().styleEngine().removeStyleSheetCandidateNode(this); 308 document().styleEngine().removeStyleSheetCandidateNode(this);
309 309
310 RefPtrWillBeRawPtr<StyleSheet> removedSheet = sheet(); 310 RawPtr<StyleSheet> removedSheet = sheet();
311 311
312 if (m_link) 312 if (m_link)
313 m_link->ownerRemoved(); 313 m_link->ownerRemoved();
314 314
315 document().removedStyleSheet(removedSheet.get()); 315 document().removedStyleSheet(removedSheet.get());
316 } 316 }
317 317
318 void HTMLLinkElement::finishParsingChildren() 318 void HTMLLinkElement::finishParsingChildren()
319 { 319 {
320 m_createdByParser = false; 320 m_createdByParser = false;
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
462 { 462 {
463 visitor->trace(m_link); 463 visitor->trace(m_link);
464 visitor->trace(m_sizes); 464 visitor->trace(m_sizes);
465 visitor->trace(m_linkLoader); 465 visitor->trace(m_linkLoader);
466 visitor->trace(m_relList); 466 visitor->trace(m_relList);
467 HTMLElement::trace(visitor); 467 HTMLElement::trace(visitor);
468 LinkLoaderClient::trace(visitor); 468 LinkLoaderClient::trace(visitor);
469 DOMSettableTokenListObserver::trace(visitor); 469 DOMSettableTokenListObserver::trace(visitor);
470 } 470 }
471 471
472 PassOwnPtrWillBeRawPtr<LinkStyle> LinkStyle::create(HTMLLinkElement* owner) 472 RawPtr<LinkStyle> LinkStyle::create(HTMLLinkElement* owner)
473 { 473 {
474 return adoptPtrWillBeNoop(new LinkStyle(owner)); 474 return (new LinkStyle(owner));
475 } 475 }
476 476
477 LinkStyle::LinkStyle(HTMLLinkElement* owner) 477 LinkStyle::LinkStyle(HTMLLinkElement* owner)
478 : LinkResource(owner) 478 : LinkResource(owner)
479 , m_disabledState(Unset) 479 , m_disabledState(Unset)
480 , m_pendingSheetType(None) 480 , m_pendingSheetType(None)
481 , m_loading(false) 481 , m_loading(false)
482 , m_firedLoad(false) 482 , m_firedLoad(false)
483 , m_loadedSheet(false) 483 , m_loadedSheet(false)
484 , m_fetchFollowingCORS(false) 484 , m_fetchFollowingCORS(false)
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
523 // While the stylesheet is asynchronously loading, the owner can be moved un der 523 // While the stylesheet is asynchronously loading, the owner can be moved un der
524 // shadow tree. In that case, cancel any processing on the loaded content. 524 // shadow tree. In that case, cancel any processing on the loaded content.
525 if (m_owner->isInShadowTree()) { 525 if (m_owner->isInShadowTree()) {
526 m_loading = false; 526 m_loading = false;
527 removePendingSheet(); 527 removePendingSheet();
528 if (m_sheet) 528 if (m_sheet)
529 clearSheet(); 529 clearSheet();
530 return; 530 return;
531 } 531 }
532 // Completing the sheet load may cause scripts to execute. 532 // Completing the sheet load may cause scripts to execute.
533 RefPtrWillBeRawPtr<Node> protector(m_owner.get()); 533 RawPtr<Node> protector(m_owner.get());
534 534
535 CSSParserContext parserContext(m_owner->document(), 0, baseURL, charset); 535 CSSParserContext parserContext(m_owner->document(), 0, baseURL, charset);
536 536
537 DEFINE_STATIC_LOCAL(EnumerationHistogram, restoredCachedStyleSheetHistogram, ("Blink.RestoredCachedStyleSheet", 2)); 537 DEFINE_STATIC_LOCAL(EnumerationHistogram, restoredCachedStyleSheetHistogram, ("Blink.RestoredCachedStyleSheet", 2));
538 DEFINE_STATIC_LOCAL(EnumerationHistogram, restoredCachedStyleSheet2Histogram , ("Blink.RestoredCachedStyleSheet2", StyleSheetCacheStatusCount)); 538 DEFINE_STATIC_LOCAL(EnumerationHistogram, restoredCachedStyleSheet2Histogram , ("Blink.RestoredCachedStyleSheet2", StyleSheetCacheStatusCount));
539 539
540 if (RefPtrWillBeRawPtr<StyleSheetContents> restoredSheet = const_cast<CSSSty leSheetResource*>(cachedStyleSheet)->restoreParsedStyleSheet(parserContext)) { 540 if (RawPtr<StyleSheetContents> restoredSheet = const_cast<CSSStyleSheetResou rce*>(cachedStyleSheet)->restoreParsedStyleSheet(parserContext)) {
541 ASSERT(restoredSheet->isCacheable()); 541 ASSERT(restoredSheet->isCacheable());
542 ASSERT(!restoredSheet->isLoading()); 542 ASSERT(!restoredSheet->isLoading());
543 543
544 if (m_sheet) 544 if (m_sheet)
545 clearSheet(); 545 clearSheet();
546 m_sheet = CSSStyleSheet::create(restoredSheet, m_owner); 546 m_sheet = CSSStyleSheet::create(restoredSheet, m_owner);
547 m_sheet->setMediaQueries(MediaQuerySet::create(m_owner->media())); 547 m_sheet->setMediaQueries(MediaQuerySet::create(m_owner->media()));
548 m_sheet->setTitle(m_owner->title()); 548 m_sheet->setTitle(m_owner->title());
549 setCrossOriginStylesheetStatus(m_sheet.get()); 549 setCrossOriginStylesheetStatus(m_sheet.get());
550 550
551 m_loading = false; 551 m_loading = false;
552 restoredSheet->checkLoaded(); 552 restoredSheet->checkLoaded();
553 553
554 restoredCachedStyleSheetHistogram.count(true); 554 restoredCachedStyleSheetHistogram.count(true);
555 restoredCachedStyleSheet2Histogram.count(StyleSheetInMemoryCache); 555 restoredCachedStyleSheet2Histogram.count(StyleSheetInMemoryCache);
556 return; 556 return;
557 } 557 }
558 restoredCachedStyleSheetHistogram.count(false); 558 restoredCachedStyleSheetHistogram.count(false);
559 StyleSheetCacheStatus cacheStatus = cachedStyleSheet->response().wasCached() ? StyleSheetInDiskCache : StyleSheetNewEntry; 559 StyleSheetCacheStatus cacheStatus = cachedStyleSheet->response().wasCached() ? StyleSheetInDiskCache : StyleSheetNewEntry;
560 restoredCachedStyleSheet2Histogram.count(cacheStatus); 560 restoredCachedStyleSheet2Histogram.count(cacheStatus);
561 561
562 RefPtrWillBeRawPtr<StyleSheetContents> styleSheet = StyleSheetContents::crea te(href, parserContext); 562 RawPtr<StyleSheetContents> styleSheet = StyleSheetContents::create(href, par serContext);
563 563
564 if (m_sheet) 564 if (m_sheet)
565 clearSheet(); 565 clearSheet();
566 566
567 m_sheet = CSSStyleSheet::create(styleSheet, m_owner); 567 m_sheet = CSSStyleSheet::create(styleSheet, m_owner);
568 m_sheet->setMediaQueries(MediaQuerySet::create(m_owner->media())); 568 m_sheet->setMediaQueries(MediaQuerySet::create(m_owner->media()));
569 m_sheet->setTitle(m_owner->title()); 569 m_sheet->setTitle(m_owner->title());
570 setCrossOriginStylesheetStatus(m_sheet.get()); 570 setCrossOriginStylesheetStatus(m_sheet.get());
571 571
572 styleSheet->parseAuthorStyleSheet(cachedStyleSheet, m_owner->document().secu rityOrigin()); 572 styleSheet->parseAuthorStyleSheet(cachedStyleSheet, m_owner->document().secu rityOrigin());
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
733 733
734 if (!m_owner->shouldLoadLink()) 734 if (!m_owner->shouldLoadLink())
735 return; 735 return;
736 736
737 m_loading = true; 737 m_loading = true;
738 738
739 bool mediaQueryMatches = true; 739 bool mediaQueryMatches = true;
740 LocalFrame* frame = loadingFrame(); 740 LocalFrame* frame = loadingFrame();
741 if (!m_owner->media().isEmpty() && frame && frame->document()) { 741 if (!m_owner->media().isEmpty() && frame && frame->document()) {
742 RefPtr<ComputedStyle> documentStyle = StyleResolver::styleForDocumen t(*frame->document()); 742 RefPtr<ComputedStyle> documentStyle = StyleResolver::styleForDocumen t(*frame->document());
743 RefPtrWillBeRawPtr<MediaQuerySet> media = MediaQuerySet::create(m_ow ner->media()); 743 RawPtr<MediaQuerySet> media = MediaQuerySet::create(m_owner->media() );
744 MediaQueryEvaluator evaluator(frame); 744 MediaQueryEvaluator evaluator(frame);
745 mediaQueryMatches = evaluator.eval(media.get()); 745 mediaQueryMatches = evaluator.eval(media.get());
746 } 746 }
747 747
748 // Don't hold up layout tree construction and script execution on styles heets 748 // Don't hold up layout tree construction and script execution on styles heets
749 // that are not needed for the layout at the moment. 749 // that are not needed for the layout at the moment.
750 bool blocking = mediaQueryMatches && !m_owner->isAlternate() && m_owner- >isCreatedByParser(); 750 bool blocking = mediaQueryMatches && !m_owner->isAlternate() && m_owner- >isCreatedByParser();
751 addPendingSheet(blocking ? Blocking : NonBlocking); 751 addPendingSheet(blocking ? Blocking : NonBlocking);
752 752
753 // Load stylesheets that are not needed for the layout immediately with low priority. 753 // Load stylesheets that are not needed for the layout immediately with low priority.
754 // When the link element is created by scripts, load the stylesheets asy nchronously but in high priority. 754 // When the link element is created by scripts, load the stylesheets asy nchronously but in high priority.
755 bool lowPriority = !mediaQueryMatches || m_owner->isAlternate(); 755 bool lowPriority = !mediaQueryMatches || m_owner->isAlternate();
756 FetchRequest request = builder.build(lowPriority); 756 FetchRequest request = builder.build(lowPriority);
757 CrossOriginAttributeValue crossOrigin = crossOriginAttributeValue(m_owne r->fastGetAttribute(HTMLNames::crossoriginAttr)); 757 CrossOriginAttributeValue crossOrigin = crossOriginAttributeValue(m_owne r->fastGetAttribute(HTMLNames::crossoriginAttr));
758 if (crossOrigin != CrossOriginAttributeNotSet) { 758 if (crossOrigin != CrossOriginAttributeNotSet) {
759 request.setCrossOriginAccessControl(document().securityOrigin(), cro ssOrigin); 759 request.setCrossOriginAccessControl(document().securityOrigin(), cro ssOrigin);
760 setFetchFollowingCORS(); 760 setFetchFollowingCORS();
761 } 761 }
762 setResource(CSSStyleSheetResource::fetch(request, document().fetcher())) ; 762 setResource(CSSStyleSheetResource::fetch(request, document().fetcher())) ;
763 763
764 if (!resource()) { 764 if (!resource()) {
765 // The request may have been denied if (for example) the stylesheet is local and the document is remote, or if there was a Content Security Policy F ailure. 765 // The request may have been denied if (for example) the stylesheet is local and the document is remote, or if there was a Content Security Policy F ailure.
766 m_loading = false; 766 m_loading = false;
767 removePendingSheet(); 767 removePendingSheet();
768 notifyLoadedSheetAndAllCriticalSubresources(Node::ErrorOccurredLoadi ngSubresource); 768 notifyLoadedSheetAndAllCriticalSubresources(Node::ErrorOccurredLoadi ngSubresource);
769 } 769 }
770 } else if (m_sheet) { 770 } else if (m_sheet) {
771 // we no longer contain a stylesheet, e.g. perhaps rel or type was chang ed 771 // we no longer contain a stylesheet, e.g. perhaps rel or type was chang ed
772 RefPtrWillBeRawPtr<StyleSheet> removedSheet = m_sheet.get(); 772 RawPtr<StyleSheet> removedSheet = m_sheet.get();
773 clearSheet(); 773 clearSheet();
774 document().removedStyleSheet(removedSheet.get()); 774 document().removedStyleSheet(removedSheet.get());
775 } 775 }
776 } 776 }
777 777
778 void LinkStyle::setSheetTitle(const String& title) 778 void LinkStyle::setSheetTitle(const String& title)
779 { 779 {
780 if (m_sheet) 780 if (m_sheet)
781 m_sheet->setTitle(title); 781 m_sheet->setTitle(title);
782 } 782 }
783 783
784 void LinkStyle::ownerRemoved() 784 void LinkStyle::ownerRemoved()
785 { 785 {
786 if (m_sheet) 786 if (m_sheet)
787 clearSheet(); 787 clearSheet();
788 788
789 if (styleSheetIsLoading()) 789 if (styleSheetIsLoading())
790 removePendingSheet(); 790 removePendingSheet();
791 } 791 }
792 792
793 DEFINE_TRACE(LinkStyle) 793 DEFINE_TRACE(LinkStyle)
794 { 794 {
795 visitor->trace(m_sheet); 795 visitor->trace(m_sheet);
796 LinkResource::trace(visitor); 796 LinkResource::trace(visitor);
797 ResourceOwner<StyleSheetResource>::trace(visitor); 797 ResourceOwner<StyleSheetResource>::trace(visitor);
798 } 798 }
799 799
800 } // namespace blink 800 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698