Changeset 67047 in webkit


Ignore:
Timestamp:
Sep 8, 2010 6:43:42 PM (14 years ago)
Author:
weinig@apple.com
Message:

WebKit2 needs a way to box numbers (for Array, Dictionary, etc.)
<rdar://problem/8408844>
https://bugs.webkit.org/show_bug.cgi?id=45429

Reviewed by Dan Bernstein.

This adds a generic WebNumber class that can be used for any scalar
numeric type. Right now, we are only exposing a double version, but it
is designed to allow more.

  • Shared/APIObject.h:
  • Shared/WebNumber.h: Added.

(WebKit::WebNumber::create):
(WebKit::WebNumber::value):
(WebKit::WebNumber::setValue):
(WebKit::WebNumber::WebNumber):
(WebKit::WebNumber::type):

  • UIProcess/API/C/WKAPICast.h:
  • UIProcess/API/C/WKBase.h:
  • UIProcess/API/C/WKNumber.cpp: Added.

(WKDoubleGetTypeID):
(WKDoubleCreate):
(WKDoubleGetValue):
(WKDoubleSetValue):

  • UIProcess/API/C/WKNumber.h: Added.
  • UIProcess/API/C/WebKit2.h:
  • WebKit2.pro:
  • WebKit2.xcodeproj/project.pbxproj:
  • win/WebKit2.vcproj:
  • win/WebKit2Generated.make:
