Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(748)

Side by Side Diff: mojo/public/cpp/bindings/lib/validation_errors.cc

Issue 466613002: Add validation logic for non-nullable types. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "mojo/public/cpp/bindings/lib/validation_errors.h" 5 #include "mojo/public/cpp/bindings/lib/validation_errors.h"
6 6
7 #include "mojo/public/cpp/environment/logging.h" 7 #include "mojo/public/cpp/environment/logging.h"
8 8
9 namespace mojo { 9 namespace mojo {
10 namespace internal { 10 namespace internal {
(...skipping 10 matching lines...) Expand all
21 case VALIDATION_ERROR_MISALIGNED_OBJECT: 21 case VALIDATION_ERROR_MISALIGNED_OBJECT:
22 return "VALIDATION_ERROR_MISALIGNED_OBJECT"; 22 return "VALIDATION_ERROR_MISALIGNED_OBJECT";
23 case VALIDATION_ERROR_ILLEGAL_MEMORY_RANGE: 23 case VALIDATION_ERROR_ILLEGAL_MEMORY_RANGE:
24 return "VALIDATION_ERROR_ILLEGAL_MEMORY_RANGE"; 24 return "VALIDATION_ERROR_ILLEGAL_MEMORY_RANGE";
25 case VALIDATION_ERROR_UNEXPECTED_STRUCT_HEADER: 25 case VALIDATION_ERROR_UNEXPECTED_STRUCT_HEADER:
26 return "VALIDATION_ERROR_UNEXPECTED_STRUCT_HEADER"; 26 return "VALIDATION_ERROR_UNEXPECTED_STRUCT_HEADER";
27 case VALIDATION_ERROR_UNEXPECTED_ARRAY_HEADER: 27 case VALIDATION_ERROR_UNEXPECTED_ARRAY_HEADER:
28 return "VALIDATION_ERROR_UNEXPECTED_ARRAY_HEADER"; 28 return "VALIDATION_ERROR_UNEXPECTED_ARRAY_HEADER";
29 case VALIDATION_ERROR_ILLEGAL_HANDLE: 29 case VALIDATION_ERROR_ILLEGAL_HANDLE:
30 return "VALIDATION_ERROR_ILLEGAL_HANDLE"; 30 return "VALIDATION_ERROR_ILLEGAL_HANDLE";
31 case VALIDATION_ERROR_UNEXPECTED_INVALID_HANDLE:
32 return "VALIDATION_ERROR_UNEXPECTED_INVALID_HANDLE";
31 case VALIDATION_ERROR_ILLEGAL_POINTER: 33 case VALIDATION_ERROR_ILLEGAL_POINTER:
32 return "VALIDATION_ERROR_ILLEGAL_POINTER"; 34 return "VALIDATION_ERROR_ILLEGAL_POINTER";
35 case VALIDATION_ERROR_UNEXPECTED_NULL_POINTER:
36 return "VALIDATION_ERROR_UNEXPECTED_NULL_POINTER";
33 case VALIDATION_ERROR_MESSAGE_HEADER_INVALID_FLAG_COMBINATION: 37 case VALIDATION_ERROR_MESSAGE_HEADER_INVALID_FLAG_COMBINATION:
34 return "VALIDATION_ERROR_MESSAGE_HEADER_INVALID_FLAG_COMBINATION"; 38 return "VALIDATION_ERROR_MESSAGE_HEADER_INVALID_FLAG_COMBINATION";
35 case VALIDATION_ERROR_MESSAGE_HEADER_MISSING_REQUEST_ID: 39 case VALIDATION_ERROR_MESSAGE_HEADER_MISSING_REQUEST_ID:
36 return "VALIDATION_ERROR_MESSAGE_HEADER_MISSING_REQUEST_ID"; 40 return "VALIDATION_ERROR_MESSAGE_HEADER_MISSING_REQUEST_ID";
37 } 41 }
38 42
39 return "Unknown error"; 43 return "Unknown error";
40 } 44 }
41 45
42 void ReportValidationError(ValidationError error) { 46 void ReportValidationError(ValidationError error) {
43 if (g_validation_error_observer) 47 if (g_validation_error_observer)
44 g_validation_error_observer->set_last_error(error); 48 g_validation_error_observer->set_last_error(error);
45 else 49 else
46 MOJO_LOG(ERROR) << "Invalid message: " << ValidationErrorToString(error); 50 MOJO_LOG(ERROR) << "Invalid message: " << ValidationErrorToString(error);
47 } 51 }
48 52
49 ValidationErrorObserverForTesting::ValidationErrorObserverForTesting() 53 ValidationErrorObserverForTesting::ValidationErrorObserverForTesting()
50 : last_error_(VALIDATION_ERROR_NONE) { 54 : last_error_(VALIDATION_ERROR_NONE) {
51 MOJO_DCHECK(!g_validation_error_observer); 55 MOJO_DCHECK(!g_validation_error_observer);
52 g_validation_error_observer = this; 56 g_validation_error_observer = this;
57 MOJO_LOG(WARNING) << "Non-nullable validation is turned on for testing but "
58 << "not for production code yet!";
53 } 59 }
54 60
55 ValidationErrorObserverForTesting::~ValidationErrorObserverForTesting() { 61 ValidationErrorObserverForTesting::~ValidationErrorObserverForTesting() {
56 MOJO_DCHECK(g_validation_error_observer == this); 62 MOJO_DCHECK(g_validation_error_observer == this);
57 g_validation_error_observer = NULL; 63 g_validation_error_observer = NULL;
58 } 64 }
59 65
66 bool IsNonNullableValidationEnabled() {
67 return !!g_validation_error_observer;
68 }
69
60 } // namespace internal 70 } // namespace internal
61 } // namespace mojo 71 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698