rhodes 5.5.0.7 → 5.5.0.22

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.
Files changed (113) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +1 -1
  3. data/CREDITS +3 -3
  4. data/Rakefile +24 -0
  5. data/extensions/instrumentation/ext/platform/android/src/com/rho/instrumentation/Instrumentation.java +5 -0
  6. data/extensions/rhoconnect-push/ext/rhoconnect-push/platform/android/Rakefile +1 -1
  7. data/lib/build/jake.rb +5 -0
  8. data/lib/commonAPI/clipboard/ext.yml +17 -0
  9. data/lib/commonAPI/clipboard/ext/Clipboard.xml +49 -0
  10. data/lib/commonAPI/clipboard/ext/build +19 -0
  11. data/lib/commonAPI/clipboard/ext/build.bat +29 -0
  12. data/lib/commonAPI/clipboard/ext/platform/android/Rakefile +141 -0
  13. data/lib/commonAPI/clipboard/ext/platform/android/ext_java.files +9 -0
  14. data/lib/commonAPI/clipboard/ext/platform/android/ext_native.files +7 -0
  15. data/lib/commonAPI/clipboard/ext/platform/android/jni/Clipboard_impl.cpp +61 -0
  16. data/lib/commonAPI/clipboard/ext/platform/android/src/com/rho/clipboard/Clipboard.java +15 -0
  17. data/lib/commonAPI/clipboard/ext/platform/android/src/com/rho/clipboard/ClipboardFactory.java +18 -0
  18. data/lib/commonAPI/clipboard/ext/platform/android/src/com/rho/clipboard/ClipboardSingleton.java +146 -0
  19. data/lib/commonAPI/clipboard/ext/platform/iphone/Clipboard.xcodeproj/project.pbxproj +368 -0
  20. data/lib/commonAPI/clipboard/ext/platform/iphone/Clipboard_Prefix.pch +7 -0
  21. data/lib/commonAPI/clipboard/ext/platform/iphone/Rakefile +73 -0
  22. data/lib/commonAPI/clipboard/ext/platform/iphone/impl/Clipboard.h +11 -0
  23. data/lib/commonAPI/clipboard/ext/platform/iphone/impl/Clipboard.m +12 -0
  24. data/lib/commonAPI/clipboard/ext/platform/iphone/impl/ClipboardFactorySingleton.m +16 -0
  25. data/lib/commonAPI/clipboard/ext/platform/iphone/impl/ClipboardSetup.m +9 -0
  26. data/lib/commonAPI/clipboard/ext/platform/iphone/impl/ClipboardSingleton.h +18 -0
  27. data/lib/commonAPI/clipboard/ext/platform/iphone/impl/ClipboardSingleton.m +43 -0
  28. data/lib/commonAPI/clipboard/ext/platform/iphone/impl/readme.txt +7 -0
  29. data/lib/commonAPI/coreapi/ext/NativeTabbar.xml +3 -3
  30. data/lib/commonAPI/coreapi/ext/shared/TimerImpl.cpp +36 -27
  31. data/lib/commonAPI/coreapi/public/api/rhoapi-force.ajax.js +3 -1
  32. data/lib/commonAPI/coreapi/public/api/rhoapi.js +2 -1
  33. data/lib/commonAPI/devicesecurity/ext.yml +11 -0
  34. data/lib/commonAPI/devicesecurity/ext/DeviceSecurity.xml +91 -0
  35. data/lib/commonAPI/devicesecurity/ext/build +19 -0
  36. data/lib/commonAPI/devicesecurity/ext/build.bat +29 -0
  37. data/lib/commonAPI/devicesecurity/ext/platform/android/InbuiltValues.erb +16 -0
  38. data/lib/commonAPI/devicesecurity/ext/platform/android/Rakefile +166 -0
  39. data/lib/commonAPI/devicesecurity/ext/platform/android/ext_java.files +10 -0
  40. data/lib/commonAPI/devicesecurity/ext/platform/android/ext_native.files +7 -0
  41. data/lib/commonAPI/devicesecurity/ext/platform/android/jni/DeviceSecurity_impl.cpp +61 -0
  42. data/lib/commonAPI/devicesecurity/ext/platform/android/src/com/rho/devicesecurity/DeviceSecurity.java +14 -0
  43. data/lib/commonAPI/devicesecurity/ext/platform/android/src/com/rho/devicesecurity/DeviceSecurityFactory.java +18 -0
  44. data/lib/commonAPI/devicesecurity/ext/platform/android/src/com/rho/devicesecurity/DeviceSecuritySingleton.java +412 -0
  45. data/lib/commonAPI/devicesecurity/ext/platform/iphone/DeviceSecurity.xcodeproj/project.pbxproj +368 -0
  46. data/lib/commonAPI/devicesecurity/ext/platform/iphone/DeviceSecurity_Prefix.pch +7 -0
  47. data/lib/commonAPI/devicesecurity/ext/platform/iphone/Rakefile +73 -0
  48. data/lib/commonAPI/devicesecurity/ext/platform/iphone/impl/DeviceSecurity.h +11 -0
  49. data/lib/commonAPI/devicesecurity/ext/platform/iphone/impl/DeviceSecurity.m +12 -0
  50. data/lib/commonAPI/devicesecurity/ext/platform/iphone/impl/DeviceSecurityFactorySingleton.m +16 -0
  51. data/lib/commonAPI/devicesecurity/ext/platform/iphone/impl/DeviceSecuritySetup.m +9 -0
  52. data/lib/commonAPI/devicesecurity/ext/platform/iphone/impl/DeviceSecuritySingleton.h +19 -0
  53. data/lib/commonAPI/devicesecurity/ext/platform/iphone/impl/DeviceSecuritySingleton.m +106 -0
  54. data/lib/commonAPI/devicesecurity/ext/platform/iphone/impl/readme.txt +7 -0
  55. data/platform/android/Rhodes/src/com/rhomobile/rhodes/LocalFileProvider.java +5 -1
  56. data/platform/android/Rhodes/src/com/rhomobile/rhodes/util/Utils.java +9 -0
  57. data/platform/android/build/android.rake +42 -1
  58. data/platform/android/build/androidcommon.rb +4 -2
  59. data/platform/iphone/Classes/RhoWKWebView.m +4 -0
  60. data/platform/iphone/Classes/URLProtocol/CRhoURLProtocol.h +2 -0
  61. data/platform/iphone/Classes/URLProtocol/CRhoURLProtocol.m +195 -30
  62. data/platform/iphone/Classes/rho/net/IPhoneNetRequest.mm +91 -4
  63. data/platform/iphone/rbuild/iphone.rake +297 -231
  64. data/platform/iphone/rbuild/putsOverride.rake +8 -0
  65. data/platform/shared/common/RhoTime.cpp +81 -40
  66. data/platform/shared/common/RhodesApp.cpp +16 -18
  67. data/platform/shared/db/DBAdapter.cpp +33 -0
  68. data/platform/shared/db/DBAdapter.h +5 -0
  69. data/platform/shared/net/HttpServer.cpp +27 -1
  70. data/platform/shared/net/INetRequest.cpp +33 -6
  71. data/platform/shared/qt/rhodes/qkineticscroller.cpp +2 -2
  72. data/platform/shared/qt/rhodes/qkineticscroller_p.h +1 -1
  73. data/platform/shared/qt/rhodes/qtscrollerfilter.cpp +3 -3
  74. data/platform/shared/qt/rhodes/qtscrollevent.cpp +2 -2
  75. data/platform/shared/qt/rhodes/qwebviewkineticscroller.cpp +1 -1
  76. data/platform/shared/qt/rhodes/qwebviewkineticscroller.h +1 -1
  77. data/platform/wm/build/wm.rake +7 -3
  78. data/platform/wm/rhodes/browser/BrowserFactory.cpp +4 -6
  79. data/platform/wm/rhodes/browser/stubs.cpp +5 -0
  80. data/platform/wm/rhodes/rhodes.vcproj +31 -2
  81. data/rakefile.rb +24 -0
  82. data/res/generators/templates/application/app/Settings/home.erb +1 -1
  83. data/res/generators/templates/application/build.yml +61 -4
  84. data/res/generators/templates/application/icon/icon.png +0 -0
  85. data/res/generators/templates/application/icon/icon114.png +0 -0
  86. data/res/generators/templates/application/icon/icon120.png +0 -0
  87. data/res/generators/templates/application/icon/icon144.png +0 -0
  88. data/res/generators/templates/application/icon/icon152.png +0 -0
  89. data/res/generators/templates/application/icon/icon180.png +0 -0
  90. data/res/generators/templates/application/icon/icon57.png +0 -0
  91. data/res/generators/templates/application/icon/icon60.png +0 -0
  92. data/res/generators/templates/application/icon/icon72.png +0 -0
  93. data/res/generators/templates/application/icon/icon76.png +0 -0
  94. data/res/generators/templates/application/production/iTunesArtwork.png +0 -0
  95. data/res/generators/templates/application/production/iTunesArtwork@2x.png +0 -0
  96. data/res/generators/templates/iphone_project/Bremen7.xcodeproj/project.pbxproj +1 -0
  97. data/res/generators/templates/iphone_project/buildRhoBundle +23 -7
  98. data/res/generators/templates/iphone_project/root/Info.plist +0 -2
  99. data/res/generators/templates/iphone_project/root/iTunesArtwork +0 -0
  100. data/res/generators/templates/iphone_project/root/iTunesArtwork@2x +0 -0
  101. data/res/generators/templates/iphone_project/root/icon114.png +0 -0
  102. data/res/generators/templates/iphone_project/root/icon120.png +0 -0
  103. data/res/generators/templates/iphone_project/root/icon144.png +0 -0
  104. data/res/generators/templates/iphone_project/root/icon152.png +0 -0
  105. data/res/generators/templates/iphone_project/root/icon180.png +0 -0
  106. data/res/generators/templates/iphone_project/root/icon57.png +0 -0
  107. data/res/generators/templates/iphone_project/root/icon60.png +0 -0
  108. data/res/generators/templates/iphone_project/root/icon72.png +0 -0
  109. data/res/generators/templates/iphone_project/root/icon76.png +0 -0
  110. data/res/generators/templates/iphone_project/root/rhorunner_development.entitlements +6 -0
  111. data/rhodes.gemspec +19 -17
  112. data/version +1 -1
  113. metadata +118 -44
