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

Side by Side Diff: trunk/Source/core/inspector/InspectorCSSAgent.cpp

Issue 196743008: Revert 169371 "DevTools: defer styles delta calculation to until..." (Closed) Base URL: svn://svn.chromium.org/blink/
Patch Set: Created 6 years, 9 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2010, Google Inc. All rights reserved. 2 * Copyright (C) 2010, Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after
424 m_domAgent->setDOMListener(0); 424 m_domAgent->setDOMListener(0);
425 m_domAgent = 0; 425 m_domAgent = 0;
426 } 426 }
427 427
428 void InspectorCSSAgent::restore() 428 void InspectorCSSAgent::restore()
429 { 429 {
430 if (m_state->getBoolean(CSSAgentState::cssAgentEnabled)) 430 if (m_state->getBoolean(CSSAgentState::cssAgentEnabled))
431 wasEnabled(nullptr); 431 wasEnabled(nullptr);
432 } 432 }
433 433
434 void InspectorCSSAgent::flushPendingFrontendMessages()
435 {
436 if (!m_invalidatedDocuments.size())
437 return;
438 HashSet<Document*> invalidatedDocuments;
439 m_invalidatedDocuments.swap(&invalidatedDocuments);
440 for (HashSet<Document*>::iterator it = invalidatedDocuments.begin(); it != i nvalidatedDocuments.end(); ++it)
441 updateActiveStyleSheets(*it, ExistingFrontendRefresh);
442 }
443
444 void InspectorCSSAgent::reset() 434 void InspectorCSSAgent::reset()
445 { 435 {
446 m_idToInspectorStyleSheet.clear(); 436 m_idToInspectorStyleSheet.clear();
447 m_cssStyleSheetToInspectorStyleSheet.clear(); 437 m_cssStyleSheetToInspectorStyleSheet.clear();
448 m_documentToCSSStyleSheets.clear(); 438 m_documentToCSSStyleSheets.clear();
449 m_invalidatedDocuments.clear();
450 m_nodeToInspectorStyleSheet.clear(); 439 m_nodeToInspectorStyleSheet.clear();
451 m_documentToViaInspectorStyleSheet.clear(); 440 m_documentToViaInspectorStyleSheet.clear();
452 resetNonPersistentData(); 441 resetNonPersistentData();
453 } 442 }
454 443
455 void InspectorCSSAgent::resetNonPersistentData() 444 void InspectorCSSAgent::resetNonPersistentData()
456 { 445 {
457 resetPseudoStates(); 446 resetPseudoStates();
458 } 447 }
459 448
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
523 512
524 for (DocumentStyleSheets::iterator it = m_documentToCSSStyleSheets.begin(); it != m_documentToCSSStyleSheets.end(); ++it) { 513 for (DocumentStyleSheets::iterator it = m_documentToCSSStyleSheets.begin(); it != m_documentToCSSStyleSheets.end(); ++it) {
525 Document* document = it->key; 514 Document* document = it->key;
526 if (!document->frame() || document->frame() == frame) 515 if (!document->frame() || document->frame() == frame)
527 documentDisposed(document); 516 documentDisposed(document);
528 } 517 }
529 } 518 }
530 519
531 void InspectorCSSAgent::mediaQueryResultChanged() 520 void InspectorCSSAgent::mediaQueryResultChanged()
532 { 521 {
533 flushPendingFrontendMessages(); 522 if (m_frontend)
534 m_frontend->mediaQueryResultChanged(); 523 m_frontend->mediaQueryResultChanged();
535 } 524 }
536 525
537 void InspectorCSSAgent::willMutateRules() 526 void InspectorCSSAgent::willMutateRules()
538 { 527 {
539 ++m_styleSheetsPendingMutation; 528 ++m_styleSheetsPendingMutation;
540 } 529 }
541 530
542 void InspectorCSSAgent::didMutateRules(CSSStyleSheet* styleSheet) 531 void InspectorCSSAgent::didMutateRules(CSSStyleSheet* styleSheet)
543 { 532 {
544 --m_styleSheetsPendingMutation; 533 --m_styleSheetsPendingMutation;
(...skipping 20 matching lines...) Expand all
565 Document* owner = parentSheet ? parentSheet->ownerDocument() : 0; 554 Document* owner = parentSheet ? parentSheet->ownerDocument() : 0;
566 if (owner) 555 if (owner)
567 owner->modifiedStyleSheet(parentSheet, RecalcStyleDeferred, FullStyl eUpdate); 556 owner->modifiedStyleSheet(parentSheet, RecalcStyleDeferred, FullStyl eUpdate);
568 } 557 }
569 } 558 }
570 559
571 void InspectorCSSAgent::activeStyleSheetsUpdated(Document* document) 560 void InspectorCSSAgent::activeStyleSheetsUpdated(Document* document)
572 { 561 {
573 if (styleSheetEditInProgress()) 562 if (styleSheetEditInProgress())
574 return; 563 return;
575 m_invalidatedDocuments.add(document); 564 updateActiveStyleSheets(document, ExistingFrontendRefresh);
576 if (m_creatingViaInspectorStyleSheet)
577 flushPendingFrontendMessages();
578 } 565 }
579 566
580 void InspectorCSSAgent::updateActiveStyleSheets(Document* document, StyleSheetsU pdateType styleSheetsUpdateType) 567 void InspectorCSSAgent::updateActiveStyleSheets(Document* document, StyleSheetsU pdateType styleSheetsUpdateType)
581 { 568 {
582 Vector<CSSStyleSheet*> newSheetsVector; 569 Vector<CSSStyleSheet*> newSheetsVector;
583 collectAllDocumentStyleSheets(document, newSheetsVector); 570 collectAllDocumentStyleSheets(document, newSheetsVector);
584 setActiveStyleSheets(document, newSheetsVector, styleSheetsUpdateType); 571 setActiveStyleSheets(document, newSheetsVector, styleSheetsUpdateType);
585 } 572 }
586 573
587 void InspectorCSSAgent::setActiveStyleSheets(Document* document, const Vector<CS SStyleSheet*>& allSheetsVector, StyleSheetsUpdateType styleSheetsUpdateType) 574 void InspectorCSSAgent::setActiveStyleSheets(Document* document, const Vector<CS SStyleSheet*>& allSheetsVector, StyleSheetsUpdateType styleSheetsUpdateType)
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
634 m_frontend->styleSheetAdded(newStyleSheet->buildObjectForStyleSh eetInfo()); 621 m_frontend->styleSheetAdded(newStyleSheet->buildObjectForStyleSh eetInfo());
635 } 622 }
636 } 623 }
637 624
638 if (documentCSSStyleSheets->isEmpty()) 625 if (documentCSSStyleSheets->isEmpty())
639 m_documentToCSSStyleSheets.remove(document); 626 m_documentToCSSStyleSheets.remove(document);
640 } 627 }
641 628
642 void InspectorCSSAgent::documentDisposed(Document* document) 629 void InspectorCSSAgent::documentDisposed(Document* document)
643 { 630 {
644 m_invalidatedDocuments.remove(document);
645 setActiveStyleSheets(document, Vector<CSSStyleSheet*>(), ExistingFrontendRef resh); 631 setActiveStyleSheets(document, Vector<CSSStyleSheet*>(), ExistingFrontendRef resh);
646 } 632 }
647 633
648 void InspectorCSSAgent::frameDetachedFromParent(LocalFrame* frame) 634 void InspectorCSSAgent::frameDetachedFromParent(LocalFrame* frame)
649 { 635 {
650 documentDisposed(frame->document()); 636 documentDisposed(frame->document());
651 } 637 }
652 638
653 bool InspectorCSSAgent::forcePseudoState(Element* element, CSSSelector::PseudoTy pe pseudoType) 639 bool InspectorCSSAgent::forcePseudoState(Element* element, CSSSelector::PseudoTy pe pseudoType)
654 { 640 {
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after
903 *errorString = "Frame does not have a document"; 889 *errorString = "Frame does not have a document";
904 return; 890 return;
905 } 891 }
906 892
907 InspectorStyleSheet* inspectorStyleSheet = viaInspectorStyleSheet(document, true); 893 InspectorStyleSheet* inspectorStyleSheet = viaInspectorStyleSheet(document, true);
908 if (!inspectorStyleSheet) { 894 if (!inspectorStyleSheet) {
909 *errorString = "No target stylesheet found"; 895 *errorString = "No target stylesheet found";
910 return; 896 return;
911 } 897 }
912 898
913 updateActiveStyleSheets(document, ExistingFrontendRefresh);
914
915 *outStyleSheetId = inspectorStyleSheet->id(); 899 *outStyleSheetId = inspectorStyleSheet->id();
916 } 900 }
917 901
918 void InspectorCSSAgent::addRule(ErrorString* errorString, const String& styleShe etId, const String& selector, RefPtr<TypeBuilder::CSS::CSSRule>& result) 902 void InspectorCSSAgent::addRule(ErrorString* errorString, const String& styleShe etId, const String& selector, RefPtr<TypeBuilder::CSS::CSSRule>& result)
919 { 903 {
920 InspectorStyleSheet* inspectorStyleSheet = assertStyleSheetForId(errorString , styleSheetId); 904 InspectorStyleSheet* inspectorStyleSheet = assertStyleSheetForId(errorString , styleSheetId);
921 if (!inspectorStyleSheet) 905 if (!inspectorStyleSheet)
922 return; 906 return;
923 907
924 TrackExceptionState exceptionState; 908 TrackExceptionState exceptionState;
(...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after
1325 1309
1326 NodeToInspectorStyleSheet::iterator it = m_nodeToInspectorStyleSheet.find(el ement); 1310 NodeToInspectorStyleSheet::iterator it = m_nodeToInspectorStyleSheet.find(el ement);
1327 if (it == m_nodeToInspectorStyleSheet.end()) 1311 if (it == m_nodeToInspectorStyleSheet.end())
1328 return; 1312 return;
1329 1313
1330 it->value->didModifyElementAttribute(); 1314 it->value->didModifyElementAttribute();
1331 } 1315 }
1332 1316
1333 void InspectorCSSAgent::styleSheetChanged(InspectorStyleSheet* styleSheet) 1317 void InspectorCSSAgent::styleSheetChanged(InspectorStyleSheet* styleSheet)
1334 { 1318 {
1335 flushPendingFrontendMessages(); 1319 if (m_frontend)
1336 m_frontend->styleSheetChanged(styleSheet->id()); 1320 m_frontend->styleSheetChanged(styleSheet->id());
1337 } 1321 }
1338 1322
1339 void InspectorCSSAgent::willReparseStyleSheet() 1323 void InspectorCSSAgent::willReparseStyleSheet()
1340 { 1324 {
1341 ASSERT(!m_isSettingStyleSheetText); 1325 ASSERT(!m_isSettingStyleSheetText);
1342 m_isSettingStyleSheetText = true; 1326 m_isSettingStyleSheetText = true;
1343 } 1327 }
1344 1328
1345 void InspectorCSSAgent::didReparseStyleSheet() 1329 void InspectorCSSAgent::didReparseStyleSheet()
1346 { 1330 {
(...skipping 10 matching lines...) Expand all
1357 documentsToChange.add(element->ownerDocument()); 1341 documentsToChange.add(element->ownerDocument());
1358 } 1342 }
1359 1343
1360 m_nodeIdToForcedPseudoState.clear(); 1344 m_nodeIdToForcedPseudoState.clear();
1361 for (HashSet<Document*>::iterator it = documentsToChange.begin(), end = docu mentsToChange.end(); it != end; ++it) 1345 for (HashSet<Document*>::iterator it = documentsToChange.begin(), end = docu mentsToChange.end(); it != end; ++it)
1362 (*it)->setNeedsStyleRecalc(SubtreeStyleChange); 1346 (*it)->setNeedsStyleRecalc(SubtreeStyleChange);
1363 } 1347 }
1364 1348
1365 } // namespace WebCore 1349 } // namespace WebCore
1366 1350
OLDNEW
« no previous file with comments | « trunk/Source/core/inspector/InspectorCSSAgent.h ('k') | trunk/Source/core/inspector/InspectorController.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698