- Revision
- 89653
- Author
- t...@chromium.org
- Date
- 2011-06-23 23:43:34 -0700 (Thu, 23 Jun 2011)
Log Message
2011-06-23 Tony Chang <t...@chromium.org>
Reviewed by Kent Tamura.
Pass Strings by const reference in bindings code
https://bugs.webkit.org/show_bug.cgi?id=63302
Note that since Strings hold a RefPtr to StringImpl, passing Strings
by value isn't horrible, but it does cause ref count churn and using
const references is more consistent with the rest of the code base.
* bindings/generic/BindingSecurity.h:
(WebCore::::allowSettingFrameSrcToJavascriptUrl):
(WebCore::::allowSettingSrcToJavascriptURL):
* bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneSerializer::serialize):
(WebCore::SerializedScriptValue::create):
* bindings/js/SerializedScriptValue.h:
* bindings/v8/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::createFromWire):
(WebCore::SerializedScriptValue::create):
(WebCore::SerializedScriptValue::SerializedScriptValue):
* bindings/v8/SerializedScriptValue.h:
* bindings/v8/V8Binding.h:
(WebCore::V8ParameterBase::setString):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (89652 => 89653)
--- trunk/Source/WebCore/ChangeLog 2011-06-24 05:42:25 UTC (rev 89652)
+++ trunk/Source/WebCore/ChangeLog 2011-06-24 06:43:34 UTC (rev 89653)
@@ -1,3 +1,29 @@
+2011-06-23 Tony Chang <t...@chromium.org>
+
+ Reviewed by Kent Tamura.
+
+ Pass Strings by const reference in bindings code
+ https://bugs.webkit.org/show_bug.cgi?id=63302
+
+ Note that since Strings hold a RefPtr to StringImpl, passing Strings
+ by value isn't horrible, but it does cause ref count churn and using
+ const references is more consistent with the rest of the code base.
+
+ * bindings/generic/BindingSecurity.h:
+ (WebCore::::allowSettingFrameSrcToJavascriptUrl):
+ (WebCore::::allowSettingSrcToJavascriptURL):
+ * bindings/js/SerializedScriptValue.cpp:
+ (WebCore::CloneSerializer::serialize):
+ (WebCore::SerializedScriptValue::create):
+ * bindings/js/SerializedScriptValue.h:
+ * bindings/v8/SerializedScriptValue.cpp:
+ (WebCore::SerializedScriptValue::createFromWire):
+ (WebCore::SerializedScriptValue::create):
+ (WebCore::SerializedScriptValue::SerializedScriptValue):
+ * bindings/v8/SerializedScriptValue.h:
+ * bindings/v8/V8Binding.h:
+ (WebCore::V8ParameterBase::setString):
+
2011-06-23 Yury Semikhatsky <yu...@chromium.org>
Reviewed by Pavel Feldman.
Modified: trunk/Source/WebCore/bindings/generic/BindingSecurity.h (89652 => 89653)
--- trunk/Source/WebCore/bindings/generic/BindingSecurity.h 2011-06-24 05:42:25 UTC (rev 89652)
+++ trunk/Source/WebCore/bindings/generic/BindingSecurity.h 2011-06-24 06:43:34 UTC (rev 89653)
@@ -58,8 +58,8 @@
static bool checkNodeSecurity(State<Binding>*, Node* target);
static bool allowPopUp(State<Binding>*);
- static bool allowSettingFrameSrcToJavascriptUrl(State<Binding>*, HTMLFrameElementBase*, String value);
- static bool allowSettingSrcToJavascriptURL(State<Binding>*, Element*, String name, String value);
+ static bool allowSettingFrameSrcToJavascriptUrl(State<Binding>*, HTMLFrameElementBase*, const String& value);
+ static bool allowSettingSrcToJavascriptURL(State<Binding>*, Element*, const String& name, const String& value);
static bool shouldAllowNavigation(State<Binding>*, Frame*);
@@ -127,7 +127,7 @@
}
template <class Binding>
-bool BindingSecurity<Binding>::allowSettingFrameSrcToJavascriptUrl(State<Binding>* state, HTMLFrameElementBase* frame, String value)
+bool BindingSecurity<Binding>::allowSettingFrameSrcToJavascriptUrl(State<Binding>* state, HTMLFrameElementBase* frame, const String& value)
{
if (protocolIsJavaScript(stripLeadingAndTrailingHTMLSpaces(value))) {
Node* contentDoc = frame->contentDocument();
@@ -138,7 +138,7 @@
}
template <class Binding>
-bool BindingSecurity<Binding>::allowSettingSrcToJavascriptURL(State<Binding>* state, Element* element, String name, String value)
+bool BindingSecurity<Binding>::allowSettingSrcToJavascriptURL(State<Binding>* state, Element* element, const String& name, const String& value)
{
if ((element->hasTagName(HTMLNames::iframeTag) || element->hasTagName(HTMLNames::frameTag)) && equalIgnoringCase(name, "src"))
return allowSettingFrameSrcToJavascriptUrl(state, static_cast<HTMLFrameElementBase*>(element), value);
Modified: trunk/Source/WebCore/bindings/js/SerializedScriptValue.cpp (89652 => 89653)
--- trunk/Source/WebCore/bindings/js/SerializedScriptValue.cpp 2011-06-24 05:42:25 UTC (rev 89652)
+++ trunk/Source/WebCore/bindings/js/SerializedScriptValue.cpp 2011-06-24 06:43:34 UTC (rev 89653)
@@ -256,7 +256,7 @@
return serializer.serialize(value);
}
- static bool serialize(String s, Vector<uint8_t>& out)
+ static bool serialize(const String& s, Vector<uint8_t>& out)
{
writeLittleEndian(out, CurrentVersion);
if (s.isEmpty()) {
@@ -1357,7 +1357,7 @@
return adoptRef(new SerializedScriptValue(buffer));
}
-PassRefPtr<SerializedScriptValue> SerializedScriptValue::create(String string)
+PassRefPtr<SerializedScriptValue> SerializedScriptValue::create(const String& string)
{
Vector<uint8_t> buffer;
if (!CloneSerializer::serialize(string, buffer))
Modified: trunk/Source/WebCore/bindings/js/SerializedScriptValue.h (89652 => 89653)
--- trunk/Source/WebCore/bindings/js/SerializedScriptValue.h 2011-06-24 05:42:25 UTC (rev 89652)
+++ trunk/Source/WebCore/bindings/js/SerializedScriptValue.h 2011-06-24 06:43:34 UTC (rev 89653)
@@ -56,7 +56,7 @@
public:
static PassRefPtr<SerializedScriptValue> create(JSC::ExecState*, JSC::JSValue, SerializationErrorMode = Throwing);
static PassRefPtr<SerializedScriptValue> create(JSContextRef, JSValueRef value, JSValueRef* exception);
- static PassRefPtr<SerializedScriptValue> create(String string);
+ static PassRefPtr<SerializedScriptValue> create(const String&);
static PassRefPtr<SerializedScriptValue> adopt(Vector<uint8_t>& buffer)
{
return adoptRef(new SerializedScriptValue(buffer));
Modified: trunk/Source/WebCore/bindings/v8/SerializedScriptValue.cpp (89652 => 89653)
--- trunk/Source/WebCore/bindings/v8/SerializedScriptValue.cpp 2011-06-24 05:42:25 UTC (rev 89652)
+++ trunk/Source/WebCore/bindings/v8/SerializedScriptValue.cpp 2011-06-24 06:43:34 UTC (rev 89653)
@@ -1163,12 +1163,12 @@
return adoptRef(new SerializedScriptValue(value, didThrow));
}
-PassRefPtr<SerializedScriptValue> SerializedScriptValue::createFromWire(String data)
+PassRefPtr<SerializedScriptValue> SerializedScriptValue::createFromWire(const String& data)
{
return adoptRef(new SerializedScriptValue(data));
}
-PassRefPtr<SerializedScriptValue> SerializedScriptValue::create(String data)
+PassRefPtr<SerializedScriptValue> SerializedScriptValue::create(const String& data)
{
Writer writer;
writer.writeWebCoreString(data);
@@ -1250,7 +1250,7 @@
m_data = String(StringImpl::adopt(writer.data())).crossThreadString();
}
-SerializedScriptValue::SerializedScriptValue(String wireData)
+SerializedScriptValue::SerializedScriptValue(const String& wireData)
{
m_data = wireData.crossThreadString();
}
Modified: trunk/Source/WebCore/bindings/v8/SerializedScriptValue.h (89652 => 89653)
--- trunk/Source/WebCore/bindings/v8/SerializedScriptValue.h 2011-06-24 05:42:25 UTC (rev 89652)
+++ trunk/Source/WebCore/bindings/v8/SerializedScriptValue.h 2011-06-24 06:43:34 UTC (rev 89653)
@@ -51,8 +51,8 @@
// V8. When serialization is successful, |didThrow| is false.
static PassRefPtr<SerializedScriptValue> create(v8::Handle<v8::Value> value, bool& didThrow);
static PassRefPtr<SerializedScriptValue> create(v8::Handle<v8::Value>);
- static PassRefPtr<SerializedScriptValue> createFromWire(String data);
- static PassRefPtr<SerializedScriptValue> create(String data);
+ static PassRefPtr<SerializedScriptValue> createFromWire(const String& data);
+ static PassRefPtr<SerializedScriptValue> create(const String& data);
static PassRefPtr<SerializedScriptValue> create();
static SerializedScriptValue* nullValue();
@@ -74,7 +74,7 @@
SerializedScriptValue();
SerializedScriptValue(v8::Handle<v8::Value>, bool& didThrow);
- explicit SerializedScriptValue(String wireData);
+ explicit SerializedScriptValue(const String& wireData);
String m_data;
};
Modified: trunk/Source/WebCore/bindings/v8/V8Binding.h (89652 => 89653)
--- trunk/Source/WebCore/bindings/v8/V8Binding.h 2011-06-24 05:42:25 UTC (rev 89652)
+++ trunk/Source/WebCore/bindings/v8/V8Binding.h 2011-06-24 06:43:34 UTC (rev 89653)
@@ -307,7 +307,7 @@
v8::Local<v8::Value> object() { return m_v8Object; }
- void setString(String string)
+ void setString(const String& string)
{
m_string = string;
m_v8Object.Clear(); // To signal that String is ready.