[MediaWiki-commits] [Gerrit] Further protection against corrupting css on build and sync. - change (apps...wikipedia)

2014-08-16 Thread Brion VIBBER (Code Review)
Brion VIBBER has submitted this change and it was merged.

Change subject: Further protection against corrupting css on build and sync.
..


Further protection against corrupting css on build and sync.

Updated error code range comparisons based on comments.

Change-Id: I47b61a143d6f02e61be4081a1036754f407ea453
---
M scripts/make-css-assets.bash
M wikipedia/Data/Operations/SyncAssetsFileOp.m
M wikipedia/mw-network/MWNetworkOp.h
M wikipedia/mw-network/MWNetworkOp.m
4 files changed, 32 insertions(+), 10 deletions(-)

Approvals:
  Brion VIBBER: Verified; Looks good to me, approved



diff --git a/scripts/make-css-assets.bash b/scripts/make-css-assets.bash
index e3a59c3..10b44f2 100755
--- a/scripts/make-css-assets.bash
+++ b/scripts/make-css-assets.bash
@@ -5,8 +5,8 @@
 
PREFIX=http://bits.wikimedia.org/en.wikipedia.org/load.php?debug=truelang=enonly=stylesskin=vectormodules=;
 
 cd wikipedia/assets/  {
-curl -o 'styles.css'   ${PREFIX}mobile.app.pagestyles.ios
-curl -o 'abusefilter.css'  ${PREFIX}mobile.app.pagestyles.ios
-curl -o 'preview.css'  ${PREFIX}mobile.app.preview
+curl -L -f -o 'styles.css'   ${PREFIX}mobile.app.pagestyles.ios
+curl -L -f -o 'abusefilter.css'  ${PREFIX}mobile.app.pagestyles.ios
+curl -L -f -o 'preview.css'  ${PREFIX}mobile.app.preview
 }
 
diff --git a/wikipedia/Data/Operations/SyncAssetsFileOp.m 
b/wikipedia/Data/Operations/SyncAssetsFileOp.m
index 84c826d..d8c89ad 100644
--- a/wikipedia/Data/Operations/SyncAssetsFileOp.m
+++ b/wikipedia/Data/Operations/SyncAssetsFileOp.m
@@ -35,12 +35,11 @@
 self.completionBlock = ^(){
 [[MWNetworkActivityIndicatorManager sharedManager] pop];
 
-if(weakSelf.isCancelled){
-return;
-}
-
-if (weakSelf.error) {
-return;
+if (weakSelf.isCancelled || weakSelf.error) return;
+
+if (weakSelf.response) {
+// Make extra sure that weird responses don't get written.
+if (((NSHTTPURLResponse *)weakSelf.response).statusCode != 
200) return;
 }
 
 // If it got this far, then a refresh was needed and has completed.
diff --git a/wikipedia/mw-network/MWNetworkOp.h 
b/wikipedia/mw-network/MWNetworkOp.h
index 721785e..fabb3e6 100644
--- a/wikipedia/mw-network/MWNetworkOp.h
+++ b/wikipedia/mw-network/MWNetworkOp.h
@@ -31,6 +31,7 @@
 @property (weak) id NetworkOpDelegate delegate;
 
 @property (copy) NSURLRequest *request;
+@property (strong, nonatomic) NSURLResponse *response;
 
 @property (copy, readonly) NSMutableData *dataRetrieved;
 @property (nonatomic) NSUInteger dataRetrievedExpectedLength;
diff --git a/wikipedia/mw-network/MWNetworkOp.m 
b/wikipedia/mw-network/MWNetworkOp.m
index af37787..e7539b0 100644
--- a/wikipedia/mw-network/MWNetworkOp.m
+++ b/wikipedia/mw-network/MWNetworkOp.m
@@ -10,7 +10,6 @@
 
 @property (nonatomic, assign, getter = isOperationStarted) BOOL 
operationStarted;
 @property (strong, nonatomic) NSURLConnection *connection;
-@property (strong, nonatomic) NSURLResponse *response;
 @property (copy, readwrite) NSNumber *bytesWritten;
 @property (copy, readwrite) NSNumber *bytesExpectedToWrite;
 
@@ -184,6 +183,29 @@
 self.response = response;
 }
 
+-(void)setResponse:(NSURLResponse *)response
+{
+_response = response;
+
+[self failIfBadHTTPStatusCode];
+}
+
+-(void)failIfBadHTTPStatusCode
+{
+if (!self.response) return;
+
+// If the response is a server or client error finish with an error.
+NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)self.response;
+NSInteger code = httpResponse.statusCode;
+if ((code = 400)  (code = 499)) {
+[self finishWithError:[NSString stringWithFormat:@Client error. HTTP 
Status Code %ld, (long)code]];
+}else if ((code = 500)  (code = 599)) {
+[self finishWithError:[NSString stringWithFormat:@Server error. HTTP 
Status Code %ld, (long)code]];
+}
+//NSLog(@responseStatusCode = %ld, (long)code);
+//NSLog(@allHeaderFields = %@, httpResponse.allHeaderFields);
+}
+
 -(void)connectionDidFinishLoading:(NSURLConnection *)connection
 {
 if([self isCancelled]) {

-- 
To view, visit https://gerrit.wikimedia.org/r/153696
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I47b61a143d6f02e61be4081a1036754f407ea453
Gerrit-PatchSet: 2
Gerrit-Project: apps/ios/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Mhurd mh...@wikimedia.org
Gerrit-Reviewer: Brion VIBBER br...@wikimedia.org

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Further protection against corrupting css on build and sync. - change (apps...wikipedia)

2014-08-12 Thread Mhurd (Code Review)
Mhurd has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/153696

Change subject: Further protection against corrupting css on build and sync.
..

Further protection against corrupting css on build and sync.

Change-Id: I47b61a143d6f02e61be4081a1036754f407ea453
---
M scripts/make-css-assets.bash
M wikipedia/Data/Operations/SyncAssetsFileOp.m
M wikipedia/mw-network/MWNetworkOp.h
M wikipedia/mw-network/MWNetworkOp.m
4 files changed, 32 insertions(+), 10 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/apps/ios/wikipedia 
refs/changes/96/153696/1

diff --git a/scripts/make-css-assets.bash b/scripts/make-css-assets.bash
index e3a59c3..10b44f2 100755
--- a/scripts/make-css-assets.bash
+++ b/scripts/make-css-assets.bash
@@ -5,8 +5,8 @@
 
PREFIX=http://bits.wikimedia.org/en.wikipedia.org/load.php?debug=truelang=enonly=stylesskin=vectormodules=;
 
 cd wikipedia/assets/  {
-curl -o 'styles.css'   ${PREFIX}mobile.app.pagestyles.ios
-curl -o 'abusefilter.css'  ${PREFIX}mobile.app.pagestyles.ios
-curl -o 'preview.css'  ${PREFIX}mobile.app.preview
+curl -L -f -o 'styles.css'   ${PREFIX}mobile.app.pagestyles.ios
+curl -L -f -o 'abusefilter.css'  ${PREFIX}mobile.app.pagestyles.ios
+curl -L -f -o 'preview.css'  ${PREFIX}mobile.app.preview
 }
 
diff --git a/wikipedia/Data/Operations/SyncAssetsFileOp.m 
b/wikipedia/Data/Operations/SyncAssetsFileOp.m
index 84c826d..d8c89ad 100644
--- a/wikipedia/Data/Operations/SyncAssetsFileOp.m
+++ b/wikipedia/Data/Operations/SyncAssetsFileOp.m
@@ -35,12 +35,11 @@
 self.completionBlock = ^(){
 [[MWNetworkActivityIndicatorManager sharedManager] pop];
 
-if(weakSelf.isCancelled){
-return;
-}
-
-if (weakSelf.error) {
-return;
+if (weakSelf.isCancelled || weakSelf.error) return;
+
+if (weakSelf.response) {
+// Make extra sure that weird responses don't get written.
+if (((NSHTTPURLResponse *)weakSelf.response).statusCode != 
200) return;
 }
 
 // If it got this far, then a refresh was needed and has completed.
diff --git a/wikipedia/mw-network/MWNetworkOp.h 
b/wikipedia/mw-network/MWNetworkOp.h
index 721785e..fabb3e6 100644
--- a/wikipedia/mw-network/MWNetworkOp.h
+++ b/wikipedia/mw-network/MWNetworkOp.h
@@ -31,6 +31,7 @@
 @property (weak) id NetworkOpDelegate delegate;
 
 @property (copy) NSURLRequest *request;
+@property (strong, nonatomic) NSURLResponse *response;
 
 @property (copy, readonly) NSMutableData *dataRetrieved;
 @property (nonatomic) NSUInteger dataRetrievedExpectedLength;
diff --git a/wikipedia/mw-network/MWNetworkOp.m 
b/wikipedia/mw-network/MWNetworkOp.m
index af37787..cbfd434 100644
--- a/wikipedia/mw-network/MWNetworkOp.m
+++ b/wikipedia/mw-network/MWNetworkOp.m
@@ -10,7 +10,6 @@
 
 @property (nonatomic, assign, getter = isOperationStarted) BOOL 
operationStarted;
 @property (strong, nonatomic) NSURLConnection *connection;
-@property (strong, nonatomic) NSURLResponse *response;
 @property (copy, readwrite) NSNumber *bytesWritten;
 @property (copy, readwrite) NSNumber *bytesExpectedToWrite;
 
@@ -184,6 +183,29 @@
 self.response = response;
 }
 
+-(void)setResponse:(NSURLResponse *)response
+{
+_response = response;
+
+[self failIfBadHTTPStatusCode];
+}
+
+-(void)failIfBadHTTPStatusCode
+{
+if (!self.response) return;
+
+// If the response is a server or client error finish with an error.
+NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)self.response;
+NSInteger code = httpResponse.statusCode;
+if ((code  399)  (code  500)) {
+[self finishWithError:[NSString stringWithFormat:@Client error. HTTP 
Status Code %ld, (long)code]];
+}else if ((code  499)  (code  600)) {
+[self finishWithError:[NSString stringWithFormat:@Server error. HTTP 
Status Code %ld, (long)code]];
+}
+//NSLog(@responseStatusCode = %ld, (long)code);
+//NSLog(@allHeaderFields = %@, httpResponse.allHeaderFields);
+}
+
 -(void)connectionDidFinishLoading:(NSURLConnection *)connection
 {
 if([self isCancelled]) {

-- 
To view, visit https://gerrit.wikimedia.org/r/153696
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I47b61a143d6f02e61be4081a1036754f407ea453
Gerrit-PatchSet: 1
Gerrit-Project: apps/ios/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Mhurd mh...@wikimedia.org

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits