Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 "config.h" | 5 #include "config.h" |
| 6 | 6 |
| 7 #include "FrameTestHelpers.h" | 7 #include "FrameTestHelpers.h" |
| 8 #include "bindings/v8/ScriptController.h" | 8 #include "bindings/v8/ScriptController.h" |
| 9 #include "bindings/v8/V8DOMActivityLogger.h" | 9 #include "bindings/v8/V8DOMActivityLogger.h" |
| 10 #include "web/WebLocalFrameImpl.h" | 10 #include "web/WebLocalFrameImpl.h" |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 137 "var script = document.createElement('script');" | 137 "var script = document.createElement('script');" |
| 138 "document.body.appendChild(script);" | 138 "document.body.appendChild(script);" |
| 139 "script = document.createElement('script');" | 139 "script = document.createElement('script');" |
| 140 "script.src = 'data:text/html;charset=utf-8,';" | 140 "script.src = 'data:text/html;charset=utf-8,';" |
| 141 "document.body.appendChild(script);" | 141 "document.body.appendChild(script);" |
| 142 "document.write('<body><script src=\\\'data:text/html;charset=utf-8,\\\' ></script></body>');"; | 142 "document.write('<body><script src=\\\'data:text/html;charset=utf-8,\\\' ></script></body>');"; |
| 143 const char* expectedActivities = | 143 const char* expectedActivities = |
| 144 "blinkAddElement | script | data:text/html;charset=utf-8,\n" | 144 "blinkAddElement | script | data:text/html;charset=utf-8,\n" |
| 145 "blinkAddElement | script | \n" | 145 "blinkAddElement | script | \n" |
| 146 "blinkAddElement | script | \n" | 146 "blinkAddElement | script | \n" |
| 147 "HTMLScriptElement.src | data:text/html;charset=utf-8,\n" | |
| 148 "blinkAddElement | script | data:text/html;charset=utf-8,\n" | 147 "blinkAddElement | script | data:text/html;charset=utf-8,\n" |
| 149 "blinkAddElement | script | data:text/html;charset=utf-8,"; | 148 "blinkAddElement | script | data:text/html;charset=utf-8,"; |
| 150 executeScriptInMainWorld(code); | 149 executeScriptInMainWorld(code); |
| 151 ASSERT_TRUE(verifyActivities("")); | 150 ASSERT_TRUE(verifyActivities("")); |
| 152 executeScriptInIsolatedWorld(code); | 151 executeScriptInIsolatedWorld(code); |
| 153 ASSERT_TRUE(verifyActivities(expectedActivities)); | 152 ASSERT_TRUE(verifyActivities(expectedActivities)); |
| 154 } | 153 } |
| 155 | 154 |
| 156 TEST_F(ActivityLoggerTest, IFrameElement) | 155 TEST_F(ActivityLoggerTest, IFrameElement) |
| 157 { | 156 { |
| 158 v8::HandleScope scope(v8::Isolate::GetCurrent()); | 157 v8::HandleScope scope(v8::Isolate::GetCurrent()); |
| 159 const char* code = | 158 const char* code = |
| 160 "document.body.innerHTML = '<iframe src=\\\'data:text/html;charset=utf-8 ,\\\'></iframe>';" | 159 "document.body.innerHTML = '<iframe src=\\\'data:text/html;charset=utf-8 ,\\\'></iframe>';" |
| 161 "document.body.innerHTML = '<iframe></iframe>';" | 160 "document.body.innerHTML = '<iframe></iframe>';" |
| 162 "var iframe = document.createElement('iframe');" | 161 "var iframe = document.createElement('iframe');" |
| 163 "document.body.appendChild(iframe);" | 162 "document.body.appendChild(iframe);" |
| 164 "iframe = document.createElement('iframe');" | 163 "iframe = document.createElement('iframe');" |
| 165 "iframe.src = 'data:text/html;charset=utf-8,';" | 164 "iframe.src = 'data:text/html;charset=utf-8,';" |
| 166 "document.body.appendChild(iframe);" | 165 "document.body.appendChild(iframe);" |
| 167 "document.write('<body><iframe src=\\\'data:text/html;charset=utf-8,\\\' ></iframe></body>');"; | 166 "document.write('<body><iframe src=\\\'data:text/html;charset=utf-8,\\\' ></iframe></body>');"; |
| 168 const char* expectedActivities = | 167 const char* expectedActivities = |
| 169 "blinkAddElement | iframe | data:text/html;charset=utf-8,\n" | 168 "blinkAddElement | iframe | data:text/html;charset=utf-8,\n" |
| 170 "blinkAddElement | iframe | \n" | 169 "blinkAddElement | iframe | \n" |
| 171 "blinkAddElement | iframe | \n" | 170 "blinkAddElement | iframe | \n" |
| 172 "HTMLIFrameElement.src | | data:text/html;charset=utf-8,\n" | |
| 173 "blinkAddElement | iframe | data:text/html;charset=utf-8,\n" | 171 "blinkAddElement | iframe | data:text/html;charset=utf-8,\n" |
| 174 "blinkAddElement | iframe | data:text/html;charset=utf-8,"; | 172 "blinkAddElement | iframe | data:text/html;charset=utf-8,"; |
| 175 executeScriptInMainWorld(code); | 173 executeScriptInMainWorld(code); |
| 176 ASSERT_TRUE(verifyActivities("")); | 174 ASSERT_TRUE(verifyActivities("")); |
| 177 executeScriptInIsolatedWorld(code); | 175 executeScriptInIsolatedWorld(code); |
| 178 ASSERT_TRUE(verifyActivities(expectedActivities)); | 176 ASSERT_TRUE(verifyActivities(expectedActivities)); |
| 179 } | 177 } |
| 180 | 178 |
| 181 TEST_F(ActivityLoggerTest, AnchorElement) | 179 TEST_F(ActivityLoggerTest, AnchorElement) |
| 182 { | 180 { |
| 183 v8::HandleScope scope(v8::Isolate::GetCurrent()); | 181 v8::HandleScope scope(v8::Isolate::GetCurrent()); |
| 184 const char* code = | 182 const char* code = |
| 185 "document.body.innerHTML = '<a href=\\\'data:text/css;charset=utf-8,\\\' ></a>';" | 183 "document.body.innerHTML = '<a href=\\\'data:text/css;charset=utf-8,\\\' ></a>';" |
| 186 "document.body.innerHTML = '<a></a>';" | 184 "document.body.innerHTML = '<a></a>';" |
| 187 "var a = document.createElement('a');" | 185 "var a = document.createElement('a');" |
| 188 "document.body.appendChild(a);" | 186 "document.body.appendChild(a);" |
| 189 "a = document.createElement('a');" | 187 "a = document.createElement('a');" |
| 190 "a.href = 'data:text/css;charset=utf-8,';" | 188 "a.href = 'data:text/css;charset=utf-8,';" |
| 191 "document.body.appendChild(a);" | 189 "document.body.appendChild(a);" |
| 192 "document.write('<body><a href=\\\'data:text/css;charset=utf-8,\\\'></a> </body>');"; | 190 "document.write('<body><a href=\\\'data:text/css;charset=utf-8,\\\'></a> </body>');"; |
| 193 const char* expectedActivities = | 191 const char* expectedActivities = |
| 194 "blinkAddElement | a | data:text/css;charset=utf-8,\n" | 192 "blinkAddElement | a | data:text/css;charset=utf-8,\n" |
| 195 "blinkAddElement | a | \n" | 193 "blinkAddElement | a | \n" |
| 196 "blinkAddElement | a | \n" | 194 "blinkAddElement | a | \n" |
| 197 "HTMLAnchorElement.href | | data:text/css;charset=utf-8,\n" | |
| 198 "blinkAddElement | a | data:text/css;charset=utf-8,\n" | 195 "blinkAddElement | a | data:text/css;charset=utf-8,\n" |
| 199 "blinkAddElement | a | data:text/css;charset=utf-8,"; | 196 "blinkAddElement | a | data:text/css;charset=utf-8,"; |
| 200 executeScriptInMainWorld(code); | 197 executeScriptInMainWorld(code); |
| 201 ASSERT_TRUE(verifyActivities("")); | 198 ASSERT_TRUE(verifyActivities("")); |
| 202 executeScriptInIsolatedWorld(code); | 199 executeScriptInIsolatedWorld(code); |
| 203 ASSERT_TRUE(verifyActivities(expectedActivities)); | 200 ASSERT_TRUE(verifyActivities(expectedActivities)); |
| 204 } | 201 } |
| 205 | 202 |
| 206 TEST_F(ActivityLoggerTest, LinkElement) | 203 TEST_F(ActivityLoggerTest, LinkElement) |
| 207 { | 204 { |
| 208 v8::HandleScope scope(v8::Isolate::GetCurrent()); | 205 v8::HandleScope scope(v8::Isolate::GetCurrent()); |
| 209 const char* code = | 206 const char* code = |
| 210 "document.body.innerHTML = '<link rel=\\\'stylesheet\\\' href=\\\'data:t ext/css;charset=utf-8,\\\'></link>';" | 207 "document.body.innerHTML = '<link rel=\\\'stylesheet\\\' href=\\\'data:t ext/css;charset=utf-8,\\\'></link>';" |
| 211 "document.body.innerHTML = '<link></link>';" | 208 "document.body.innerHTML = '<link></link>';" |
| 212 "var link = document.createElement('link');" | 209 "var link = document.createElement('link');" |
| 213 "document.body.appendChild(link);" | 210 "document.body.appendChild(link);" |
| 214 "link = document.createElement('link');" | 211 "link = document.createElement('link');" |
| 215 "link.rel = 'stylesheet';" | 212 "link.rel = 'stylesheet';" |
| 216 "link.href = 'data:text/css;charset=utf-8,';" | 213 "link.href = 'data:text/css;charset=utf-8,';" |
| 217 "document.body.appendChild(link);" | 214 "document.body.appendChild(link);" |
| 218 "document.write('<body><link rel=\\\'stylesheet\\\' href=\\\'data:text/c ss;charset=utf-8,\\\'></link></body>');"; | 215 "document.write('<body><link rel=\\\'stylesheet\\\' href=\\\'data:text/c ss;charset=utf-8,\\\'></link></body>');"; |
| 219 const char* expectedActivities = | 216 const char* expectedActivities = |
| 220 "blinkAddElement | link | stylesheet | data:text/css;charset=utf-8,\n" | 217 "blinkAddElement | link | stylesheet | data:text/css;charset=utf-8,\n" |
| 221 "blinkAddElement | link | | \n" | 218 "blinkAddElement | link | | \n" |
| 222 "blinkAddElement | link | | \n" | 219 "blinkAddElement | link | | \n" |
| 223 "HTMLLinkElement.href | data:text/css;charset=utf-8,\n" | |
| 224 "blinkAddElement | link | stylesheet | data:text/css;charset=utf-8,\n" | 220 "blinkAddElement | link | stylesheet | data:text/css;charset=utf-8,\n" |
| 225 "blinkAddElement | link | stylesheet | data:text/css;charset=utf-8,"; | 221 "blinkAddElement | link | stylesheet | data:text/css;charset=utf-8,"; |
| 226 executeScriptInMainWorld(code); | 222 executeScriptInMainWorld(code); |
| 227 ASSERT_TRUE(verifyActivities("")); | 223 ASSERT_TRUE(verifyActivities("")); |
| 228 executeScriptInIsolatedWorld(code); | 224 executeScriptInIsolatedWorld(code); |
| 229 ASSERT_TRUE(verifyActivities(expectedActivities)); | 225 ASSERT_TRUE(verifyActivities(expectedActivities)); |
| 230 } | 226 } |
| 231 | 227 |
| 232 TEST_F(ActivityLoggerTest, InputElement) | 228 TEST_F(ActivityLoggerTest, InputElement) |
| 233 { | 229 { |
| 234 v8::HandleScope scope(v8::Isolate::GetCurrent()); | 230 v8::HandleScope scope(v8::Isolate::GetCurrent()); |
| 235 const char* code = | 231 const char* code = |
| 236 "document.body.innerHTML = '<input type=\\\'submit\\\' formaction=\\\'da ta:text/html;charset=utf-8,\\\'></input>';" | 232 "document.body.innerHTML = '<input type=\\\'submit\\\' formaction=\\\'da ta:text/html;charset=utf-8,\\\'></input>';" |
| 237 "document.body.innerHTML = '<input></input>';" | 233 "document.body.innerHTML = '<input></input>';" |
| 238 "var input = document.createElement('input');" | 234 "var input = document.createElement('input');" |
| 239 "document.body.appendChild(input);" | 235 "document.body.appendChild(input);" |
| 240 "input = document.createElement('input');" | 236 "input = document.createElement('input');" |
| 241 "input.type = 'submit';" | 237 "input.type = 'submit';" |
| 242 "input.formAction = 'data:text/html;charset=utf-8,';" | 238 "input.formAction = 'data:text/html;charset=utf-8,';" |
| 243 "document.body.appendChild(input);" | 239 "document.body.appendChild(input);" |
| 244 "document.write('<body><input type=\\\'submit\\\' formaction=\\\'data:te xt/html;charset=utf-8,\\\'></input></body>');"; | 240 "document.write('<body><input type=\\\'submit\\\' formaction=\\\'data:te xt/html;charset=utf-8,\\\'></input></body>');"; |
| 245 const char* expectedActivities = | 241 const char* expectedActivities = |
| 246 "blinkAddElement | input | submit | data:text/html;charset=utf-8,\n" | 242 "blinkAddElement | input | submit | data:text/html;charset=utf-8,\n" |
| 247 "blinkAddElement | input | | \n" | 243 "blinkAddElement | input | | \n" |
| 248 "blinkAddElement | input | | \n" | 244 "blinkAddElement | input | | \n" |
| 249 "HTMLInputElement.formAction | data:text/html;charset=utf-8,\n" | |
| 250 "blinkAddElement | input | submit | data:text/html;charset=utf-8,\n" | 245 "blinkAddElement | input | submit | data:text/html;charset=utf-8,\n" |
| 251 "blinkAddElement | input | submit | data:text/html;charset=utf-8,"; | 246 "blinkAddElement | input | submit | data:text/html;charset=utf-8,"; |
| 252 executeScriptInMainWorld(code); | 247 executeScriptInMainWorld(code); |
| 253 ASSERT_TRUE(verifyActivities("")); | 248 ASSERT_TRUE(verifyActivities("")); |
| 254 executeScriptInIsolatedWorld(code); | 249 executeScriptInIsolatedWorld(code); |
| 255 ASSERT_TRUE(verifyActivities(expectedActivities)); | 250 ASSERT_TRUE(verifyActivities(expectedActivities)); |
| 256 } | 251 } |
| 257 | 252 |
| 258 TEST_F(ActivityLoggerTest, ButtonElement) | 253 TEST_F(ActivityLoggerTest, ButtonElement) |
| 259 { | 254 { |
| 260 v8::HandleScope scope(v8::Isolate::GetCurrent()); | 255 v8::HandleScope scope(v8::Isolate::GetCurrent()); |
| 261 const char* code = | 256 const char* code = |
| 262 "document.body.innerHTML = '<button type=\\\'submit\\\' formmethod=\\\'p ost\\\' formaction=\\\'data:text/html;charset=utf-8,\\\'></input>';" | 257 "document.body.innerHTML = '<button type=\\\'submit\\\' formmethod=\\\'p ost\\\' formaction=\\\'data:text/html;charset=utf-8,\\\'></input>';" |
| 263 "document.body.innerHTML = '<button></button>';" | 258 "document.body.innerHTML = '<button></button>';" |
| 264 "var button = document.createElement('button');" | 259 "var button = document.createElement('button');" |
| 265 "document.body.appendChild(button);" | 260 "document.body.appendChild(button);" |
| 266 "button = document.createElement('button');" | 261 "button = document.createElement('button');" |
| 267 "button.type = 'submit';" | 262 "button.type = 'submit';" |
| 268 "button.formMethod = 'post';" | 263 "button.formMethod = 'post';" |
| 269 "button.formAction = 'data:text/html;charset=utf-8,';" | 264 "button.formAction = 'data:text/html;charset=utf-8,';" |
| 270 "document.body.appendChild(button);" | 265 "document.body.appendChild(button);" |
| 271 "document.write('<body><button type=\\\'submit\\\' formmethod=\\\'post\\ \' formaction=\\\'data:text/html;charset=utf-8,\\\'></button></body>');"; | 266 "document.write('<body><button type=\\\'submit\\\' formmethod=\\\'post\\ \' formaction=\\\'data:text/html;charset=utf-8,\\\'></button></body>');"; |
| 272 const char* expectedActivities = | 267 const char* expectedActivities = |
| 273 "blinkAddElement | button | submit | post | data:text/html;charset=utf-8 ,\n" | 268 "blinkAddElement | button | submit | post | data:text/html;charset=utf-8 ,\n" |
| 274 "blinkAddElement | button | | | \n" | 269 "blinkAddElement | button | | | \n" |
| 275 "blinkAddElement | button | | | \n" | 270 "blinkAddElement | button | | | \n" |
| 276 "HTMLButtonElement.formAction | data:text/html;charset=utf-8,\n" | |
| 277 "blinkAddElement | button | submit | post | data:text/html;charset=utf-8 ,\n" | 271 "blinkAddElement | button | submit | post | data:text/html;charset=utf-8 ,\n" |
| 278 "blinkAddElement | button | submit | post | data:text/html;charset=utf-8 ,"; | 272 "blinkAddElement | button | submit | post | data:text/html;charset=utf-8 ,"; |
| 279 executeScriptInMainWorld(code); | 273 executeScriptInMainWorld(code); |
| 280 ASSERT_TRUE(verifyActivities("")); | 274 ASSERT_TRUE(verifyActivities("")); |
| 281 executeScriptInIsolatedWorld(code); | 275 executeScriptInIsolatedWorld(code); |
| 282 ASSERT_TRUE(verifyActivities(expectedActivities)); | 276 ASSERT_TRUE(verifyActivities(expectedActivities)); |
| 283 } | 277 } |
| 284 | 278 |
| 285 TEST_F(ActivityLoggerTest, FormElement) | 279 TEST_F(ActivityLoggerTest, FormElement) |
| 286 { | 280 { |
| 287 v8::HandleScope scope(v8::Isolate::GetCurrent()); | 281 v8::HandleScope scope(v8::Isolate::GetCurrent()); |
| 288 const char* code = | 282 const char* code = |
| 289 "document.body.innerHTML = '<form method=\\\'post\\\' action=\\\'data:te xt/html;charset=utf-8,\\\'></form>';" | 283 "document.body.innerHTML = '<form method=\\\'post\\\' action=\\\'data:te xt/html;charset=utf-8,\\\'></form>';" |
| 290 "document.body.innerHTML = '<form></form>';" | 284 "document.body.innerHTML = '<form></form>';" |
| 291 "var form = document.createElement('form');" | 285 "var form = document.createElement('form');" |
| 292 "document.body.appendChild(form);" | 286 "document.body.appendChild(form);" |
| 293 "form = document.createElement('form');" | 287 "form = document.createElement('form');" |
| 294 "form.method = 'post';" | 288 "form.method = 'post';" |
| 295 "form.action = 'data:text/html;charset=utf-8,';" | 289 "form.action = 'data:text/html;charset=utf-8,';" |
| 296 "document.body.appendChild(form);" | 290 "document.body.appendChild(form);" |
| 297 "document.write('<body><form method=\\\'post\\\' action=\\\'data:text/ht ml;charset=utf-8,\\\'></form></body>');"; | 291 "document.write('<body><form method=\\\'post\\\' action=\\\'data:text/ht ml;charset=utf-8,\\\'></form></body>');"; |
| 298 const char* expectedActivities = | 292 const char* expectedActivities = |
| 299 "blinkAddElement | form | post | data:text/html;charset=utf-8,\n" | 293 "blinkAddElement | form | post | data:text/html;charset=utf-8,\n" |
| 300 "blinkAddElement | form | | \n" | 294 "blinkAddElement | form | | \n" |
| 301 "blinkAddElement | form | | \n" | 295 "blinkAddElement | form | | \n" |
| 302 "HTMLFormElement.action | data:text/html;charset=utf-8,\n" | |
| 303 "blinkAddElement | form | post | data:text/html;charset=utf-8,\n" | 296 "blinkAddElement | form | post | data:text/html;charset=utf-8,\n" |
| 304 "blinkAddElement | form | post | data:text/html;charset=utf-8,"; | 297 "blinkAddElement | form | post | data:text/html;charset=utf-8,"; |
| 305 executeScriptInMainWorld(code); | 298 executeScriptInMainWorld(code); |
| 306 ASSERT_TRUE(verifyActivities("")); | 299 ASSERT_TRUE(verifyActivities("")); |
| 307 executeScriptInIsolatedWorld(code); | 300 executeScriptInIsolatedWorld(code); |
| 308 ASSERT_TRUE(verifyActivities(expectedActivities)); | 301 ASSERT_TRUE(verifyActivities(expectedActivities)); |
| 309 } | 302 } |
| 310 | 303 |
| 304 TEST_F(ActivityLoggerTest, IFrameSrcAttribute) | |
| 305 { | |
| 306 v8::HandleScope scope(v8::Isolate::GetCurrent()); | |
|
haraken
2014/06/27 15:18:08
I think you can add a HandleScope in executeScript
pmarch
2014/06/27 16:55:45
Done.
| |
| 307 const char* code = | |
| 308 "document.body.innerHTML = '<iframe src=\\\'data:text/html;charset=utf-8 ,A\\\'></iframe>';" | |
| 309 "var iframe = document.getElementsByTagName('iframe')[0];" | |
| 310 "iframe.src = 'data:text/html;charset=utf-8,B';" | |
| 311 "iframe.setAttribute('src', 'data:text/html;charset=utf-8,C');" | |
| 312 "iframe.setAttributeNS('', 'src', 'data:text/html;charset=utf-8,D');" | |
| 313 "var attr = document.createAttribute('src');" | |
| 314 "attr.value = 'data:text/html;charset=utf-8,E';" | |
| 315 "iframe.setAttributeNode(attr);"; | |
| 316 const char* expectedActivities = | |
| 317 "blinkAddElement | iframe | data:text/html;charset=utf-8,A\n" | |
| 318 "blinkSetAttribute | iframe | src | data:text/html;charset=utf-8,A | dat a:text/html;charset=utf-8,B\n" | |
| 319 "blinkSetAttribute | iframe | src | data:text/html;charset=utf-8,B | dat a:text/html;charset=utf-8,C\n" | |
| 320 "blinkSetAttribute | iframe | src | data:text/html;charset=utf-8,C | dat a:text/html;charset=utf-8,D\n" | |
| 321 "blinkSetAttribute | iframe | src | data:text/html;charset=utf-8,D | dat a:text/html;charset=utf-8,E"; | |
| 322 executeScriptInMainWorld(code); | |
| 323 ASSERT_TRUE(verifyActivities("")); | |
| 324 executeScriptInIsolatedWorld(code); | |
| 325 ASSERT_TRUE(verifyActivities(expectedActivities)); | |
| 326 } | |
| 327 | |
| 328 TEST_F(ActivityLoggerTest, AnchorHrefAttribute) | |
| 329 { | |
| 330 v8::HandleScope scope(v8::Isolate::GetCurrent()); | |
| 331 const char* code = | |
| 332 "document.body.innerHTML = '<a href=\\\'data:text/html;charset=utf-8,A\\ \'></a>';" | |
| 333 "var a = document.getElementsByTagName('a')[0];" | |
| 334 "a.href = 'data:text/html;charset=utf-8,B';" | |
| 335 "a.setAttribute('href', 'data:text/html;charset=utf-8,C');" | |
| 336 "a.setAttributeNS('', 'href', 'data:text/html;charset=utf-8,D');" | |
| 337 "var attr = document.createAttribute('href');" | |
| 338 "attr.value = 'data:text/html;charset=utf-8,E';" | |
| 339 "a.setAttributeNode(attr);"; | |
| 340 const char* expectedActivities = | |
| 341 "blinkAddElement | a | data:text/html;charset=utf-8,A\n" | |
| 342 "blinkSetAttribute | a | href | data:text/html;charset=utf-8,A | data:te xt/html;charset=utf-8,B\n" | |
| 343 "blinkSetAttribute | a | href | data:text/html;charset=utf-8,B | data:te xt/html;charset=utf-8,C\n" | |
| 344 "blinkSetAttribute | a | href | data:text/html;charset=utf-8,C | data:te xt/html;charset=utf-8,D\n" | |
| 345 "blinkSetAttribute | a | href | data:text/html;charset=utf-8,D | data:te xt/html;charset=utf-8,E"; | |
| 346 executeScriptInMainWorld(code); | |
| 347 ASSERT_TRUE(verifyActivities("")); | |
| 348 executeScriptInIsolatedWorld(code); | |
| 349 ASSERT_TRUE(verifyActivities(expectedActivities)); | |
| 350 } | |
| 351 | |
| 352 TEST_F(ActivityLoggerTest, LinkHrefAttribute) | |
| 353 { | |
| 354 v8::HandleScope scope(v8::Isolate::GetCurrent()); | |
| 355 const char* code = | |
| 356 "document.body.innerHTML = '<link rel=\\\'stylesheet\\\' href=\\\'data:t ext/css;charset=utf-8,A\\\'></link>';" | |
| 357 "var link = document.getElementsByTagName('link')[0];" | |
| 358 "link.href = 'data:text/css;charset=utf-8,B';" | |
| 359 "link.setAttribute('href', 'data:text/css;charset=utf-8,C');" | |
| 360 "link.setAttributeNS('', 'href', 'data:text/css;charset=utf-8,D');" | |
| 361 "var attr = document.createAttribute('href');" | |
| 362 "attr.value = 'data:text/css;charset=utf-8,E';" | |
| 363 "link.setAttributeNode(attr);"; | |
| 364 const char* expectedActivities = | |
| 365 "blinkAddElement | link | stylesheet | data:text/css;charset=utf-8,A\n" | |
| 366 "blinkSetAttribute | link | href | data:text/css;charset=utf-8,A | data: text/css;charset=utf-8,B\n" | |
| 367 "blinkSetAttribute | link | href | data:text/css;charset=utf-8,B | data: text/css;charset=utf-8,C\n" | |
| 368 "blinkSetAttribute | link | href | data:text/css;charset=utf-8,C | data: text/css;charset=utf-8,D\n" | |
| 369 "blinkSetAttribute | link | href | data:text/css;charset=utf-8,D | data: text/css;charset=utf-8,E"; | |
| 370 executeScriptInMainWorld(code); | |
| 371 ASSERT_TRUE(verifyActivities("")); | |
| 372 executeScriptInIsolatedWorld(code); | |
| 373 ASSERT_TRUE(verifyActivities(expectedActivities)); | |
| 374 } | |
| 375 | |
| 376 TEST_F(ActivityLoggerTest, InputFormActionAttribute) | |
| 377 { | |
| 378 v8::HandleScope scope(v8::Isolate::GetCurrent()); | |
| 379 const char* code = | |
| 380 "document.body.innerHTML = '<input type=\\\'button\\\' formaction=\\\'da ta:text/html;charset=utf-8,A\\\'></input>';" | |
| 381 "var input = document.getElementsByTagName('input')[0];" | |
| 382 "input.formAction = 'data:text/html;charset=utf-8,B';" | |
| 383 "input.setAttribute('formaction', 'data:text/html;charset=utf-8,C');" | |
| 384 "input.setAttributeNS('', 'formaction', 'data:text/html;charset=utf-8,D' );" | |
| 385 "var attr = document.createAttribute('formaction');" | |
| 386 "attr.value = 'data:text/html;charset=utf-8,E';" | |
| 387 "input.setAttributeNode(attr);"; | |
| 388 const char* expectedActivities = | |
| 389 "blinkAddElement | input | button | data:text/html;charset=utf-8,A\n" | |
| 390 "blinkSetAttribute | input | formaction | data:text/html;charset=utf-8,A | data:text/html;charset=utf-8,B\n" | |
| 391 "blinkSetAttribute | input | formaction | data:text/html;charset=utf-8,B | data:text/html;charset=utf-8,C\n" | |
| 392 "blinkSetAttribute | input | formaction | data:text/html;charset=utf-8,C | data:text/html;charset=utf-8,D\n" | |
| 393 "blinkSetAttribute | input | formaction | data:text/html;charset=utf-8,D | data:text/html;charset=utf-8,E"; | |
| 394 executeScriptInMainWorld(code); | |
| 395 ASSERT_TRUE(verifyActivities("")); | |
| 396 executeScriptInIsolatedWorld(code); | |
| 397 ASSERT_TRUE(verifyActivities(expectedActivities)); | |
| 398 } | |
| 399 | |
| 400 TEST_F(ActivityLoggerTest, ButtonFormActionAttribute) | |
| 401 { | |
| 402 v8::HandleScope scope(v8::Isolate::GetCurrent()); | |
| 403 const char* code = | |
| 404 "document.body.innerHTML = '<button type=\\\'submit\\\' formmethod=\\\'p ost\\\' formaction=\\\'data:text/html;charset=utf-8,A\\\'></input>';" | |
| 405 "var button = document.getElementsByTagName('button')[0];" | |
| 406 "button.formAction = 'data:text/html;charset=utf-8,B';" | |
| 407 "button.setAttribute('formaction', 'data:text/html;charset=utf-8,C');" | |
| 408 "button.setAttributeNS('', 'formaction', 'data:text/html;charset=utf-8,D ');" | |
| 409 "var attr = document.createAttribute('formaction');" | |
| 410 "attr.value = 'data:text/html;charset=utf-8,E';" | |
| 411 "button.setAttributeNode(attr);"; | |
| 412 const char* expectedActivities = | |
| 413 "blinkAddElement | button | submit | post | data:text/html;charset=utf-8 ,A\n" | |
| 414 "blinkSetAttribute | button | formaction | data:text/html;charset=utf-8, A | data:text/html;charset=utf-8,B\n" | |
| 415 "blinkSetAttribute | button | formaction | data:text/html;charset=utf-8, B | data:text/html;charset=utf-8,C\n" | |
| 416 "blinkSetAttribute | button | formaction | data:text/html;charset=utf-8, C | data:text/html;charset=utf-8,D\n" | |
| 417 "blinkSetAttribute | button | formaction | data:text/html;charset=utf-8, D | data:text/html;charset=utf-8,E"; | |
| 418 executeScriptInMainWorld(code); | |
| 419 ASSERT_TRUE(verifyActivities("")); | |
| 420 executeScriptInIsolatedWorld(code); | |
| 421 ASSERT_TRUE(verifyActivities(expectedActivities)); | |
| 422 } | |
| 423 | |
| 424 TEST_F(ActivityLoggerTest, FormActionAttribute) | |
| 425 { | |
| 426 v8::HandleScope scope(v8::Isolate::GetCurrent()); | |
| 427 const char* code = | |
| 428 "document.body.innerHTML = '<form action=\\\'data:text/html;charset=utf- 8,A\\\'></form>';" | |
| 429 "var form = document.getElementsByTagName('form')[0];" | |
| 430 "form.action = 'data:text/html;charset=utf-8,B';" | |
| 431 "form.setAttribute('action', 'data:text/html;charset=utf-8,C');" | |
| 432 "form.setAttributeNS('', 'action', 'data:text/html;charset=utf-8,D');" | |
| 433 "var attr = document.createAttribute('action');" | |
| 434 "attr.value = 'data:text/html;charset=utf-8,E';" | |
| 435 "form.setAttributeNode(attr);"; | |
| 436 const char* expectedActivities = | |
| 437 "blinkAddElement | form | | data:text/html;charset=utf-8,A\n" | |
| 438 "blinkSetAttribute | form | action | data:text/html;charset=utf-8,A | da ta:text/html;charset=utf-8,B\n" | |
| 439 "blinkSetAttribute | form | action | data:text/html;charset=utf-8,B | da ta:text/html;charset=utf-8,C\n" | |
| 440 "blinkSetAttribute | form | action | data:text/html;charset=utf-8,C | da ta:text/html;charset=utf-8,D\n" | |
| 441 "blinkSetAttribute | form | action | data:text/html;charset=utf-8,D | da ta:text/html;charset=utf-8,E"; | |
| 442 executeScriptInMainWorld(code); | |
| 443 ASSERT_TRUE(verifyActivities("")); | |
| 444 executeScriptInIsolatedWorld(code); | |
| 445 ASSERT_TRUE(verifyActivities(expectedActivities)); | |
| 446 } | |
| 447 | |
| 311 } // namespace | 448 } // namespace |
| OLD | NEW |