⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 weburlresponse.cpp

📁 linux下开源浏览器WebKit的源码,市面上的很多商用浏览器都是移植自WebKit
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/* * Copyright (C) 2006, 2007 Apple Inc.  All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  */#include "config.h"#include "WebURLResponse.h"#include "WebKitDLL.h"#include "WebKit.h"#include "COMPropertyBag.h"#include "MarshallingHelpers.h"#include "WebLocalizableStrings.h"#if USE(CFNETWORK)#include <WebKitSystemInterface/WebKitSystemInterface.h>#endif#include <wtf/platform.h>#pragma warning( push, 0 )#include <WebCore/BString.h>#include <WebCore/KURL.h>#include <WebCore/ResourceHandle.h>#pragma warning( pop )#include <shlobj.h>#include <shlwapi.h>#include <tchar.h>using namespace WebCore;static LPCTSTR CFHTTPMessageCopyLocalizedShortDescriptionForStatusCode(CFIndex statusCode){    LPCTSTR result = 0;    if (statusCode < 100 || statusCode >= 600)        result = LPCTSTR_UI_STRING("server error", "HTTP result code string");    else if (statusCode >= 100 && statusCode <= 199) {        switch (statusCode) {            case 100:                result = LPCTSTR_UI_STRING("continue", "HTTP result code string");                break;            case 101:                result = LPCTSTR_UI_STRING("switching protocols", "HTTP result code string");                break;            default:                result = LPCTSTR_UI_STRING("informational", "HTTP result code string");                break;        }    } else if (statusCode >= 200 && statusCode <= 299) {        switch (statusCode) {            case 200:                result = LPCTSTR_UI_STRING("no error", "HTTP result code string");                break;            case 201:                result = LPCTSTR_UI_STRING("created", "HTTP result code string");                break;            case 202:                result = LPCTSTR_UI_STRING("accepted", "HTTP result code string");                break;            case 203:                result = LPCTSTR_UI_STRING("non-authoritative information", "HTTP result code string");                break;            case 204:                result = LPCTSTR_UI_STRING("no content", "HTTP result code string");                break;            case 205:                result = LPCTSTR_UI_STRING("reset content", "HTTP result code string");                break;            case 206:                result = LPCTSTR_UI_STRING("partial content", "HTTP result code string");                break;            default:                result = LPCTSTR_UI_STRING("success", "HTTP result code string");                break;        }     } else if (statusCode >= 300 && statusCode <= 399) {        switch (statusCode) {            case 300:                result = LPCTSTR_UI_STRING("multiple choices", "HTTP result code string");                break;            case 301:                result = LPCTSTR_UI_STRING("moved permanently", "HTTP result code string");                break;            case 302:                result = LPCTSTR_UI_STRING("found", "HTTP result code string");                break;            case 303:                result = LPCTSTR_UI_STRING("see other", "HTTP result code string");                break;            case 304:                result = LPCTSTR_UI_STRING("not modified", "HTTP result code string");                break;            case 305:                result = LPCTSTR_UI_STRING("needs proxy", "HTTP result code string");                break;            case 307:                result = LPCTSTR_UI_STRING("temporarily redirected", "HTTP result code string");                break;            case 306:   // 306 status code unused in HTTP            default:                result = LPCTSTR_UI_STRING("redirected", "HTTP result code string");                break;        }    } else if (statusCode >= 400 && statusCode <= 499) {        switch (statusCode) {            case 400:                result = LPCTSTR_UI_STRING("bad request", "HTTP result code string");                break;            case 401:                result = LPCTSTR_UI_STRING("unauthorized", "HTTP result code string");                break;            case 402:                result = LPCTSTR_UI_STRING("payment required", "HTTP result code string");                break;            case 403:                result = LPCTSTR_UI_STRING("forbidden", "HTTP result code string");                break;            case 404:                result = LPCTSTR_UI_STRING("not found", "HTTP result code string");                break;            case 405:                result = LPCTSTR_UI_STRING("method not allowed", "HTTP result code string");                break;            case 406:                result = LPCTSTR_UI_STRING("unacceptable", "HTTP result code string");                break;            case 407:                result = LPCTSTR_UI_STRING("proxy authentication required", "HTTP result code string");                break;            case 408:                result = LPCTSTR_UI_STRING("request timed out", "HTTP result code string");                break;            case 409:                result = LPCTSTR_UI_STRING("conflict", "HTTP result code string");                break;            case 410:                result = LPCTSTR_UI_STRING("no longer exists", "HTTP result code string");                break;            case 411:                result = LPCTSTR_UI_STRING("length required", "HTTP result code string");                break;            case 412:                result = LPCTSTR_UI_STRING("precondition failed", "HTTP result code string");                break;            case 413:                result = LPCTSTR_UI_STRING("request too large", "HTTP result code string");                break;            case 414:                result = LPCTSTR_UI_STRING("requested URL too long", "HTTP result code string");                break;            case 415:                result = LPCTSTR_UI_STRING("unsupported media type", "HTTP result code string");                break;            case 416:                result = LPCTSTR_UI_STRING("requested range not satisfiable", "HTTP result code string");                break;            case 417:                result = LPCTSTR_UI_STRING("expectation failed", "HTTP result code string");                break;            default:                result = LPCTSTR_UI_STRING("client error", "HTTP result code string");                break;        }    } else if (statusCode >= 500 && statusCode <= 599) {        switch (statusCode) {            case 500:                result = LPCTSTR_UI_STRING("internal server error", "HTTP result code string");                break;            case 501:                result = LPCTSTR_UI_STRING("unimplemented", "HTTP result code string");                break;            case 502:                result = LPCTSTR_UI_STRING("bad gateway", "HTTP result code string");                break;            case 503:                result = LPCTSTR_UI_STRING("service unavailable", "HTTP result code string");                break;            case 504:                result = LPCTSTR_UI_STRING("gateway timed out", "HTTP result code string");                break;            case 505:                result = LPCTSTR_UI_STRING("unsupported version", "HTTP result code string");                break;            default:                result = LPCTSTR_UI_STRING("server error", "HTTP result code string");                break;        }    }    return result;}// IWebURLResponse ----------------------------------------------------------------WebURLResponse::WebURLResponse()    :m_refCount(0){    gClassCount++;    gClassNameCount.add("WebURLResponse");}WebURLResponse::~WebURLResponse(){    gClassCount--;    gClassNameCount.remove("WebURLResponse");}WebURLResponse* WebURLResponse::createInstance(){    WebURLResponse* instance = new WebURLResponse();    // fake an http response - so it has the IWebHTTPURLResponse interface    instance->m_response = ResourceResponse(KURL("http://"), String(), 0, String(), String());    instance->AddRef();    return instance;}WebURLResponse* WebURLResponse::createInstance(const ResourceResponse& response){    if (response.isNull())        return 0;    WebURLResponse* instance = new WebURLResponse();    instance->AddRef();    instance->m_response = response;    return instance;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -