Changeset 134691 in webkit


Ignore:
Timestamp:
Nov 14, 2012 4:34:38 PM (11 years ago)
Author:
alecflett@chromium.org
Message:

Add tests for explicit serialization values
https://bugs.webkit.org/show_bug.cgi?id=96818

Reviewed by Adam Barth.

Source/WebCore:

Expose direct access to the serialization/deserialization mechanisms
of SerializedScriptValue to DumpRenderTree.

  • testing/Internals.cpp:

(WebCore::Internals::serializeObject):
(WebCore):
(WebCore::Internals::deserializeBuffer):

  • testing/Internals.h:

(WebCore):

  • testing/Internals.idl:

LayoutTests:

Make sure SerializedScriptValues are backward compatible with future changes.

  • platform/chromium/fast/storage/serialized-script-value.html: Added.
Location:
trunk
Files:
3 added
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r134688 r134691  
     12012-11-14  Alec Flett  <alecflett@chromium.org>
     2
     3        Add tests for explicit serialization values
     4        https://bugs.webkit.org/show_bug.cgi?id=96818
     5
     6        Reviewed by Adam Barth.
     7
     8        Make sure SerializedScriptValues are backward compatible with future changes.
     9
     10        * platform/chromium/fast/storage/serialized-script-value.html: Added.
     11
    1122012-11-14  Dimitri Glazkov  <dglazkov@chromium.org>
    213
  • trunk/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def

    r133976 r134691  
    2525    ??0RegExpObject@JSC@@IAE@PAVJSGlobalObject@1@PAVStructure@1@PAVRegExp@1@@Z
    2626    ??0SHA1@WTF@@QAE@XZ
     27    ??0String@WTF@@QAE@PB_WI@Z
    2728    ??0StringObject@JSC@@IAE@AAVJSGlobalData@1@PAVStructure@1@@Z
    2829    ??0Structure@JSC@@AAE@AAVJSGlobalData@1@PAVJSGlobalObject@1@VJSValue@1@ABVTypeInfo@1@PBUClassInfo@1@EH@Z
    2930    ??0ThreadCondition@WTF@@QAE@XZ
     31    ??1SerializedScriptValue@WebCore@@QAE@XZ
    3032    ??0WTFThreadData@WTF@@QAE@XZ
    3133    ??0YarrPattern@Yarr@JSC@@QAE@ABVString@WTF@@_N1PAPBD@Z
     
    126128    ?create@OpaqueJSString@@SA?AV?$PassRefPtr@UOpaqueJSString@@@WTF@@ABVString@3@@Z
    127129    ?create@RegExp@JSC@@SAPAV12@AAVJSGlobalData@2@ABVString@WTF@@W4RegExpFlags@2@@Z
     130    ?create@SerializedScriptValue@WebCore@@SA?AV?$PassRefPtr@VSerializedScriptValue@WebCore@@@WTF@@ABVString@4@@Z
     131    ?create@SerializedScriptValue@WebCore@@SA?AV?$PassRefPtr@VSerializedScriptValue@WebCore@@@WTF@@PAVExecState@JSC@@VJSValue@6@PAV?$Vector@V?$RefPtr@VMessagePort@WebCore@@@WTF@@$00@4@PAV?$Vector@V?$RefPtr@VArrayBuffer@WTF@@@WTF@@$00@4@W4SerializationErrorMode@2@@Z
    128132    ?createEmptyString@SmallStrings@JSC@@AAEXPAVJSGlobalData@2@@Z
    129133    ?createError@JSC@@YAPAVJSObject@1@PAVExecState@1@ABVString@WTF@@@Z
     
    171175    ?deleteTable@HashTable@JSC@@QBEXXZ
    172176    ?description@JSValue@JSC@@QBEPADXZ
     177    ?deserialize@SerializedScriptValue@WebCore@@QAE?AVJSValue@JSC@@PAVExecState@4@PAVJSGlobalObject@4@PAV?$Vector@V?$RefPtr@VMessagePort@WebCore@@@WTF@@$00@WTF@@W4SerializationErrorMode@2@@Z
    173178    ?despecifyDictionaryFunction@Structure@JSC@@QAEXAAVJSGlobalData@2@VPropertyName@2@@Z
    174179    ?despecifyFunctionTransition@Structure@JSC@@SAPAV12@AAVJSGlobalData@2@PAV12@VPropertyName@2@@Z
     
    375380    ?tlsKeyCount@WTF@@YAAAJXZ
    376381    ?tlsKeys@WTF@@YAPAKXZ
     382    ?toArrayBuffer@WebCore@@YAPAVArrayBuffer@WTF@@VJSValue@JSC@@@Z
    377383    ?toBoolean@JSString@JSC@@QBE_NXZ
    378384    ?toDouble@MediaTime@WTF@@QBENXZ
     
    382388    ?toInt32@JSC@@YAHN@Z
    383389    ?toInteger@JSValue@JSC@@QBENPAVExecState@2@@Z
     390    ?toJS@WebCore@@YA?AVJSValue@JSC@@PAVExecState@3@PAVJSDOMGlobalObject@1@PAVArrayBuffer@WTF@@@Z
    384391    ?toNumberSlowCase@JSValue@JSC@@ABENPAVExecState@2@@Z
    385392    ?toObject@JSCell@JSC@@QBEPAVJSObject@2@PAVExecState@2@PAVJSGlobalObject@2@@Z
     
    388395    ?ToShortest@DoubleToStringConverter@double_conversion@WTF@@QBE_NNPAVStringBuilder@23@@Z
    389396    ?toString@JSObject@JSC@@QBEPAVJSString@2@PAVExecState@2@@Z
     397    ?toString@SerializedScriptValue@WebCore@@QAE?AVString@WTF@@XZ
    390398    ?toStringDecimal@DecimalNumber@WTF@@QBEIPAEI@Z
    391399    ?toStringExponential@DecimalNumber@WTF@@QBEIPAEI@Z
  • trunk/Source/WebCore/ChangeLog

    r134689 r134691  
     12012-11-14  Alec Flett  <alecflett@chromium.org>
     2
     3        Add tests for explicit serialization values
     4        https://bugs.webkit.org/show_bug.cgi?id=96818
     5
     6        Reviewed by Adam Barth.
     7
     8        Expose direct access to the serialization/deserialization mechanisms
     9        of SerializedScriptValue to DumpRenderTree.
     10
     11        * testing/Internals.cpp:
     12        (WebCore::Internals::serializeObject):
     13        (WebCore):
     14        (WebCore::Internals::deserializeBuffer):
     15        * testing/Internals.h:
     16        (WebCore):
     17        * testing/Internals.idl:
     18
    1192012-11-14  Michael Pruett  <michael@68k.org>
    220
  • trunk/Source/WebCore/WebCore.exp.in

    r134184 r134691  
    226226__ZN7WebCore13KeyboardEventC1ERKN3WTF12AtomicStringEbbPNS_9DOMWindowERKNS1_6StringEjbbbbb
    227227__ZN7WebCore13KeyboardEventC1ERKNS_21PlatformKeyboardEventEPNS_9DOMWindowE
     228__ZN7WebCore13QualifiedNameD1Ev
    228229__ZN7WebCore13ResourceErrorC1EP7NSError
    229230__ZN7WebCore13ResourceErrorC1EP9__CFError
     
    232233__ZN7WebCore13createWrapperEPN3JSC9ExecStateEPNS_17JSDOMGlobalObjectEPNS_4NodeE
    233234__ZN7WebCore13directoryNameERKN3WTF6StringE
     235__ZN7WebCore13toArrayBufferEN3JSC7JSValueE
    234236__ZN7WebCore13toHTMLElementEPNS_21FormAssociatedElementE
    235237__ZN7WebCore13toJSDOMWindowEN3JSC7JSValueE
    236 __ZN7WebCore13QualifiedNameD1Ev
    237238__ZN7WebCore14CachedResource12removeClientEPNS_20CachedResourceClientE
    238239__ZN7WebCore14CachedResource16unregisterHandleEPNS_24CachedResourceHandleBaseE
     
    245246__ZN7WebCore14DocumentLoader15detachFromFrameEv
    246247__ZN7WebCore14DocumentLoader18addArchiveResourceEN3WTF10PassRefPtrINS_15ArchiveResourceEEE
     248__ZN7WebCore21SerializedScriptValue11deserializeEPN3JSC9ExecStateEPNS1_14JSGlobalObjectEPN3WTF6VectorINS6_6RefPtrINS_11MessagePortEEELm1EEENS_22SerializationErrorModeE
     249__ZN7WebCore21SerializedScriptValue6createEPN3JSC9ExecStateENS1_7JSValueEPN3WTF6VectorINS5_6RefPtrINS_11MessagePortEEELm1EEEPNS6_INS7_INS5_11ArrayBufferEEELm1EEENS_22SerializationErrorModeE
     250__ZN7WebCore21SerializedScriptValue6createERKN3WTF6StringE
     251__ZN7WebCore21SerializedScriptValue8toStringEv
     252__ZN7WebCore4toJSEPN3JSC9ExecStateEPNS_17JSDOMGlobalObjectEPN3WTF11ArrayBufferE
    247253__ZN7WebCore14DocumentLoader21addPlugInStreamLoaderEPNS_14ResourceLoaderE
    248254__ZN7WebCore14DocumentLoader22addAllArchiveResourcesEPNS_7ArchiveE
  • trunk/Source/WebCore/bindings/js/SerializedScriptValue.h

    r127757 r134691  
    7474
    7575    static PassRefPtr<SerializedScriptValue> create(const String&);
     76    static PassRefPtr<SerializedScriptValue> createFromWire(const String& value) { return create(value); }
    7677    static PassRefPtr<SerializedScriptValue> adopt(Vector<uint8_t>& buffer)
    7778    {
     
    8586
    8687    String toString();
     88    String toWireString() { return toString(); }
    8789   
    8890    JSC::JSValue deserialize(JSC::ExecState*, JSC::JSGlobalObject*, MessagePortArray*, SerializationErrorMode = Throwing);
  • trunk/Source/WebCore/testing/Internals.cpp

    r134541 r134691  
    7070#include "SchemeRegistry.h"
    7171#include "SelectRuleFeatureSet.h"
     72#include "SerializedScriptValue.h"
    7273#include "Settings.h"
    7374#include "ShadowRoot.h"
     
    15401541}
    15411542
    1542 }
     1543PassRefPtr<ArrayBuffer> Internals::serializeObject(PassRefPtr<SerializedScriptValue> value) const
     1544{
     1545    String stringValue = value->toWireString();
     1546    return ArrayBuffer::create(static_cast<const void*>(stringValue.impl()->characters()), stringValue.sizeInBytes());
     1547}
     1548
     1549PassRefPtr<SerializedScriptValue> Internals::deserializeBuffer(PassRefPtr<ArrayBuffer> buffer) const
     1550{
     1551    String value(static_cast<const UChar*>(buffer->data()), buffer->byteLength() / sizeof(UChar));
     1552    return SerializedScriptValue::createFromWire(value);
     1553}
     1554
     1555}
  • trunk/Source/WebCore/testing/Internals.h

    r134541 r134691  
    3030#include "ExceptionCodePlaceholder.h"
    3131#include "NodeList.h"
     32#include <wtf/ArrayBuffer.h>
    3233#include <wtf/PassRefPtr.h>
    3334#include <wtf/RefCounted.h>
     
    5455class WebKitPoint;
    5556class MallocStatistics;
     57class SerializedScriptValue;
    5658
    5759typedef int ExceptionCode;
     
    247249    void stopTrackingRepaints(Document*, ExceptionCode&);
    248250
     251    PassRefPtr<ArrayBuffer> serializeObject(PassRefPtr<SerializedScriptValue>) const;
     252    PassRefPtr<SerializedScriptValue> deserializeBuffer(PassRefPtr<ArrayBuffer>) const;
     253
    249254private:
    250255    explicit Internals(Document*);
  • trunk/Source/WebCore/testing/Internals.idl

    r134541 r134691  
    215215    void startTrackingRepaints(in Document document) raises (DOMException);
    216216    void stopTrackingRepaints(in Document document) raises (DOMException);
     217
     218    SerializedScriptValue deserializeBuffer(in ArrayBuffer buffer);
     219    ArrayBuffer serializeObject(in SerializedScriptValue obj);
    217220};
Note: See TracChangeset for help on using the changeset viewer.