2010-09-30 Darin Adler <darin@apple.com>
authordarin@apple.com <darin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 1 Oct 2010 00:04:02 +0000 (00:04 +0000)
committerdarin@apple.com <darin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 1 Oct 2010 00:04:02 +0000 (00:04 +0000)
        Reviewed by Sam Weinig.

        Remove remaining calls to deprecatedParseURL
        https://bugs.webkit.org/show_bug.cgi?id=26599

        * WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebFrameLoaderClient::dispatchDidFailToStartPlugin):
        Call stripLeadingAndTrailingHTMLSpaces instead of deprecatedParseURL.
2010-09-30  Darin Adler  <darin@apple.com>

        Reviewed by Sam Weinig.

        Remove remaining calls to deprecatedParseURL
        https://bugs.webkit.org/show_bug.cgi?id=26599

        * DOM/WebDOMOperations.mm:
        (-[DOMDocument URLWithAttributeString:]):
        * WebCoreSupport/WebFrameLoaderClient.mm:
        (WebFrameLoaderClient::createPlugin):
        Call stripLeadingAndTrailingHTMLSpaces instead of deprecatedParseURL.
2010-09-30  Darin Adler  <darin@apple.com>

        Reviewed by Sam Weinig.

        Remove remaining calls to deprecatedParseURL
        https://bugs.webkit.org/show_bug.cgi?id=26599

        Test: fast/replaced/object-param-spaces.html

        * css/CSSHelper.cpp: Removed.
        * css/CSSHelper.h: Removed deprecatedParseURL.

        * html/parser/HTMLParserIdioms.cpp:
        (WebCore::stripLeadingAndTrailingHTMLSpaces):
        Fixed bug where the function would turn the null string into the empty string.
        Fixed bug where the function would not strip all trailing spaces.

        * html/parser/CSSPreloadScanner.cpp:
        (WebCore::CSSPreloadScanner::CSSPreloadScanner): Initialize m_state
        instead of calling the reset function.
        (WebCore::CSSPreloadScanner::scan): Tweaked coding style.
        (WebCore::CSSPreloadScanner::tokenize): Use isHTMLSpace instead of
        an identical local function named isWhitespace.
        (WebCore::parseCSSStringOrURL): Added. This function does what
        deprecatedParseURL did before, and this is the only place in WebKit
        that needs it. The code implements the rules for a string or URL
        token. The real CSS parser does this with flex and the code to hook
        flex up to yacc, so the function is not needed there.
        (WebCore::CSSPreloadScanner::emitRule): Streamlined the code a bit
        and mae it call parseCSSStringOrURL.

        * bindings/generic/BindingSecurity.h:
        (WebCore::::allowSettingFrameSrcToJavascriptUrl):
        * bindings/js/JSDOMBinding.cpp:
        (WebCore::allowSettingSrcToJavascriptURL):
        * bindings/js/JSHTMLFrameElementCustom.cpp:
        (WebCore::allowSettingJavascriptURL):
        * bindings/objc/DOM.mm:
        (-[DOMElement _getURLAttribute:]):
        * bindings/objc/DOMHTML.mm:
        (-[DOMHTMLDocument _createDocumentFragmentWithMarkupString:baseURLString:]):
        * dom/Document.cpp:
        (WebCore::Document::processBaseElement):
        * dom/Element.cpp:
        (WebCore::isAttributeToRemove):
        (WebCore::Element::getURLAttribute):
        (WebCore::Element::getNonEmptyURLAttribute):
        * html/HTMLAnchorElement.cpp:
        (WebCore::HTMLAnchorElement::defaultEventHandler):
        (WebCore::HTMLAnchorElement::parseMappedAttribute):
        (WebCore::HTMLAnchorElement::href):
        * html/HTMLBodyElement.cpp:
        (WebCore::HTMLBodyElement::parseMappedAttribute):
        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::parseMappedAttribute):
        * html/HTMLFrameElementBase.cpp:
        (WebCore::HTMLFrameElementBase::parseMappedAttribute):
        * html/HTMLImageElement.cpp:
        (WebCore::HTMLImageElement::parseMappedAttribute):
        * html/HTMLImageLoader.cpp:
        (WebCore::HTMLImageLoader::sourceURI):
        * html/HTMLLinkElement.cpp:
        (WebCore::HTMLLinkElement::parseMappedAttribute):
        * html/HTMLMediaElement.cpp:
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::parseMappedAttribute):
        (WebCore::HTMLObjectElement::parametersForPlugin):
        * html/HTMLTableElement.cpp:
        (WebCore::HTMLTableElement::parseMappedAttribute):
        * html/HTMLTablePartElement.cpp:
        (WebCore::HTMLTablePartElement::parseMappedAttribute):
        * html/parser/HTMLPreloadScanner.cpp:
        (WebCore::HTMLNames::PreloadTask::setUrlToLoad):
        * loader/FormSubmission.cpp:
        (WebCore::FormSubmission::Attributes::parseAction):
        * platform/chromium/ClipboardChromium.cpp:
        (WebCore::ClipboardChromium::declareAndWriteDragImage):
        * platform/chromium/PasteboardChromium.cpp:
        (WebCore::Pasteboard::writeImage):
        * platform/qt/ClipboardQt.cpp:
        (WebCore::ClipboardQt::declareAndWriteDragImage):
        * platform/win/ClipboardWin.cpp:
        (WebCore::ClipboardWin::declareAndWriteDragImage):
        * rendering/HitTestResult.cpp:
        (WebCore::HitTestResult::absoluteImageURL):
        (WebCore::HitTestResult::absoluteMediaURL):
        (WebCore::HitTestResult::absoluteLinkURL):
        * svg/SVGAElement.cpp:
        (WebCore::SVGAElement::defaultEventHandler):
        * svg/SVGImageLoader.cpp:
        (WebCore::SVGImageLoader::sourceURI):
        * wml/WMLAElement.cpp:
        (WebCore::WMLAElement::defaultEventHandler):
        * wml/WMLImageLoader.cpp:
        (WebCore::WMLImageLoader::sourceURI):
        Call stripLeadingAndTrailingHTMLSpaces instead of deprecatedParseURL.

        * WebCore.exp.in: Updated.

        * Android.mk: Removed CSSHelper.cpp.
        * CMakeLists.txt: Ditto.
        * GNUmakefile.am: Ditto.
        * WebCore.gypi: Ditto.
        * WebCore.pro: Ditto.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.

        * bindings/js/JSAttrCustom.cpp:
        * bindings/js/JSElementCustom.cpp:
        * bindings/v8/custom/V8ElementCustom.cpp:
        * bindings/v8/custom/V8LocationCustom.cpp:
        * css/CSSParser.cpp:
        * html/HTMLMediaElement.cpp:
        * html/HTMLVideoElement.cpp:
        * loader/ImageLoader.cpp:
        * rendering/style/RenderStyle.h:
        Removed unneeded include of CSSHelper.h.
2010-09-30  Darin Adler  <darin@apple.com>

        Reviewed by Sam Weinig.

        Remove remaining calls to deprecatedParseURL
        https://bugs.webkit.org/show_bug.cgi?id=26599

        * fast/replaced/object-param-spaces-expected.txt: Copied from
        LayoutTests/fast/replaced/object-param-url-control-char-expected.txt.
        * fast/replaced/object-param-spaces.html: Copied from
        LayoutTests/fast/replaced/object-param-url-control-char.html.
        * fast/replaced/object-param-url-control-char-expected.txt: Removed.
        * fast/replaced/object-param-url-control-char.html: Removed.
        Changed this test to expect HTML standard space trimming, but not the WebKit-only
        control character stripping we had historically.

        * fast/url/query-expected.txt: Updated to expect the test to pass.

        * fast/url/script-tests/segments-from-data-url.js: Changed expected result to not
        expect stripping of newline characters.
        * fast/url/script-tests/segments.js: Ditto.
        * fast/url/segments-expected.txt: Updated results.
        * fast/url/segments-from-data-url-expected.txt: Ditto.

        * http/tests/security/javascriptURL/javascriptURL-execution-context-frame-location-htmldom-expected.txt:
        * http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-getAttribute-value-expected.txt:
        * http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-htmldom-expected.txt:
        * http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttribute-expected.txt:
        * http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNS-expected.txt:
        * http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNode-expected.txt:
        * http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNodeNS-expected.txt:
        * http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-getAttribute-value-expected.txt:
        * http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-htmldom-expected.txt:
        * http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttribute-expected.txt:
        * http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNS-expected.txt:
        * http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNode-expected.txt:
        * http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNodeNS-expected.txt:
        These tests had multiple test cases with embedded control characters. These URLs no
        longer qualify as javascript URLs, so there are no longer any unsafe JavaScript log
        messages for them. The test cases themselves need not be changed at this time.

        * http/tests/security/xssAuditor/embed-tag-control-char-expected.txt:
        * http/tests/security/xssAuditor/object-embed-tag-control-char-expected.txt:
        Updated expected results to reflect the fact that the control character is no longer
        stripped from the URL in these cases. The test is still valid, but these are not as
        interesting test cases any more since control characters do not have special handling.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@68854 268f45cc-cd09-0410-ab3c-d52691b4dbfc

79 files changed:
LayoutTests/ChangeLog
LayoutTests/fast/replaced/object-param-spaces-expected.txt [new file with mode: 0644]
LayoutTests/fast/replaced/object-param-spaces.html [moved from LayoutTests/fast/replaced/object-param-url-control-char.html with 76% similarity]
LayoutTests/fast/replaced/object-param-url-control-char-expected.txt [deleted file]
LayoutTests/fast/url/query-expected.txt
LayoutTests/fast/url/script-tests/segments-from-data-url.js
LayoutTests/fast/url/script-tests/segments.js
LayoutTests/fast/url/segments-expected.txt
LayoutTests/fast/url/segments-from-data-url-expected.txt
LayoutTests/http/tests/security/javascriptURL/javascriptURL-execution-context-frame-location-htmldom-expected.txt
LayoutTests/http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-getAttribute-value-expected.txt
LayoutTests/http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-htmldom-expected.txt
LayoutTests/http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttribute-expected.txt
LayoutTests/http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNS-expected.txt
LayoutTests/http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNode-expected.txt
LayoutTests/http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNodeNS-expected.txt
LayoutTests/http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-getAttribute-value-expected.txt
LayoutTests/http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-htmldom-expected.txt
LayoutTests/http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttribute-expected.txt
LayoutTests/http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNS-expected.txt
LayoutTests/http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNode-expected.txt
LayoutTests/http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNodeNS-expected.txt
LayoutTests/http/tests/security/xssAuditor/embed-tag-control-char-expected.txt
LayoutTests/http/tests/security/xssAuditor/object-embed-tag-control-char-expected.txt
WebCore/Android.mk
WebCore/CMakeLists.txt
WebCore/ChangeLog
WebCore/GNUmakefile.am
WebCore/WebCore.exp.in
WebCore/WebCore.gypi
WebCore/WebCore.pro
WebCore/WebCore.vcproj/WebCore.vcproj
WebCore/WebCore.xcodeproj/project.pbxproj
WebCore/bindings/generic/BindingSecurity.h
WebCore/bindings/js/JSAttrCustom.cpp
WebCore/bindings/js/JSDOMBinding.cpp
WebCore/bindings/js/JSElementCustom.cpp
WebCore/bindings/js/JSHTMLFrameElementCustom.cpp
WebCore/bindings/objc/DOM.mm
WebCore/bindings/objc/DOMHTML.mm
WebCore/bindings/v8/custom/V8ElementCustom.cpp
WebCore/bindings/v8/custom/V8LocationCustom.cpp
WebCore/css/CSSHelper.cpp [deleted file]
WebCore/css/CSSHelper.h
WebCore/css/CSSParser.cpp
WebCore/dom/Document.cpp
WebCore/dom/Element.cpp
WebCore/html/HTMLAnchorElement.cpp
WebCore/html/HTMLBodyElement.cpp
WebCore/html/HTMLEmbedElement.cpp
WebCore/html/HTMLFrameElementBase.cpp
WebCore/html/HTMLImageElement.cpp
WebCore/html/HTMLImageLoader.cpp
WebCore/html/HTMLLinkElement.cpp
WebCore/html/HTMLMediaElement.cpp
WebCore/html/HTMLObjectElement.cpp
WebCore/html/HTMLTableElement.cpp
WebCore/html/HTMLTablePartElement.cpp
WebCore/html/HTMLVideoElement.cpp
WebCore/html/parser/CSSPreloadScanner.cpp
WebCore/html/parser/HTMLParserIdioms.cpp
WebCore/html/parser/HTMLPreloadScanner.cpp
WebCore/loader/FormSubmission.cpp
WebCore/loader/ImageLoader.cpp
WebCore/platform/chromium/ClipboardChromium.cpp
WebCore/platform/chromium/PasteboardChromium.cpp
WebCore/platform/qt/ClipboardQt.cpp
WebCore/platform/win/ClipboardWin.cpp
WebCore/rendering/HitTestResult.cpp
WebCore/rendering/style/RenderStyle.h
WebCore/svg/SVGAElement.cpp
WebCore/svg/SVGImageLoader.cpp
WebCore/wml/WMLAElement.cpp
WebCore/wml/WMLImageLoader.cpp
WebKit/mac/ChangeLog
WebKit/mac/DOM/WebDOMOperations.mm
WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm
WebKit/win/ChangeLog
WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp

index 7e8ac7d..0d1d032 100644 (file)
@@ -1,3 +1,50 @@
+2010-09-30  Darin Adler  <darin@apple.com>
+
+        Reviewed by Sam Weinig.
+
+        Remove remaining calls to deprecatedParseURL
+        https://bugs.webkit.org/show_bug.cgi?id=26599
+
+        * fast/replaced/object-param-spaces-expected.txt: Copied from
+        LayoutTests/fast/replaced/object-param-url-control-char-expected.txt.
+        * fast/replaced/object-param-spaces.html: Copied from
+        LayoutTests/fast/replaced/object-param-url-control-char.html.
+        * fast/replaced/object-param-url-control-char-expected.txt: Removed.
+        * fast/replaced/object-param-url-control-char.html: Removed.
+        Changed this test to expect HTML standard space trimming, but not the WebKit-only
+        control character stripping we had historically.
+
+        * fast/url/query-expected.txt: Updated to expect the test to pass.
+
+        * fast/url/script-tests/segments-from-data-url.js: Changed expected result to not
+        expect stripping of newline characters.
+        * fast/url/script-tests/segments.js: Ditto.
+        * fast/url/segments-expected.txt: Updated results.
+        * fast/url/segments-from-data-url-expected.txt: Ditto.
+
+        * http/tests/security/javascriptURL/javascriptURL-execution-context-frame-location-htmldom-expected.txt:
+        * http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-getAttribute-value-expected.txt:
+        * http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-htmldom-expected.txt:
+        * http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttribute-expected.txt:
+        * http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNS-expected.txt:
+        * http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNode-expected.txt:
+        * http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNodeNS-expected.txt:
+        * http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-getAttribute-value-expected.txt:
+        * http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-htmldom-expected.txt:
+        * http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttribute-expected.txt:
+        * http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNS-expected.txt:
+        * http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNode-expected.txt:
+        * http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNodeNS-expected.txt:
+        These tests had multiple test cases with embedded control characters. These URLs no
+        longer qualify as javascript URLs, so there are no longer any unsafe JavaScript log
+        messages for them. The test cases themselves need not be changed at this time.
+
+        * http/tests/security/xssAuditor/embed-tag-control-char-expected.txt:
+        * http/tests/security/xssAuditor/object-embed-tag-control-char-expected.txt:
+        Updated expected results to reflect the fact that the control character is no longer
+        stripped from the URL in these cases. The test is still valid, but these are not as
+        interesting test cases any more since control characters do not have special handling.
+
 2010-09-30  Martin Robinson  <mrobinson@igalia.com>
 
         Unskip some tests that are passing and rebaseline a couple others.
