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

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

Issue 307943002: Oilpan: Prepare moving InspectorController and InspectorAgents to oilpan. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 6 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 355 matching lines...) Expand 10 before | Expand all | Expand 10 after
366 , m_styleSheetsPendingMutation(0) 366 , m_styleSheetsPendingMutation(0)
367 , m_styleDeclarationPendingMutation(false) 367 , m_styleDeclarationPendingMutation(false)
368 , m_creatingViaInspectorStyleSheet(false) 368 , m_creatingViaInspectorStyleSheet(false)
369 , m_isSettingStyleSheetText(false) 369 , m_isSettingStyleSheetText(false)
370 { 370 {
371 m_domAgent->setDOMListener(this); 371 m_domAgent->setDOMListener(this);
372 } 372 }
373 373
374 InspectorCSSAgent::~InspectorCSSAgent() 374 InspectorCSSAgent::~InspectorCSSAgent()
375 { 375 {
376 ASSERT(!m_domAgent); 376 ASSERT(!m_domAgent);
haraken 2014/06/12 05:53:00 You need to remove this in oilpan builds.
keishi 2014/06/13 03:37:33 Done.
377 reset(); 377 reset();
haraken 2014/06/12 05:53:01 This looks dangerous. reset() calls resetPseudoSta
keishi 2014/06/13 03:37:33 Done.
378 } 378 }
379 379
380 void InspectorCSSAgent::setFrontend(InspectorFrontend* frontend) 380 void InspectorCSSAgent::setFrontend(InspectorFrontend* frontend)
381 { 381 {
382 ASSERT(!m_frontend); 382 ASSERT(!m_frontend);
383 m_frontend = frontend->css(); 383 m_frontend = frontend->css();
384 } 384 }
385 385
386 void InspectorCSSAgent::clearFrontend() 386 void InspectorCSSAgent::clearFrontend()
387 { 387 {
388 ASSERT(m_frontend); 388 ASSERT(m_frontend);
389 ErrorString error; 389 ErrorString error;
390 disable(&error); 390 disable(&error);
391 m_frontend = 0; 391 m_frontend = 0;
392 resetNonPersistentData(); 392 resetNonPersistentData();
393 } 393 }
394 394
395 void InspectorCSSAgent::discardAgent() 395 void InspectorCSSAgent::discardAgent()
396 { 396 {
397 m_domAgent->setDOMListener(0); 397 m_domAgent->setDOMListener(0);
398 m_domAgent = 0; 398 m_domAgent = nullptr;
399 } 399 }
400 400
401 void InspectorCSSAgent::restore() 401 void InspectorCSSAgent::restore()
402 { 402 {
403 if (m_state->getBoolean(CSSAgentState::cssAgentEnabled)) 403 if (m_state->getBoolean(CSSAgentState::cssAgentEnabled))
404 wasEnabled(nullptr); 404 wasEnabled(nullptr);
405 } 405 }
406 406
407 void InspectorCSSAgent::flushPendingFrontendMessages() 407 void InspectorCSSAgent::flushPendingFrontendMessages()
408 { 408 {
409 if (!m_invalidatedDocuments.size()) 409 if (!m_invalidatedDocuments.size())
410 return; 410 return;
411 HashSet<Document*> invalidatedDocuments; 411 WillBeHeapHashSet<RawPtrWillBeMember<Document> > invalidatedDocuments;
412 m_invalidatedDocuments.swap(&invalidatedDocuments); 412 m_invalidatedDocuments.swap(&invalidatedDocuments);
413 for (HashSet<Document*>::iterator it = invalidatedDocuments.begin(); it != i nvalidatedDocuments.end(); ++it) 413 for (WillBeHeapHashSet<RawPtrWillBeMember<Document> >::iterator it = invalid atedDocuments.begin(); it != invalidatedDocuments.end(); ++it)
414 updateActiveStyleSheets(*it, ExistingFrontendRefresh); 414 updateActiveStyleSheets(*it, ExistingFrontendRefresh);
415 } 415 }
416 416
417 void InspectorCSSAgent::reset() 417 void InspectorCSSAgent::reset()
418 { 418 {
419 m_idToInspectorStyleSheet.clear(); 419 m_idToInspectorStyleSheet.clear();
420 m_idToInspectorStyleSheetForInlineStyle.clear(); 420 m_idToInspectorStyleSheetForInlineStyle.clear();
421 m_cssStyleSheetToInspectorStyleSheet.clear(); 421 m_cssStyleSheetToInspectorStyleSheet.clear();
422 m_documentToCSSStyleSheets.clear(); 422 m_documentToCSSStyleSheets.clear();
423 m_invalidatedDocuments.clear(); 423 m_invalidatedDocuments.clear();
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
538 { 538 {
539 if (styleSheetEditInProgress()) 539 if (styleSheetEditInProgress())
540 return; 540 return;
541 m_invalidatedDocuments.add(document); 541 m_invalidatedDocuments.add(document);
542 if (m_creatingViaInspectorStyleSheet) 542 if (m_creatingViaInspectorStyleSheet)
543 flushPendingFrontendMessages(); 543 flushPendingFrontendMessages();
544 } 544 }
545 545
546 void InspectorCSSAgent::updateActiveStyleSheets(Document* document, StyleSheetsU pdateType styleSheetsUpdateType) 546 void InspectorCSSAgent::updateActiveStyleSheets(Document* document, StyleSheetsU pdateType styleSheetsUpdateType)
547 { 547 {
548 Vector<CSSStyleSheet*> newSheetsVector; 548 Vector<CSSStyleSheet*> newSheetsVector;
haraken 2014/06/12 05:53:00 This should be WillBeHeapVector<RawPtrWillBeMember
keishi 2014/06/13 03:37:33 Done.
549 collectAllDocumentStyleSheets(document, newSheetsVector); 549 collectAllDocumentStyleSheets(document, newSheetsVector);
550 setActiveStyleSheets(document, newSheetsVector, styleSheetsUpdateType); 550 setActiveStyleSheets(document, newSheetsVector, styleSheetsUpdateType);
551 } 551 }
552 552
553 void InspectorCSSAgent::setActiveStyleSheets(Document* document, const Vector<CS SStyleSheet*>& allSheetsVector, StyleSheetsUpdateType styleSheetsUpdateType) 553 void InspectorCSSAgent::setActiveStyleSheets(Document* document, const Vector<CS SStyleSheet*>& allSheetsVector, StyleSheetsUpdateType styleSheetsUpdateType)
haraken 2014/06/12 05:53:00 Ditto.
keishi 2014/06/13 03:37:33 Done.
554 { 554 {
555 bool isInitialFrontendLoad = styleSheetsUpdateType == InitialFrontendLoad; 555 bool isInitialFrontendLoad = styleSheetsUpdateType == InitialFrontendLoad;
556 556
557 HashSet<CSSStyleSheet*>* documentCSSStyleSheets = m_documentToCSSStyleSheets .get(document); 557 WillBeHeapHashSet<RawPtrWillBeMember<CSSStyleSheet> >* documentCSSStyleSheet s = m_documentToCSSStyleSheets.get(document);
558 if (!documentCSSStyleSheets) { 558 if (!documentCSSStyleSheets) {
559 documentCSSStyleSheets = new HashSet<CSSStyleSheet*>(); 559 documentCSSStyleSheets = new WillBeHeapHashSet<RawPtrWillBeMember<CSSSty leSheet> >();
560 OwnPtr<HashSet<CSSStyleSheet*> > documentCSSStyleSheetsPtr = adoptPtr(do cumentCSSStyleSheets); 560 OwnPtrWillBeRawPtr<WillBeHeapHashSet<RawPtrWillBeMember<CSSStyleSheet> > > documentCSSStyleSheetsPtr = adoptPtrWillBeNoop(documentCSSStyleSheets);
561 m_documentToCSSStyleSheets.set(document, documentCSSStyleSheetsPtr.relea se()); 561 m_documentToCSSStyleSheets.set(document, documentCSSStyleSheetsPtr.relea se());
562 } 562 }
563 563
564 HashSet<CSSStyleSheet*> removedSheets(*documentCSSStyleSheets); 564 WillBeHeapHashSet<RawPtrWillBeMember<CSSStyleSheet> > removedSheets(*documen tCSSStyleSheets);
565 565
566 HashSet<CSSStyleSheet*> addedSheets; 566 WillBeHeapHashSet<RawPtrWillBeMember<CSSStyleSheet> > addedSheets;
567 for (Vector<CSSStyleSheet*>::const_iterator it = allSheetsVector.begin(); it != allSheetsVector.end(); ++it) { 567 for (Vector<CSSStyleSheet*>::const_iterator it = allSheetsVector.begin(); it != allSheetsVector.end(); ++it) {
568 CSSStyleSheet* cssStyleSheet = *it; 568 CSSStyleSheet* cssStyleSheet = *it;
569 if (removedSheets.contains(cssStyleSheet)) { 569 if (removedSheets.contains(cssStyleSheet)) {
570 removedSheets.remove(cssStyleSheet); 570 removedSheets.remove(cssStyleSheet);
571 if (isInitialFrontendLoad) 571 if (isInitialFrontendLoad)
572 addedSheets.add(cssStyleSheet); 572 addedSheets.add(cssStyleSheet);
573 } else { 573 } else {
574 addedSheets.add(cssStyleSheet); 574 addedSheets.add(cssStyleSheet);
575 } 575 }
576 } 576 }
577 577
578 for (HashSet<CSSStyleSheet*>::iterator it = removedSheets.begin(); it != rem ovedSheets.end(); ++it) { 578 for (WillBeHeapHashSet<RawPtrWillBeMember<CSSStyleSheet> >::iterator it = re movedSheets.begin(); it != removedSheets.end(); ++it) {
579 CSSStyleSheet* cssStyleSheet = *it; 579 CSSStyleSheet* cssStyleSheet = *it;
580 RefPtr<InspectorStyleSheet> inspectorStyleSheet = m_cssStyleSheetToInspe ctorStyleSheet.get(cssStyleSheet); 580 RefPtrWillBeRawPtr<InspectorStyleSheet> inspectorStyleSheet = m_cssStyle SheetToInspectorStyleSheet.get(cssStyleSheet);
581 ASSERT(inspectorStyleSheet); 581 ASSERT(inspectorStyleSheet);
582 582
583 documentCSSStyleSheets->remove(cssStyleSheet); 583 documentCSSStyleSheets->remove(cssStyleSheet);
584 if (m_idToInspectorStyleSheet.contains(inspectorStyleSheet->id())) { 584 if (m_idToInspectorStyleSheet.contains(inspectorStyleSheet->id())) {
585 String id = unbindStyleSheet(inspectorStyleSheet.get()); 585 String id = unbindStyleSheet(inspectorStyleSheet.get());
586 if (m_frontend && !isInitialFrontendLoad) 586 if (m_frontend && !isInitialFrontendLoad)
587 m_frontend->styleSheetRemoved(id); 587 m_frontend->styleSheetRemoved(id);
588 } 588 }
589 } 589 }
590 590
591 for (HashSet<CSSStyleSheet*>::iterator it = addedSheets.begin(); it != added Sheets.end(); ++it) { 591 for (WillBeHeapHashSet<RawPtrWillBeMember<CSSStyleSheet> >::iterator it = ad dedSheets.begin(); it != addedSheets.end(); ++it) {
592 CSSStyleSheet* cssStyleSheet = *it; 592 CSSStyleSheet* cssStyleSheet = *it;
593 bool isNew = isInitialFrontendLoad || !m_cssStyleSheetToInspectorStyleSh eet.contains(cssStyleSheet); 593 bool isNew = isInitialFrontendLoad || !m_cssStyleSheetToInspectorStyleSh eet.contains(cssStyleSheet);
594 if (isNew) { 594 if (isNew) {
595 InspectorStyleSheet* newStyleSheet = bindStyleSheet(cssStyleSheet); 595 InspectorStyleSheet* newStyleSheet = bindStyleSheet(cssStyleSheet);
596 documentCSSStyleSheets->add(cssStyleSheet); 596 documentCSSStyleSheets->add(cssStyleSheet);
597 if (m_frontend) 597 if (m_frontend)
598 m_frontend->styleSheetAdded(newStyleSheet->buildObjectForStyleSh eetInfo()); 598 m_frontend->styleSheetAdded(newStyleSheet->buildObjectForStyleSh eetInfo());
599 } 599 }
600 } 600 }
601 601
(...skipping 831 matching lines...) Expand 10 before | Expand all | Expand 10 after
1433 } 1433 }
1434 1434
1435 void InspectorCSSAgent::didReparseStyleSheet() 1435 void InspectorCSSAgent::didReparseStyleSheet()
1436 { 1436 {
1437 ASSERT(m_isSettingStyleSheetText); 1437 ASSERT(m_isSettingStyleSheetText);
1438 m_isSettingStyleSheetText = false; 1438 m_isSettingStyleSheetText = false;
1439 } 1439 }
1440 1440
1441 void InspectorCSSAgent::resetPseudoStates() 1441 void InspectorCSSAgent::resetPseudoStates()
1442 { 1442 {
1443 HashSet<Document*> documentsToChange; 1443 HashSet<Document*> documentsToChange;
haraken 2014/06/12 05:53:00 This should be WillBeHeapHashSet<RawPtrWillBeMembe
keishi 2014/06/13 03:37:33 Done.
1444 for (NodeIdToForcedPseudoState::iterator it = m_nodeIdToForcedPseudoState.be gin(), end = m_nodeIdToForcedPseudoState.end(); it != end; ++it) { 1444 for (NodeIdToForcedPseudoState::iterator it = m_nodeIdToForcedPseudoState.be gin(), end = m_nodeIdToForcedPseudoState.end(); it != end; ++it) {
1445 Element* element = toElement(m_domAgent->nodeForId(it->key)); 1445 Element* element = toElement(m_domAgent->nodeForId(it->key));
1446 if (element && element->ownerDocument()) 1446 if (element && element->ownerDocument())
1447 documentsToChange.add(element->ownerDocument()); 1447 documentsToChange.add(element->ownerDocument());
1448 } 1448 }
1449 1449
1450 m_nodeIdToForcedPseudoState.clear(); 1450 m_nodeIdToForcedPseudoState.clear();
1451 for (HashSet<Document*>::iterator it = documentsToChange.begin(), end = docu mentsToChange.end(); it != end; ++it) 1451 for (HashSet<Document*>::iterator it = documentsToChange.begin(), end = docu mentsToChange.end(); it != end; ++it)
1452 (*it)->setNeedsStyleRecalc(SubtreeStyleChange); 1452 (*it)->setNeedsStyleRecalc(SubtreeStyleChange);
1453 } 1453 }
1454 1454
1455 void InspectorCSSAgent::trace(Visitor* visitor)
1456 {
1457 visitor->trace(m_domAgent);
1458 visitor->trace(m_pageAgent);
1459 visitor->trace(m_resourceAgent);
1460 visitor->trace(m_cssStyleSheetToInspectorStyleSheet);
1461 visitor->trace(m_documentToCSSStyleSheets);
1462 visitor->trace(m_invalidatedDocuments);
1463 visitor->trace(m_documentToViaInspectorStyleSheet);
1464 visitor->trace(m_inspectorUserAgentStyleSheet);
1465 InspectorBaseAgent::trace(visitor);
1466 }
1467
1455 } // namespace WebCore 1468 } // namespace WebCore
1456 1469
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698