Changeset 207301 in webkit


Ignore:
Timestamp:
Oct 13, 2016 12:21:35 PM (7 years ago)
Author:
Ryan Haddad
Message:

Unreviewed, rolling out r207297.

This change broke the iOS build.

Reverted changeset:

"Disable URLParser for non-Safari iOS and Mac apps for now"
https://bugs.webkit.org/show_bug.cgi?id=163397
http://trac.webkit.org/changeset/207297

Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r207300 r207301  
     12016-10-13  Ryan Haddad  <ryanhaddad@apple.com>
     2
     3        Unreviewed, rolling out r207297.
     4
     5        This change broke the iOS build.
     6
     7        Reverted changeset:
     8
     9        "Disable URLParser for non-Safari iOS and Mac apps for now"
     10        https://bugs.webkit.org/show_bug.cgi?id=163397
     11        http://trac.webkit.org/changeset/207297
     12
    1132016-10-13  Anders Carlsson  <andersca@apple.com>
    214
  • trunk/Source/WebCore/platform/URLParser.cpp

    r207297 r207301  
    11291129void URLParser::parse(const CharacterType* input, const unsigned length, const URL& base, const TextEncoding& encoding)
    11301130{
     1131#if PLATFORM(MAC)
     1132    static bool isMail = MacApplication::isAppleMail();
     1133#else
     1134    static bool isMail = false;
     1135#endif
     1136   
    11311137    URL_PARSER_LOG("Parsing URL <%s> base <%s> encoding <%s>", String(input, length).utf8().data(), base.string().utf8().data(), encoding.name());
    11321138    m_url = { };
     
    14551461                        m_url.m_userEnd = currentPosition(authorityOrHostBegin);
    14561462                        m_url.m_passwordEnd = m_url.m_userEnd;
    1457                         if (!parseHostAndPort(iterator)) {
     1463                        if (!parseHostAndPort(iterator, isMail)) {
    14581464                            failure();
    14591465                            return;
     
    14771483                LOG_STATE("Host");
    14781484                if (*c == '/' || *c == '?' || *c == '#') {
    1479                     if (!parseHostAndPort(CodePointIterator<CharacterType>(authorityOrHostBegin, c))) {
     1485                    if (!parseHostAndPort(CodePointIterator<CharacterType>(authorityOrHostBegin, c), isMail)) {
    14801486                        failure();
    14811487                        return;
     
    16481654                        break;
    16491655                    }
    1650                     if (!parseHostAndPort(CodePointIterator<CharacterType>(authorityOrHostBegin, c))) {
     1656                    if (!parseHostAndPort(CodePointIterator<CharacterType>(authorityOrHostBegin, c), isMail)) {
    16511657                        failure();
    16521658                        return;
     
    18681874            m_url.m_portEnd = m_url.m_userStart;
    18691875            m_url.m_pathEnd = m_url.m_userStart + 2;
    1870         } else if (!parseHostAndPort(authorityOrHostBegin)) {
     1876        } else if (!parseHostAndPort(authorityOrHostBegin, isMail)) {
    18711877            failure();
    18721878            return;
    18731879        } else {
    1874             syntaxViolation(c);
    1875             appendToASCIIBuffer('/');
    1876             m_url.m_pathEnd = m_url.m_portEnd + 1;
     1880            if (LIKELY(!isMail || m_urlIsSpecial)) {
     1881                syntaxViolation(c);
     1882                appendToASCIIBuffer('/');
     1883                m_url.m_pathEnd = m_url.m_portEnd + 1;
     1884            } else
     1885                m_url.m_pathEnd = m_url.m_portEnd;
    18771886        }
    18781887        m_url.m_pathAfterLastSlash = m_url.m_pathEnd;
     
    18821891    case State::Host:
    18831892        LOG_FINAL_STATE("Host");
    1884         if (!parseHostAndPort(authorityOrHostBegin)) {
     1893        if (!parseHostAndPort(authorityOrHostBegin, isMail)) {
    18851894            failure();
    18861895            return;
    18871896        }
    1888         syntaxViolation(c);
    1889         appendToASCIIBuffer('/');
    1890         m_url.m_pathEnd = m_url.m_portEnd + 1;
     1897        if (LIKELY(!isMail || m_urlIsSpecial)) {
     1898            syntaxViolation(c);
     1899            appendToASCIIBuffer('/');
     1900            m_url.m_pathEnd = m_url.m_portEnd + 1;
     1901        } else
     1902            m_url.m_pathEnd = m_url.m_portEnd;
    18911903        m_url.m_pathAfterLastSlash = m_url.m_pathEnd;
    18921904        m_url.m_queryEnd = m_url.m_pathEnd;
     
    19421954        }
    19431955
    1944         if (!parseHostAndPort(CodePointIterator<CharacterType>(authorityOrHostBegin, c))) {
     1956        if (!parseHostAndPort(CodePointIterator<CharacterType>(authorityOrHostBegin, c), isMail)) {
    19451957            failure();
    19461958            return;
     
    25572569
    25582570template<typename CharacterType>
    2559 bool URLParser::parseHostAndPort(CodePointIterator<CharacterType> iterator)
     2571bool URLParser::parseHostAndPort(CodePointIterator<CharacterType> iterator, const bool& isMail)
    25602572{
    25612573    if (iterator.atEnd())
     
    26072619        for (; hostIterator != iterator; ++hostIterator) {
    26082620            if (LIKELY(!isTabOrNewline(*hostIterator))) {
    2609                 if (UNLIKELY(isASCIIUpper(*hostIterator)))
    2610                     syntaxViolation(hostIterator);
    2611                 appendToASCIIBuffer(toASCIILower(*hostIterator));
     2621                if (UNLIKELY(isMail && !m_urlIsSpecial))
     2622                    appendToASCIIBuffer(*hostIterator);
     2623                else {
     2624                    if (UNLIKELY(isASCIIUpper(*hostIterator)))
     2625                        syntaxViolation(hostIterator);
     2626                    appendToASCIIBuffer(toASCIILower(*hostIterator));
     2627                }
    26122628            } else
    26132629                syntaxViolation(hostIterator);
     
    27882804}
    27892805
    2790 enum class URLParserEnabled {
    2791     Undetermined,
    2792     Yes,
    2793     No
    2794 };
    2795 
    2796 static URLParserEnabled urlParserEnabled = URLParserEnabled::Undetermined;
     2806static bool urlParserEnabled = true;
    27972807
    27982808void URLParser::setEnabled(bool enabled)
    27992809{
    2800     urlParserEnabled = enabled ? URLParserEnabled::Yes : URLParserEnabled::No;
     2810    urlParserEnabled = enabled;
    28012811}
    28022812
    28032813bool URLParser::enabled()
    28042814{
    2805     if (urlParserEnabled == URLParserEnabled::Undetermined) {
    2806 #if PLATFORM(MAC)
    2807         urlParserEnabled = MacApplication::isSafari() ? URLParserEnabled::Yes : URLParserEnabled::No;
    2808 #elif PLATFORM(IOS)
    2809         urlParserEnabled = IOSApplication::isMobileSafari() ? URLParserEnabled::Yes : URLParserEnabled::No;
    2810 #else
    2811         urlParserEnabled = URLParserEnabled::Yes;
    2812 #endif
    2813     }
    2814     return urlParserEnabled == URLParserEnabled::Yes;
     2815    return urlParserEnabled;
    28152816}
    28162817
  • trunk/Source/WebCore/platform/URLParser.h

    r207297 r207301  
    6161    template<typename CharacterType> void parse(const CharacterType*, const unsigned length, const URL&, const TextEncoding&);
    6262    template<typename CharacterType> void parseAuthority(CodePointIterator<CharacterType>);
    63     template<typename CharacterType> bool parseHostAndPort(CodePointIterator<CharacterType>);
     63    template<typename CharacterType> bool parseHostAndPort(CodePointIterator<CharacterType>, const bool& isMail);
    6464    template<typename CharacterType> bool parsePort(CodePointIterator<CharacterType>&);
    6565
  • trunk/Tools/ChangeLog

    r207297 r207301  
     12016-10-13  Ryan Haddad  <ryanhaddad@apple.com>
     2
     3        Unreviewed, rolling out r207297.
     4
     5        This change broke the iOS build.
     6
     7        Reverted changeset:
     8
     9        "Disable URLParser for non-Safari iOS and Mac apps for now"
     10        https://bugs.webkit.org/show_bug.cgi?id=163397
     11        http://trac.webkit.org/changeset/207297
     12
    1132016-10-13  Alex Christensen  <achristensen@webkit.org>
    214
  • trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm

    r207297 r207301  
    5959#import <JavaScriptCore/TestRunnerUtils.h>
    6060#import <WebCore/LogInitialization.h>
    61 #import <WebCore/URLParser.h>
    6261#import <WebKit/DOMElement.h>
    6362#import <WebKit/DOMExtensions.h>
     
    14111410int DumpRenderTreeMain(int argc, const char *argv[])
    14121411{
    1413     WebCore::URLParser::setEnabled(true);
    14141412    atexit(atexitFunction);
    14151413
  • trunk/Tools/WebKitTestRunner/ios/mainIOS.mm

    r207297 r207301  
    3030#import "UIKitSPI.h"
    3131#import <UIKit/UIKit.h>
    32 #import <WebCore/URLParser.h>
    3332
    3433static int _argc;
     
    6665int main(int argc, const char* argv[])
    6766{
    68     WebCore::URLParser::setEnabled(true);
    6967    _argc = argc;
    7068    _argv = argv;
  • trunk/Tools/WebKitTestRunner/mac/main.mm

    r207297 r207301  
    3030#import "PlatformWebView.h"
    3131#import "TestController.h"
    32 #import <WebCore/URLParser.h>
    3332
    3433static void setDefaultsToConsistentValuesForTesting()
     
    5756int main(int argc, const char* argv[])
    5857{
    59     WebCore::URLParser::setEnabled(true);
    6058    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    6159    [NSApplication sharedApplication];
Note: See TracChangeset for help on using the changeset viewer.