diff --git a/LayoutTests/fast/replaced/object-param-spaces-expected.txt b/LayoutTests/fast/replaced/object-param-spaces-expected.txt
new file mode 100644 (file)
index 0000000..e283a88
--- /dev/null
@@ -0,0 +1,4 @@
+
+This test verifies that a URL specified in a <param> of an <object> is parsed the same as if it was specified as the data attribute of the <object>. Specifically, this verifies that leading/trailing whitespace are stripped.
+
+PASS
@@ -8,7 +8,7 @@
             document.addEventListener("beforeload", function(event) {
                 var console = document.getElementById("console");
 
-                if (event.url == "scheme://url-with-control-char/")
+                if (event.url == "scheme://url-with-leading-and-trailing-space/")
                     console.innerHTML = "PASS";
                 else
                     console.innerHTML = "FAIL";
@@ -22,9 +22,9 @@
     </head>
     <body>
         <object width="0" height="0" type="application/x-webkit-test-netscape">
-            <param name="movie" value=" \1c  uRl('scheme://url-with-\ 5control-char/') \1e ">
+            <param name="movie" value="  scheme://url-with-leading-and-trailing-space/     ">
         </object>
-        <p>This test verifies that a URL specified in a &lt;param&gt; of an &lt;object&gt; is parsed the same as if it was specified as the data attribute of the &lt;object&gt;. Specifically, this verifies that control characters and leading/trailing whitespace are stripped, and that a resource surrounded with url('') is understood.</p>
+        <p>This test verifies that a URL specified in a &lt;param&gt; of an &lt;object&gt; is parsed the same as if it was specified as the data attribute of the &lt;object&gt;. Specifically, this verifies that leading/trailing whitespace are stripped.</p>
         <div id="console"></div>
     </body>
 </html>
diff --git a/LayoutTests/fast/replaced/object-param-url-control-char-expected.txt b/LayoutTests/fast/replaced/object-param-url-control-char-expected.txt
deleted file mode 100644 (file)
index 775aa69..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-
-This test verifies that a URL specified in a <param> of an <object> is parsed the same as if it was specified as the data attribute of the <object>. Specifically, this verifies that control characters and leading/trailing whitespace are stripped, and that a resource surrounded with url('') is understood.
-
-PASS
index 9941416..e4816a5 100644 (file)
@@ -5,7 +5,7 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 PASS canonicalize('http://www.example.com/?foo=bar') is 'http://www.example.com/?foo=bar'
 PASS canonicalize('http://www.example.com/?as?df') is 'http://www.example.com/?as?df'
-FAIL canonicalize('http://www.example.com/?\x02hello\7f bye') should be http://www.example.com/?%02hello%7F%20bye. Was http://www.example.com/?hello%7F%20bye.
+PASS canonicalize('http://www.example.com/?\x02hello\7f bye') is 'http://www.example.com/?%02hello%7F%20bye'
 PASS canonicalize('http://www.example.com/?%40%41123') is 'http://www.example.com/?%40%41123'
 PASS canonicalize('http://www.example.com/?q=你好') is 'http://www.example.com/?q=%26%2320320%3B%26%2322909%3B'
 PASS canonicalize('http://www.example.com/?q=\ud800\ud800') is 'http://www.example.com/?q=%26%2355296%3B%26%2355296%3B'
index 8fc3013..5c4ae02 100644 (file)
@@ -14,7 +14,7 @@ cases = [
   ["http://f:00000000000000000000080/c",     ["http:","f","0","/c","",""]],
   ["http://f:b/c",                           [":","","0","","",""]],
   ["http://f: /c",                           [":","","0","","",""]],
-  ["http://f:\\n/c",                         ["http:","f","0","/c","",""]],
+  ["http://f:\\n/c",                         [":","","0","","",""]],
   ["http://f:fifty-two/c",                   [":","","0","","",""]],
   ["http://f:999999/c",                      [":","","0","","",""]],
   ["http://f: 21 / b ? d # e ",              [":","","0","","",""]],
index c0c6fa1..c621da1 100644 (file)
@@ -14,7 +14,7 @@ cases = [
   ["http://f:00000000000000000000080/c",     ["http:","f","0","/c","",""]],
   ["http://f:b/c",                           [":","","0","","",""]],
   ["http://f: /c",                           [":","","0","","",""]],
-  ["http://f:\\n/c",                         ["http:","f","0","/c","",""]],
+  ["http://f:\\n/c",                         [":","","0","","",""]],
   ["http://f:fifty-two/c",                   [":","","0","","",""]],
   ["http://f:999999/c",                      [":","","0","","",""]],
   ["http://f: 21 / b ? d # e ",              [":","","0","","",""]],
index 3833f36..2da6912 100644 (file)
@@ -15,7 +15,7 @@ PASS segments('http://f:00000000000000/c') is '["http:","f","0","/c","",""]'
 FAIL segments('http://f:00000000000000000000080/c') should be ["http:","f","0","/c","",""]. Was ["http:","f","80","/c","",""].
 PASS segments('http://f:b/c') is '[":","","0","","",""]'
 PASS segments('http://f: /c') is '[":","","0","","",""]'
-PASS segments('http://f:\n/c') is '["http:","f","0","/c","",""]'
+PASS segments('http://f:\n/c') is '[":","","0","","",""]'
 PASS segments('http://f:fifty-two/c') is '[":","","0","","",""]'
 FAIL segments('http://f:999999/c') should be [":","","0","","",""]. Was ["http:","f","65535","/c","",""].
 PASS segments('http://f: 21 / b ? d # e ') is '[":","","0","","",""]'
index 5d102ef..6e1853e 100644 (file)
@@ -15,7 +15,7 @@ PASS segments('http://f:00000000000000/c') is '["http:","f","0","/c","",""]'
 FAIL segments('http://f:00000000000000000000080/c') should be ["http:","f","0","/c","",""]. Was ["http:","f","80","/c","",""].
 PASS segments('http://f:b/c') is '[":","","0","","",""]'
 PASS segments('http://f: /c') is '[":","","0","","",""]'
-PASS segments('http://f:\n/c') is '["http:","f","0","/c","",""]'
+PASS segments('http://f:\n/c') is '[":","","0","","",""]'
 PASS segments('http://f:fifty-two/c') is '[":","","0","","",""]'
 FAIL segments('http://f:999999/c') should be [":","","0","","",""]. Was ["http:","f","65535","/c","",""].
 PASS segments('http://f: 21 / b ? d # e ') is '[":","","0","","",""]'
index 4c868f6..a168a94 100644 (file)
@@ -2,12 +2,6 @@ CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http
 
 CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-frame-location-htmldom.html. Domains, protocols and ports must match.
 
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-frame-location-htmldom.html. Domains, protocols and ports must match.
-
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-frame-location-htmldom.html. Domains, protocols and ports must match.
-
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-frame-location-htmldom.html. Domains, protocols and ports must match.
-
 
 
 --------
index 2ebd586..8851e51 100644 (file)
@@ -2,12 +2,6 @@ CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http
 
 CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-frame-src-getAttribute-value.html. Domains, protocols and ports must match.
 
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-frame-src-getAttribute-value.html. Domains, protocols and ports must match.
-
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-frame-src-getAttribute-value.html. Domains, protocols and ports must match.
-
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-frame-src-getAttribute-value.html. Domains, protocols and ports must match.
-
 
 
 --------
index 9d835af..26b49c2 100644 (file)
@@ -2,12 +2,6 @@ CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http
 
 CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-frame-src-htmldom.html. Domains, protocols and ports must match.
 
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-frame-src-htmldom.html. Domains, protocols and ports must match.
-
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-frame-src-htmldom.html. Domains, protocols and ports must match.
-
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-frame-src-htmldom.html. Domains, protocols and ports must match.
-
 
 
 --------
index 74d691e..248561d 100644 (file)
@@ -2,12 +2,6 @@ CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http
 
 CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttribute.html. Domains, protocols and ports must match.
 
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttribute.html. Domains, protocols and ports must match.
-
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttribute.html. Domains, protocols and ports must match.
-
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttribute.html. Domains, protocols and ports must match.
-
 
 
 --------
index bbffda8..5f3a4eb 100644 (file)
@@ -2,12 +2,6 @@ CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http
 
 CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNS.html. Domains, protocols and ports must match.
 
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNS.html. Domains, protocols and ports must match.
-
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNS.html. Domains, protocols and ports must match.
-
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNS.html. Domains, protocols and ports must match.
-
 
 
 --------
index 447a618..31fadeb 100644 (file)
@@ -2,12 +2,6 @@ CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http
 
 CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNode.html. Domains, protocols and ports must match.
 
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNode.html. Domains, protocols and ports must match.
-
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNode.html. Domains, protocols and ports must match.
-
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNode.html. Domains, protocols and ports must match.
-
 
 
 --------
index 1c8f812..0b449de 100644 (file)
@@ -2,12 +2,6 @@ CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http
 
 CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNodeNS.html. Domains, protocols and ports must match.
 
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNodeNS.html. Domains, protocols and ports must match.
-
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNodeNS.html. Domains, protocols and ports must match.
-
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNodeNS.html. Domains, protocols and ports must match.
-
 
 
 --------
index 04318b5..0d659b0 100644 (file)
@@ -2,12 +2,6 @@ CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http
 
 CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-iframe-src-getAttribute-value.html. Domains, protocols and ports must match.
 
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-iframe-src-getAttribute-value.html. Domains, protocols and ports must match.
-
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-iframe-src-getAttribute-value.html. Domains, protocols and ports must match.
-
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-iframe-src-getAttribute-value.html. Domains, protocols and ports must match.
-
 This test passes as long as the word 'FAIL' and an accompanying message do not appear in the subframe.
 
 
index 6c7b325..f64081c 100644 (file)
@@ -2,12 +2,6 @@ CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http
 
 CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-iframe-src-htmldom.html. Domains, protocols and ports must match.
 
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-iframe-src-htmldom.html. Domains, protocols and ports must match.
-
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-iframe-src-htmldom.html. Domains, protocols and ports must match.
-
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-iframe-src-htmldom.html. Domains, protocols and ports must match.
-
 This test passes as long as the word 'FAIL' and an accompanying message do not appear in the subframe.
 
 
index 9fcd1fe..c3fe3f4 100644 (file)
@@ -2,12 +2,6 @@ CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http
 
 CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttribute.html. Domains, protocols and ports must match.
 
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttribute.html. Domains, protocols and ports must match.
-
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttribute.html. Domains, protocols and ports must match.
-
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttribute.html. Domains, protocols and ports must match.
-
 This test passes as long as the word 'FAIL' and an accompanying message do not appear in the subframe.
 
 
index 87e2ddb..68c39a6 100644 (file)
@@ -2,12 +2,6 @@ CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http
 
 CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNS.html. Domains, protocols and ports must match.
 
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNS.html. Domains, protocols and ports must match.
-
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNS.html. Domains, protocols and ports must match.
-
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNS.html. Domains, protocols and ports must match.
-
 This test passes as long as the word 'FAIL' and an accompanying message do not appear in the subframe.
 
 
index 2237ba4..2ff536f 100644 (file)
@@ -2,12 +2,6 @@ CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http
 
 CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNode.html. Domains, protocols and ports must match.
 
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNode.html. Domains, protocols and ports must match.
-
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNode.html. Domains, protocols and ports must match.
-
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNode.html. Domains, protocols and ports must match.
-
 This test passes as long as the word 'FAIL' and an accompanying message do not appear in the subframe.
 
 
index db12bd1..08d40b5 100644 (file)
@@ -2,12 +2,6 @@ CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http
 
 CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNodeNS.html. Domains, protocols and ports must match.
 
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNodeNS.html. Domains, protocols and ports must match.
-
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNodeNS.html. Domains, protocols and ports must match.
-
-CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe.html from frame with URL http://127.0.0.1:8000/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNodeNS.html. Domains, protocols and ports must match.
-
 This test passes as long as the word 'FAIL' and an accompanying message do not appear in the subframe.
 
 
index 0be2156..9150199 100644 (file)
@@ -1,3 +1,3 @@
-CONSOLE MESSAGE: line 1: Refused to load an object. URL found within request: "http://127.0.0.1:8000/security/xssAuditor/resources/dummy.swf".
+CONSOLE MESSAGE: line 1: Refused to load an object. URL found within request: "http://127.0.0.1:8000/security/xssAuditor/resources/dummy.swf\ 5".
 
 
index 0b106c4..b8cec5c 100644 (file)
@@ -1,5 +1,5 @@
-CONSOLE MESSAGE: line 1: Refused to load an object. URL found within request: "http://127.0.0.1:8000/security/xssAuditor/resources/dummy.swf".
+CONSOLE MESSAGE: line 1: Refused to load an object. URL found within request: "http://127.0.0.1:8000/security/xssAuditor/resources/dummy.swf\ 5".
 
-CONSOLE MESSAGE: line 1: Refused to load an object. URL found within request: "http://127.0.0.1:8000/security/xssAuditor/resources/dummy.swf".
+CONSOLE MESSAGE: line 1: Refused to load an object. URL found within request: "http://127.0.0.1:8000/security/xssAuditor/resources/dummy.swf\ 5".
 
 
index 7047e7e..bef9a85 100644 (file)
@@ -38,7 +38,6 @@ LOCAL_SRC_FILES := \
        css/CSSFontSelector.cpp \
        css/CSSFunctionValue.cpp \
        css/CSSGradientValue.cpp \
-       css/CSSHelper.cpp \
        css/CSSImageGeneratorValue.cpp \
        css/CSSImageValue.cpp \
        css/CSSImportRule.cpp \
index 6e32ddf..5c4df82 100644 (file)
@@ -725,7 +725,6 @@ SET(WebCore_SOURCES
     css/CSSFontSelector.cpp
     css/CSSFunctionValue.cpp
     css/CSSGradientValue.cpp
-    css/CSSHelper.cpp
     css/CSSImageGeneratorValue.cpp
     css/CSSImageValue.cpp
     css/CSSImportRule.cpp
index 21353e3..c5f6754 100644 (file)
@@ -1,3 +1,121 @@
+2010-09-30  Darin Adler  <darin@apple.com>
+
+        Reviewed by Sam Weinig.
+
+        Remove remaining calls to deprecatedParseURL
+        https://bugs.webkit.org/show_bug.cgi?id=26599
+
+        Test: fast/replaced/object-param-spaces.html
+
+        * css/CSSHelper.cpp: Removed.
+        * css/CSSHelper.h: Removed deprecatedParseURL.
+
+        * html/parser/HTMLParserIdioms.cpp:
+        (WebCore::stripLeadingAndTrailingHTMLSpaces):
+        Fixed bug where the function would turn the null string into the empty string.
+        Fixed bug where the function would not strip all trailing spaces.
+
+        * html/parser/CSSPreloadScanner.cpp:
+        (WebCore::CSSPreloadScanner::CSSPreloadScanner): Initialize m_state
+        instead of calling the reset function.
+        (WebCore::CSSPreloadScanner::scan): Tweaked coding style.
+        (WebCore::CSSPreloadScanner::tokenize): Use isHTMLSpace instead of
+        an identical local function named isWhitespace.
+        (WebCore::parseCSSStringOrURL): Added. This function does what
+        deprecatedParseURL did before, and this is the only place in WebKit
+        that needs it. The code implements the rules for a string or URL
+        token. The real CSS parser does this with flex and the code to hook
+        flex up to yacc, so the function is not needed there.
+        (WebCore::CSSPreloadScanner::emitRule): Streamlined the code a bit
+        and mae it call parseCSSStringOrURL.
+
+        * bindings/generic/BindingSecurity.h:
+        (WebCore::::allowSettingFrameSrcToJavascriptUrl):
+        * bindings/js/JSDOMBinding.cpp:
+        (WebCore::allowSettingSrcToJavascriptURL):
+        * bindings/js/JSHTMLFrameElementCustom.cpp:
+        (WebCore::allowSettingJavascriptURL):
+        * bindings/objc/DOM.mm:
+        (-[DOMElement _getURLAttribute:]):
+        * bindings/objc/DOMHTML.mm:
+        (-[DOMHTMLDocument _createDocumentFragmentWithMarkupString:baseURLString:]):
+        * dom/Document.cpp:
+        (WebCore::Document::processBaseElement):
+        * dom/Element.cpp:
+        (WebCore::isAttributeToRemove):
+        (WebCore::Element::getURLAttribute):
+        (WebCore::Element::getNonEmptyURLAttribute):
+        * html/HTMLAnchorElement.cpp:
+        (WebCore::HTMLAnchorElement::defaultEventHandler):
+        (WebCore::HTMLAnchorElement::parseMappedAttribute):
+        (WebCore::HTMLAnchorElement::href):
+        * html/HTMLBodyElement.cpp:
+        (WebCore::HTMLBodyElement::parseMappedAttribute):
+        * html/HTMLEmbedElement.cpp:
+        (WebCore::HTMLEmbedElement::parseMappedAttribute):
+        * html/HTMLFrameElementBase.cpp:
+        (WebCore::HTMLFrameElementBase::parseMappedAttribute):
+        * html/HTMLImageElement.cpp:
+        (WebCore::HTMLImageElement::parseMappedAttribute):
+        * html/HTMLImageLoader.cpp:
+        (WebCore::HTMLImageLoader::sourceURI):
+        * html/HTMLLinkElement.cpp:
+        (WebCore::HTMLLinkElement::parseMappedAttribute):
+        * html/HTMLMediaElement.cpp:
+        * html/HTMLObjectElement.cpp:
+        (WebCore::HTMLObjectElement::parseMappedAttribute):
+        (WebCore::HTMLObjectElement::parametersForPlugin):
+        * html/HTMLTableElement.cpp:
+        (WebCore::HTMLTableElement::parseMappedAttribute):
+        * html/HTMLTablePartElement.cpp:
+        (WebCore::HTMLTablePartElement::parseMappedAttribute):
+        * html/parser/HTMLPreloadScanner.cpp:
+        (WebCore::HTMLNames::PreloadTask::setUrlToLoad):
+        * loader/FormSubmission.cpp:
+        (WebCore::FormSubmission::Attributes::parseAction):
+        * platform/chromium/ClipboardChromium.cpp:
+        (WebCore::ClipboardChromium::declareAndWriteDragImage):
+        * platform/chromium/PasteboardChromium.cpp:
+        (WebCore::Pasteboard::writeImage):
+        * platform/qt/ClipboardQt.cpp:
+        (WebCore::ClipboardQt::declareAndWriteDragImage):
+        * platform/win/ClipboardWin.cpp:
+        (WebCore::ClipboardWin::declareAndWriteDragImage):
+        * rendering/HitTestResult.cpp:
+        (WebCore::HitTestResult::absoluteImageURL):
+        (WebCore::HitTestResult::absoluteMediaURL):
+        (WebCore::HitTestResult::absoluteLinkURL):
+        * svg/SVGAElement.cpp:
+        (WebCore::SVGAElement::defaultEventHandler):
+        * svg/SVGImageLoader.cpp:
+        (WebCore::SVGImageLoader::sourceURI):
+        * wml/WMLAElement.cpp:
+        (WebCore::WMLAElement::defaultEventHandler):
+        * wml/WMLImageLoader.cpp:
+        (WebCore::WMLImageLoader::sourceURI):
+        Call stripLeadingAndTrailingHTMLSpaces instead of deprecatedParseURL.
+
+        * WebCore.exp.in: Updated.
+
+        * Android.mk: Removed CSSHelper.cpp.
+        * CMakeLists.txt: Ditto.
+        * GNUmakefile.am: Ditto.
+        * WebCore.gypi: Ditto.
+        * WebCore.pro: Ditto.
+        * WebCore.vcproj/WebCore.vcproj: Ditto.
+        * WebCore.xcodeproj/project.pbxproj: Ditto.
+
+        * bindings/js/JSAttrCustom.cpp:
+        * bindings/js/JSElementCustom.cpp:
+        * bindings/v8/custom/V8ElementCustom.cpp:
+        * bindings/v8/custom/V8LocationCustom.cpp:
+        * css/CSSParser.cpp:
+        * html/HTMLMediaElement.cpp:
+        * html/HTMLVideoElement.cpp:
+        * loader/ImageLoader.cpp:
+        * rendering/style/RenderStyle.h:
+        Removed unneeded include of CSSHelper.h.
+
 2010-09-30  Alexey Marinichev  <amarinichev@chromium.org>
 
         Reviewed by Chris Marrin.
index 6bea52f..5118f63 100644 (file)
@@ -912,7 +912,6 @@ webcore_sources += \
        WebCore/css/CSSFunctionValue.h \
        WebCore/css/CSSGradientValue.cpp \
        WebCore/css/CSSGradientValue.h \
-       WebCore/css/CSSHelper.cpp \
        WebCore/css/CSSHelper.h \
        WebCore/css/CSSImageGeneratorValue.cpp \
        WebCore/css/CSSImageGeneratorValue.h \
index 1f71d00..4078480 100644 (file)
@@ -137,6 +137,7 @@ __ZN3JSC8Bindings8Instance16newRuntimeObjectEPNS_9ExecStateE
 __ZN3WTF10StringImplcvP8NSStringEv
 __ZN3WTF6StringC1EP8NSString
 __ZN3WTF6StringC1EPK10__CFString
+__ZN7WebCore10JSDocument6s_infoE
 __ZN7WebCore10MouseEventC1ERKN3WTF12AtomicStringEbbNS1_10PassRefPtrINS_9DOMWindowEEEiiiiibbbbtNS5_INS_11EventTargetEEENS5_INS_9ClipboardEEEb
 __ZN7WebCore10ScrollView20setCanHaveScrollbarsEb
 __ZN7WebCore10ScrollView24windowResizerRectChangedEv
@@ -280,6 +281,7 @@ __ZN7WebCore12iconDatabaseEv
 __ZN7WebCore13AXObjectCache11getOrCreateEPNS_12RenderObjectE
 __ZN7WebCore13AXObjectCache21gAccessibilityEnabledE
 __ZN7WebCore13AXObjectCache42gAccessibilityEnhancedUserInterfaceEnabledE
+__ZN7WebCore13HitTestResult13rectFromPointERKNS_8IntPointEjjjj
 __ZN7WebCore13HitTestResultC1ERKS0_
 __ZN7WebCore13HitTestResultD1Ev
 __ZN7WebCore13IdentifierRep3getEPKc
@@ -410,7 +412,6 @@ __ZN7WebCore17HistoryController26saveDocumentAndScrollStateEv
 __ZN7WebCore17nameForCursorTypeENS_6Cursor4TypeE
 __ZN7WebCore17openTemporaryFileEPKcRi
 __ZN7WebCore18SearchPopupMenuMacC1EPNS_15PopupMenuClientE
-__ZN7WebCore18deprecatedParseURLERKN3WTF6StringE
 __ZN7WebCore18isStartOfParagraphERKNS_15VisiblePositionE
 __ZN7WebCore18pluginScriptObjectEPN3JSC9ExecStateEPNS_13JSHTMLElementE
 __ZN7WebCore19AnimationController16resumeAnimationsEPNS_8DocumentE
@@ -526,6 +527,7 @@ __ZN7WebCore32contextMenuItemTagSmartCopyPasteEv
 __ZN7WebCore32plainTextToMallocAllocatedBufferEPKNS_5RangeERjbNS_20TextIteratorBehaviorE
 __ZN7WebCore33contextMenuItemTagTextReplacementEv
 __ZN7WebCore33setDefaultThreadViolationBehaviorENS_23ThreadViolationBehaviorENS_20ThreadViolationRoundE
+__ZN7WebCore33stripLeadingAndTrailingHTMLSpacesERKN3WTF6StringE
 __ZN7WebCore34contextMenuItemTagDefaultDirectionEv
 __ZN7WebCore35contextMenuItemTagShowSpellingPanelEb
 __ZN7WebCore35contextMenuItemTagShowSubstitutionsEb
@@ -689,8 +691,6 @@ __ZN7WebCore8Document26pageSizeAndMarginsInPixelsEiRNS_7IntSizeERiS3_S3_S3_
 __ZN7WebCore8Document27removeMediaCanStartListenerEPNS_21MediaCanStartListenerE
 __ZN7WebCore8Document36updateLayoutIgnorePendingStylesheetsEv
 __ZN7WebCore8Document4headEv
-__ZNK7WebCore8Document13nodesFromRectEiijjjjb
-__ZN7WebCore10JSDocument6s_infoE
 __ZN7WebCore8FormData6createEPKvm
 __ZN7WebCore8FormDataD1Ev
 __ZN7WebCore8IntPointC1ERK8_NSPoint
@@ -923,7 +923,6 @@ __ZNK7WebCore13HitTestResult18titleDisplayStringEv
 __ZNK7WebCore13HitTestResult5imageEv
 __ZNK7WebCore13HitTestResult5titleERNS_13TextDirectionE
 __ZNK7WebCore13HitTestResult9imageRectEv
-__ZN7WebCore13HitTestResult13rectFromPointERKNS_8IntPointEjjjj
 __ZNK7WebCore13ResourceErrorcvP7NSErrorEv
 __ZNK7WebCore14DocumentLoader10requestURLEv
 __ZNK7WebCore14DocumentLoader11frameLoaderEv
@@ -1057,6 +1056,7 @@ __ZNK7WebCore7IntRectcv7_NSRectEv
 __ZNK7WebCore7IntSizecv7_NSSizeEv
 __ZNK7WebCore8Document11completeURLERKN3WTF6StringE
 __ZNK7WebCore8Document13axObjectCacheEv
+__ZNK7WebCore8Document13nodesFromRectEiijjjjb
 __ZNK7WebCore8Document14getElementByIdERKN3WTF12AtomicStringE
 __ZNK7WebCore8Document16dashboardRegionsEv
 __ZNK7WebCore8Document20cacheDocumentElementEv
index e77ac55..e46491f 100644 (file)
             'css/CSSFunctionValue.h',
             'css/CSSGradientValue.cpp',
             'css/CSSGradientValue.h',
-            'css/CSSHelper.cpp',
             'css/CSSHelper.h',
             'css/CSSImageGeneratorValue.cpp',
             'css/CSSImageGeneratorValue.h',
index d17afc2..b6eaf8b 100644 (file)
@@ -615,7 +615,6 @@ SOURCES += \
     css/CSSFontFaceSource.cpp \
     css/CSSFunctionValue.cpp \
     css/CSSGradientValue.cpp \
-    css/CSSHelper.cpp \
     css/CSSImageValue.cpp \
     css/CSSImageGeneratorValue.cpp \
     css/CSSImportRule.cpp \
index 9126317..3d9c403 100644 (file)
                                >\r
                        </File>\r
                        <File\r
-                               RelativePath="..\css\CSSHelper.cpp"\r
-                               >\r
-                       </File>\r
-                       <File\r
                                RelativePath="..\css\CSSHelper.h"\r
                                >\r
                        </File>\r
index 4da1d29..0bc4b48 100644 (file)
                93E241FF0B2B4E4000C732A1 /* HTMLFrameOwnerElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 93E241FE0B2B4E4000C732A1 /* HTMLFrameOwnerElement.h */; settings = {ATTRIBUTES = (Private, ); }; };
                93E2425F0B2B509500C732A1 /* HTMLFrameOwnerElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 93E2425E0B2B509500C732A1 /* HTMLFrameOwnerElement.cpp */; };
                93E2A306123E9DC0009FE12A /* HTMLParserIdioms.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 93E2A304123E9DC0009FE12A /* HTMLParserIdioms.cpp */; };
-               93E2A307123E9DC0009FE12A /* HTMLParserIdioms.h in Headers */ = {isa = PBXBuildFile; fileRef = 93E2A305123E9DC0009FE12A /* HTMLParserIdioms.h */; };
+               93E2A307123E9DC0009FE12A /* HTMLParserIdioms.h in Headers */ = {isa = PBXBuildFile; fileRef = 93E2A305123E9DC0009FE12A /* HTMLParserIdioms.h */; settings = {ATTRIBUTES = (Private, ); }; };
                93E62D9B0985F41600E1B5E3 /* SystemTime.h in Headers */ = {isa = PBXBuildFile; fileRef = 93E62D990985F41600E1B5E3 /* SystemTime.h */; settings = {ATTRIBUTES = (Private, ); }; };
                93EB169509F880B00091F8FF /* WebCoreSystemInterface.mm in Sources */ = {isa = PBXBuildFile; fileRef = 93EB169409F880B00091F8FF /* WebCoreSystemInterface.mm */; };
                93EB169709F880C00091F8FF /* WebCoreSystemInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 93EB169609F880C00091F8FF /* WebCoreSystemInterface.h */; settings = {ATTRIBUTES = (Private, ); }; };
                BC74DA481013F468007987AD /* JSRGBColor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC74DA461013F468007987AD /* JSRGBColor.cpp */; };
                BC74DA491013F468007987AD /* JSRGBColor.h in Headers */ = {isa = PBXBuildFile; fileRef = BC74DA471013F468007987AD /* JSRGBColor.h */; };
                BC76AC130DD7AD5C00415F34 /* ParserUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = BC76AC110DD7AD5C00415F34 /* ParserUtilities.h */; };
