rhodes 2.0.0.beta7 → 2.0.0.beta8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +20 -1
- data/bin/rhodes-setup +6 -2
- data/lib/extensions/digest/ext/Rakefile +2 -2
- data/lib/framework/rho/render.rb +2 -0
- data/lib/framework/rho/rho.rb +159 -95
- data/lib/framework/rho/rhoapplication.rb +24 -5
- data/lib/framework/rhodes.rb +1 -1
- data/lib/framework/rhom/rhom_model.rb +32 -23
- data/lib/framework/rhom/rhom_object_factory.rb +2 -2
- data/lib/rhodes.rb +1 -1
- data/platform/android/Rhodes/jni/src/callbacks.cpp +8 -1
- data/platform/android/Rhodes/jni/src/mapview.cpp +4 -1
- data/platform/android/Rhodes/jni/src/sslimpl.cpp +5 -1
- data/platform/android/Rhodes/jni/src/webview.cpp +3 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/NativeBar.java +3 -2
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/NativeLibraries.java +2 -2
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/NavBar.java +1 -2
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/Rhodes.java +1 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/geolocation/GeoLocation.java +3 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/geolocation/GeoLocationImpl.java +0 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/MainView.java +4 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/SimpleMainView.java +24 -6
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/TabbedMainView.java +7 -2
- data/platform/android/build/android.rake +11 -38
- data/platform/android/build/androidcommon.rb +50 -2
- data/platform/android/build/librhocommon_build.files +1 -0
- data/platform/android/build/libsqlite_build.files +1 -0
- data/platform/bb/rhodes/platform/5.0/com/rho/BrowserAdapter5.java +2 -1
- data/platform/bb/rhodes/src/com/rho/BrowserAdapter.java +1 -5
- data/platform/bb/rhodes/src/com/rho/net/NetworkAccess.java +3 -6
- data/platform/bb/rhodes/src/com/rho/rubyext/System.java +4 -2
- data/platform/bb/rhodes/src/rhomobile/RhodesApplication.java +12 -35
- data/platform/bb/rhodes/src/rhomobile/Utilities.java +2 -1
- data/platform/iphone/Classes/DateTimePickerDelegate.m +4 -4
- data/platform/iphone/Classes/NativeBar.m +12 -6
- data/platform/iphone/Classes/NavBar.m +1 -1
- data/platform/iphone/Classes/RhoMainView.h +4 -1
- data/platform/iphone/Classes/Rhodes.h +6 -2
- data/platform/iphone/Classes/Rhodes.m +23 -3
- data/platform/iphone/Classes/SimpleMainView.h +3 -7
- data/platform/iphone/Classes/SimpleMainView.m +108 -54
- data/platform/iphone/Classes/TabbedMainView.h +3 -2
- data/platform/iphone/Classes/TabbedMainView.m +21 -10
- data/platform/iphone/RhoLib/RhoLib.xcodeproj/project.pbxproj +8 -0
- data/platform/shared/common/IRhoClassFactory.h +1 -0
- data/platform/shared/common/RhodesApp.cpp +7 -2
- data/platform/shared/common/ThreadQueue.cpp +110 -0
- data/platform/shared/common/ThreadQueue.h +75 -0
- data/platform/shared/logging/RhoLogCat.h +4 -0
- data/platform/shared/net/AsyncHttp.cpp +134 -135
- data/platform/shared/net/AsyncHttp.h +74 -33
- data/platform/shared/net/HttpServer.cpp +7 -1
- data/platform/shared/ruby/thread.c +4 -0
- data/platform/shared/ruby/thread_win32.c +9 -8
- data/platform/shared/rubyJVM/src/com/rho/RhodesApp.java +26 -5
- data/platform/shared/rubyJVM/src/com/rho/net/INetworkAccess.java +0 -2
- data/platform/shared/rubyJVM/src/com/rho/net/NetRequest.java +4 -13
- data/platform/shared/rubyJVM/src/com/rho/net/URI.java +2 -2
- data/platform/shared/rubyJVM/src/com/rho/sync/SyncEngine.java +3 -3
- data/platform/shared/rubyJVM/src/com/xruby/runtime/builtin/ObjectFactory.java +12 -2
- data/platform/shared/rubyJVM/src/com/xruby/runtime/builtin/RubyString.java +6 -3
- data/platform/shared/rubyJVM/src/javolution/util/FastTable.java +12 -2
- data/platform/shared/sync/SyncEngine.cpp +15 -3
- data/platform/shared/sync/SyncEngine.h +1 -1
- data/platform/shared/sync/SyncThread.cpp +18 -101
- data/platform/shared/sync/SyncThread.h +30 -22
- data/platform/wm/RhoLib/RhoLib.vcproj +8 -0
- data/platform/wm/rhodes/Rhodes.cpp +143 -1
- data/platform/wm/rhodes/memory_helper.cpp +273 -0
- data/platform/wm/rhodes/rho/common/RhoThreadImpl.cpp +1 -0
- data/platform/wm/rhodes/rho/net/NetRequestImpl.cpp +46 -3
- data/platform/wm/rhodes/rho/rubyext/WebView.cpp +29 -1
- data/res/build-tools/db/syncdb.schema +1 -0
- data/res/generators/rhogen.rb +1 -1
- data/rhodes.gemspec +2 -2
- metadata +23 -6
- data/Manifest.txt +0 -5289
- data/rhobuild.yml +0 -37
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
#include <stdlib.h>
|
|
2
|
+
#include <string.h>
|
|
3
|
+
#include <stdio.h>
|
|
4
|
+
|
|
5
|
+
void add_memref(void* pmem, const char* file, int line);
|
|
6
|
+
void del_memref(void* pmem);
|
|
7
|
+
|
|
8
|
+
extern "C"{
|
|
9
|
+
void rho_free(void * p)
|
|
10
|
+
{
|
|
11
|
+
del_memref(p);
|
|
12
|
+
free(p);
|
|
13
|
+
}
|
|
14
|
+
void sys_free(void *p)
|
|
15
|
+
{
|
|
16
|
+
free(p);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
void * rho_malloc(size_t s, const char* file, int line)
|
|
20
|
+
{
|
|
21
|
+
void* res = malloc(s);
|
|
22
|
+
add_memref(res, file, line);
|
|
23
|
+
|
|
24
|
+
return res;
|
|
25
|
+
}
|
|
26
|
+
void * rho_calloc(size_t num, size_t size, const char* file, int line)
|
|
27
|
+
{
|
|
28
|
+
void* res = calloc(num,size);
|
|
29
|
+
add_memref(res, file, line);
|
|
30
|
+
|
|
31
|
+
return res;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
size_t rho_msize(void *)
|
|
35
|
+
{
|
|
36
|
+
return 0;
|
|
37
|
+
}
|
|
38
|
+
void * rho_realloc(void *p, size_t s, const char* file, int line)
|
|
39
|
+
{
|
|
40
|
+
void* res = realloc(p,s);
|
|
41
|
+
add_memref(res, file, line);
|
|
42
|
+
|
|
43
|
+
return res;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
char * rho_strdup(const char * str)
|
|
47
|
+
{
|
|
48
|
+
char *tmp;
|
|
49
|
+
int len = strlen(str) + 1;
|
|
50
|
+
|
|
51
|
+
tmp = (char*)rho_malloc(len, "rho_strdup", 1);
|
|
52
|
+
memcpy(tmp, str, len);
|
|
53
|
+
|
|
54
|
+
return tmp;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
wchar_t * rho_wcsdup(const wchar_t * str)
|
|
58
|
+
{
|
|
59
|
+
wchar_t *tmp;
|
|
60
|
+
int len = (wcslen(str) + 1)*sizeof(wchar_t);
|
|
61
|
+
|
|
62
|
+
tmp = (wchar_t*)rho_malloc(len, "rho_wcsdup", 1);
|
|
63
|
+
memcpy(tmp, str, len);
|
|
64
|
+
|
|
65
|
+
return tmp;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
#include <new>
|
|
71
|
+
//#include <exception>
|
|
72
|
+
|
|
73
|
+
void* cpp_alloc(size_t size, bool nothrow) {
|
|
74
|
+
for (;;) {
|
|
75
|
+
void* p = rho_malloc(size, "cpp_alloc", 1);
|
|
76
|
+
#ifdef PREANSINEW
|
|
77
|
+
return p;
|
|
78
|
+
#else
|
|
79
|
+
if (p == NULL) { // allocation failed
|
|
80
|
+
if (nothrow) return 0;
|
|
81
|
+
throw std::bad_alloc();
|
|
82
|
+
} else { // allocation success
|
|
83
|
+
return p;
|
|
84
|
+
}
|
|
85
|
+
#endif
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
static long g_nCount = -1;
|
|
90
|
+
#include <windows.h>
|
|
91
|
+
#include <atlbase.h>
|
|
92
|
+
#include <atlutil.h>
|
|
93
|
+
|
|
94
|
+
//#include <map>
|
|
95
|
+
//#include <string>
|
|
96
|
+
void* g_ptr_array[10000];
|
|
97
|
+
int g_line_array[10000];
|
|
98
|
+
const char* g_file_array[10000];
|
|
99
|
+
CStringA g_stack_array[10000];
|
|
100
|
+
|
|
101
|
+
//typedef std::map<void*,std::string> TObjMap;
|
|
102
|
+
//static TObjMap* g_Objects;
|
|
103
|
+
static CRITICAL_SECTION s_localLock;
|
|
104
|
+
|
|
105
|
+
long getObjectCount(){
|
|
106
|
+
return g_nCount;
|
|
107
|
+
}
|
|
108
|
+
int g_nInsideadd_memref = 0;
|
|
109
|
+
CStringA MyDumpStack();
|
|
110
|
+
void add_memref(void* pmem, const char* file, int line)
|
|
111
|
+
{
|
|
112
|
+
if (!g_nInsideadd_memref && g_nCount>=0&& strstr(file, "\\gc.c") == 0 &&
|
|
113
|
+
strstr(file,"\\regexec.c") == 0 )
|
|
114
|
+
{
|
|
115
|
+
g_nInsideadd_memref = 1;
|
|
116
|
+
|
|
117
|
+
CStringA str = MyDumpStack();
|
|
118
|
+
|
|
119
|
+
::EnterCriticalSection(&s_localLock);
|
|
120
|
+
g_ptr_array[g_nCount] = pmem;
|
|
121
|
+
g_line_array[g_nCount] = line;
|
|
122
|
+
g_file_array[g_nCount] = file;
|
|
123
|
+
g_stack_array[g_nCount] = str;
|
|
124
|
+
g_nCount++;
|
|
125
|
+
|
|
126
|
+
g_nInsideadd_memref = 0;
|
|
127
|
+
::LeaveCriticalSection(&s_localLock);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
void del_memref(void* pmem)
|
|
132
|
+
{
|
|
133
|
+
if (g_nCount>=0){
|
|
134
|
+
::EnterCriticalSection(&s_localLock);
|
|
135
|
+
|
|
136
|
+
for(int i = 0; i<g_nCount; i++)
|
|
137
|
+
{
|
|
138
|
+
if ( g_ptr_array[i] == pmem)
|
|
139
|
+
{
|
|
140
|
+
g_ptr_array[i] = 0;
|
|
141
|
+
if ( i == g_nCount-1)
|
|
142
|
+
g_nCount--;
|
|
143
|
+
|
|
144
|
+
break;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
::LeaveCriticalSection(&s_localLock);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
extern "C" void StartMemMonitoring()
|
|
154
|
+
{
|
|
155
|
+
if (g_nCount<0)
|
|
156
|
+
{
|
|
157
|
+
::InitializeCriticalSection(&s_localLock);
|
|
158
|
+
g_nCount = 0;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
extern "C" void StopMemMonitoring()
|
|
163
|
+
{
|
|
164
|
+
if (g_nCount>=0)
|
|
165
|
+
{
|
|
166
|
+
::DeleteCriticalSection(&s_localLock);
|
|
167
|
+
g_nCount = 0;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
char buf[20];
|
|
172
|
+
#if !defined(_WIN32_WCE)
|
|
173
|
+
extern "C" void dumpAllMemObjs()
|
|
174
|
+
{
|
|
175
|
+
OutputDebugString(L"START DUMP\r\n");
|
|
176
|
+
|
|
177
|
+
for(int i = 0; i<g_nCount; i++)
|
|
178
|
+
{
|
|
179
|
+
if ( g_ptr_array[i] )
|
|
180
|
+
{
|
|
181
|
+
OutputDebugStringA( g_file_array[i] );
|
|
182
|
+
|
|
183
|
+
sprintf(buf, ": %d", g_line_array[i] );
|
|
184
|
+
OutputDebugStringA( buf );
|
|
185
|
+
|
|
186
|
+
OutputDebugStringA( g_stack_array[i] );
|
|
187
|
+
|
|
188
|
+
OutputDebugStringA( "\r\n" );
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
#else
|
|
193
|
+
extern "C" void dumpAllMemObjs()
|
|
194
|
+
{
|
|
195
|
+
}
|
|
196
|
+
#endif
|
|
197
|
+
|
|
198
|
+
#if !defined(_WIN32_WCE)
|
|
199
|
+
class CTraceClipboardData : public IStackDumpHandler
|
|
200
|
+
{
|
|
201
|
+
public:
|
|
202
|
+
CStringA m_strStackA;
|
|
203
|
+
bool m_bStop;
|
|
204
|
+
void __stdcall OnBegin(){}
|
|
205
|
+
void __stdcall OnEntry(void *pvAddress, LPCSTR szModule, LPCSTR szSymbol)
|
|
206
|
+
{
|
|
207
|
+
if ( m_bStop )
|
|
208
|
+
return;
|
|
209
|
+
|
|
210
|
+
char sz[40];
|
|
211
|
+
sprintf_s(sz, _countof(sz), "%p: ", pvAddress);
|
|
212
|
+
SendOut(sz);
|
|
213
|
+
|
|
214
|
+
//if (szModule && strcmp(szModule, "kernel32.dll") == 0)
|
|
215
|
+
//{
|
|
216
|
+
//m_bStop = true;
|
|
217
|
+
//return;
|
|
218
|
+
//}
|
|
219
|
+
|
|
220
|
+
if (szModule)
|
|
221
|
+
{
|
|
222
|
+
ATLASSERT(szSymbol);
|
|
223
|
+
SendOut(szModule);
|
|
224
|
+
SendOut("! ");
|
|
225
|
+
SendOut(szSymbol);
|
|
226
|
+
}
|
|
227
|
+
else
|
|
228
|
+
SendOut("symbol not found");
|
|
229
|
+
SendOut("\r\n");
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
void __stdcall OnError(LPCSTR szError)
|
|
233
|
+
{
|
|
234
|
+
SendOut(szError);
|
|
235
|
+
}
|
|
236
|
+
void __stdcall OnEnd(){ }
|
|
237
|
+
void SendOut(LPCSTR pszData);
|
|
238
|
+
CTraceClipboardData();
|
|
239
|
+
~CTraceClipboardData();
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
CTraceClipboardData::CTraceClipboardData()//DWORD dwTarget)
|
|
243
|
+
{
|
|
244
|
+
m_bStop = false;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
CTraceClipboardData::~CTraceClipboardData()
|
|
248
|
+
{
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
void CTraceClipboardData::SendOut(LPCSTR pszData)
|
|
252
|
+
{
|
|
253
|
+
m_strStackA += pszData;
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
/////////////////////////////////////////////////////////////////////////////
|
|
258
|
+
// AfxDumpStack API
|
|
259
|
+
|
|
260
|
+
CStringA MyDumpStack()
|
|
261
|
+
{
|
|
262
|
+
CTraceClipboardData clipboardData;
|
|
263
|
+
|
|
264
|
+
AtlDumpStack(&clipboardData);
|
|
265
|
+
|
|
266
|
+
return clipboardData.m_strStackA;
|
|
267
|
+
}
|
|
268
|
+
#else
|
|
269
|
+
CStringA MyDumpStack()
|
|
270
|
+
{
|
|
271
|
+
return CStringA();
|
|
272
|
+
}
|
|
273
|
+
#endif
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
#include "NetRequest.h"
|
|
7
7
|
#include "common/StringConverter.h"
|
|
8
8
|
#include "net/URI.h"
|
|
9
|
+
#include "common/RhoConf.h"
|
|
9
10
|
|
|
10
11
|
#if defined(_WIN32_WCE)
|
|
11
12
|
#include <connmgr.h>
|
|
@@ -62,8 +63,31 @@ CNetRequestImpl::CNetRequestImpl(CNetRequest* pParent, const char* method, const
|
|
|
62
63
|
break;
|
|
63
64
|
}
|
|
64
65
|
|
|
65
|
-
|
|
66
|
-
|
|
66
|
+
#ifdef OS_WINDOWS
|
|
67
|
+
if (RHOCONF().isExist("http_proxy_host")) {
|
|
68
|
+
rho::String login, password;
|
|
69
|
+
|
|
70
|
+
if (RHOCONF().isExist("http_proxy_login"))
|
|
71
|
+
login = RHOCONF().getString ("http_proxy_login");
|
|
72
|
+
else
|
|
73
|
+
login = "anonymous";
|
|
74
|
+
|
|
75
|
+
if (RHOCONF().isExist("http_proxy_password"))
|
|
76
|
+
password = RHOCONF().getString("http_proxy_password");
|
|
77
|
+
|
|
78
|
+
m_hConnection = InternetConnect(m_hInternet, m_uri.lpszHostName, m_uri.nPort,
|
|
79
|
+
//rho::common::convertToStringW(login).c_str(),
|
|
80
|
+
//password.length() ? rho::common::convertToStringW(password).c_str() : NULL,
|
|
81
|
+
_T("baran"), _T("baran"),
|
|
82
|
+
INTERNET_SERVICE_HTTP, 0, 0);
|
|
83
|
+
} else {
|
|
84
|
+
m_hConnection = InternetConnect(m_hInternet, m_uri.lpszHostName, m_uri.nPort, _T("anonymous"), NULL,
|
|
85
|
+
INTERNET_SERVICE_HTTP, 0, 0);
|
|
86
|
+
}
|
|
87
|
+
#else
|
|
88
|
+
m_hConnection = InternetConnect( m_hInternet, m_uri.lpszHostName, m_uri.nPort, _T("anonymous"),
|
|
89
|
+
NULL, INTERNET_SERVICE_HTTP, 0, 0 );
|
|
90
|
+
#endif
|
|
67
91
|
if ( !m_hConnection )
|
|
68
92
|
{
|
|
69
93
|
m_pszErrFunction = L"InternetConnect";
|
|
@@ -772,8 +796,27 @@ bool CNetRequestImpl::initConnection(boolean bLocalHost, LPCTSTR url)
|
|
|
772
796
|
if (m_hInternet)
|
|
773
797
|
return true;
|
|
774
798
|
|
|
799
|
+
#ifdef OS_WINDOWS
|
|
800
|
+
if (RHOCONF().isExist("http_proxy_host")) {
|
|
801
|
+
rho::String proxyName = RHOCONF().getString("http_proxy_host");
|
|
802
|
+
|
|
803
|
+
if (RHOCONF().isExist("http_proxy_port")) {
|
|
804
|
+
proxyName += ":" + RHOCONF().getString("http_proxy_port");
|
|
805
|
+
}
|
|
806
|
+
|
|
807
|
+
LOG(ERROR) + "PROXY: " + proxyName;
|
|
808
|
+
|
|
809
|
+
m_hInternet = InternetOpen(_T("rhodes-wm"), INTERNET_OPEN_TYPE_PROXY,
|
|
810
|
+
rho::common::convertToStringW(proxyName).c_str(),
|
|
811
|
+
NULL, NULL);
|
|
812
|
+
} else {
|
|
813
|
+
m_hInternet = InternetOpen(_T("rhodes-wm"), INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, NULL );
|
|
814
|
+
}
|
|
815
|
+
#else
|
|
775
816
|
m_hInternet = InternetOpen(_T("rhodes-wm"), INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, NULL );
|
|
776
|
-
|
|
817
|
+
#endif
|
|
818
|
+
|
|
819
|
+
if ( !m_hInternet )
|
|
777
820
|
{
|
|
778
821
|
m_pszErrFunction = L"InternetOpen";
|
|
779
822
|
return false;
|
|
@@ -33,6 +33,8 @@ const char* rho_webview_execute_js(const char* js, int index)
|
|
|
33
33
|
String strJS = "javascript:";
|
|
34
34
|
strJS += js;
|
|
35
35
|
|
|
36
|
+
//RAWTRACEC1("Execute JS: %s", js);
|
|
37
|
+
|
|
36
38
|
rho_webview_navigate(strJS.c_str(), index);
|
|
37
39
|
return "";
|
|
38
40
|
}
|
|
@@ -60,7 +62,33 @@ void rho_webview_full_screen_mode(int enable)
|
|
|
60
62
|
|
|
61
63
|
void rho_webview_set_cookie(const char *url, const char *cookie)
|
|
62
64
|
{
|
|
63
|
-
|
|
65
|
+
URL_COMPONENTSA uri;
|
|
66
|
+
::memset(&uri, 0, sizeof(uri));
|
|
67
|
+
uri.dwStructSize = sizeof(uri);
|
|
68
|
+
uri.dwSchemeLength = 1;
|
|
69
|
+
uri.dwHostNameLength = 1;
|
|
70
|
+
uri.dwUrlPathLength = 1;
|
|
71
|
+
if (!::InternetCrackUrlA(url, ::strlen(url), 0, &uri)) {
|
|
72
|
+
RAWLOG_ERROR1("WebView.set_cookie: can not parse url: %s", url);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
std::string nurl(uri.lpszScheme, uri.dwSchemeLength);
|
|
77
|
+
nurl += "://";
|
|
78
|
+
nurl += std::string(uri.lpszHostName, uri.dwHostNameLength);
|
|
79
|
+
nurl += std::string(uri.lpszUrlPath, uri.dwUrlPathLength);
|
|
80
|
+
|
|
81
|
+
for (const char *c = cookie;;) {
|
|
82
|
+
const char *s = c;
|
|
83
|
+
for (; *s != ';' && *s != '\0'; ++s);
|
|
84
|
+
std::string c1(c, s - c);
|
|
85
|
+
if (!::InternetSetCookieA(nurl.c_str(), NULL, c1.c_str()))
|
|
86
|
+
RAWLOG_ERROR1("WebView.set_cookie: can not set cookie for url %s", nurl.c_str());
|
|
87
|
+
if (*s == '\0')
|
|
88
|
+
break;
|
|
89
|
+
for (c = s + 1; *c == ' '; ++c);
|
|
90
|
+
}
|
|
91
|
+
|
|
64
92
|
}
|
|
65
93
|
|
|
66
94
|
}
|
|
@@ -33,6 +33,7 @@ CREATE TABLE sources (
|
|
|
33
33
|
last_sync_duration BIGINT default 0,
|
|
34
34
|
last_sync_success BIGINT default 0,
|
|
35
35
|
backend_refresh_time BIGINT default 0,
|
|
36
|
+
model_type varchar default NULL,
|
|
36
37
|
source_attribs varchar default NULL,
|
|
37
38
|
schema varchar default NULL,
|
|
38
39
|
schema_version varchar default NULL,
|
data/res/generators/rhogen.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
require 'rubygems'
|
|
2
2
|
require 'templater'
|
|
3
3
|
#TODO: This is temporary, see https://www.pivotaltracker.com/story/show/3399292
|
|
4
|
-
gem "activesupport", "
|
|
4
|
+
gem "activesupport", "~> 2.3.5"
|
|
5
5
|
require 'active_support'
|
|
6
6
|
require File.dirname(__FILE__) + '/../../lib/rhodes'
|
|
7
7
|
|
data/rhodes.gemspec
CHANGED
|
@@ -3,7 +3,7 @@ require "lib/rhodes.rb"
|
|
|
3
3
|
|
|
4
4
|
Gem::Specification.new do |s|
|
|
5
5
|
s.name = %q{rhodes}
|
|
6
|
-
s.version = '2.0.0.
|
|
6
|
+
s.version = '2.0.0.beta8'
|
|
7
7
|
|
|
8
8
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
9
9
|
s.authors = ["Rhomobile"]
|
|
@@ -22,7 +22,7 @@ Gem::Specification.new do |s|
|
|
|
22
22
|
s.rubygems_version = %q{1.3.5}
|
|
23
23
|
s.add_dependency('templater', '>= 0.5.0')
|
|
24
24
|
s.add_dependency('rake', '>= 0.8.7')
|
|
25
|
-
s.add_dependency('activesupport', '
|
|
25
|
+
s.add_dependency('activesupport', '~> 2.3.5')
|
|
26
26
|
s.add_development_dependency('rdoc', '>= 2.4.3')
|
|
27
27
|
s.executables << 'rhogen'
|
|
28
28
|
s.executables << 'upgrade-rhodes-app'
|
metadata
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rhodes
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
+
hash: -1848230044
|
|
4
5
|
prerelease: true
|
|
5
6
|
segments:
|
|
6
7
|
- 2
|
|
7
8
|
- 0
|
|
8
9
|
- 0
|
|
9
|
-
-
|
|
10
|
-
version: 2.0.0.
|
|
10
|
+
- beta8
|
|
11
|
+
version: 2.0.0.beta8
|
|
11
12
|
platform: ruby
|
|
12
13
|
authors:
|
|
13
14
|
- Rhomobile
|
|
@@ -22,9 +23,11 @@ dependencies:
|
|
|
22
23
|
name: templater
|
|
23
24
|
prerelease: false
|
|
24
25
|
requirement: &id001 !ruby/object:Gem::Requirement
|
|
26
|
+
none: false
|
|
25
27
|
requirements:
|
|
26
28
|
- - ">="
|
|
27
29
|
- !ruby/object:Gem::Version
|
|
30
|
+
hash: 11
|
|
28
31
|
segments:
|
|
29
32
|
- 0
|
|
30
33
|
- 5
|
|
@@ -36,9 +39,11 @@ dependencies:
|
|
|
36
39
|
name: rake
|
|
37
40
|
prerelease: false
|
|
38
41
|
requirement: &id002 !ruby/object:Gem::Requirement
|
|
42
|
+
none: false
|
|
39
43
|
requirements:
|
|
40
44
|
- - ">="
|
|
41
45
|
- !ruby/object:Gem::Version
|
|
46
|
+
hash: 49
|
|
42
47
|
segments:
|
|
43
48
|
- 0
|
|
44
49
|
- 8
|
|
@@ -50,9 +55,11 @@ dependencies:
|
|
|
50
55
|
name: activesupport
|
|
51
56
|
prerelease: false
|
|
52
57
|
requirement: &id003 !ruby/object:Gem::Requirement
|
|
58
|
+
none: false
|
|
53
59
|
requirements:
|
|
54
|
-
- -
|
|
60
|
+
- - ~>
|
|
55
61
|
- !ruby/object:Gem::Version
|
|
62
|
+
hash: 9
|
|
56
63
|
segments:
|
|
57
64
|
- 2
|
|
58
65
|
- 3
|
|
@@ -64,9 +71,11 @@ dependencies:
|
|
|
64
71
|
name: rdoc
|
|
65
72
|
prerelease: false
|
|
66
73
|
requirement: &id004 !ruby/object:Gem::Requirement
|
|
74
|
+
none: false
|
|
67
75
|
requirements:
|
|
68
76
|
- - ">="
|
|
69
77
|
- !ruby/object:Gem::Version
|
|
78
|
+
hash: 25
|
|
70
79
|
segments:
|
|
71
80
|
- 2
|
|
72
81
|
- 4
|
|
@@ -78,9 +87,11 @@ dependencies:
|
|
|
78
87
|
name: diff-lcs
|
|
79
88
|
prerelease: false
|
|
80
89
|
requirement: &id005 !ruby/object:Gem::Requirement
|
|
90
|
+
none: false
|
|
81
91
|
requirements:
|
|
82
92
|
- - ">="
|
|
83
93
|
- !ruby/object:Gem::Version
|
|
94
|
+
hash: 23
|
|
84
95
|
segments:
|
|
85
96
|
- 1
|
|
86
97
|
- 1
|
|
@@ -336,7 +347,6 @@ files:
|
|
|
336
347
|
- lib/test/rho_stubs.rb
|
|
337
348
|
- lib/test/syncdb.sqlite
|
|
338
349
|
- LICENSE
|
|
339
|
-
- Manifest.txt
|
|
340
350
|
- platform/android/build/android.rake
|
|
341
351
|
- platform/android/build/androidcommon.rb
|
|
342
352
|
- platform/android/build/libcurl_build.files
|
|
@@ -348,6 +358,7 @@ files:
|
|
|
348
358
|
- platform/android/build/librhomain_build.files
|
|
349
359
|
- platform/android/build/librhosync_build.files
|
|
350
360
|
- platform/android/build/libruby_build.files
|
|
361
|
+
- platform/android/build/libsqlite_build.files
|
|
351
362
|
- platform/android/build/libstlport_build.files
|
|
352
363
|
- platform/android/build/RhodesGEN_build.files
|
|
353
364
|
- platform/android/build/RhodesSRC_build.files
|
|
@@ -911,6 +922,8 @@ files:
|
|
|
911
922
|
- platform/shared/common/SplashScreen.cpp
|
|
912
923
|
- platform/shared/common/SplashScreen.h
|
|
913
924
|
- platform/shared/common/StringConverter.h
|
|
925
|
+
- platform/shared/common/ThreadQueue.cpp
|
|
926
|
+
- platform/shared/common/ThreadQueue.h
|
|
914
927
|
- platform/shared/common/Tokenizer.cpp
|
|
915
928
|
- platform/shared/common/Tokenizer.h
|
|
916
929
|
- platform/shared/curl/include/curl/curl.h
|
|
@@ -3374,6 +3387,7 @@ files:
|
|
|
3374
3387
|
- platform/wm/rhodes/Macros.h
|
|
3375
3388
|
- platform/wm/rhodes/MainWindow.cpp
|
|
3376
3389
|
- platform/wm/rhodes/MainWindow.h
|
|
3390
|
+
- platform/wm/rhodes/memory_helper.cpp
|
|
3377
3391
|
- platform/wm/rhodes/menubar.cpp
|
|
3378
3392
|
- platform/wm/rhodes/menubar.h
|
|
3379
3393
|
- platform/wm/rhodes/OkCancelModalDialog.h
|
|
@@ -3643,7 +3657,6 @@ files:
|
|
|
3643
3657
|
- res/generators/templates/spec/app/spec_runner.rb
|
|
3644
3658
|
- res/generators/templates/spec/app/SpecRunner/controller.rb
|
|
3645
3659
|
- res/generators/templates/spec/app/SpecRunner/index.erb
|
|
3646
|
-
- rhobuild.yml
|
|
3647
3660
|
- rhobuild.yml.example
|
|
3648
3661
|
- rhodes.gemspec
|
|
3649
3662
|
- spec/framework_spec/app/Account/account.rb
|
|
@@ -5401,23 +5414,27 @@ rdoc_options:
|
|
|
5401
5414
|
require_paths:
|
|
5402
5415
|
- lib
|
|
5403
5416
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
5417
|
+
none: false
|
|
5404
5418
|
requirements:
|
|
5405
5419
|
- - ">="
|
|
5406
5420
|
- !ruby/object:Gem::Version
|
|
5421
|
+
hash: 3
|
|
5407
5422
|
segments:
|
|
5408
5423
|
- 0
|
|
5409
5424
|
version: "0"
|
|
5410
5425
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
5426
|
+
none: false
|
|
5411
5427
|
requirements:
|
|
5412
5428
|
- - ">="
|
|
5413
5429
|
- !ruby/object:Gem::Version
|
|
5430
|
+
hash: 3
|
|
5414
5431
|
segments:
|
|
5415
5432
|
- 0
|
|
5416
5433
|
version: "0"
|
|
5417
5434
|
requirements: []
|
|
5418
5435
|
|
|
5419
5436
|
rubyforge_project: rhodes
|
|
5420
|
-
rubygems_version: 1.3.
|
|
5437
|
+
rubygems_version: 1.3.7
|
|
5421
5438
|
signing_key:
|
|
5422
5439
|
specification_version: 2
|
|
5423
5440
|
summary: The Rhodes framework is the easiest way to develop NATIVE apps with full device capabilities (GPS, PIM, camera, etc.) for any smartphone.
|