@@ -0,0 +1,8 @@
1
+ def puts(o=nil)
2
+ if o != nil
3
+ $stdout.puts(o)
4
+ if $out_file_buf_enable
5
+ $out_file_buf << o.to_s
6
+ end
7
+ end
8
+ end
@@ -1,18 +1,18 @@
1
1
  /*------------------------------------------------------------------------
2
2
  * (The MIT License)
3
- *
3
+ *
4
4
  * Copyright (c) 2008-2011 Rhomobile, Inc.
5
- *
5
+ *
6
6
  * Permission is hereby granted, free of charge, to any person obtaining a copy
7
7
  * of this software and associated documentation files (the "Software"), to deal
8
8
  * in the Software without restriction, including without limitation the rights
9
9
  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
10
  * copies of the Software, and to permit persons to whom the Software is
11
11
  * furnished to do so, subject to the following conditions:
12
- *
12
+ *
13
13
  * The above copyright notice and this permission notice shall be included in
14
14
  * all copies or substantial portions of the Software.
15
- *
15
+ *
16
16
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
17
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
18
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -20,13 +20,39 @@
20
20
  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
21
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
22
  * THE SOFTWARE.
23
- *
23
+ *
24
24
  * http://rhomobile.com
25
25
  *------------------------------------------------------------------------*/