-               BC772B3B0C4EA91E0083285F /* CSSHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC772B350C4EA91E0083285F /* CSSHelper.cpp */; };
                BC772B3C0C4EA91E0083285F /* CSSHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = BC772B360C4EA91E0083285F /* CSSHelper.h */; settings = {ATTRIBUTES = (Private, ); }; };
                BC772B3D0C4EA91E0083285F /* CSSParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC772B370C4EA91E0083285F /* CSSParser.cpp */; };
                BC772B3E0C4EA91E0083285F /* CSSParser.h in Headers */ = {isa = PBXBuildFile; fileRef = BC772B380C4EA91E0083285F /* CSSParser.h */; };
                BC74DA461013F468007987AD /* JSRGBColor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSRGBColor.cpp; sourceTree = "<group>"; };
                BC74DA471013F468007987AD /* JSRGBColor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSRGBColor.h; sourceTree = "<group>"; };
                BC76AC110DD7AD5C00415F34 /* ParserUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ParserUtilities.h; sourceTree = "<group>"; };
-               BC772B350C4EA91E0083285F /* CSSHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CSSHelper.cpp; sourceTree = "<group>"; };
                BC772B360C4EA91E0083285F /* CSSHelper.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CSSHelper.h; sourceTree = "<group>"; };
                BC772B370C4EA91E0083285F /* CSSParser.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CSSParser.cpp; sourceTree = "<group>"; };
                BC772B380C4EA91E0083285F /* CSSParser.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CSSParser.h; sourceTree = "<group>"; };
                                BC23E4E00DAACE0F009FDC91 /* CSSGradientValue.cpp */,
                                BC53C6910DA591140021EB5D /* CSSGradientValue.h */,
                                BCEA477E097CAAC80094C9E4 /* CSSGrammar.y */,
-                               BC772B350C4EA91E0083285F /* CSSHelper.cpp */,
                                BC772B360C4EA91E0083285F /* CSSHelper.h */,
                                BC23E76B0DAE88A9009FDC91 /* CSSImageGeneratorValue.cpp */,
                                BC23EE910DAED2BC009FDC91 /* CSSImageGeneratorValue.h */,
                                BC02A6460E09AAE9004B6D2B /* CSSFunctionValue.cpp in Sources */,
                                BC23E4E10DAACE0F009FDC91 /* CSSGradientValue.cpp in Sources */,
                                650F53DD09D15DDF00C9B0C8 /* CSSGrammar.cpp in Sources */,
