File: ResourceResponseQt.cpp

package info (click to toggle)
qtwebkit-opensource-src 5.212.0~alpha2-21
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 126,448 kB
  • sloc: cpp: 1,398,101; ansic: 32,876; perl: 19,440; python: 12,790; ruby: 10,299; xml: 8,371; asm: 5,078; yacc: 2,166; lex: 906; sh: 414; makefile: 43
file content (35 lines) | stat: -rw-r--r-- 1,149 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include "config.h"

#include "ResourceResponse.h"

#include "HTTPHeaderNames.h"
#include "HTTPParsers.h"
#include "MIMETypeRegistry.h"
#include <QMimeDatabase>

namespace WebCore {

String ResourceResponse::platformSuggestedFilename() const
{
    // FIXME: Move to base class
    String contentDisposition(httpHeaderField(HTTPHeaderName::ContentDisposition));
    String suggestedFilename = filenameFromHTTPContentDisposition(String::fromUTF8WithLatin1Fallback(contentDisposition.characters8(), contentDisposition.length()));

    if (!suggestedFilename.isEmpty())
        return suggestedFilename;

    Vector<String> extensions = MIMETypeRegistry::getExtensionsForMIMEType(mimeType());
    if (extensions.isEmpty())
        return url().lastPathComponent();

    // If the suffix doesn't match the MIME type, correct the suffix.
    QString filename = url().lastPathComponent();
    const String suffix = QMimeDatabase().suffixForFileName(filename);
    if (!extensions.contains(suffix)) {
        filename.chop(suffix.length());
        filename += MIMETypeRegistry::getPreferredExtensionForMIMEType(mimeType());
    }
    return filename;
}

}