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 | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012 Apple Inc. All |
7 * rights reserved. | 7 * rights reserved. |
8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. | 8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. |
9 * (http://www.torchmobile.com/) | 9 * (http://www.torchmobile.com/) |
10 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved. | 10 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved. |
(...skipping 550 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
561 return *m_selectorQueryCache; | 561 return *m_selectorQueryCache; |
562 } | 562 } |
563 | 563 |
564 MediaQueryMatcher& Document::mediaQueryMatcher() { | 564 MediaQueryMatcher& Document::mediaQueryMatcher() { |
565 if (!m_mediaQueryMatcher) | 565 if (!m_mediaQueryMatcher) |
566 m_mediaQueryMatcher = MediaQueryMatcher::create(*this); | 566 m_mediaQueryMatcher = MediaQueryMatcher::create(*this); |
567 return *m_mediaQueryMatcher; | 567 return *m_mediaQueryMatcher; |
568 } | 568 } |
569 | 569 |
570 void Document::mediaQueryAffectingValueChanged() { | 570 void Document::mediaQueryAffectingValueChanged() { |
571 m_evaluateMediaQueriesOnStyleRecalc = true; | |
572 styleEngine().mediaQueryAffectingValueChanged(); | 571 styleEngine().mediaQueryAffectingValueChanged(); |
| 572 if (needsLayoutTreeUpdate()) |
| 573 m_evaluateMediaQueriesOnStyleRecalc = true; |
| 574 else |
| 575 evaluateMediaQueryList(); |
573 InspectorInstrumentation::mediaQueryResultChanged(this); | 576 InspectorInstrumentation::mediaQueryResultChanged(this); |
574 } | 577 } |
575 | 578 |
576 void Document::setCompatibilityMode(CompatibilityMode mode) { | 579 void Document::setCompatibilityMode(CompatibilityMode mode) { |
577 if (m_compatibilityModeLocked || mode == m_compatibilityMode) | 580 if (m_compatibilityModeLocked || mode == m_compatibilityMode) |
578 return; | 581 return; |
579 m_compatibilityMode = mode; | 582 m_compatibilityMode = mode; |
580 selectorQueryCache().invalidate(); | 583 selectorQueryCache().invalidate(); |
581 } | 584 } |
582 | 585 |
(...skipping 1630 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2213 // stop it a second time, after page content has already been loaded and | 2216 // stop it a second time, after page content has already been loaded and |
2214 // displayed with accurate style information. (Our suppression involves | 2217 // displayed with accurate style information. (Our suppression involves |
2215 // blanking the whole page at the moment. If it were more refined, we might | 2218 // blanking the whole page at the moment. If it were more refined, we might |
2216 // be able to do something better.) It's worth noting though that this | 2219 // be able to do something better.) It's worth noting though that this |
2217 // entire method is a hack, since what we really want to do is suspend JS | 2220 // entire method is a hack, since what we really want to do is suspend JS |
2218 // instead of doing a layout with inaccurate information. | 2221 // instead of doing a layout with inaccurate information. |
2219 HTMLElement* bodyElement = body(); | 2222 HTMLElement* bodyElement = body(); |
2220 if (bodyElement && !bodyElement->layoutObject() && | 2223 if (bodyElement && !bodyElement->layoutObject() && |
2221 m_pendingSheetLayout == NoLayoutWithPendingSheets) { | 2224 m_pendingSheetLayout == NoLayoutWithPendingSheets) { |
2222 m_pendingSheetLayout = DidLayoutWithPendingSheets; | 2225 m_pendingSheetLayout = DidLayoutWithPendingSheets; |
2223 styleEngine().resolverChanged(FullStyleUpdate); | 2226 styleEngine().markAllTreeScopesDirty(); |
2224 } else if (m_hasNodesWithPlaceholderStyle) { | 2227 } |
| 2228 if (m_hasNodesWithPlaceholderStyle) { |
2225 // If new nodes have been added or style recalc has been done with style | 2229 // If new nodes have been added or style recalc has been done with style |
2226 // sheets still pending, some nodes may not have had their real style | 2230 // sheets still pending, some nodes may not have had their real style |
2227 // calculated yet. Normally this gets cleaned when style sheets arrive | 2231 // calculated yet. Normally this gets cleaned when style sheets arrive |
2228 // but here we need up-to-date style immediately. | 2232 // but here we need up-to-date style immediately. |
2229 setNeedsStyleRecalc(SubtreeStyleChange, | 2233 setNeedsStyleRecalc(SubtreeStyleChange, |
2230 StyleChangeReasonForTracing::create( | 2234 StyleChangeReasonForTracing::create( |
2231 StyleChangeReason::CleanupPlaceholderStyles)); | 2235 StyleChangeReason::CleanupPlaceholderStyles)); |
2232 } | 2236 } |
2233 } | 2237 } |
2234 updateStyleAndLayoutTree(); | 2238 updateStyleAndLayoutTree(); |
(...skipping 4347 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6582 } | 6586 } |
6583 | 6587 |
6584 void showLiveDocumentInstances() { | 6588 void showLiveDocumentInstances() { |
6585 WeakDocumentSet& set = liveDocumentSet(); | 6589 WeakDocumentSet& set = liveDocumentSet(); |
6586 fprintf(stderr, "There are %u documents currently alive:\n", set.size()); | 6590 fprintf(stderr, "There are %u documents currently alive:\n", set.size()); |
6587 for (Document* document : set) | 6591 for (Document* document : set) |
6588 fprintf(stderr, "- Document %p URL: %s\n", document, | 6592 fprintf(stderr, "- Document %p URL: %s\n", document, |
6589 document->url().getString().utf8().data()); | 6593 document->url().getString().utf8().data()); |
6590 } | 6594 } |
6591 #endif | 6595 #endif |
OLD | NEW |