26
26
 
27
27
  #include "common/RhoTime.h"
28
28
  #include "common/RhodesApp.h"
29
29
 
30
+ #include "common/RhoConf.h"
31
+
32
+
33
+ #include "logging/RhoLog.h"
34
+
35
+ #undef DEFAULT_LOGCATEGORY
36
+ #define DEFAULT_LOGCATEGORY "RhoTimer"
37
+
38
+
39
+ static bool is_net_trace() {
40
+ static int res = -1;
41
+ if (res == -1) {
42
+ if (rho_conf_getBool("net_trace") ) {
43
+ res = 1;
44
+ }
45
+ else {
46
+ res = 0;
47
+ }
48
+ }
49
+ return res == 1;
50
+ }
51
+
52
+
53
+
54
+
55
+
30
56
  namespace rho{
31
57
  namespace common{
32
58
 
@@ -143,33 +169,34 @@ boolean CRhoTimer::checkTimers()
143
169
  for( int i = (int)m_arItems.size()-1; i >= 0; i--)
144
170
  {
145
171
  CTimerItem oItem = m_arItems.elementAt(i);
146
- if(oItem.m_overflow==false)
147
- {
148
-
149
- if ( curTime.toULong() >= oItem.m_oFireTime.toULong() )
150
- {
151
- RAWTRACE("CRhoTimer::checkTimers: firing timer");
152
- m_arItems.removeElementAt(i);
153
- if ( RHODESAPP().callTimerCallback(oItem.m_strCallback, oItem.m_strCallbackData) )
154
- bRet = true;
155
- }
156
-
157
- }
158
- else
159
- {
160
- if ( curTime.toULong() >= oItem.m_oFireTime.toULong() )
161
- {
162
- if((curTime.toULong()-oItem.m_oFireTime.toULong())<=oItem.m_nInterval)
163
- {
172
+
173
+ if(oItem.m_overflow==false)
174
+ {
175
+
176
+ if ( curTime.toULong() >= oItem.m_oFireTime.toULong() )
177
+ {
164
178
  RAWTRACE("CRhoTimer::checkTimers: firing timer");
165
- m_arItems.removeElementAt(i);
166
- if ( RHODESAPP().callTimerCallback(oItem.m_strCallback, oItem.m_strCallbackData) )
167
- bRet = true;
168
- }
169
-
170
- }
171
-
172
- }
179
+ m_arItems.removeElementAt(i);
180
+ if ( RHODESAPP().callTimerCallback(oItem.m_strCallback, oItem.m_strCallbackData) )
181
+ bRet = true;
182
+ }
183
+
184
+ }
185
+ else
186
+ {
187
+ if ( curTime.toULong() >= oItem.m_oFireTime.toULong() )
188
+ {
189
+ if((curTime.toULong()-oItem.m_oFireTime.toULong())<=oItem.m_nInterval)
190
+ {
191
+ RAWTRACE("CRhoTimer::checkTimers: firing timer");
192
+ m_arItems.removeElementAt(i);
193
+ if ( RHODESAPP().callTimerCallback(oItem.m_strCallback, oItem.m_strCallbackData) )
194
+ bRet = true;
195
+ }
196
+
197
+ }
198
+
199
+ }
173
200
  }
174
201
 
175
202
  for( int i = (int)m_arNativeItems.size()-1; i >= 0; i--)
@@ -177,28 +204,42 @@ boolean CRhoTimer::checkTimers()
177
204
  CNativeTimerItem oItem = m_arNativeItems.elementAt(i);
178
205
 
179
206
  if(oItem.m_overflow==false)
180
- {
207
+ {
181
208
  if ( curTime.toULong() >= oItem.m_oFireTime.toULong() )
182
209
  {
183
210
  RAWTRACE("CRhoTimer::checkTimers: firing native timer");
184
211
  m_arNativeItems.removeElementAt(i);
185
- if ( oItem.m_pCallback->onTimer() )
212
+ if (is_net_trace()) {
213
+ RAWTRACE("$NetRequestProcess$ PRE ONTIMER CRhoTimer::checkTimers() 1 TIMER");
214
+ }
215
+ if ( oItem.m_pCallback->onTimer() ) {
186
216
  bRet = true;
217
+ }
218
+ if (is_net_trace()) {
219
+ RAWTRACE("$NetRequestProcess$ POST ONTIMER CRhoTimer::checkTimers() 1 TIMER");
220
+ }
187
221
  }
188
222
  }
189
223
  else
190
224
  {
191
225
  if ( curTime.toULong() >= oItem.m_oFireTime.toULong() )
192
- {
193
- if((curTime.toULong()-oItem.m_oFireTime.toULong())<=oItem.m_nInterval)
194
- {
226
+ {
227
+ if((curTime.toULong()-oItem.m_oFireTime.toULong())<=oItem.m_nInterval)
228
+ {
195
229
  RAWTRACE("CRhoTimer::checkTimers: firing native timer");
196
230
  m_arNativeItems.removeElementAt(i);
197
- if ( oItem.m_pCallback->onTimer() )
231
+ if (is_net_trace()) {
232
+ RAWTRACE("$NetRequestProcess$ PRE ONTIMER CRhoTimer::checkTimers() 2 TIMER");
233
+ }
234
+ if ( oItem.m_pCallback->onTimer() ) {
198
235
  bRet = true;
199
- }
200
-
201
- }
236
+ }
237
+ if (is_net_trace()) {
238
+ RAWTRACE("$NetRequestProcess$ POST ONTIMER CRhoTimer::checkTimers() 2 TIMER");
239
+ }
240
+ }
241
+
242
+ }
202
243
  }
203
244
  }
204
245
 
@@ -353,10 +353,10 @@ void CAppCallbacksQueue::processCommand(IQueueCommand* pCmd)
353
353
  {
354
354
  processUiCreated();
355
355
  }
356
- if (!RHODESAPP().getApplicationEventReceiver()->onAppStateChange(rho::common::applicationStateActivated))
357
- {
358
- callCallback("/system/activateapp");
359
- }
356
+
357
+ RHODESAPP().getApplicationEventReceiver()->onAppStateChange(rho::common::applicationStateActivated);
358
+ callCallback("/system/activateapp");
359
+
360
360
  m_expected = app_deactivated;
361
361
  }
362
362
  break;
@@ -388,15 +388,15 @@ void CAppCallbacksQueue::processUiCreated()
388
388
  #endif
389
389
 
390
390
  // at this point JS app is unlikely to set its own handler, just navigate to overriden start path
391
- if (!RHODESAPP().getApplicationEventReceiver()->onUIStateChange(rho::common::UIStateCreated))
392
- {
391
+ RHODESAPP().getApplicationEventReceiver()->onUIStateChange(rho::common::UIStateCreated);
392
+
393
393
  if ( rho_ruby_is_started() )
394
394
  callCallback("/system/uicreated");
395
395
  #if !defined(APP_BUILD_CAPABILITY_SHARED_RUNTIME) || !defined(OS_ANDROID)
396
396
  else
397
397
  rho_webview_navigate(startPath.c_str(), 0);
398
398
  #endif
399
- }
399
+
400
400
  m_uistate = ui_created_processed;
401
401
  }
