Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 48 #include "core/dom/Document.h" | 48 #include "core/dom/Document.h" |
| 49 #include "core/dom/Element.h" | 49 #include "core/dom/Element.h" |
| 50 #include "core/dom/Node.h" | 50 #include "core/dom/Node.h" |
| 51 #include "core/html/HTMLHeadElement.h" | 51 #include "core/html/HTMLHeadElement.h" |
| 52 #include "core/html/parser/HTMLParserIdioms.h" | 52 #include "core/html/parser/HTMLParserIdioms.h" |
| 53 #include "core/inspector/ContentSearchUtils.h" | 53 #include "core/inspector/ContentSearchUtils.h" |
| 54 #include "core/inspector/InspectorCSSAgent.h" | 54 #include "core/inspector/InspectorCSSAgent.h" |
| 55 #include "core/inspector/InspectorPageAgent.h" | 55 #include "core/inspector/InspectorPageAgent.h" |
| 56 #include "core/inspector/InspectorValues.h" | 56 #include "core/inspector/InspectorValues.h" |
| 57 #include "core/page/ContentSecurityPolicy.h" | 57 #include "core/page/ContentSecurityPolicy.h" |
| 58 #include "core/page/PageConsole.h" | |
| 58 #include "core/platform/text/RegularExpression.h" | 59 #include "core/platform/text/RegularExpression.h" |
| 59 | 60 |
| 60 #include <wtf/OwnPtr.h> | 61 #include <wtf/OwnPtr.h> |
| 61 #include <wtf/PassOwnPtr.h> | 62 #include <wtf/PassOwnPtr.h> |
| 62 #include <wtf/text/StringBuilder.h> | 63 #include <wtf/text/StringBuilder.h> |
| 63 #include <wtf/Vector.h> | 64 #include <wtf/Vector.h> |
| 64 | 65 |
| 65 using WebCore::TypeBuilder::Array; | 66 using WebCore::TypeBuilder::Array; |
| 66 using WebCore::RuleSourceDataList; | 67 using WebCore::RuleSourceDataList; |
| 67 using WebCore::CSSRuleSourceData; | 68 using WebCore::CSSRuleSourceData; |
| (...skipping 1410 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1478 if (!m_sourceURL.isNull()) | 1479 if (!m_sourceURL.isNull()) |
| 1479 return m_sourceURL; | 1480 return m_sourceURL; |
| 1480 if (m_origin != TypeBuilder::CSS::StyleSheetOrigin::Regular) { | 1481 if (m_origin != TypeBuilder::CSS::StyleSheetOrigin::Regular) { |
| 1481 m_sourceURL = ""; | 1482 m_sourceURL = ""; |
| 1482 return m_sourceURL; | 1483 return m_sourceURL; |
| 1483 } | 1484 } |
| 1484 | 1485 |
| 1485 String styleSheetText; | 1486 String styleSheetText; |
| 1486 bool success = getText(&styleSheetText); | 1487 bool success = getText(&styleSheetText); |
| 1487 if (success) { | 1488 if (success) { |
| 1488 String commentValue = ContentSearchUtils::findSourceURL(styleSheetText, ContentSearchUtils::CSSMagicComment); | 1489 bool deprecated; |
| 1490 String commentValue = ContentSearchUtils::findSourceURL(styleSheetText, ContentSearchUtils::CSSMagicComment, &deprecated); | |
| 1489 if (!commentValue.isEmpty()) { | 1491 if (!commentValue.isEmpty()) { |
| 1492 if (deprecated) | |
| 1493 m_pageAgent->page()->console()->addMessage(NetworkMessageSource, WarningMessageLevel, "\"/*@ sourceURL=\" source url declaration is deprecated, \"/*# sourceURL=\" declaration should be used instead.", finalURL(), 0); | |
|
apavlov
2013/05/29 13:58:05
We need a kind of utility for this :(
| |
| 1490 m_sourceURL = commentValue; | 1494 m_sourceURL = commentValue; |
| 1491 return m_sourceURL; | 1495 return commentValue; |
| 1492 } | 1496 } |
| 1493 } | 1497 } |
| 1494 m_sourceURL = ""; | 1498 m_sourceURL = ""; |
| 1495 return m_sourceURL; | 1499 return m_sourceURL; |
| 1496 } | 1500 } |
| 1497 | 1501 |
| 1498 String InspectorStyleSheet::url() const | 1502 String InspectorStyleSheet::url() const |
| 1499 { | 1503 { |
| 1500 // "sourceURL" is present only for regular rules, otherwise "origin" should be used in the frontend. | 1504 // "sourceURL" is present only for regular rules, otherwise "origin" should be used in the frontend. |
| 1501 if (m_origin != TypeBuilder::CSS::StyleSheetOrigin::Regular) | 1505 if (m_origin != TypeBuilder::CSS::StyleSheetOrigin::Regular) |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 1523 { | 1527 { |
| 1524 CSSStyleSheet* styleSheet = pageStyleSheet(); | 1528 CSSStyleSheet* styleSheet = pageStyleSheet(); |
| 1525 if (!styleSheet) | 1529 if (!styleSheet) |
| 1526 return true; | 1530 return true; |
| 1527 | 1531 |
| 1528 return styleSheet->startPositionInSource() == TextPosition::minimumPosition( ); | 1532 return styleSheet->startPositionInSource() == TextPosition::minimumPosition( ); |
| 1529 } | 1533 } |
| 1530 | 1534 |
| 1531 String InspectorStyleSheet::sourceMapURL() const | 1535 String InspectorStyleSheet::sourceMapURL() const |
| 1532 { | 1536 { |
| 1533 DEFINE_STATIC_LOCAL(String, sourceMapHttpHeader, (ASCIILiteral("X-SourceMap" ))); | |
| 1534 | |
| 1535 if (m_origin != TypeBuilder::CSS::StyleSheetOrigin::Regular) | 1537 if (m_origin != TypeBuilder::CSS::StyleSheetOrigin::Regular) |
| 1536 return String(); | 1538 return String(); |
| 1537 | 1539 |
| 1538 String styleSheetText; | 1540 String styleSheetText; |
| 1539 bool success = getText(&styleSheetText); | 1541 bool success = getText(&styleSheetText); |
| 1540 if (success) { | 1542 if (success) { |
| 1541 String commentValue = ContentSearchUtils::findSourceMapURL(styleSheetTex t, ContentSearchUtils::CSSMagicComment); | 1543 bool deprecated; |
| 1542 if (!commentValue.isEmpty()) | 1544 String commentValue = ContentSearchUtils::findSourceMapURL(styleSheetTex t, ContentSearchUtils::CSSMagicComment, &deprecated); |
| 1545 if (!commentValue.isEmpty()) { | |
| 1546 if (deprecated) | |
| 1547 m_pageAgent->page()->console()->addMessage(NetworkMessageSource, WarningMessageLevel, "\"/*@ sourceMapURL=\" source mapping url declaration is d eprecated, \"/*# sourceMapURL=\" declaration should be used instead.", finalURL( ), 0); | |
| 1543 return commentValue; | 1548 return commentValue; |
| 1549 } | |
| 1544 } | 1550 } |
| 1545 | 1551 return m_pageAgent->resourceSourceMapURL(finalURL()); |
| 1546 if (finalURL().isEmpty()) | |
| 1547 return String(); | |
| 1548 | |
| 1549 CachedResource* resource = m_pageAgent->cachedResource(m_pageAgent->mainFram e(), KURL(ParsedURLString, finalURL())); | |
| 1550 if (resource) | |
| 1551 return resource->response().httpHeaderField(sourceMapHttpHeader); | |
| 1552 return String(); | |
| 1553 } | 1552 } |
| 1554 | 1553 |
| 1555 InspectorCSSId InspectorStyleSheet::ruleOrStyleId(CSSStyleDeclaration* style) co nst | 1554 InspectorCSSId InspectorStyleSheet::ruleOrStyleId(CSSStyleDeclaration* style) co nst |
| 1556 { | 1555 { |
| 1557 unsigned index = ruleIndexByStyle(style); | 1556 unsigned index = ruleIndexByStyle(style); |
| 1558 if (index != UINT_MAX) | 1557 if (index != UINT_MAX) |
| 1559 return InspectorCSSId(id(), index); | 1558 return InspectorCSSId(id(), index); |
| 1560 return InspectorCSSId(); | 1559 return InspectorCSSId(); |
| 1561 } | 1560 } |
| 1562 | 1561 |
| (...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1897 | 1896 |
| 1898 RefPtr<MutableStylePropertySet> tempDeclaration = MutableStylePropertySet::c reate(); | 1897 RefPtr<MutableStylePropertySet> tempDeclaration = MutableStylePropertySet::c reate(); |
| 1899 RuleSourceDataList ruleSourceDataResult; | 1898 RuleSourceDataList ruleSourceDataResult; |
| 1900 StyleSheetHandler handler(m_styleText, m_element->document(), m_element->doc ument()->elementSheet()->contents(), &ruleSourceDataResult); | 1899 StyleSheetHandler handler(m_styleText, m_element->document(), m_element->doc ument()->elementSheet()->contents(), &ruleSourceDataResult); |
| 1901 createCSSParser(m_element->document())->parseDeclaration(tempDeclaration.get (), m_styleText, &handler, m_element->document()->elementSheet()->contents()); | 1900 createCSSParser(m_element->document())->parseDeclaration(tempDeclaration.get (), m_styleText, &handler, m_element->document()->elementSheet()->contents()); |
| 1902 return ruleSourceDataResult.first().release(); | 1901 return ruleSourceDataResult.first().release(); |
| 1903 } | 1902 } |
| 1904 | 1903 |
| 1905 } // namespace WebCore | 1904 } // namespace WebCore |
| 1906 | 1905 |
| OLD | NEW |