OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 #import <WebKit/WebKit.h> | 5 #import <WebKit/WebKit.h> |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/mac/foundation_util.h" | 10 #include "base/mac/foundation_util.h" |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
81 id result = web::ExecuteJavaScript(web_view, @"document.cookie"); | 81 id result = web::ExecuteJavaScript(web_view, @"document.cookie"); |
82 return base::mac::ObjCCastStrict<NSString>(result); | 82 return base::mac::ObjCCastStrict<NSString>(result); |
83 } | 83 } |
84 | 84 |
85 // Sets a localstorage key, value pair on |web_view|. | 85 // Sets a localstorage key, value pair on |web_view|. |
86 void SetLocalStorageItem(NSString* key, | 86 void SetLocalStorageItem(NSString* key, |
87 NSString* value, | 87 NSString* value, |
88 WKWebView* web_view) { | 88 WKWebView* web_view) { |
89 NSString* set_local_storage_item = [NSString | 89 NSString* set_local_storage_item = [NSString |
90 stringWithFormat:@"localStorage.setItem('%@', '%@')", key, value]; | 90 stringWithFormat:@"localStorage.setItem('%@', '%@')", key, value]; |
91 __unsafe_unretained NSError* unused_error = nil; | 91 NSError* unused_error = nil; |
92 web::ExecuteJavaScript(web_view, set_local_storage_item, &unused_error); | 92 web::ExecuteJavaScript(web_view, set_local_storage_item, &unused_error); |
93 } | 93 } |
94 | 94 |
95 // Returns the localstorage value associated with |key| from |web_view|. | 95 // Returns the localstorage value associated with |key| from |web_view|. |
96 id GetLocalStorageItem(NSString* key, WKWebView* web_view) { | 96 id GetLocalStorageItem(NSString* key, WKWebView* web_view) { |
97 NSString* get_local_storage_value = | 97 NSString* get_local_storage_value = |
98 [NSString stringWithFormat:@"localStorage.getItem('%@');", key]; | 98 [NSString stringWithFormat:@"localStorage.getItem('%@');", key]; |
99 return web::ExecuteJavaScript(web_view, get_local_storage_value); | 99 return web::ExecuteJavaScript(web_view, get_local_storage_value); |
100 } | 100 } |
101 | 101 |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
174 SetLocalStorageItem(@"someKey2", @"someValue2", web_view_2); | 174 SetLocalStorageItem(@"someKey2", @"someValue2", web_view_2); |
175 // Due to platform limitation, it's not possible to actually set localStorage | 175 // Due to platform limitation, it's not possible to actually set localStorage |
176 // item on an OTR BrowserState. Therefore, it's not possible to verify that a | 176 // item on an OTR BrowserState. Therefore, it's not possible to verify that a |
177 // localStorage item has been correctly set. | 177 // localStorage item has been correctly set. |
178 // Look at | 178 // Look at |
179 // http://stackoverflow.com/questions/14555347/html5-localstorage-error-with-s
afari-quota-exceeded-err-dom-exception-22-an | 179 // http://stackoverflow.com/questions/14555347/html5-localstorage-error-with-s
afari-quota-exceeded-err-dom-exception-22-an |
180 // for more details. | 180 // for more details. |
181 // Test that LocalStorage has not leaked over to |web_view_1|. | 181 // Test that LocalStorage has not leaked over to |web_view_1|. |
182 EXPECT_NSEQ([NSNull null], GetLocalStorageItem(@"someKey2", web_view_1)); | 182 EXPECT_NSEQ([NSNull null], GetLocalStorageItem(@"someKey2", web_view_1)); |
183 } | 183 } |
OLD | NEW |