-                               BC772B3B0C4EA91E0083285F /* CSSHelper.cpp in Sources */,
                                BC23E76C0DAE88A9009FDC91 /* CSSImageGeneratorValue.cpp in Sources */,
                                A80E6CFE0A1989CA007FB8C5 /* CSSImageValue.cpp in Sources */,
                                A80E6CEB0A1989CA007FB8C5 /* CSSImportRule.cpp in Sources */,
index 1124f7e..1ce556c 100644 (file)
 #define BindingSecurity_h
 
 #include "BindingSecurityBase.h"
-#include "CSSHelper.h"
 #include "Element.h"
 #include "Frame.h"
 #include "GenericBinding.h"
 #include "HTMLFrameElementBase.h"
 #include "HTMLNames.h"
+#include "HTMLParserIdioms.h"
 #include "Settings.h"
 
 namespace WebCore {
@@ -128,7 +128,7 @@ bool BindingSecurity<Binding>::allowPopUp(State<Binding>* state)
 template <class Binding>
 bool BindingSecurity<Binding>::allowSettingFrameSrcToJavascriptUrl(State<Binding>* state, HTMLFrameElementBase* frame, String value)
 {
-    if (protocolIsJavaScript(deprecatedParseURL(value))) {
+    if (protocolIsJavaScript(stripLeadingAndTrailingHTMLSpaces(value))) {
         Node* contentDoc = frame->contentDocument();
         if (contentDoc && !checkNodeSecurity(state, contentDoc))
             return false;
index 998ecad..227582d 100644 (file)
@@ -29,7 +29,6 @@
 #include "config.h"
 #include "JSAttr.h"
 
-#include "CSSHelper.h"
 #include "Document.h"
 #include "Element.h"
 #include "HTMLNames.h"
index 74c8131..d7c086a 100644 (file)
@@ -24,7 +24,6 @@
 #include "debugger/DebuggerCallFrame.h"
 
 #include "ActiveDOMObject.h"
-#include "CSSHelper.h"
 #include "DOMCoreException.h"
 #include "DOMObjectHashTableMap.h"
 #include "Document.h"
@@ -648,7 +647,7 @@ bool shouldAllowNavigation(ExecState* exec, Frame* frame)
 
 bool allowSettingSrcToJavascriptURL(ExecState* exec, Element* element, const String& name, const String& value)
 {
-    if ((element->hasTagName(iframeTag) || element->hasTagName(frameTag)) && equalIgnoringCase(name, "src") && protocolIsJavaScript(deprecatedParseURL(value))) {
+    if ((element->hasTagName(iframeTag) || element->hasTagName(frameTag)) && equalIgnoringCase(name, "src") && protocolIsJavaScript(stripLeadingAndTrailingHTMLSpaces(value))) {
           Document* contentDocument = static_cast<HTMLFrameElementBase*>(element)->contentDocument();
           if (contentDocument && !checkNodeSecurity(exec, contentDocument))
               return false;
index f691620..3bfe110 100644 (file)
@@ -30,7 +30,6 @@
 #include "config.h"
 #include "JSElement.h"
 
-#include "CSSHelper.h"
 #include "Document.h"
 #include "ExceptionCode.h"
 #include "HTMLFrameElementBase.h"
index 345cffe..5994167 100644 (file)
 #include "config.h"
 #include "JSHTMLFrameElement.h"
 
-#include "CSSHelper.h"
 #include "Document.h"
 #include "HTMLFrameElement.h"
 #include "HTMLNames.h"
+#include "HTMLParserIdioms.h"
 #include "JSDOMBinding.h"
 
 using namespace JSC;
@@ -43,7 +43,7 @@ using namespace HTMLNames;
 
 static inline bool allowSettingJavascriptURL(ExecState* exec, HTMLFrameElement* imp, const String& value)
 {
-    if (protocolIsJavaScript(deprecatedParseURL(value))) {
+    if (protocolIsJavaScript(stripLeadingAndTrailingHTMLSpaces(value))) {
         Document* contentDocument = imp->contentDocument();
         if (contentDocument && !checkNodeSecurity(exec, contentDocument))
             return false;
index c526123..44bd653 100644 (file)
@@ -37,6 +37,7 @@
 #import "Frame.h"
 #import "HTMLElement.h"
 #import "HTMLNames.h"
+#import "HTMLParserIdioms.h"
 #import "Image.h"
 #import "NodeFilter.h"
 #import "RenderImage.h"
@@ -469,7 +470,7 @@ id <DOMEventTarget> kit(WebCore::EventTarget* eventTarget)
     ASSERT(name);
     WebCore::Element* element = core(self);
     ASSERT(element);
-    return element->document()->completeURL(deprecatedParseURL(element->getAttribute(name)));
+    return element->document()->completeURL(stripLeadingAndTrailingHTMLSpaces(element->getAttribute(name)));
 }
 
 - (BOOL)isFocused
index 884a5b0..a2277d2 100644 (file)
@@ -40,6 +40,7 @@
 #import "HTMLCollection.h"
 #import "HTMLDocument.h"
 #import "HTMLInputElement.h"
+#import "HTMLParserIdioms.h"
 #import "HTMLSelectElement.h"
 #import "HTMLTextAreaElement.h"
 #import "Page.h"
@@ -70,7 +71,7 @@
 
 - (DOMDocumentFragment *)_createDocumentFragmentWithMarkupString:(NSString *)markupString baseURLString:(NSString *)baseURLString
 {
-    NSURL *baseURL = core(self)->completeURL(WebCore::deprecatedParseURL(baseURLString));
+    NSURL *baseURL = core(self)->completeURL(WebCore::stripLeadingAndTrailingHTMLSpaces(baseURLString));
     return [self createDocumentFragmentWithMarkupString:markupString baseURL:baseURL];
 }
 
index 3f6cd6a..02fc457 100644 (file)
@@ -32,7 +32,6 @@
 #include "V8Element.h"
 
 #include "Attr.h"
-#include "CSSHelper.h"
 #include "Document.h"
 #include "Element.h"
 #include "ExceptionCode.h"
index 6068aa2..7103eaa 100644 (file)
@@ -31,7 +31,6 @@
 #include "config.h"
 #include "V8Location.h"
 
-#include "CSSHelper.h"
 #include "Document.h"
 #include "Frame.h"
 #include "FrameLoader.h"
diff --git a/WebCore/css/CSSHelper.cpp b/WebCore/css/CSSHelper.cpp
deleted file mode 100644 (file)
index e0ce7c3..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
- * Copyright (C) 2006, 2008 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#include "config.h"
-#include "CSSHelper.h"
-
-#include "PlatformString.h"
-#include <wtf/Vector.h>
-
-namespace WebCore {
-
-String deprecatedParseURL(const String& url)
-{
-    StringImpl* i = url.impl();
-    if (!i)
-        return url;
-
-    int length = i->length();
-
-    int o = 0;
-    int l = length;
-
-    while (0 < l && (*i)[o] <= ' ') {
-        ++o;
-        --l;
-    }
-    while (l > 0 && (*i)[o + l - 1] <= ' ')
-        --l;
-
-    if (l >= 5
-            && ((*i)[o] == 'u' || (*i)[o] == 'U')
-            && ((*i)[o + 1] == 'r' || (*i)[o + 1] == 'R')
-            && ((*i)[o + 2] == 'l' || (*i)[o + 2] == 'L')
-            && (*i)[o + 3] == '('
-            && (*i)[o + l - 1] == ')') {
-        o += 4;
-        l -= 5;
-    }
-
-    while (0 < l && (*i)[o] <= ' ') {
-        ++o;
-        --l;
-    }
-    while (l > 0 && (*i)[o + l - 1] <= ' ')
-        --l;
-
-    if (l >= 2 && (*i)[o] == (*i)[o + l - 1] && ((*i)[o] == '\'' || (*i)[o] == '\"')) {
-        o++;
-        l -= 2;
-    }
-
-    while (0 < l && (*i)[o] <= ' ') {
-        ++o;
-        --l;
-    }
-    while (l > 0 && (*i)[o + l - 1] <= ' ')
-        --l;
-
-    const UChar* characters = i->characters();
-
-    // Optimize for the likely case there there is nothing to strip.
-    if (l == length) {
-        int k;
-        // If the URL has any control characters in it, we have to strip them.
-        // '\r' (ascii value 13) is the largest control character.
-        for (k = 0; k < length; k++) {
-            if (characters[k] <= '\r')
-                break;
-        }
-        if (k == length)
-            return url;
-    }
-
-    Vector<UChar, 2048> buffer(l);
-
-    int nl = 0;
-    for (int k = o; k < o + l; k++) {
-        UChar c = characters[k];
-        if (c > '\r')
-            buffer[nl++] = c;
-    }
-
-    return String(buffer.data(), nl);
-}
-
-} // namespace WebCore
index ffd9166..6f2ffca 100644 (file)
 
 namespace WebCore {
 
-// Used in many inappropriate contexts throughout WebCore. Most callers should be using
-// stripLeadingAndTrailingHTMLSpaces instead.
-String deprecatedParseURL(const String&);
-
 // We always assume 96 CSS pixels in a CSS inch. This is the cold hard truth of the Web.
 // At high DPI, we may scale a CSS pixel, but the ratio of the CSS pixel to the so-called
 // "absolute" CSS length units like inch and pt is always fixed and never changes.
index 90bb494..6c2110f 100644 (file)
@@ -30,7 +30,6 @@
 #include "CSSCanvasValue.h"
 #include "CSSCharsetRule.h"
 #include "CSSCursorImageValue.h"
-#include "CSSHelper.h"
 #include "CSSImageValue.h"
 #include "CSSFontFaceRule.h"
 #include "CSSFontFaceSrcValue.h"
@@ -3760,6 +3759,8 @@ bool CSSParser::parseFontFaceUnicodeRange()
     return true;
 }
 
+// FIXME: This is the same as isHTMLSpace, so I think we should eliminate this function
+// and use that instead. Pedants who say CSS is not HTML need not apply.
 static inline bool isCSSWhitespace(UChar c)
 {
     return c == ' ' || c == '\t' || c == '\r' || c == '\n' || c == '\f';
index 9a923f4..a113d88 100644 (file)
@@ -32,7 +32,6 @@
 #include "Attr.h"
 #include "Attribute.h"
 #include "CDATASection.h"
-#include "CSSHelper.h"
 #include "CSSStyleSelector.h"
 #include "CSSStyleSheet.h"
 #include "CSSValueKeywords.h"
@@ -81,6 +80,7 @@
 #include "HTMLMapElement.h"
 #include "HTMLNameCollection.h"
 #include "HTMLNames.h"
+#include "HTMLParserIdioms.h"
 #include "HTMLStyleElement.h"
 #include "HTMLTitleElement.h"
 #include "HTTPParsers.h"
@@ -2240,7 +2240,7 @@ void Document::processBaseElement()
     // FIXME: Since this doesn't share code with completeURL it may not handle encodings correctly.
     KURL baseElementURL;
     if (href) {
-        String strippedHref = deprecatedParseURL(*href);
+        String strippedHref = stripLeadingAndTrailingHTMLSpaces(*href);
         if (!strippedHref.isEmpty() && (!frame() || frame()->script()->xssAuditor()->canSetBaseElementURL(*href)))
             baseElementURL = KURL(url(), strippedHref);
     }
index ff030ba..60a1063 100644 (file)
@@ -44,6 +44,7 @@
 #include "FrameView.h"
 #include "HTMLElement.h"
 #include "HTMLNames.h"
+#include "HTMLParserIdioms.h"
 #include "InspectorInstrumentation.h"
 #include "NodeList.h"
 #include "NodeRenderStyle.h"
@@ -680,7 +681,7 @@ static bool isEventHandlerAttribute(const QualifiedName& name)
 
 static bool isAttributeToRemove(const QualifiedName& name, const AtomicString& value)
 {    
-    return (name.localName().endsWith(hrefAttr.localName()) || name == srcAttr || name == actionAttr) && protocolIsJavaScript(deprecatedParseURL(value));       
+    return (name.localName().endsWith(hrefAttr.localName()) || name == srcAttr || name == actionAttr) && protocolIsJavaScript(stripLeadingAndTrailingHTMLSpaces(value));       
 }
 
 void Element::setAttributeMap(PassRefPtr<NamedNodeMap> list, FragmentScriptingPermission scriptingPermission)
@@ -1612,7 +1613,7 @@ KURL Element::getURLAttribute(const QualifiedName& name) const
             ASSERT(isURLAttribute(attribute));
     }
 #endif
-    return document()->completeURL(deprecatedParseURL(getAttribute(name)));
+    return document()->completeURL(stripLeadingAndTrailingHTMLSpaces(getAttribute(name)));
 }
 
 KURL Element::getNonEmptyURLAttribute(const QualifiedName& name) const
@@ -1623,7 +1624,7 @@ KURL Element::getNonEmptyURLAttribute(const QualifiedName& name) const
             ASSERT(isURLAttribute(attribute));
     }
 #endif
-    String value = deprecatedParseURL(getAttribute(name));
+    String value = stripLeadingAndTrailingHTMLSpaces(getAttribute(name));
     if (value.isEmpty())
         return KURL();
     return document()->completeURL(value);
index 8beccc2..2274f65 100644 (file)
@@ -30,6 +30,7 @@
 #include "FrameLoaderTypes.h"
 #include "HTMLImageElement.h"
 #include "HTMLNames.h"
+#include "HTMLParserIdioms.h"
 #include "KeyboardEvent.h"
 #include "MouseEvent.h"
 #include "Page.h"
@@ -145,7 +146,7 @@ void HTMLAnchorElement::defaultEventHandler(Event* event)
         }
 
         if (isLinkClick(event) && treatLinkAsLiveForEventType(eventType(event))) {
-            String url = deprecatedParseURL(getAttribute(hrefAttr));
+            String url = stripLeadingAndTrailingHTMLSpaces(getAttribute(hrefAttr));
             appendServerMapMousePosition(url, event);
             handleLinkClick(event, document(), url, getAttribute(targetAttr), hasRel(RelationNoReferrer));
             sendPings(document()->completeURL(url));
@@ -210,7 +211,7 @@ void HTMLAnchorElement::parseMappedAttribute(Attribute* attr)
         if (wasLink != isLink())
             setNeedsStyleRecalc();
         if (isLink()) {
-            String parsedURL = deprecatedParseURL(attr->value());
+            String parsedURL = stripLeadingAndTrailingHTMLSpaces(attr->value());
             if (document()->isDNSPrefetchEnabled()) {
                 if (protocolIs(parsedURL, "http") || protocolIs(parsedURL, "https") || parsedURL.startsWith("//"))
                     ResourceHandle::prepareForURL(document()->completeURL(parsedURL));
@@ -261,7 +262,7 @@ bool HTMLAnchorElement::draggable() const
 
 KURL HTMLAnchorElement::href() const
 {
-    return document()->completeURL(deprecatedParseURL(getAttribute(hrefAttr)));
+    return document()->completeURL(stripLeadingAndTrailingHTMLSpaces(getAttribute(hrefAttr)));
 }
 
 void HTMLAnchorElement::setHref(const AtomicString& value)
index 96132f3..3415eee 100644 (file)
@@ -33,6 +33,7 @@
 #include "FrameView.h"
 #include "HTMLFrameElementBase.h"
 #include "HTMLNames.h"
+#include "HTMLParserIdioms.h"
 #include "ScriptEventListener.h"
 
 namespace WebCore {
@@ -95,7 +96,7 @@ bool HTMLBodyElement::mapToEntry(const QualifiedName& attrName, MappedAttributeE
 void HTMLBodyElement::parseMappedAttribute(Attribute* attr)
 {
     if (attr->name() == backgroundAttr) {
-        String url = deprecatedParseURL(attr->value());
+        String url = stripLeadingAndTrailingHTMLSpaces(attr->value());
         if (!url.isEmpty())
             addCSSImageProperty(attr, CSSPropertyBackgroundImage, document()->completeURL(url).string());
     } else if (attr->name() == marginwidthAttr || attr->name() == leftmarginAttr) {
index 74df57d..70c60df 100644 (file)
@@ -25,7 +25,6 @@
 #include "HTMLEmbedElement.h"
 
 #include "Attribute.h"
-#include "CSSHelper.h"
 #include "CSSPropertyNames.h"
 #include "DocumentLoader.h"
 #include "Frame.h"
@@ -33,6 +32,7 @@
 #include "HTMLImageLoader.h"
 #include "HTMLNames.h"
 #include "HTMLObjectElement.h"
+#include "HTMLParserIdioms.h"
 #include "MainResourceLoader.h"
 #include "PluginDocument.h"
 #include "RenderEmbeddedObject.h"
@@ -97,9 +97,9 @@ void HTMLEmbedElement::parseMappedAttribute(Attribute* attr)
         if (!isImageType() && m_imageLoader)
             m_imageLoader.clear();
     } else if (attr->name() == codeAttr)
-        m_url = deprecatedParseURL(value.string());
+        m_url = stripLeadingAndTrailingHTMLSpaces(value.string());
     else if (attr->name() == srcAttr) {
-        m_url = deprecatedParseURL(value.string());
+        m_url = stripLeadingAndTrailingHTMLSpaces(value.string());
         if (renderer() && isImageType()) {
             if (!m_imageLoader)
                 m_imageLoader = adoptPtr(new HTMLImageLoader(this));
index 8cca465..f8d682c 100644 (file)
@@ -25,7 +25,6 @@
 #include "HTMLFrameElementBase.h"
 
 #include "Attribute.h"
-#include "CSSHelper.h"
 #include "Document.h"
 #include "EventNames.h"
 #include "FocusController.h"
@@ -35,6 +34,7 @@
 #include "FrameView.h"
 #include "HTMLFrameSetElement.h"
 #include "HTMLNames.h"
+#include "HTMLParserIdioms.h"
 #include "KURL.h"
 #include "Page.h"
 #include "RenderEmbeddedObject.h"
@@ -112,7 +112,7 @@ void HTMLFrameElementBase::openURL(bool lockHistory, bool lockBackForwardList)
 void HTMLFrameElementBase::parseMappedAttribute(Attribute* attr)
 {
     if (attr->name() == srcAttr)
-        setLocation(deprecatedParseURL(attr->value()));
+        setLocation(stripLeadingAndTrailingHTMLSpaces(attr->value()));
     else if (isIdAttributeName(attr->name())) {
         // Important to call through to base for the id attribute so the hasID bit gets set.
         HTMLFrameOwnerElement::parseMappedAttribute(attr);
index 29ea592..ad08ae9 100644 (file)
@@ -24,7 +24,6 @@
 #include "HTMLImageElement.h"
 
 #include "Attribute.h"
-#include "CSSHelper.h"
 #include "CSSPropertyNames.h"
 #include "CSSValueKeywords.h"
 #include "EventNames.h"
@@ -32,6 +31,7 @@
 #include "HTMLDocument.h"
 #include "HTMLFormElement.h"
 #include "HTMLNames.h"
+#include "HTMLParserIdioms.h"
 #include "RenderImage.h"
 #include "ScriptEventListener.h"
 
@@ -131,7 +131,7 @@ void HTMLImageElement::parseMappedAttribute(Attribute* attr)
         if (attr->value().string()[0] == '#')
             usemap = attr->value();
         else
-            usemap = document()->completeURL(deprecatedParseURL(attr->value())).string();
+            usemap = document()->completeURL(stripLeadingAndTrailingHTMLSpaces(attr->value())).string();
         setIsLink(!attr->isNull());
     } else if (attrName == ismapAttr)
         ismap = true;
index 6e31d9b..f620542 100644 (file)
 #include "config.h"
 #include "HTMLImageLoader.h"
 
-#include "CSSHelper.h"
 #include "CachedImage.h"
 #include "Element.h"
 #include "Event.h"
 #include "EventNames.h"
 #include "HTMLNames.h"
 #include "HTMLObjectElement.h"
+#include "HTMLParserIdioms.h"
 
 #if USE(JSC)
 #include "JSDOMWindowBase.h"
@@ -55,7 +55,7 @@ void HTMLImageLoader::dispatchLoadEvent()
 
 String HTMLImageLoader::sourceURI(const AtomicString& attr) const
 {
-    return deprecatedParseURL(attr);
+    return stripLeadingAndTrailingHTMLSpaces(attr);
 }
 
 void HTMLImageLoader::notifyFinished(CachedResource*)
index a372b9c..f826454 100644 (file)
@@ -25,7 +25,6 @@
 #include "HTMLLinkElement.h"
 
 #include "Attribute.h"
-#include "CSSHelper.h"
 #include "CachedCSSStyleSheet.h"
 #include "CachedResourceLoader.h"
 #include "Document.h"
@@ -34,6 +33,7 @@
 #include "FrameLoaderClient.h"
 #include "FrameTree.h"
 #include "HTMLNames.h"
+#include "HTMLParserIdioms.h"
 #include "MediaList.h"
 #include "MediaQueryEvaluator.h"
 #include "Page.h"
@@ -118,7 +118,7 @@ void HTMLLinkElement::parseMappedAttribute(Attribute* attr)
         tokenizeRelAttribute(attr->value(), m_relAttribute);
         process();
     } else if (attr->name() == hrefAttr) {
-        m_url = document()->completeURL(deprecatedParseURL(attr->value()));
+        m_url = document()->completeURL(stripLeadingAndTrailingHTMLSpaces(attr->value()));
         process();
     } else if (attr->name() == typeAttr) {
         m_type = attr->value();
index 00f448c..cd44ee1 100644 (file)
@@ -34,7 +34,6 @@
 #include "ClientRect.h"
 #include "ClientRectList.h"
 #include "ContentType.h"
-#include "CSSHelper.h"
 #include "CSSPropertyNames.h"
 #include "CSSValueKeywords.h"
 #include "Event.h"
index e9c6f60..e303b52 100644 (file)
@@ -25,7 +25,6 @@
 #include "HTMLObjectElement.h"
 
 #include "Attribute.h"
-#include "CSSHelper.h"
 #include "EventNames.h"
 #include "ExceptionCode.h"
 #include "Frame.h"
@@ -34,6 +33,7 @@
 #include "HTMLImageLoader.h"
 #include "HTMLNames.h"
 #include "HTMLParamElement.h"
+#include "HTMLParserIdioms.h"
 #include "MIMETypeRegistry.h"
 #include "RenderEmbeddedObject.h"
 #include "RenderImage.h"
@@ -77,7 +77,7 @@ void HTMLObjectElement::parseMappedAttribute(Attribute* attr)
         if (!isImageType() && m_imageLoader)
             m_imageLoader.clear();
     } else if (attr->name() == dataAttr) {
-        m_url = deprecatedParseURL(attr->value());
+        m_url = stripLeadingAndTrailingHTMLSpaces(attr->value());
         if (renderer()) {
             setNeedsWidgetUpdate(true);
             if (isImageType()) {
@@ -182,7 +182,7 @@ void HTMLObjectElement::parametersForPlugin(Vector<String>& paramNames, Vector<S
 
         // FIXME: url adjustment does not belong in this function.
         if (url.isEmpty() && urlParameter.isEmpty() && (equalIgnoringCase(name, "src") || equalIgnoringCase(name, "movie") || equalIgnoringCase(name, "code") || equalIgnoringCase(name, "url")))
-            urlParameter = deprecatedParseURL(p->value());
+            urlParameter = stripLeadingAndTrailingHTMLSpaces(p->value());
         // FIXME: serviceType calculation does not belong in this function.
         if (serviceType.isEmpty() && equalIgnoringCase(name, "type")) {
             serviceType = p->value();
index ef29bf6..74e06d1 100644 (file)
@@ -31,6 +31,7 @@
 #include "CSSValueKeywords.h"
 #include "ExceptionCode.h"
 #include "HTMLNames.h"
+#include "HTMLParserIdioms.h"
 #include "HTMLTableCaptionElement.h"
 #include "HTMLTableRowElement.h"
 #include "HTMLTableRowsCollection.h"
@@ -336,7 +337,7 @@ void HTMLTableElement::parseMappedAttribute(Attribute* attr)
             m_borderColorAttr = true;
         }
     } else if (attr->name() == backgroundAttr) {
-        String url = deprecatedParseURL(attr->value());
+        String url = stripLeadingAndTrailingHTMLSpaces(attr->value());
         if (!url.isEmpty())
             addCSSImageProperty(attr, CSSPropertyBackgroundImage, document()->completeURL(url).string());
     } else if (attr->name() == frameAttr) {
index 316ace4..dfaecca 100644 (file)
 #include "HTMLTablePartElement.h"
 
 #include "Attribute.h"
-#include "CSSHelper.h"
 #include "CSSPropertyNames.h"
 #include "CSSValueKeywords.h"
 #include "Document.h"
 #include "HTMLNames.h"
+#include "HTMLParserIdioms.h"
 
 namespace WebCore {
 
@@ -64,7 +64,7 @@ void HTMLTablePartElement::parseMappedAttribute(Attribute* attr)
     if (attr->name() == bgcolorAttr)
         addCSSColor(attr, CSSPropertyBackgroundColor, attr->value());
     else if (attr->name() == backgroundAttr) {
-        String url = deprecatedParseURL(attr->value());
+        String url = stripLeadingAndTrailingHTMLSpaces(attr->value());
         if (!url.isEmpty())
             addCSSImageProperty(attr, CSSPropertyBackgroundImage, document()->completeURL(url).string());
     } else if (attr->name() == bordercolorAttr) {
index 219bb85..bbda53a 100644 (file)
@@ -29,7 +29,6 @@
 #include "HTMLVideoElement.h"
 
 #include "Attribute.h"
-#include "CSSHelper.h"
 #include "CSSPropertyNames.h"
 #include "Chrome.h"
 #include "ChromeClient.h"
index 6ac923d..23364f9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
+ * Copyright (C) 2008, 2010 Apple Inc. All Rights Reserved.
  * Copyright (C) 2009 Torch Mobile, Inc. http://www.torchmobile.com/
  * Copyright (C) 2010 Google Inc. All Rights Reserved.
  *
 #include "config.h"
 #include "CSSPreloadScanner.h"
 
-#include "CSSHelper.h"
 #include "CachedCSSStyleSheet.h"
 #include "CachedResourceLoader.h"
 #include "Document.h"
+#include "HTMLParserIdioms.h"
 #include "HTMLToken.h"
 
 namespace WebCore {
 
-static inline bool isWhitespace(UChar c)
-{
-    return c == ' ' || c == '\n' || c == '\r' || c == '\t';
-}
-
 CSSPreloadScanner::CSSPreloadScanner(Document* document)
-    : m_document(document)
+    : m_state(Initial)
+    , m_document(document)
 {
-    reset();
 }
 
 void CSSPreloadScanner::reset()
@@ -59,10 +54,8 @@ void CSSPreloadScanner::scan(const HTMLToken& token, bool scanningBody)
     m_scanningBody = scanningBody;
 
     const HTMLToken::DataVector& characters = token.characters();
-    for (HTMLToken::DataVector::const_iterator iter = characters.begin();
-         iter != characters.end(); ++iter) {
+    for (HTMLToken::DataVector::const_iterator iter = characters.begin(); iter != characters.end(); ++iter)
         tokenize(*iter);
-    }
 }
 
 inline void CSSPreloadScanner::tokenize(UChar c)
@@ -104,7 +97,7 @@ inline void CSSPreloadScanner::tokenize(UChar c)
             m_state = Initial;
         break;
     case Rule:
-        if (isWhitespace(c))
+        if (isHTMLSpace(c))
             m_state = AfterRule;
         else if (c == ';')
             m_state = Initial;
@@ -112,7 +105,7 @@ inline void CSSPreloadScanner::tokenize(UChar c)
             m_rule.append(c);
         break;
     case AfterRule:
-        if (isWhitespace(c))
+        if (isHTMLSpace(c))
             ;
         else if (c == ';')
             m_state = Initial;
@@ -122,7 +115,7 @@ inline void CSSPreloadScanner::tokenize(UChar c)
         }
         break;
     case RuleValue:
-        if (isWhitespace(c))
+        if (isHTMLSpace(c))
             m_state = AfterRuleValue;
         else if (c == ';') {
             emitRule();
@@ -131,7 +124,7 @@ inline void CSSPreloadScanner::tokenize(UChar c)
             m_ruleValue.append(c);
         break;
     case AfterRuleValue:
-        if (isWhitespace(c))
+        if (isHTMLSpace(c))
             ;
         else if (c == ';') {
             emitRule();
@@ -144,14 +137,56 @@ inline void CSSPreloadScanner::tokenize(UChar c)
     }
 }
 
+static String parseCSSStringOrURL(const UChar* characters, size_t length)
+{
+    size_t offset = 0;
+    size_t reducedLength = length;
+
+    while (reducedLength && isHTMLSpace(characters[offset])) {
+        ++offset;
+        --reducedLength;
+    }
+    while (reducedLength && isHTMLSpace(characters[offset + reducedLength - 1]))
+        --reducedLength;
+
+    if (reducedLength >= 5
+            && (characters[offset] == 'u' || characters[offset] == 'U')
+            && (characters[offset + 1] == 'r' || characters[offset + 1] == 'R')
+            && (characters[offset + 2] == 'l' || characters[offset + 2] == 'L')
+            && characters[offset + 3] == '('
+            && characters[offset + reducedLength - 1] == ')') {
+        offset += 4;
+        reducedLength -= 5;
+    }
+
+    while (reducedLength && isHTMLSpace(characters[offset])) {
+        ++offset;
+        --reducedLength;
+    }
+    while (reducedLength && isHTMLSpace(characters[offset + reducedLength - 1]))
+        --reducedLength;
+
+    if (reducedLength < 2 || characters[offset] != characters[offset + reducedLength - 1] || !(characters[offset] == '\'' || characters[offset] == '"'))
+        return String();
+    offset++;
+    reducedLength -= 2;
+
+    while (reducedLength && isHTMLSpace(characters[offset])) {
+        ++offset;
+        --reducedLength;
+    }
+    while (reducedLength && isHTMLSpace(characters[offset + reducedLength - 1]))
+        --reducedLength;
+
+    return String(characters + offset, reducedLength);
+}
+
 void CSSPreloadScanner::emitRule()
 {
-    String rule(m_rule.data(), m_rule.size());
-    if (equalIgnoringCase(rule, "import") && !m_ruleValue.isEmpty()) {
-        String value(m_ruleValue.data(), m_ruleValue.size());
-        String url = deprecatedParseURL(value);
-        if (!url.isEmpty())
-            m_document->cachedResourceLoader()->preload(CachedResource::CSSStyleSheet, url, String(), m_scanningBody);
+    if (equalIgnoringCase("import", m_rule.data(), m_rule.size())) {
+        String value = parseCSSStringOrURL(m_ruleValue.data(), m_ruleValue.size());
+        if (!value.isEmpty())
+            m_document->cachedResourceLoader()->preload(CachedResource::CSSStyleSheet, value, String(), m_scanningBody);
     }
     m_rule.clear();
     m_ruleValue.clear();
index a558cf5..f093eb2 100644 (file)
@@ -43,7 +43,7 @@ String stripLeadingAndTrailingHTMLSpaces(const String& string)
     }
 
     if (numLeadingSpaces == length)
-        return emptyAtom;
+        return string.isNull() ? string : emptyAtom.string();
 
     unsigned numTrailingSpaces;
     for (numTrailingSpaces = 0; numTrailingSpaces < length; ++numTrailingSpaces) {
@@ -53,7 +53,7 @@ String stripLeadingAndTrailingHTMLSpaces(const String& string)
 
     ASSERT(numLeadingSpaces + numTrailingSpaces < length);
 
-    return string.substring(numLeadingSpaces, length - numTrailingSpaces);
+    return string.substring(numLeadingSpaces, length - (numLeadingSpaces + numTrailingSpaces));
 }
 
 String serializeForNumberType(double number)
index 7859dd8..5c86579 100644 (file)
 #include "config.h"
 #include "HTMLPreloadScanner.h"
 
-#include "CSSHelper.h"
 #include "CachedResourceLoader.h"
 #include "Document.h"
 #include "HTMLDocumentParser.h"
 #include "HTMLTokenizer.h"
 #include "HTMLLinkElement.h"
 #include "HTMLNames.h"
+#include "HTMLParserIdioms.h"
 
 namespace WebCore {
 
@@ -90,7 +90,7 @@ public:
         // http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html#attribute-name-state
         if (!m_urlToLoad.isEmpty())
             return;
-        m_urlToLoad = deprecatedParseURL(attributeValue);
+        m_urlToLoad = stripLeadingAndTrailingHTMLSpaces(attributeValue);
     }
 
     void preload(Document* document, bool scanningBody)
index 98a545e..f3f19d2 100644 (file)
@@ -31,7 +31,6 @@
 #include "config.h"
 #include "FormSubmission.h"
 
-#include "CSSHelper.h"
 #include "DOMFormData.h"
 #include "Document.h"
 #include "Event.h"
@@ -45,6 +44,7 @@
 #include "HTMLFormElement.h"
 #include "HTMLInputElement.h"
 #include "HTMLNames.h"
+#include "HTMLParserIdioms.h"
 #include "TextEncoding.h"
 #include <wtf/CurrentTime.h>
 #include <wtf/RandomNumber.h>
@@ -85,7 +85,7 @@ static void appendMailtoPostFormDataToURL(KURL& url, const FormData& data, const
 void FormSubmission::Attributes::parseAction(const String& action)
 {
     // FIXME: Can we parse into a KURL?
-    m_action = deprecatedParseURL(action);
+    m_action = stripLeadingAndTrailingHTMLSpaces(action);
 }
 
 void FormSubmission::Attributes::parseEncodingType(const String& type)
index f6bc8d0..94a21a4 100644 (file)
@@ -22,7 +22,6 @@
 #include "config.h"
 #include "ImageLoader.h"
 
-#include "CSSHelper.h"
 #include "CachedImage.h"
 #include "CachedResourceLoader.h"
 #include "Document.h"
index 6645a8f..c1b34da 100644 (file)
@@ -37,6 +37,7 @@
 #include "FileList.h"
 #include "Frame.h"
 #include "HTMLNames.h"
+#include "HTMLParserIdioms.h"
 #include "Image.h"
 #include "MIMETypeRegistry.h"
 #include "NamedNodeMap.h"
@@ -275,7 +276,7 @@ void ClipboardChromium::declareAndWriteDragImage(Element* element, const KURL& u
     if (imageURL.isEmpty())
         return;
 
-    String fullURL = frame->document()->completeURL(deprecatedParseURL(imageURL));
+    String fullURL = frame->document()->completeURL(stripLeadingAndTrailingHTMLSpaces(imageURL));
     if (fullURL.isEmpty())
         return;
 
index ba69b00..907a4b9 100644 (file)
@@ -38,6 +38,7 @@
 #include "Element.h"
 #include "Frame.h"
 #include "HTMLNames.h"
+#include "HTMLParserIdioms.h"
 #include "Image.h"
 #include "KURL.h"
 #include "markup.h"
@@ -147,7 +148,7 @@ void Pasteboard::writeImage(Node* node, const KURL&, const String& title)
         Element* element = static_cast<Element*>(node);
         urlString = element->getAttribute(element->imageSourceAttributeName());
     }
-    KURL url = urlString.isEmpty() ? KURL() : node->document()->completeURL(deprecatedParseURL(urlString));
+    KURL url = urlString.isEmpty() ? KURL() : node->document()->completeURL(stripLeadingAndTrailingHTMLSpaces(urlString));
 
     ChromiumBridge::clipboardWriteImage(bitmap, url, title);
 }
index 90e3bfe..20cf62b 100644 (file)
@@ -28,7 +28,6 @@
 #include "config.h"
 #include "ClipboardQt.h"
 
-#include "CSSHelper.h"
 #include "CachedImage.h"
 #include "Document.h"
 #include "DragData.h"
@@ -36,6 +35,7 @@
 #include "FileList.h"
 #include "Frame.h"
 #include "HTMLNames.h"
+#include "HTMLParserIdioms.h"
 #include "Image.h"
 #include "IntPoint.h"
 #include "KURL.h"
@@ -276,7 +276,7 @@ void ClipboardQt::declareAndWriteDragImage(Element* element, const KURL& url, co
     if (imageURL.isEmpty())
         return;
 
-    KURL fullURL = frame->document()->completeURL(deprecatedParseURL(imageURL));
+    KURL fullURL = frame->document()->completeURL(stripLeadingAndTrailingHTMLSpaces(imageURL));
     if (fullURL.isEmpty())
         return;
 
index 529963f..7a54737 100644 (file)
@@ -38,6 +38,7 @@
 #include "FrameLoader.h"
 #include "FrameView.h"
 #include "HTMLNames.h"
+#include "HTMLParserIdioms.h"
 #include "Image.h"
 #include "MIMETypeRegistry.h"
 #include "NotImplemented.h"
@@ -50,7 +51,6 @@
 #include "ResourceResponse.h"
 #include "SharedBuffer.h"
 #include "WCDataObject.h"
-#include "csshelper.h"
 #include "markup.h"
 #include <shlwapi.h>
 #include <wininet.h>
@@ -723,7 +723,7 @@ void ClipboardWin::declareAndWriteDragImage(Element* element, const KURL& url, c
     if (imageURL.isEmpty()) 
         return;
 
-    String fullURL = frame->document()->completeURL(deprecatedParseURL(imageURL)).string();
+    String fullURL = frame->document()->completeURL(stripLeadingAndTrailingHTMLSpaces(imageURL)).string();
     if (fullURL.isEmpty()) 
         return;
     STGMEDIUM medium = {0};
index 35a6d23..301c0fb 100644 (file)
@@ -29,6 +29,7 @@
 #include "HTMLInputElement.h"
 #include "HTMLMediaElement.h"
 #include "HTMLNames.h"
+#include "HTMLParserIdioms.h"
 #include "RenderImage.h"
 #include "Scrollbar.h"
 #include "SelectionController.h"
@@ -305,14 +306,14 @@ KURL HitTestResult::absoluteImageURL() const
     } else
         return KURL();
 
-    return m_innerNonSharedNode->document()->completeURL(deprecatedParseURL(urlString));
+    return m_innerNonSharedNode->document()->completeURL(stripLeadingAndTrailingHTMLSpaces(urlString));
 }
 
 KURL HitTestResult::absoluteMediaURL() const
 {
 #if ENABLE(VIDEO)
     if (HTMLMediaElement* mediaElt = mediaElement())
-        return m_innerNonSharedNode->document()->completeURL(deprecatedParseURL(mediaElt->currentSrc()));
+        return m_innerNonSharedNode->document()->completeURL(stripLeadingAndTrailingHTMLSpaces(mediaElt->currentSrc()));
     return KURL();
 #else
     return KURL();
@@ -461,7 +462,7 @@ KURL HitTestResult::absoluteLinkURL() const
     else
         return KURL();
 
-    return m_innerURLElement->document()->completeURL(deprecatedParseURL(urlString));
+    return m_innerURLElement->document()->completeURL(stripLeadingAndTrailingHTMLSpaces(urlString));
 }
 
 bool HitTestResult::isLiveLink() const
index d62cbb7..889d3b8 100644 (file)
@@ -29,7 +29,6 @@
 #include "AnimationList.h"
 #include "BorderData.h"
 #include "BorderValue.h"
-#include "CSSHelper.h"
 #include "CSSImageGeneratorValue.h"
 #include "CSSPrimitiveValue.h"
 #include "CSSPropertyNames.h"
index d711a52..56078ad 100644 (file)
@@ -27,7 +27,6 @@
 
 #include "Attr.h"
 #include "Attribute.h"
-#include "CSSHelper.h"
 #include "Document.h"
 #include "EventHandler.h"
 #include "EventNames.h"
@@ -35,6 +34,7 @@
 #include "FrameLoader.h"
 #include "FrameLoaderTypes.h"
 #include "HTMLAnchorElement.h"
+#include "HTMLParserIdioms.h"
 #include "KeyboardEvent.h"
 #include "MouseEvent.h"
 #include "PlatformMouseEvent.h"
@@ -137,7 +137,7 @@ void SVGAElement::defaultEventHandler(Event* event)
         }
 
         if (isLinkClick(event)) {
-            String url = deprecatedParseURL(href());
+            String url = stripLeadingAndTrailingHTMLSpaces(href());
 
 #if ENABLE(SVG_ANIMATION)
             if (url[0] == '#') {
index 2079f74..8f1c1b5 100644 (file)
@@ -25,6 +25,7 @@
 
 #include "Event.h"
 #include "EventNames.h"
+#include "HTMLParserIdioms.h"
 #include "SVGImageElement.h"
 #include "RenderImage.h"
 
@@ -48,7 +49,7 @@ void SVGImageLoader::dispatchLoadEvent()
 
 String SVGImageLoader::sourceURI(const AtomicString& attr) const
 {
-    return KURL(element()->baseURI(), deprecatedParseURL(attr)).string();
+    return KURL(element()->baseURI(), stripLeadingAndTrailingHTMLSpaces(attr)).string();
 }
 
 }
index c60db5e..0849495 100644 (file)
@@ -128,7 +128,7 @@ void WMLAElement::defaultEventHandler(Event* event)
         }
 
         if (isLinkClick(event)) {
-            handleLinkClick(event, document(), deprecatedParseURL(getAttribute(HTMLNames::hrefAttr)), target(), event);
+            handleLinkClick(event, document(), stripLeadingAndTrailingHTMLSpaces(getAttribute(HTMLNames::hrefAttr)), target(), event);
             return;
         }
     }
index 1f1054f..1706d24 100644 (file)
@@ -24,7 +24,6 @@
 #include "WMLImageLoader.h"
 
 #include "CachedImage.h"
-#include "CSSHelper.h"
 #include "HTMLNames.h"
 #include "WMLImageElement.h"
 #include "WMLNames.h"
@@ -49,7 +48,7 @@ void WMLImageLoader::dispatchLoadEvent()
 
 String WMLImageLoader::sourceURI(const AtomicString& attr) const
 {
-    return KURL(element()->baseURI(), deprecatedParseURL(attr));
+    return KURL(element()->baseURI(), stripLeadingAndTrailingHTMLSpaces(attr));
 }
 
 void WMLImageLoader::notifyFinished(CachedResource* image)
index e710716..080cf0d 100644 (file)
@@ -1,3 +1,16 @@
+2010-09-30  Darin Adler  <darin@apple.com>
+
+        Reviewed by Sam Weinig.
+
+        Remove remaining calls to deprecatedParseURL
+        https://bugs.webkit.org/show_bug.cgi?id=26599
+
+        * DOM/WebDOMOperations.mm:
+        (-[DOMDocument URLWithAttributeString:]):
+        * WebCoreSupport/WebFrameLoaderClient.mm:
+        (WebFrameLoaderClient::createPlugin):
+        Call stripLeadingAndTrailingHTMLSpaces instead of deprecatedParseURL.
+
 2010-09-30  Anders Carlsson  <andersca@apple.com>
 
         Reviewed by Darin Adler.
index 8166811..5e09308 100644 (file)
@@ -38,8 +38,8 @@
 #import "WebFramePrivate.h"
 #import "WebKitNSStringExtras.h"
 #import <JavaScriptCore/APICast.h>
-#import <WebCore/CSSHelper.h>
 #import <WebCore/Document.h>
+#import <WebCore/HTMLParserIdioms.h>
 #import <WebCore/JSElement.h>
 #import <WebCore/LegacyWebArchive.h>
 #import <WebCore/markup.h>
@@ -129,7 +129,7 @@ using namespace JSC;
 
 - (NSURL *)URLWithAttributeString:(NSString *)string
 {
-    return core(self)->completeURL(deprecatedParseURL(string));
+    return core(self)->completeURL(stripLeadingAndTrailingHTMLSpaces(string));
 }
 
 @end
index cef552b..5937022 100644 (file)
 #import <WebCore/HTMLFrameElement.h>
 #import <WebCore/HTMLFrameOwnerElement.h>
 #import <WebCore/HTMLHeadElement.h>
-#if ENABLE(PLUGIN_PROXY_FOR_VIDEO)
-#import <WebCore/HTMLMediaElement.h>
-#endif
 #import <WebCore/HTMLNames.h>
+#import <WebCore/HTMLParserIdioms.h>
 #import <WebCore/HTMLPlugInElement.h>
 #import <WebCore/HistoryItem.h>
 #import <WebCore/HitTestResult.h>
 #import <wtf/PassRefPtr.h>
 #import <wtf/Threading.h>
 
+#if ENABLE(PLUGIN_PROXY_FOR_VIDEO)
+#import <WebCore/HTMLMediaElement.h>
+#endif
+
 #if ENABLE(JAVA_BRIDGE)
 #import "WebJavaPlugIn.h"
 #endif
@@ -1668,7 +1670,7 @@ PassRefPtr<Widget> WebFrameLoaderClient::createPlugin(const IntSize& size, HTMLP
     if (errorCode && m_webFrame) {
         WebResourceDelegateImplementationCache* implementations = WebViewGetResourceLoadDelegateImplementations(webView);
         if (implementations->plugInFailedWithErrorFunc) {
-            KURL pluginPageURL = document->completeURL(deprecatedParseURL(parameterValue(paramNames, paramValues, "pluginspage")));
+            KURL pluginPageURL = document->completeURL(stripLeadingAndTrailingHTMLSpaces(parameterValue(paramNames, paramValues, "pluginspage")));
             if (!pluginPageURL.protocolInHTTPFamily())
                 pluginPageURL = KURL();
             NSString *pluginName = pluginPackage ? (NSString *)[pluginPackage pluginInfo].name : nil;
index 4933b24..94a105b 100644 (file)
@@ -1,3 +1,14 @@
+2010-09-30  Darin Adler  <darin@apple.com>
+
+        Reviewed by Sam Weinig.
+
+        Remove remaining calls to deprecatedParseURL
+        https://bugs.webkit.org/show_bug.cgi?id=26599
+
+        * WebCoreSupport/WebFrameLoaderClient.cpp:
+        (WebFrameLoaderClient::dispatchDidFailToStartPlugin):
+        Call stripLeadingAndTrailingHTMLSpaces instead of deprecatedParseURL.
+
 2010-09-28  Jenn Braithwaite  <jennb@chromium.org>
 
         Reviewed by Dmitry Titov.
index 4b05338..4c7800f 100644 (file)
@@ -59,6 +59,7 @@
 #include <WebCore/HTMLFrameElement.h>
 #include <WebCore/HTMLFrameOwnerElement.h>
 #include <WebCore/HTMLNames.h>
+#include <WebCore/HTMLParserIdioms.h>
 #include <WebCore/HTMLPlugInElement.h>
 #include <WebCore/HistoryItem.h>
 #include <WebCore/Page.h>
@@ -768,7 +769,7 @@ void WebFrameLoaderClient::dispatchDidFailToStartPlugin(const PluginView* plugin
     ASSERT(frame == pluginView->parentFrame());
 
     if (!pluginView->pluginsPage().isNull()) {
-        KURL pluginPageURL = frame->document()->completeURL(deprecatedParseURL(pluginView->pluginsPage()));
+        KURL pluginPageURL = frame->document()->completeURL(stripLeadingAndTrailingHTMLSpaces(pluginView->pluginsPage()));
         if (pluginPageURL.protocolInHTTPFamily()) {
             static CFStringRef key = MarshallingHelpers::LPCOLESTRToCFStringRef(WebKitErrorPlugInPageURLStringKey);
             RetainPtr<CFStringRef> str(AdoptCF, pluginPageURL.string().createCFString());