402
402
 
@@ -742,16 +742,15 @@ void CRhodesApp::callUiDestroyedCallback()
742
742
  if ( m_bExit/* || !rho_ruby_is_started()*/ )
743
743
  return;
744
744
 
745
- if (!RHODESAPP().getApplicationEventReceiver()->onUIStateChange(rho::common::UIStateDestroyed))
745
+
746
+ RHODESAPP().getApplicationEventReceiver()->onUIStateChange(rho::common::UIStateDestroyed);
747
+ if ( rho_ruby_is_started() )
746
748
  {
747
- if ( rho_ruby_is_started() )
749
+ String strUrl = m_strHomeUrl + "/system/uidestroyed";
750
+ NetResponse resp = getNetRequest().pullData( strUrl, null );
751
+ if ( !resp.isOK() )
748
752
  {
749
- String strUrl = m_strHomeUrl + "/system/uidestroyed";
750
- NetResponse resp = getNetRequest().pullData( strUrl, null );
751
- if ( !resp.isOK() )
752
- {
753
- LOG(ERROR) + "UI destroy callback failed. Code: " + resp.getRespCode() + "; Error body: " + resp.getCharData();
754
- }
753
+ LOG(ERROR) + "UI destroy callback failed. Code: " + resp.getRespCode() + "; Error body: " + resp.getCharData();
755
754
  }
756
755
  }