Location:
trunk/WebKit2
Files:
3 added
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebKit2/ChangeLog

    r67042 r67047  
     12010-09-08  Sam Weinig  <sam@webkit.org>
     2
     3        Reviewed by Dan Bernstein.
     4
     5        WebKit2 needs a way to box numbers (for Array, Dictionary, etc.)
     6        <rdar://problem/8408844>
     7        https://bugs.webkit.org/show_bug.cgi?id=45429
     8
     9        This adds a generic WebNumber class that can be used for any scalar
     10        numeric type. Right now, we are only exposing a double version, but it
     11        is designed to allow more.
     12
     13        * Shared/APIObject.h:
     14        * Shared/WebNumber.h: Added.
     15        (WebKit::WebNumber::create):
     16        (WebKit::WebNumber::value):
     17        (WebKit::WebNumber::setValue):
     18        (WebKit::WebNumber::WebNumber):
     19        (WebKit::WebNumber::type):
     20        * UIProcess/API/C/WKAPICast.h:
     21        * UIProcess/API/C/WKBase.h:
     22        * UIProcess/API/C/WKNumber.cpp: Added.
     23        (WKDoubleGetTypeID):
     24        (WKDoubleCreate):
     25        (WKDoubleGetValue):
     26        (WKDoubleSetValue):
     27        * UIProcess/API/C/WKNumber.h: Added.
     28        * UIProcess/API/C/WebKit2.h:
     29        * WebKit2.pro:
     30        * WebKit2.xcodeproj/project.pbxproj:
     31        * win/WebKit2.vcproj:
     32        * win/WebKit2Generated.make:
     33
    1342010-09-08  Anders Carlsson  <andersca@apple.com>
    235
  • trunk/WebKit2/Shared/APIObject.h

    r66995 r67047  
    4545        TypeURLRequest,
    4646        TypeURLResponse,
     47
     48        // Base numberic types
     49        TypeDouble,
    4750       
    4851        // UIProcess types
  • trunk/WebKit2/UIProcess/API/C/WKAPICast.h

    r66995 r67047  
    3030#include "WKPage.h"
    3131#include "WebEvent.h"
     32#include "WebNumber.h"
    3233#include "WebString.h"
    3334#include "WebURL.h"
     
    6869template<> struct APITypeInfo<WKDataRef>                        { typedef WebData* ImplType; };
    6970template<> struct APITypeInfo<WKDictionaryRef>                  { typedef ImmutableDictionary* ImplType; };
     71template<> struct APITypeInfo<WKDoubleRef>                      { typedef WebDouble* ImplType; };
    7072template<> struct APITypeInfo<WKFormSubmissionListenerRef>      { typedef WebFormSubmissionListenerProxy* ImplType; };
    7173template<> struct APITypeInfo<WKFramePolicyListenerRef>         { typedef WebFramePolicyListenerProxy* ImplType; };
     
    9597template<> struct ImplTypeInfo<WebContext*>                     { typedef WKContextRef APIType; };
    9698template<> struct ImplTypeInfo<WebData*>                        { typedef WKDataRef APIType; };
     99template<> struct ImplTypeInfo<WebDouble*>                      { typedef WKDoubleRef APIType; };
    97100template<> struct ImplTypeInfo<WebError*>                       { typedef WKErrorRef APIType; };
    98101template<> struct ImplTypeInfo<WebFormSubmissionListenerProxy*> { typedef WKFormSubmissionListenerRef APIType; };
  • trunk/WebKit2/UIProcess/API/C/WKBase.h

    r66995 r67047  
    4646typedef const struct OpaqueWKContext* WKContextRef;
    4747typedef const struct OpaqueWKData* WKDataRef;
     48typedef const struct OpaqueWKDouble* WKDoubleRef;
    4849typedef const struct OpaqueWKError* WKErrorRef;
    4950typedef const struct OpaqueWKFormSubmissionListener* WKFormSubmissionListenerRef;
  • trunk/WebKit2/UIProcess/API/C/WebKit2.h

    r66676 r67047  
    4242#include <WebKit2/WKMutableDictionary.h>
    4343#include <WebKit2/WKNavigationData.h>
     44#include <WebKit2/WKNumber.h>
    4445#include <WebKit2/WKPage.h>
    4546#include <WebKit2/WKPageNamespace.h>
  • trunk/WebKit2/WebKit2.pro

    r66995 r67047  
    168168    Shared/WebEventConversion.h \
    169169    Shared/WebEvent.h \
     170    Shared/WebNumber.h \
    170171    Shared/WebNavigationDataStore.h \
    171172    Shared/WebPreferencesStore.h \
     
    183184    UIProcess/API/C/WKFramePolicyListener.h \
    184185    UIProcess/API/C/WKNavigationData.h \
     186    UIProcess/API/C/WKNumber.h \
    185187    UIProcess/API/C/WKPage.h \
    186188    UIProcess/API/C/WKPageNamespace.h \
     
    294296    UIProcess/API/C/WKFramePolicyListener.cpp \
    295297    UIProcess/API/C/WKNavigationData.cpp \
     298    UIProcess/API/C/WKNumber.cpp \
    296299    UIProcess/API/C/WKPage.cpp \
    297300    UIProcess/API/C/WKPageNamespace.cpp \
  • trunk/WebKit2/WebKit2.xcodeproj/project.pbxproj

    r67005 r67047  
    107107                9391F2CB121B67AD00EBF7E8 /* WebFrameNetworkingContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 9391F283121B38F500EBF7E8 /* WebFrameNetworkingContext.h */; };
    108108                A72D610B1237144F00A88B15 /* WKSerializedScriptValue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A72D5F2F1236F9E800A88B15 /* WKSerializedScriptValue.cpp */; };
    109                 A72D610C1237145000A88B15 /* WKSerializedScriptValue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A72D5F2F1236F9E800A88B15 /* WKSerializedScriptValue.cpp */; };
    110109                BC0092F7115837A300E0AE2A /* RunLoopMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC0092F5115837A300E0AE2A /* RunLoopMac.mm */; };
    111110                BC0092F8115837A300E0AE2A /* WorkQueueMac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC0092F6115837A300E0AE2A /* WorkQueueMac.cpp */; };
     
    197196                BC2E6E8D1141971500A63B1E /* WorkQueue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC2E6E7D1141970C00A63B1E /* WorkQueue.cpp */; };
    198197                BC2E6E8E1141971500A63B1E /* WorkQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = BC2E6E7E1141970C00A63B1E /* WorkQueue.h */; };
     198                BC33DD681238464600360F3F /* WebNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = BC33DD671238464600360F3F /* WebNumber.h */; };
     199                BC33DE8E12385C3300360F3F /* WKNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = BC33DE8C12385C3300360F3F /* WKNumber.h */; settings = {ATTRIBUTES = (Public, ); }; };
     200                BC33DE8F12385C3300360F3F /* WKNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC33DE8D12385C3300360F3F /* WKNumber.cpp */; };
     201                BC33DF061238677F00360F3F /* WKSerializedScriptValue.h in Headers */ = {isa = PBXBuildFile; fileRef = A72D5F2E1236F9E800A88B15 /* WKSerializedScriptValue.h */; settings = {ATTRIBUTES = (Public, ); }; };
    199202                BC4BEEAB120A0A5F00FBA0C7 /* InjectedBundleNodeHandle.h in Headers */ = {isa = PBXBuildFile; fileRef = BC4BEEA9120A0A5E00FBA0C7 /* InjectedBundleNodeHandle.h */; };
    200203                BC4BEEAC120A0A5F00FBA0C7 /* InjectedBundleNodeHandle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC4BEEAA120A0A5F00FBA0C7 /* InjectedBundleNodeHandle.cpp */; };
     
    574577                BC2E6E7D1141970C00A63B1E /* WorkQueue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WorkQueue.cpp; sourceTree = "<group>"; };
    575578                BC2E6E7E1141970C00A63B1E /* WorkQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WorkQueue.h; sourceTree = "<group>"; };
     579                BC33DD671238464600360F3F /* WebNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebNumber.h; sourceTree = "<group>"; };
     580                BC33DE8C12385C3300360F3F /* WKNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKNumber.h; sourceTree = "<group>"; };
     581                BC33DE8D12385C3300360F3F /* WKNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKNumber.cpp; sourceTree = "<group>"; };
    576582                BC4BEEA9120A0A5E00FBA0C7 /* InjectedBundleNodeHandle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InjectedBundleNodeHandle.h; sourceTree = "<group>"; };
    577583                BC4BEEAA120A0A5F00FBA0C7 /* InjectedBundleNodeHandle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InjectedBundleNodeHandle.cpp; sourceTree = "<group>"; };
     
    941947                                BC032DB110F4380F0058C15A /* WebEventConversion.h */,
    942948                                BCF69F981176CED600471A52 /* WebNavigationDataStore.h */,
     949                                BC33DD671238464600360F3F /* WebNumber.h */,
    943950                                BCD598AB112B7FDF00EC8C23 /* WebPreferencesStore.cpp */,
    944951                                BCD598AA112B7FDF00EC8C23 /* WebPreferencesStore.h */,
     
    11791186                                BCF69FA81176D1CB00471A52 /* WKNavigationData.cpp */,
    11801187                                BCF69FA71176D1CB00471A52 /* WKNavigationData.h */,
     1188                                BC33DE8D12385C3300360F3F /* WKNumber.cpp */,
     1189                                BC33DE8C12385C3300360F3F /* WKNumber.h */,
    11811190                                BCD597D4112B56DC00EC8C23 /* WKPage.cpp */,
    11821191                                BCD597D5112B56DC00EC8C23 /* WKPage.h */,
     
    11881197                                762B749D120BC8EA00819339 /* WKPreferencesPrivate.cpp */,
    11891198                                762B7484120BBA2D00819339 /* WKPreferencesPrivate.h */,
     1199                                A72D5F2F1236F9E800A88B15 /* WKSerializedScriptValue.cpp */,
     1200                                A72D5F2E1236F9E800A88B15 /* WKSerializedScriptValue.h */,
    11901201                                BC20EBAF116EEB0800094A50 /* WKString.cpp */,
    11911202                                BC20EBAE116EEB0800094A50 /* WKString.h */,
     
    11981209                                BC90A1DB122DD89800CC8C50 /* WKURLResponse.cpp */,
    11991210                                BC90A1DA122DD89800CC8C50 /* WKURLResponse.h */,
    1200                                 A72D5F2E1236F9E800A88B15 /* WKSerializedScriptValue.h */,
    1201                                 A72D5F2F1236F9E800A88B15 /* WKSerializedScriptValue.cpp */,
    12021211                        );
    12031212                        path = C;
     
    16191628                                BCA0EF7F12331E78007D3CFB /* WebEditCommand.h in Headers */,
    16201629                                BCA0EF9F12332642007D3CFB /* WebEditCommandProxy.h in Headers */,
     1630                                BC33DD681238464600360F3F /* WebNumber.h in Headers */,
     1631                                BC33DE8E12385C3300360F3F /* WKNumber.h in Headers */,
     1632                                BC33DF061238677F00360F3F /* WKSerializedScriptValue.h in Headers */,
    16211633                        );
    16221634                        runOnlyForDeploymentPostprocessing = 0;
     
    17131725                        files = (
    17141726                                1A6FA31111E3921E00DB1371 /* MainMac.cpp in Sources */,
    1715                                 A72D610C1237145000A88B15 /* WKSerializedScriptValue.cpp in Sources */,
    17161727                        );
    17171728                        runOnlyForDeploymentPostprocessing = 0;
     
    18651876                                BCA0EFA012332642007D3CFB /* WebEditCommandProxy.cpp in Sources */,
    18661877                                A72D610B1237144F00A88B15 /* WKSerializedScriptValue.cpp in Sources */,
     1878                                BC33DE8F12385C3300360F3F /* WKNumber.cpp in Sources */,
    18671879                        );
    18681880                        runOnlyForDeploymentPostprocessing = 0;
  • trunk/WebKit2/win/WebKit2.vcproj

    r66995 r67047  
    478478                        </File>
    479479                        <File
     480                                RelativePath="..\Shared\WebNumber.h"
     481                                >
     482                        </File>
     483                        <File
    480484                                RelativePath="..\Shared\WebPreferencesStore.cpp"
    481485                                >
     
    13931397                                        <File
    13941398                                                RelativePath="..\UIProcess\API\C\WKNavigationData.h"
     1399                                                >
     1400                                        </File>
     1401                                        <File
     1402                                                RelativePath="..\UIProcess\API\C\WKNumber.cpp"
     1403                                                >
     1404                                        </File>
     1405                                        <File
     1406                                                RelativePath="..\UIProcess\API\C\WKNumber.h"
    13951407                                                >
    13961408                                        </File>
  • trunk/WebKit2/win/WebKit2Generated.make

    r66676 r67047  
    1515    xcopy /y /d "..\UIProcess\API\C\WKFrame.h" "$(WEBKITOUTPUTDIR)\include\WebKit2"
    1616    xcopy /y /d "..\UIProcess\API\C\WKFramePolicyListener.h" "$(WEBKITOUTPUTDIR)\include\WebKit2"
    17     xcopy /y /d "..\UIProcess\API\C\WKNavigationData.h" "$(WEBKITOUTPUTDIR)\include\WebKit2"
    1817    xcopy /y /d "..\UIProcess\API\C\WKMutableArray.h" "$(WEBKITOUTPUTDIR)\include\WebKit2"
    1918    xcopy /y /d "..\UIProcess\API\C\WKMutableDictionary.h" "$(WEBKITOUTPUTDIR)\include\WebKit2"
     19    xcopy /y /d "..\UIProcess\API\C\WKNavigationData.h" "$(WEBKITOUTPUTDIR)\include\WebKit2"
     20    xcopy /y /d "..\UIProcess\API\C\WKNumber.h" "$(WEBKITOUTPUTDIR)\include\WebKit2"
    2021    xcopy /y /d "..\UIProcess\API\C\WKPage.h" "$(WEBKITOUTPUTDIR)\include\WebKit2"
    2122    xcopy /y /d "..\UIProcess\API\C\WKPageNamespace.h" "$(WEBKITOUTPUTDIR)\include\WebKit2"
Note: See TracChangeset for help on using the changeset viewer.