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

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

Issue 1310433002: Devtools: [LayoutEditor] highlight changed value in the SSP (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: address comments Created 5 years, 4 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
« no previous file with comments | « Source/core/inspector/InspectorStyleSheet.h ('k') | Source/devtools/devtools.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 625 matching lines...) Expand 10 before | Expand all | Expand 10 after
636 636
637 namespace blink { 637 namespace blink {
638 638
639 enum MediaListSource { 639 enum MediaListSource {
640 MediaListSourceLinkedSheet, 640 MediaListSourceLinkedSheet,
641 MediaListSourceInlineSheet, 641 MediaListSourceInlineSheet,
642 MediaListSourceMediaRule, 642 MediaListSourceMediaRule,
643 MediaListSourceImportRule 643 MediaListSourceImportRule
644 }; 644 };
645 645
646 static PassRefPtr<TypeBuilder::CSS::SourceRange> buildSourceRangeObject(const So urceRange& range, const LineEndings* lineEndings) 646 PassRefPtr<TypeBuilder::CSS::SourceRange> InspectorStyleSheetBase::buildSourceRa ngeObject(const SourceRange& range)
647 { 647 {
648 const LineEndings* lineEndings = this->lineEndings();
648 if (!lineEndings) 649 if (!lineEndings)
649 return nullptr; 650 return nullptr;
650 TextPosition start = TextPosition::fromOffsetAndLineEndings(range.start, *li neEndings); 651 TextPosition start = TextPosition::fromOffsetAndLineEndings(range.start, *li neEndings);
651 TextPosition end = TextPosition::fromOffsetAndLineEndings(range.end, *lineEn dings); 652 TextPosition end = TextPosition::fromOffsetAndLineEndings(range.end, *lineEn dings);
652 653
653 RefPtr<TypeBuilder::CSS::SourceRange> result = TypeBuilder::CSS::SourceRange ::create() 654 RefPtr<TypeBuilder::CSS::SourceRange> result = TypeBuilder::CSS::SourceRange ::create()
654 .setStartLine(start.m_line.zeroBasedInt()) 655 .setStartLine(start.m_line.zeroBasedInt())
655 .setStartColumn(start.m_column.zeroBasedInt()) 656 .setStartColumn(start.m_column.zeroBasedInt())
656 .setEndLine(end.m_line.zeroBasedInt()) 657 .setEndLine(end.m_line.zeroBasedInt())
657 .setEndColumn(end.m_column.zeroBasedInt()); 658 .setEndColumn(end.m_column.zeroBasedInt());
(...skipping 12 matching lines...) Expand all
670 { 671 {
671 ASSERT(m_style); 672 ASSERT(m_style);
672 } 673 }
673 674
674 PassRefPtr<TypeBuilder::CSS::CSSStyle> InspectorStyle::buildObjectForStyle() 675 PassRefPtr<TypeBuilder::CSS::CSSStyle> InspectorStyle::buildObjectForStyle()
675 { 676 {
676 RefPtr<TypeBuilder::CSS::CSSStyle> result = styleWithProperties(); 677 RefPtr<TypeBuilder::CSS::CSSStyle> result = styleWithProperties();
677 if (m_sourceData) { 678 if (m_sourceData) {
678 if (m_parentStyleSheet && !m_parentStyleSheet->id().isEmpty()) 679 if (m_parentStyleSheet && !m_parentStyleSheet->id().isEmpty())
679 result->setStyleSheetId(m_parentStyleSheet->id()); 680 result->setStyleSheetId(m_parentStyleSheet->id());
680 result->setRange(buildSourceRangeObject(m_sourceData->ruleBodyRange, m_p arentStyleSheet->lineEndings())); 681 result->setRange(m_parentStyleSheet->buildSourceRangeObject(m_sourceData ->ruleBodyRange));
681 String sheetText; 682 String sheetText;
682 bool success = m_parentStyleSheet->getText(&sheetText); 683 bool success = m_parentStyleSheet->getText(&sheetText);
683 if (success) { 684 if (success) {
684 const SourceRange& bodyRange = m_sourceData->ruleBodyRange; 685 const SourceRange& bodyRange = m_sourceData->ruleBodyRange;
685 result->setCssText(sheetText.substring(bodyRange.start, bodyRange.en d - bodyRange.start)); 686 result->setCssText(sheetText.substring(bodyRange.start, bodyRange.en d - bodyRange.start));
686 } 687 }
687 } 688 }
688 689
689 return result.release(); 690 return result.release();
690 } 691 }
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
771 772
772 // Default "parsedOk" == true. 773 // Default "parsedOk" == true.
773 if (!propertyEntry.parsedOk) 774 if (!propertyEntry.parsedOk)
774 property->setParsedOk(false); 775 property->setParsedOk(false);
775 String text; 776 String text;
776 if (styleProperty.range.length() && textForRange(styleProperty.range, &t ext)) 777 if (styleProperty.range.length() && textForRange(styleProperty.range, &t ext))
777 property->setText(text); 778 property->setText(text);
778 if (propertyEntry.important) 779 if (propertyEntry.important)
779 property->setImportant(true); 780 property->setImportant(true);
780 if (styleProperty.range.length()) { 781 if (styleProperty.range.length()) {
781 property->setRange(buildSourceRangeObject(propertyEntry.range, m_par entStyleSheet ? m_parentStyleSheet->lineEndings() : nullptr)); 782 property->setRange(m_parentStyleSheet ? m_parentStyleSheet->buildSou rceRangeObject(propertyEntry.range) : nullptr);
782 if (!propertyEntry.disabled) { 783 if (!propertyEntry.disabled) {
783 property->setImplicit(false); 784 property->setImplicit(false);
784 } 785 }
785 property->setDisabled(propertyEntry.disabled); 786 property->setDisabled(propertyEntry.disabled);
786 } else if (!propertyEntry.disabled) { 787 } else if (!propertyEntry.disabled) {
787 bool implicit = m_style->isPropertyImplicit(name); 788 bool implicit = m_style->isPropertyImplicit(name);
788 // Default "implicit" == false. 789 // Default "implicit" == false.
789 if (implicit) 790 if (implicit)
790 property->setImplicit(true); 791 property->setImplicit(true);
791 792
(...skipping 506 matching lines...) Expand 10 before | Expand all | Expand 10 after
1298 String selector = sheetText.substring(range.start, range.length()); 1299 String selector = sheetText.substring(range.start, range.length());
1299 1300
1300 // We don't want to see any comments in the selector components, only th e meaningful parts. 1301 // We don't want to see any comments in the selector components, only th e meaningful parts.
1301 int matchLength; 1302 int matchLength;
1302 int offset = 0; 1303 int offset = 0;
1303 while ((offset = comment.match(selector, offset, &matchLength)) >= 0) 1304 while ((offset = comment.match(selector, offset, &matchLength)) >= 0)
1304 selector.replace(offset, matchLength, ""); 1305 selector.replace(offset, matchLength, "");
1305 1306
1306 RefPtr<TypeBuilder::CSS::Selector> simpleSelector = TypeBuilder::CSS::Se lector::create() 1307 RefPtr<TypeBuilder::CSS::Selector> simpleSelector = TypeBuilder::CSS::Se lector::create()
1307 .setValue(selector.stripWhiteSpace()); 1308 .setValue(selector.stripWhiteSpace());
1308 simpleSelector->setRange(buildSourceRangeObject(range, lineEndings())); 1309 simpleSelector->setRange(buildSourceRangeObject(range));
1309 result->addItem(simpleSelector.release()); 1310 result->addItem(simpleSelector.release());
1310 } 1311 }
1311 return result.release(); 1312 return result.release();
1312 } 1313 }
1313 1314
1314 PassRefPtr<TypeBuilder::CSS::SelectorList> InspectorStyleSheet::buildObjectForSe lectorList(CSSStyleRule* rule) 1315 PassRefPtr<TypeBuilder::CSS::SelectorList> InspectorStyleSheet::buildObjectForSe lectorList(CSSStyleRule* rule)
1315 { 1316 {
1316 RefPtrWillBeRawPtr<CSSRuleSourceData> sourceData = sourceDataForRule(rule); 1317 RefPtrWillBeRawPtr<CSSRuleSourceData> sourceData = sourceDataForRule(rule);
1317 RefPtr<TypeBuilder::Array<TypeBuilder::CSS::Selector> > selectors; 1318 RefPtr<TypeBuilder::Array<TypeBuilder::CSS::Selector> > selectors;
1318 1319
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
1367 return false; 1368 return false;
1368 } 1369 }
1369 1370
1370 PassRefPtr<TypeBuilder::CSS::SourceRange> InspectorStyleSheet::ruleHeaderSourceR ange(CSSRule* rule) 1371 PassRefPtr<TypeBuilder::CSS::SourceRange> InspectorStyleSheet::ruleHeaderSourceR ange(CSSRule* rule)
1371 { 1372 {
1372 if (!m_sourceData) 1373 if (!m_sourceData)
1373 return nullptr; 1374 return nullptr;
1374 RefPtrWillBeRawPtr<CSSRuleSourceData> sourceData = sourceDataForRule(rule); 1375 RefPtrWillBeRawPtr<CSSRuleSourceData> sourceData = sourceDataForRule(rule);
1375 if (!sourceData) 1376 if (!sourceData)
1376 return nullptr; 1377 return nullptr;
1377 return buildSourceRangeObject(sourceData->ruleHeaderRange, lineEndings()); 1378 return buildSourceRangeObject(sourceData->ruleHeaderRange);
1378 } 1379 }
1379 1380
1380 PassRefPtr<TypeBuilder::CSS::SourceRange> InspectorStyleSheet::mediaQueryExpValu eSourceRange(CSSRule* rule, size_t mediaQueryIndex, size_t mediaQueryExpIndex) 1381 PassRefPtr<TypeBuilder::CSS::SourceRange> InspectorStyleSheet::mediaQueryExpValu eSourceRange(CSSRule* rule, size_t mediaQueryIndex, size_t mediaQueryExpIndex)
1381 { 1382 {
1382 if (!m_sourceData) 1383 if (!m_sourceData)
1383 return nullptr; 1384 return nullptr;
1384 RefPtrWillBeRawPtr<CSSRuleSourceData> sourceData = sourceDataForRule(rule); 1385 RefPtrWillBeRawPtr<CSSRuleSourceData> sourceData = sourceDataForRule(rule);
1385 if (!sourceData || !sourceData->mediaSourceData || mediaQueryIndex >= source Data->mediaSourceData->queryData.size()) 1386 if (!sourceData || !sourceData->mediaSourceData || mediaQueryIndex >= source Data->mediaSourceData->queryData.size())
1386 return nullptr; 1387 return nullptr;
1387 RefPtrWillBeRawPtr<CSSMediaQuerySourceData> mediaQueryData = sourceData->med iaSourceData->queryData.at(mediaQueryIndex); 1388 RefPtrWillBeRawPtr<CSSMediaQuerySourceData> mediaQueryData = sourceData->med iaSourceData->queryData.at(mediaQueryIndex);
1388 if (mediaQueryExpIndex >= mediaQueryData->expData.size()) 1389 if (mediaQueryExpIndex >= mediaQueryData->expData.size())
1389 return nullptr; 1390 return nullptr;
1390 return buildSourceRangeObject(mediaQueryData->expData.at(mediaQueryExpIndex) .valueRange, lineEndings()); 1391 return buildSourceRangeObject(mediaQueryData->expData.at(mediaQueryExpIndex) .valueRange);
1391 } 1392 }
1392 1393
1393 PassRefPtrWillBeRawPtr<InspectorStyle> InspectorStyleSheet::inspectorStyle(RefPt rWillBeRawPtr<CSSStyleDeclaration> style) 1394 PassRefPtrWillBeRawPtr<InspectorStyle> InspectorStyleSheet::inspectorStyle(RefPt rWillBeRawPtr<CSSStyleDeclaration> style)
1394 { 1395 {
1395 return style ? InspectorStyle::create(style, sourceDataForRule(style->parent Rule()), this) : nullptr; 1396 return style ? InspectorStyle::create(style, sourceDataForRule(style->parent Rule()), this) : nullptr;
1396 } 1397 }
1397 1398
1398 String InspectorStyleSheet::sourceURL() 1399 String InspectorStyleSheet::sourceURL()
1399 { 1400 {
1400 if (!m_sourceURL.isNull()) 1401 if (!m_sourceURL.isNull())
(...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after
1708 } 1709 }
1709 1710
1710 DEFINE_TRACE(InspectorStyleSheetForInlineStyle) 1711 DEFINE_TRACE(InspectorStyleSheetForInlineStyle)
1711 { 1712 {
1712 visitor->trace(m_element); 1713 visitor->trace(m_element);
1713 visitor->trace(m_inspectorStyle); 1714 visitor->trace(m_inspectorStyle);
1714 InspectorStyleSheetBase::trace(visitor); 1715 InspectorStyleSheetBase::trace(visitor);
1715 } 1716 }
1716 1717
1717 } // namespace blink 1718 } // namespace blink
OLDNEW
« no previous file with comments | « Source/core/inspector/InspectorStyleSheet.h ('k') | Source/devtools/devtools.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698