757
756
  }
@@ -789,8 +788,8 @@ void CRhodesApp::callAppActiveCallback(boolean bActive)
789
788
  m_appCallbacksQueue->addQueueCommand(new CAppCallbacksQueue::Command(CAppCallbacksQueue::app_deactivated));
790
789
 
791
790
  // TODO: Support stop_local_server command to be parsed from callback result
792
- if (!RHODESAPP().getApplicationEventReceiver()->onAppStateChange(rho::common::applicationStateDeactivated))
793
- {
791
+ RHODESAPP().getApplicationEventReceiver()->onAppStateChange(rho::common::applicationStateDeactivated);
792
+
794
793
  #ifndef RHO_NO_RUBY_API
795
794
  if ( rho_ruby_is_started() )
796
795
  {
@@ -814,7 +813,6 @@ void CRhodesApp::callAppActiveCallback(boolean bActive)
814
813
  }
815
814
  }
816
815
  #endif
817
- }
818
816
 
819
817
  m_bDeactivationMode = false;
820
818
  }
@@ -633,6 +633,39 @@ void CDBAdapter::copyTable(String tableName, CDBAdapter& dbFrom, CDBAdapter& dbT
633
633
  }
634
634
  }
635
635
  }
636
+
637
+ // add file.blob attrib_type for blob attribs in changed_values
638
+ void CDBAdapter::updateAllBlobAttribChanges()
639
+ {
640
+ //Check for attrib = object
641
+ IDBResult res = executeSQL("SELECT object, source_id, attrib "
642
+ "FROM changed_values where update_type = 'update' and sent=0");
643
+
644
+ if ( res.isEnd() )
645
+ return;
646
+
647
+ startTransaction();
648
+
649
+ Vector<String> arObj, arAttrib;
650
+ Vector<int> arSrcID;
651
+ for( ; !res.isEnd(); res.next() )
652
+ {
653
+ arObj.addElement(res.getStringByIdx(0));
654
+ arSrcID.addElement(res.getIntByIdx(1));
655
+ arAttrib.addElement(res.getStringByIdx(2));
656
+ }
657
+
658
+ for( int i = 0; i < (int)arObj.size(); i++ )
659
+ {
660
+ String attribType = getAttrMgr().isBlobAttr(arSrcID.elementAt(i), arAttrib.elementAt(i).c_str()) ? "blob.file" : "";
661
+ if (attribType.length() > 0) {
662
+ executeSQL("UPDATE changed_values SET attrib_type=? WHERE source_id=? and object=? and attrib=? and sent=0", attribType, arSrcID.elementAt(i), arObj.elementAt(i), arAttrib.elementAt(i));
663
+ }
664
+ }
665
+
666
+ endTransaction();
667
+ }
668
+
636
669
 
