Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(94)

Side by Side Diff: Source/core/fetch/ScriptResource.cpp

Issue 124943003: Remove 'String::append' from some of the blink source. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Incorporated review comments Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de) 2 Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de)
3 Copyright (C) 2001 Dirk Mueller (mueller@kde.org) 3 Copyright (C) 2001 Dirk Mueller (mueller@kde.org)
4 Copyright (C) 2002 Waldo Bastian (bastian@kde.org) 4 Copyright (C) 2002 Waldo Bastian (bastian@kde.org)
5 Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com) 5 Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com)
6 Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. 6 Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
7 7
8 This library is free software; you can redistribute it and/or 8 This library is free software; you can redistribute it and/or
9 modify it under the terms of the GNU Library General Public 9 modify it under the terms of the GNU Library General Public
10 License as published by the Free Software Foundation; either 10 License as published by the Free Software Foundation; either
(...skipping 13 matching lines...) Expand all
24 pages from the web. It has a memory cache for these objects. 24 pages from the web. It has a memory cache for these objects.
25 */ 25 */
26 26
27 #include "config.h" 27 #include "config.h"
28 #include "core/fetch/ScriptResource.h" 28 #include "core/fetch/ScriptResource.h"
29 29
30 #include "core/fetch/TextResourceDecoder.h" 30 #include "core/fetch/TextResourceDecoder.h"
31 #include "platform/MIMETypeRegistry.h" 31 #include "platform/MIMETypeRegistry.h"
32 #include "platform/SharedBuffer.h" 32 #include "platform/SharedBuffer.h"
33 #include "platform/network/HTTPParsers.h" 33 #include "platform/network/HTTPParsers.h"
34 #include "wtf/text/StringBuilder.h"
34 35
35 namespace WebCore { 36 namespace WebCore {
36 37
37 ScriptResource::ScriptResource(const ResourceRequest& resourceRequest, const Str ing& charset) 38 ScriptResource::ScriptResource(const ResourceRequest& resourceRequest, const Str ing& charset)
38 : Resource(resourceRequest, Script) 39 : Resource(resourceRequest, Script)
39 , m_decoder(TextResourceDecoder::create("application/javascript", charset)) 40 , m_decoder(TextResourceDecoder::create("application/javascript", charset))
40 { 41 {
41 DEFINE_STATIC_LOCAL(const AtomicString, acceptScript, ("*/*", AtomicString:: ConstructFromLiteral)); 42 DEFINE_STATIC_LOCAL(const AtomicString, acceptScript, ("*/*", AtomicString:: ConstructFromLiteral));
42 43
43 // It's javascript we want. 44 // It's javascript we want.
(...skipping 20 matching lines...) Expand all
64 { 65 {
65 return extractMIMETypeFromMediaType(m_response.httpHeaderField("Content-Type ")).lower(); 66 return extractMIMETypeFromMediaType(m_response.httpHeaderField("Content-Type ")).lower();
66 } 67 }
67 68
68 const String& ScriptResource::script() 69 const String& ScriptResource::script()
69 { 70 {
70 ASSERT(!isPurgeable()); 71 ASSERT(!isPurgeable());
71 ASSERT(isLoaded()); 72 ASSERT(isLoaded());
72 73
73 if (!m_script && m_data) { 74 if (!m_script && m_data) {
74 String script = m_decoder->decode(m_data->data(), encodedSize()); 75 StringBuilder script;
76 script.append(m_decoder->decode(m_data->data(), encodedSize()));
75 script.append(m_decoder->flush()); 77 script.append(m_decoder->flush());
76 m_data.clear(); 78 m_data.clear();
77 // We lie a it here and claim that script counts as encoded data (even t hough it's really decoded data). 79 // We lie a it here and claim that script counts as encoded data (even t hough it's really decoded data).
78 // That's because the MemoryCache thinks that it can clear out decoded d ata by calling destroyDecodedData(), 80 // That's because the MemoryCache thinks that it can clear out decoded d ata by calling destroyDecodedData(),
79 // but we can't destroy script in destroyDecodedData because that's our only copy of the data! 81 // but we can't destroy script in destroyDecodedData because that's our only copy of the data!
80 setEncodedSize(script.sizeInBytes()); 82 setEncodedSize(script.sizeInBytes());
81 m_script = script; 83 m_script = script.toString();
82 } 84 }
83 85
84 return m_script.string(); 86 return m_script.string();
85 } 87 }
86 88
87 bool ScriptResource::mimeTypeAllowedByNosniff() const 89 bool ScriptResource::mimeTypeAllowedByNosniff() const
88 { 90 {
89 return parseContentTypeOptionsHeader(m_response.httpHeaderField("X-Content-T ype-Options")) != ContentTypeOptionsNosniff || MIMETypeRegistry::isSupportedJava ScriptMIMEType(mimeType()); 91 return parseContentTypeOptionsHeader(m_response.httpHeaderField("X-Content-T ype-Options")) != ContentTypeOptionsNosniff || MIMETypeRegistry::isSupportedJava ScriptMIMEType(mimeType());
90 } 92 }
91 93
92 } // namespace WebCore 94 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698