Changeset 135022 in webkit


Ignore:
Timestamp:
Nov 16, 2012 5:53:02 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:

Source/WebKit2:

Add exports for SerializedScriptValue changes.

  • win/WebKit2.def:
  • win/WebKit2CFLite.def:

LayoutTests:

Make sure SerializedScriptValues are backward compatible with future changes.

  • platform/chromium/fast/storage/serialized-script-value.html: Added.
  • platform/chromium/fast/storage/serialized-script-value.txt: Added.
Location:
trunk
Files:
2 added
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r135018 r135022  
     12012-11-16  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        * platform/chromium/fast/storage/serialized-script-value.txt: Added.
     12
    1132012-11-16  David Grogan  <dgrogan@chromium.org>
    214
  • trunk/Source/WebCore/ChangeLog

    r135021 r135022  
     12012-11-16  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-16  Andreas Kling  <akling@apple.com>
    220
  • trunk/Source/WebCore/WebCore.exp.in

    r135009 r135022  
    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

    r134910 r135022  
    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

    r134910 r135022  
    7272#include "SchemeRegistry.h"
    7373#include "SelectRuleFeatureSet.h"
     74#include "SerializedScriptValue.h"
    7475#include "Settings.h"
    7576#include "ShadowRoot.h"
     
    16281629}
    16291630
    1630 }
     1631PassRefPtr<ArrayBuffer> Internals::serializeObject(PassRefPtr<SerializedScriptValue> value) const
     1632{
     1633    String stringValue = value->toWireString();
     1634    return ArrayBuffer::create(static_cast<const void*>(stringValue.impl()->characters()), stringValue.sizeInBytes());
     1635}
     1636
     1637PassRefPtr<SerializedScriptValue> Internals::deserializeBuffer(PassRefPtr<ArrayBuffer> buffer) const
     1638{
     1639    String value(static_cast<const UChar*>(buffer->data()), buffer->byteLength() / sizeof(UChar));
     1640    return SerializedScriptValue::createFromWire(value);
     1641}
     1642
     1643}
  • trunk/Source/WebCore/testing/Internals.h

    r134910 r135022  
    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
    249254    String getCurrentCursorInfo(Document*, ExceptionCode&);
    250255
  • trunk/Source/WebCore/testing/Internals.idl

    r134910 r135022  
    218218    // Returns a string with information about the mouse cursor used at the specified client location.
    219219    DOMString getCurrentCursorInfo(in Document document) raises (DOMException);
     220
     221    SerializedScriptValue deserializeBuffer(in ArrayBuffer buffer);
     222    ArrayBuffer serializeObject(in SerializedScriptValue obj);
    220223};
  • trunk/Source/WebKit2/ChangeLog

    r135020 r135022  
     12012-11-16  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        Add exports for SerializedScriptValue changes.
     9
     10        * win/WebKit2.def:
     11        * win/WebKit2CFLite.def:
     12
    1132012-11-16  Kiran Muppala  <cmuppala@apple.com>
    214
  • trunk/Source/WebKit2/win/WebKit2.def

    r134916 r135022  
    158158        ??0String@WTF@@QAE@PBD@Z
    159159        ??0String@WTF@@QAE@PB_W@Z
     160        ??0String@WTF@@QAE@PB_WI@Z
     161        ??1SerializedScriptValue@WebCore@@QAE@XZ
    160162        ?absoluteBoundingBoxRect@RenderObject@WebCore@@QBE?AVIntRect@2@_N@Z
    161163        ?absoluteBoundingBoxRectIgnoringTransforms@RenderObject@WebCore@@QBE?AVIntRect@2@XZ
     
    168170        ?create@HTMLContentElement@WebCore@@SA?AV?$PassRefPtr@VHTMLContentElement@WebCore@@@WTF@@PAVDocument@2@@Z
    169171        ?create@Range@WebCore@@SA?AV?$PassRefPtr@VRange@WebCore@@@WTF@@V?$PassRefPtr@VDocument@WebCore@@@4@V?$PassRefPtr@VNode@WebCore@@@4@H1H@Z
     172        ?create@SerializedScriptValue@WebCore@@SA?AV?$PassRefPtr@VSerializedScriptValue@WebCore@@@WTF@@ABVString@4@@Z
     173        ?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
    170174        ?create@ShadowRoot@WebCore@@SA?AV?$PassRefPtr@VShadowRoot@WebCore@@@WTF@@PAVElement@2@AAH@Z
    171175        ?createWrapper@WebCore@@YA?AVJSValue@JSC@@PAVExecState@3@PAVJSDOMGlobalObject@1@PAVNode@1@@Z
     176        ?deserialize@SerializedScriptValue@WebCore@@QAE?AVJSValue@JSC@@PAVExecState@4@PAVJSGlobalObject@4@PAV?$Vector@V?$RefPtr@VMessagePort@WebCore@@@WTF@@$00@WTF@@W4SerializationErrorMode@2@@Z
    172177        ?documentState@HistoryItem@WebCore@@QBEABV?$Vector@VString@WTF@@$0A@@WTF@@XZ
    173178        ?ensureSelectFeatureSetCollected@ElementShadow@WebCore@@QAEXXZ
     
    258263        ?textContent@Node@WebCore@@QBE?AVString@WTF@@_N@Z
    259264        ?toDocument@WebCore@@YAPAVDocument@1@VJSValue@JSC@@@Z
     265        ?toArrayBuffer@WebCore@@YAPAVArrayBuffer@WTF@@VJSValue@JSC@@@Z
    260266        ?toDOMStringList@WebCore@@YA?AV?$PassRefPtr@VDOMStringList@WebCore@@@WTF@@PAVExecState@JSC@@VJSValue@5@@Z
    261267        ?toElement@WebCore@@YAPAVElement@1@VJSValue@JSC@@@Z
     268        ?toJS@WebCore@@YA?AVJSValue@JSC@@PAVExecState@3@PAVJSDOMGlobalObject@1@PAVArrayBuffer@WTF@@@Z
    262269        ?toJS@WebCore@@YA?AVJSValue@JSC@@PAVExecState@3@PAVJSDOMGlobalObject@1@PAVClientRect@1@@Z
    263270        ?toJS@WebCore@@YA?AVJSValue@JSC@@PAVExecState@3@PAVJSDOMGlobalObject@1@PAVClientRectList@1@@Z
     
    266273        ?toJS@WebCore@@YA?AVJSValue@JSC@@PAVExecState@3@PAVJSDOMGlobalObject@1@PAVNodeList@1@@Z
    267274        ?toRange@WebCore@@YAPAVRange@1@VJSValue@JSC@@@Z
     275        ?toString@SerializedScriptValue@WebCore@@QAE?AVString@WTF@@XZ
    268276        ?treeScope@Node@WebCore@@QBEPAVTreeScope@2@XZ
    269277        ?updateLayoutIgnorePendingStylesheets@Document@WebCore@@QAEXXZ
  • trunk/Source/WebKit2/win/WebKit2CFLite.def

    r134916 r135022  
    151151        ??0String@WTF@@QAE@PBD@Z
    152152        ??0String@WTF@@QAE@PB_W@Z
     153        ??0String@WTF@@QAE@PB_WI@Z
     154        ??1SerializedScriptValue@WebCore@@QAE@XZ
    153155        ?absoluteBoundingBoxRect@RenderObject@WebCore@@QBE?AVIntRect@2@_N@Z
    154156        ?absoluteBoundingBoxRectIgnoringTransforms@RenderObject@WebCore@@QBE?AVIntRect@2@XZ
     
    161163        ?create@HTMLContentElement@WebCore@@SA?AV?$PassRefPtr@VHTMLContentElement@WebCore@@@WTF@@PAVDocument@2@@Z
    162164        ?create@Range@WebCore@@SA?AV?$PassRefPtr@VRange@WebCore@@@WTF@@V?$PassRefPtr@VDocument@WebCore@@@4@V?$PassRefPtr@VNode@WebCore@@@4@H1H@Z
     165        ?create@SerializedScriptValue@WebCore@@SA?AV?$PassRefPtr@VSerializedScriptValue@WebCore@@@WTF@@ABVString@4@@Z
     166        ?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
    163167        ?create@ShadowRoot@WebCore@@SA?AV?$PassRefPtr@VShadowRoot@WebCore@@@WTF@@PAVElement@2@AAH@Z
    164168        ?createWrapper@WebCore@@YA?AVJSValue@JSC@@PAVExecState@3@PAVJSDOMGlobalObject@1@PAVNode@1@@Z
     169        ?deserialize@SerializedScriptValue@WebCore@@QAE?AVJSValue@JSC@@PAVExecState@4@PAVJSGlobalObject@4@PAV?$Vector@V?$RefPtr@VMessagePort@WebCore@@@WTF@@$00@WTF@@W4SerializationErrorMode@2@@Z
    165170        ?documentState@HistoryItem@WebCore@@QBEABV?$Vector@VString@WTF@@$0A@@WTF@@XZ
    166171        ?ensureSelectFeatureSetCollected@ElementShadow@WebCore@@QAEXXZ
     
    251256        ?textContent@Node@WebCore@@QBE?AVString@WTF@@_N@Z
    252257        ?toDocument@WebCore@@YAPAVDocument@1@VJSValue@JSC@@@Z
     258        ?toArrayBuffer@WebCore@@YAPAVArrayBuffer@WTF@@VJSValue@JSC@@@Z
    253259        ?toDOMStringList@WebCore@@YA?AV?$PassRefPtr@VDOMStringList@WebCore@@@WTF@@PAVExecState@JSC@@VJSValue@5@@Z
     260        ?toArrayBuffer@WebCore@@YAPAVArrayBuffer@WTF@@VJSValue@JSC@@@Z
     261        ?toDocument@WebCore@@YAPAVDocument@1@VJSValue@JSC@@@Z
    254262        ?toElement@WebCore@@YAPAVElement@1@VJSValue@JSC@@@Z
     263        ?toJS@WebCore@@YA?AVJSValue@JSC@@PAVExecState@3@PAVJSDOMGlobalObject@1@PAVArrayBuffer@WTF@@@Z
    255264        ?toJS@WebCore@@YA?AVJSValue@JSC@@PAVExecState@3@PAVJSDOMGlobalObject@1@PAVClientRect@1@@Z
    256265        ?toJS@WebCore@@YA?AVJSValue@JSC@@PAVExecState@3@PAVJSDOMGlobalObject@1@PAVClientRectList@1@@Z
     
    259268        ?toJS@WebCore@@YA?AVJSValue@JSC@@PAVExecState@3@PAVJSDOMGlobalObject@1@PAVNodeList@1@@Z
    260269        ?toRange@WebCore@@YAPAVRange@1@VJSValue@JSC@@@Z
     270        ?toString@SerializedScriptValue@WebCore@@QAE?AVString@WTF@@XZ
    261271        ?treeScope@Node@WebCore@@QBEPAVTreeScope@2@XZ
    262272        ?updateLayoutIgnorePendingStylesheets@Document@WebCore@@QAEXXZ
  • trunk/Source/autotools/symbols.filter

    r134916 r135022  
    213213_ZN7WebCore9FrameView17setTracksRepaintsEb;
    214214_ZNK7WebCore5Frame25trackedRepaintRectsAsTextEv;
     215_ZN7WebCore4toJSEPN3JSC9ExecStateEPNS_17JSDOMGlobalObjectEPN3WTF11ArrayBufferE;
     216_ZN7WebCore13toArrayBufferEN3JSC7JSValueE;
     217_ZN7WebCore21SerializedScriptValue6createEPN3JSC9ExecStateENS1_7JSValueEPN3WTF6VectorINS5_6RefPtrINS_11MessagePortEEELm1EEEPNS6_INS7_INS5_11ArrayBufferEEELm1EEENS_22SerializationErrorModeE;
     218_ZN7WebCore21SerializedScriptValue6createERKN3WTF6StringE;
     219_ZN7WebCore21SerializedScriptValue8toStringEv;
     220_ZN7WebCore21SerializedScriptValue11deserializeEPN3JSC9ExecStateEPNS1_14JSGlobalObjectEPN3WTF6VectorINS6_6RefPtrINS_11MessagePortEEELm1EEENS_22SerializationErrorModeE;
     221_ZN7WebCore21SerializedScriptValueD1Ev;
    215222
    216223local:
Note: See TracChangeset for help on using the changeset viewer.