637
670
  void CDBAdapter::updateAllAttribChanges()
638
671
  {
@@ -359,7 +359,12 @@ public:
359
359
 
360
360
  DBResultPtr prepareStatement( const char* szSt );
361
361
  DBResultPtr executeStatement(common::CAutoPtr<CDBResult>& res, const char* szSt);
362
+
363
+ // unpack object in changed_values with update_type==create to set of objects's attribs
362
364
  void updateAllAttribChanges();
365
+
366
+ // add file.blob attrib_type for blob attribs in changed_values
367
+ void updateAllBlobAttribChanges();
363
368
  void updateFullUpdateChanges(int nSrcID);
364
369
 
365
370
  String exportDatabase();
@@ -81,6 +81,24 @@ typedef unsigned __int16 uint16_t;
81
81
  #undef DEFAULT_LOGCATEGORY
82
82
  #define DEFAULT_LOGCATEGORY "HttpServer"
83
83
 
84
+
85
+ static bool is_net_trace() {
86
+ static int res = -1;
87
+ if (res == -1) {
88
+ if (rho_conf_getBool("net_trace") ) {
89
+ res = 1;
90
+ }
91
+ else {
92
+ res = 0;
93
+ }
94
+ }
95
+ return res == 1;
96
+ }
97
+
98
+
99
+
100
+
101
+
84
102
  //extern "C" void rho_sync_addobjectnotify_bysrcname(const char* szSrcName, const char* szObject);
85
103
 
86
104
  namespace rho
@@ -1497,8 +1515,13 @@ bool CHttpServer::decide(String const &method, String const &arg_uri, String con
1497
1515
  #ifdef OS_MACOSX
1498
1516
  String CHttpServer::directRequest( const String& method, const String& uri, const String& query, const HeaderList& headers ,const String& body )
1499
1517
  {
1518
+ if (is_net_trace()) {
1519
+ RAWTRACE1("$NetRequestProcess$ PRE LOCK CHttpServer::directRequest uri = %s", uri.c_str());
1520
+ }
1500
1521
  common::CMutexLock lock(m_mxSyncRequest);
1501
-
1522
+ if (is_net_trace()) {
1523
+ RAWTRACE1("$NetRequestProcess$ POST LOCK CHttpServer::directRequest uri = %s", uri.c_str());
1524
+ }
1502
1525
  String ret;
1503
1526
  if ( m_pQueue != 0 )
1504
1527
  {
@@ -1526,6 +1549,9 @@ String CHttpServer::directRequest( const String& method, const String& uri, cons
1526
1549
 
1527
1550
  ret = m_pQueue->getResponse();
1528
1551
  }
1552
+ if (is_net_trace()) {
1553
+ RAWTRACE1("$NetRequestProcess$ FINISH CHttpServer::directRequest uri = %s", uri.c_str());
1554
+ }
1529
1555
 
1530
1556
  return ret;
1531
1557
 
@@ -1,18 +1,18 @@
1
1
  /*------------------------------------------------------------------------
2
2
  * (The MIT License)
3
- *
3
+ *
4
4
  * Copyright (c) 2008-2011 Rhomobile, Inc.
5
- *
5
+ *
6
6
  * Permission is hereby granted, free of charge, to any person obtaining a copy
7
7
  * of this software and associated documentation files (the "Software"), to deal
8
8
  * in the Software without restriction, including without limitation the rights
9
9
  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
10
  * copies of the Software, and to permit persons to whom the Software is
11
11
  * furnished to do so, subject to the following conditions:
12
- *
12
+ *
13
13
  * The above copyright notice and this permission notice shall be included in
14
14
  * all copies or substantial portions of the Software.
15
- *
15
+ *
16
16
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
17
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
18
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -20,7 +20,7 @@
20
20
  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
21
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
22
  * THE SOFTWARE.
23
- *
23
+ *
24
24
  * http://rhomobile.com
25
25
  *------------------------------------------------------------------------*/
26
26
 
@@ -31,6 +31,28 @@
31
31
  #include "common/RhoFilePath.h"
32
32
  #include "net/URI.h"
33
33
 
34
+ #include "common/RhoConf.h"
35
+ #include "logging/RhoLog.h"
36
+
37
+ #undef DEFAULT_LOGCATEGORY
38
+ #define DEFAULT_LOGCATEGORY "NetRequestTimer"
39
+
40
+
41
+ static bool is_net_trace() {
42
+ static int res = -1;
43
+ if (res == -1) {
44
+ if (rho_conf_getBool("net_trace") ) {
45
+ res = 1;
46
+ }
47
+ else {
48
+ res = 0;
49
+ }
50
+ }
51
+ return res == 1;
52
+ }
53
+
54
+
55
+
34
56
  namespace rho {
35
57
  namespace net {
36
58
 
@@ -50,12 +72,17 @@ void CNetRequestHolder::setRequest(INetRequestImpl* pReq)
50
72
 
51
73
  void CNetRequestHolder::cancel()
52
74
  {
75
+ if (is_net_trace()) {
76
+ RAWTRACE("$NetRequestProcess$ PRE SYNCHRONIZED CNetRequestHolder::cancel() TIMER");
77
+ }
53
78
  synchronized(m_mxReq)
54
79
  {
55
80
  m_bCancel = true;
56
81
  if ( m_pReq != 0 )
57
82
  m_pReq->cancel();
58
-
83
+ if (is_net_trace()) {
84
+ RAWTRACE("$NetRequestProcess$ POST SYNCHRONIZED CNetRequestHolder::cancel() TIMER");
85
+ }
59
86
  m_pReq = 0;
60
87
  }
61
88
  }
@@ -38,8 +38,8 @@
38
38
  ** $QT_END_LICENSE$
39
39
  **
40
40
  ****************************************************************************/
41
- #include <qkineticscroller.h>
42
- #include <qkineticscroller_p.h>
41
+ #include "qkineticscroller.h"
42
+ #include "qkineticscroller_p.h"
43
43
  #include <QMap>
44
44
  #include <QApplication>
45
45
  #include <QDesktopWidget>