| 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/core/v8/ScriptController.h" | 8 #include "bindings/core/v8/ScriptController.h" |
| 9 #include "bindings/core/v8/V8DOMActivityLogger.h" | 9 #include "bindings/core/v8/V8DOMActivityLogger.h" |
| 10 #include "web/WebLocalFrameImpl.h" | 10 #include "web/WebLocalFrameImpl.h" |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 103 static const int isolatedWorldId = 1; | 103 static const int isolatedWorldId = 1; |
| 104 static const int extensionGroup = 0; | 104 static const int extensionGroup = 0; |
| 105 | 105 |
| 106 WebViewHelper m_webViewHelper; | 106 WebViewHelper m_webViewHelper; |
| 107 ScriptController* m_scriptController; | 107 ScriptController* m_scriptController; |
| 108 // TestActivityLogger is owned by a static table within V8DOMActivityLogger | 108 // TestActivityLogger is owned by a static table within V8DOMActivityLogger |
| 109 // and should be alive as long as not overwritten. | 109 // and should be alive as long as not overwritten. |
| 110 TestActivityLogger* m_activityLogger; | 110 TestActivityLogger* m_activityLogger; |
| 111 }; | 111 }; |
| 112 | 112 |
| 113 TEST_F(ActivityLoggerTest, EventHandler) | 113 TEST_F(ActivityLoggerTest, DISABLED_EventHandler) |
| 114 { | 114 { |
| 115 const char* code = | 115 const char* code = |
| 116 "document.body.innerHTML = '<a onclick=\\\'do()\\\'>test</a>';" | 116 "document.body.innerHTML = '<a onclick=\\\'do()\\\'>test</a>';" |
| 117 "document.body.onchange = function(){};" | 117 "document.body.onchange = function(){};" |
| 118 "document.body.setAttribute('onfocus', 'fnc()');" | 118 "document.body.setAttribute('onfocus', 'fnc()');" |
| 119 "document.body.addEventListener('onload', function(){});"; | 119 "document.body.addEventListener('onload', function(){});"; |
| 120 const char* expectedActivities = | 120 const char* expectedActivities = |
| 121 "blinkAddEventListener | A | click\n" | 121 "blinkAddEventListener | A | click\n" |
| 122 "blinkAddElement | a | \n" | 122 "blinkAddElement | a | \n" |
| 123 "blinkAddEventListener | BODY | change\n" | 123 "blinkAddEventListener | BODY | change\n" |
| 124 "blinkAddEventListener | LocalDOMWindow | focus\n" | 124 "blinkAddEventListener | LocalDOMWindow | focus\n" |
| 125 "blinkAddEventListener | BODY | onload"; | 125 "blinkAddEventListener | BODY | onload"; |
| 126 executeScriptInMainWorld(code); | 126 executeScriptInMainWorld(code); |
| 127 ASSERT_TRUE(verifyActivities("")); | 127 ASSERT_TRUE(verifyActivities("")); |
| 128 executeScriptInIsolatedWorld(code); | 128 executeScriptInIsolatedWorld(code); |
| 129 ASSERT_TRUE(verifyActivities(expectedActivities)); | 129 ASSERT_TRUE(verifyActivities(expectedActivities)); |
| 130 } | 130 } |
| 131 | 131 |
| 132 TEST_F(ActivityLoggerTest, ScriptElement) | 132 TEST_F(ActivityLoggerTest, DISABLED_ScriptElement) |
| 133 { | 133 { |
| 134 const char* code = | 134 const char* code = |
| 135 "document.body.innerHTML = '<script src=\\\'data:text/html;charset=utf-8
,\\\'></script>';" | 135 "document.body.innerHTML = '<script src=\\\'data:text/html;charset=utf-8
,\\\'></script>';" |
| 136 "document.body.innerHTML = '<script>console.log(\\\'test\\\')</script>';
" | 136 "document.body.innerHTML = '<script>console.log(\\\'test\\\')</script>';
" |
| 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 "blinkAddElement | script | data:text/html;charset=utf-8,\n" | 147 "blinkAddElement | script | data:text/html;charset=utf-8,\n" |
| 148 "blinkAddElement | script | data:text/html;charset=utf-8,"; | 148 "blinkAddElement | script | data:text/html;charset=utf-8,"; |
| 149 executeScriptInMainWorld(code); | 149 executeScriptInMainWorld(code); |
| 150 ASSERT_TRUE(verifyActivities("")); | 150 ASSERT_TRUE(verifyActivities("")); |
| 151 executeScriptInIsolatedWorld(code); | 151 executeScriptInIsolatedWorld(code); |
| 152 ASSERT_TRUE(verifyActivities(expectedActivities)); | 152 ASSERT_TRUE(verifyActivities(expectedActivities)); |
| 153 } | 153 } |
| 154 | 154 |
| 155 TEST_F(ActivityLoggerTest, IFrameElement) | 155 TEST_F(ActivityLoggerTest, DISABLED_IFrameElement) |
| 156 { | 156 { |
| 157 const char* code = | 157 const char* code = |
| 158 "document.body.innerHTML = '<iframe src=\\\'data:text/html;charset=utf-8
,\\\'></iframe>';" | 158 "document.body.innerHTML = '<iframe src=\\\'data:text/html;charset=utf-8
,\\\'></iframe>';" |
| 159 "document.body.innerHTML = '<iframe></iframe>';" | 159 "document.body.innerHTML = '<iframe></iframe>';" |
| 160 "var iframe = document.createElement('iframe');" | 160 "var iframe = document.createElement('iframe');" |
| 161 "document.body.appendChild(iframe);" | 161 "document.body.appendChild(iframe);" |
| 162 "iframe = document.createElement('iframe');" | 162 "iframe = document.createElement('iframe');" |
| 163 "iframe.src = 'data:text/html;charset=utf-8,';" | 163 "iframe.src = 'data:text/html;charset=utf-8,';" |
| 164 "document.body.appendChild(iframe);" | 164 "document.body.appendChild(iframe);" |
| 165 "document.write('<body><iframe src=\\\'data:text/html;charset=utf-8,\\\'
></iframe></body>');"; | 165 "document.write('<body><iframe src=\\\'data:text/html;charset=utf-8,\\\'
></iframe></body>');"; |
| 166 const char* expectedActivities = | 166 const char* expectedActivities = |
| 167 "blinkAddElement | iframe | data:text/html;charset=utf-8,\n" | 167 "blinkAddElement | iframe | data:text/html;charset=utf-8,\n" |
| 168 "blinkAddElement | iframe | \n" | 168 "blinkAddElement | iframe | \n" |
| 169 "blinkAddElement | iframe | \n" | 169 "blinkAddElement | iframe | \n" |
| 170 "blinkAddElement | iframe | data:text/html;charset=utf-8,\n" | 170 "blinkAddElement | iframe | data:text/html;charset=utf-8,\n" |
| 171 "blinkAddElement | iframe | data:text/html;charset=utf-8,"; | 171 "blinkAddElement | iframe | data:text/html;charset=utf-8,"; |
| 172 executeScriptInMainWorld(code); | 172 executeScriptInMainWorld(code); |
| 173 ASSERT_TRUE(verifyActivities("")); | 173 ASSERT_TRUE(verifyActivities("")); |
| 174 executeScriptInIsolatedWorld(code); | 174 executeScriptInIsolatedWorld(code); |
| 175 ASSERT_TRUE(verifyActivities(expectedActivities)); | 175 ASSERT_TRUE(verifyActivities(expectedActivities)); |
| 176 } | 176 } |
| 177 | 177 |
| 178 TEST_F(ActivityLoggerTest, AnchorElement) | 178 TEST_F(ActivityLoggerTest, DISABLED_AnchorElement) |
| 179 { | 179 { |
| 180 const char* code = | 180 const char* code = |
| 181 "document.body.innerHTML = '<a href=\\\'data:text/css;charset=utf-8,\\\'
></a>';" | 181 "document.body.innerHTML = '<a href=\\\'data:text/css;charset=utf-8,\\\'
></a>';" |
| 182 "document.body.innerHTML = '<a></a>';" | 182 "document.body.innerHTML = '<a></a>';" |
| 183 "var a = document.createElement('a');" | 183 "var a = document.createElement('a');" |
| 184 "document.body.appendChild(a);" | 184 "document.body.appendChild(a);" |
| 185 "a = document.createElement('a');" | 185 "a = document.createElement('a');" |
| 186 "a.href = 'data:text/css;charset=utf-8,';" | 186 "a.href = 'data:text/css;charset=utf-8,';" |
| 187 "document.body.appendChild(a);" | 187 "document.body.appendChild(a);" |
| 188 "document.write('<body><a href=\\\'data:text/css;charset=utf-8,\\\'></a>
</body>');"; | 188 "document.write('<body><a href=\\\'data:text/css;charset=utf-8,\\\'></a>
</body>');"; |
| 189 const char* expectedActivities = | 189 const char* expectedActivities = |
| 190 "blinkAddElement | a | data:text/css;charset=utf-8,\n" | 190 "blinkAddElement | a | data:text/css;charset=utf-8,\n" |
| 191 "blinkAddElement | a | \n" | 191 "blinkAddElement | a | \n" |
| 192 "blinkAddElement | a | \n" | 192 "blinkAddElement | a | \n" |
| 193 "blinkAddElement | a | data:text/css;charset=utf-8,\n" | 193 "blinkAddElement | a | data:text/css;charset=utf-8,\n" |
| 194 "blinkAddElement | a | data:text/css;charset=utf-8,"; | 194 "blinkAddElement | a | data:text/css;charset=utf-8,"; |
| 195 executeScriptInMainWorld(code); | 195 executeScriptInMainWorld(code); |
| 196 ASSERT_TRUE(verifyActivities("")); | 196 ASSERT_TRUE(verifyActivities("")); |
| 197 executeScriptInIsolatedWorld(code); | 197 executeScriptInIsolatedWorld(code); |
| 198 ASSERT_TRUE(verifyActivities(expectedActivities)); | 198 ASSERT_TRUE(verifyActivities(expectedActivities)); |
| 199 } | 199 } |
| 200 | 200 |
| 201 TEST_F(ActivityLoggerTest, LinkElement) | 201 TEST_F(ActivityLoggerTest, DISABLED_LinkElement) |
| 202 { | 202 { |
| 203 const char* code = | 203 const char* code = |
| 204 "document.body.innerHTML = '<link rel=\\\'stylesheet\\\' href=\\\'data:t
ext/css;charset=utf-8,\\\'></link>';" | 204 "document.body.innerHTML = '<link rel=\\\'stylesheet\\\' href=\\\'data:t
ext/css;charset=utf-8,\\\'></link>';" |
| 205 "document.body.innerHTML = '<link></link>';" | 205 "document.body.innerHTML = '<link></link>';" |
| 206 "var link = document.createElement('link');" | 206 "var link = document.createElement('link');" |
| 207 "document.body.appendChild(link);" | 207 "document.body.appendChild(link);" |
| 208 "link = document.createElement('link');" | 208 "link = document.createElement('link');" |
| 209 "link.rel = 'stylesheet';" | 209 "link.rel = 'stylesheet';" |
| 210 "link.href = 'data:text/css;charset=utf-8,';" | 210 "link.href = 'data:text/css;charset=utf-8,';" |
| 211 "document.body.appendChild(link);" | 211 "document.body.appendChild(link);" |
| 212 "document.write('<body><link rel=\\\'stylesheet\\\' href=\\\'data:text/c
ss;charset=utf-8,\\\'></link></body>');"; | 212 "document.write('<body><link rel=\\\'stylesheet\\\' href=\\\'data:text/c
ss;charset=utf-8,\\\'></link></body>');"; |
| 213 const char* expectedActivities = | 213 const char* expectedActivities = |
| 214 "blinkAddElement | link | stylesheet | data:text/css;charset=utf-8,\n" | 214 "blinkAddElement | link | stylesheet | data:text/css;charset=utf-8,\n" |
| 215 "blinkAddElement | link | | \n" | 215 "blinkAddElement | link | | \n" |
| 216 "blinkAddElement | link | | \n" | 216 "blinkAddElement | link | | \n" |
| 217 "blinkAddElement | link | stylesheet | data:text/css;charset=utf-8,\n" | 217 "blinkAddElement | link | stylesheet | data:text/css;charset=utf-8,\n" |
| 218 "blinkAddElement | link | stylesheet | data:text/css;charset=utf-8,"; | 218 "blinkAddElement | link | stylesheet | data:text/css;charset=utf-8,"; |
| 219 executeScriptInMainWorld(code); | 219 executeScriptInMainWorld(code); |
| 220 ASSERT_TRUE(verifyActivities("")); | 220 ASSERT_TRUE(verifyActivities("")); |
| 221 executeScriptInIsolatedWorld(code); | 221 executeScriptInIsolatedWorld(code); |
| 222 ASSERT_TRUE(verifyActivities(expectedActivities)); | 222 ASSERT_TRUE(verifyActivities(expectedActivities)); |
| 223 } | 223 } |
| 224 | 224 |
| 225 TEST_F(ActivityLoggerTest, InputElement) | 225 TEST_F(ActivityLoggerTest, DISABLED_InputElement) |
| 226 { | 226 { |
| 227 const char* code = | 227 const char* code = |
| 228 "document.body.innerHTML = '<input type=\\\'submit\\\' formaction=\\\'da
ta:text/html;charset=utf-8,\\\'></input>';" | 228 "document.body.innerHTML = '<input type=\\\'submit\\\' formaction=\\\'da
ta:text/html;charset=utf-8,\\\'></input>';" |
| 229 "document.body.innerHTML = '<input></input>';" | 229 "document.body.innerHTML = '<input></input>';" |
| 230 "var input = document.createElement('input');" | 230 "var input = document.createElement('input');" |
| 231 "document.body.appendChild(input);" | 231 "document.body.appendChild(input);" |
| 232 "input = document.createElement('input');" | 232 "input = document.createElement('input');" |
| 233 "input.type = 'submit';" | 233 "input.type = 'submit';" |
| 234 "input.formAction = 'data:text/html;charset=utf-8,';" | 234 "input.formAction = 'data:text/html;charset=utf-8,';" |
| 235 "document.body.appendChild(input);" | 235 "document.body.appendChild(input);" |
| 236 "document.write('<body><input type=\\\'submit\\\' formaction=\\\'data:te
xt/html;charset=utf-8,\\\'></input></body>');"; | 236 "document.write('<body><input type=\\\'submit\\\' formaction=\\\'data:te
xt/html;charset=utf-8,\\\'></input></body>');"; |
| 237 const char* expectedActivities = | 237 const char* expectedActivities = |
| 238 "blinkAddElement | input | submit | data:text/html;charset=utf-8,\n" | 238 "blinkAddElement | input | submit | data:text/html;charset=utf-8,\n" |
| 239 "blinkAddElement | input | | \n" | 239 "blinkAddElement | input | | \n" |
| 240 "blinkAddElement | input | | \n" | 240 "blinkAddElement | input | | \n" |
| 241 "blinkAddElement | input | submit | data:text/html;charset=utf-8,\n" | 241 "blinkAddElement | input | submit | data:text/html;charset=utf-8,\n" |
| 242 "blinkAddElement | input | submit | data:text/html;charset=utf-8,"; | 242 "blinkAddElement | input | submit | data:text/html;charset=utf-8,"; |
| 243 executeScriptInMainWorld(code); | 243 executeScriptInMainWorld(code); |
| 244 ASSERT_TRUE(verifyActivities("")); | 244 ASSERT_TRUE(verifyActivities("")); |
| 245 executeScriptInIsolatedWorld(code); | 245 executeScriptInIsolatedWorld(code); |
| 246 ASSERT_TRUE(verifyActivities(expectedActivities)); | 246 ASSERT_TRUE(verifyActivities(expectedActivities)); |
| 247 } | 247 } |
| 248 | 248 |
| 249 TEST_F(ActivityLoggerTest, ButtonElement) | 249 TEST_F(ActivityLoggerTest, DISABLED_ButtonElement) |
| 250 { | 250 { |
| 251 const char* code = | 251 const char* code = |
| 252 "document.body.innerHTML = '<button type=\\\'submit\\\' formmethod=\\\'p
ost\\\' formaction=\\\'data:text/html;charset=utf-8,\\\'></input>';" | 252 "document.body.innerHTML = '<button type=\\\'submit\\\' formmethod=\\\'p
ost\\\' formaction=\\\'data:text/html;charset=utf-8,\\\'></input>';" |
| 253 "document.body.innerHTML = '<button></button>';" | 253 "document.body.innerHTML = '<button></button>';" |
| 254 "var button = document.createElement('button');" | 254 "var button = document.createElement('button');" |
| 255 "document.body.appendChild(button);" | 255 "document.body.appendChild(button);" |
| 256 "button = document.createElement('button');" | 256 "button = document.createElement('button');" |
| 257 "button.type = 'submit';" | 257 "button.type = 'submit';" |
| 258 "button.formMethod = 'post';" | 258 "button.formMethod = 'post';" |
| 259 "button.formAction = 'data:text/html;charset=utf-8,';" | 259 "button.formAction = 'data:text/html;charset=utf-8,';" |
| 260 "document.body.appendChild(button);" | 260 "document.body.appendChild(button);" |
| 261 "document.write('<body><button type=\\\'submit\\\' formmethod=\\\'post\\
\' formaction=\\\'data:text/html;charset=utf-8,\\\'></button></body>');"; | 261 "document.write('<body><button type=\\\'submit\\\' formmethod=\\\'post\\
\' formaction=\\\'data:text/html;charset=utf-8,\\\'></button></body>');"; |
| 262 const char* expectedActivities = | 262 const char* expectedActivities = |
| 263 "blinkAddElement | button | submit | post | data:text/html;charset=utf-8
,\n" | 263 "blinkAddElement | button | submit | post | data:text/html;charset=utf-8
,\n" |
| 264 "blinkAddElement | button | | | \n" | 264 "blinkAddElement | button | | | \n" |
| 265 "blinkAddElement | button | | | \n" | 265 "blinkAddElement | button | | | \n" |
| 266 "blinkAddElement | button | submit | post | data:text/html;charset=utf-8
,\n" | 266 "blinkAddElement | button | submit | post | data:text/html;charset=utf-8
,\n" |
| 267 "blinkAddElement | button | submit | post | data:text/html;charset=utf-8
,"; | 267 "blinkAddElement | button | submit | post | data:text/html;charset=utf-8
,"; |
| 268 executeScriptInMainWorld(code); | 268 executeScriptInMainWorld(code); |
| 269 ASSERT_TRUE(verifyActivities("")); | 269 ASSERT_TRUE(verifyActivities("")); |
| 270 executeScriptInIsolatedWorld(code); | 270 executeScriptInIsolatedWorld(code); |
| 271 ASSERT_TRUE(verifyActivities(expectedActivities)); | 271 ASSERT_TRUE(verifyActivities(expectedActivities)); |
| 272 } | 272 } |
| 273 | 273 |
| 274 TEST_F(ActivityLoggerTest, FormElement) | 274 TEST_F(ActivityLoggerTest, DISABLED_FormElement) |
| 275 { | 275 { |
| 276 const char* code = | 276 const char* code = |
| 277 "document.body.innerHTML = '<form method=\\\'post\\\' action=\\\'data:te
xt/html;charset=utf-8,\\\'></form>';" | 277 "document.body.innerHTML = '<form method=\\\'post\\\' action=\\\'data:te
xt/html;charset=utf-8,\\\'></form>';" |
| 278 "document.body.innerHTML = '<form></form>';" | 278 "document.body.innerHTML = '<form></form>';" |
| 279 "var form = document.createElement('form');" | 279 "var form = document.createElement('form');" |
| 280 "document.body.appendChild(form);" | 280 "document.body.appendChild(form);" |
| 281 "form = document.createElement('form');" | 281 "form = document.createElement('form');" |
| 282 "form.method = 'post';" | 282 "form.method = 'post';" |
| 283 "form.action = 'data:text/html;charset=utf-8,';" | 283 "form.action = 'data:text/html;charset=utf-8,';" |
| 284 "document.body.appendChild(form);" | 284 "document.body.appendChild(form);" |
| 285 "document.write('<body><form method=\\\'post\\\' action=\\\'data:text/ht
ml;charset=utf-8,\\\'></form></body>');"; | 285 "document.write('<body><form method=\\\'post\\\' action=\\\'data:text/ht
ml;charset=utf-8,\\\'></form></body>');"; |
| 286 const char* expectedActivities = | 286 const char* expectedActivities = |
| 287 "blinkAddElement | form | post | data:text/html;charset=utf-8,\n" | 287 "blinkAddElement | form | post | data:text/html;charset=utf-8,\n" |
| 288 "blinkAddElement | form | | \n" | 288 "blinkAddElement | form | | \n" |
| 289 "blinkAddElement | form | | \n" | 289 "blinkAddElement | form | | \n" |
| 290 "blinkAddElement | form | post | data:text/html;charset=utf-8,\n" | 290 "blinkAddElement | form | post | data:text/html;charset=utf-8,\n" |
| 291 "blinkAddElement | form | post | data:text/html;charset=utf-8,"; | 291 "blinkAddElement | form | post | data:text/html;charset=utf-8,"; |
| 292 executeScriptInMainWorld(code); | 292 executeScriptInMainWorld(code); |
| 293 ASSERT_TRUE(verifyActivities("")); | 293 ASSERT_TRUE(verifyActivities("")); |
| 294 executeScriptInIsolatedWorld(code); | 294 executeScriptInIsolatedWorld(code); |
| 295 ASSERT_TRUE(verifyActivities(expectedActivities)); | 295 ASSERT_TRUE(verifyActivities(expectedActivities)); |
| 296 } | 296 } |
| 297 | 297 |
| 298 TEST_F(ActivityLoggerTest, IFrameSrcAttribute) | 298 TEST_F(ActivityLoggerTest, DISABLED_IFrameSrcAttribute) |
| 299 { | 299 { |
| 300 const char* code = | 300 const char* code = |
| 301 "document.body.innerHTML = '<iframe src=\\\'data:text/html;charset=utf-8
,A\\\'></iframe>';" | 301 "document.body.innerHTML = '<iframe src=\\\'data:text/html;charset=utf-8
,A\\\'></iframe>';" |
| 302 "var iframe = document.getElementsByTagName('iframe')[0];" | 302 "var iframe = document.getElementsByTagName('iframe')[0];" |
| 303 "iframe.src = 'data:text/html;charset=utf-8,B';" | 303 "iframe.src = 'data:text/html;charset=utf-8,B';" |
| 304 "iframe.setAttribute('src', 'data:text/html;charset=utf-8,C');" | 304 "iframe.setAttribute('src', 'data:text/html;charset=utf-8,C');" |
| 305 "iframe.setAttributeNS('', 'src', 'data:text/html;charset=utf-8,D');" | 305 "iframe.setAttributeNS('', 'src', 'data:text/html;charset=utf-8,D');" |
| 306 "var attr = document.createAttribute('src');" | 306 "var attr = document.createAttribute('src');" |
| 307 "attr.value = 'data:text/html;charset=utf-8,E';" | 307 "attr.value = 'data:text/html;charset=utf-8,E';" |
| 308 "iframe.setAttributeNode(attr);"; | 308 "iframe.setAttributeNode(attr);"; |
| 309 const char* expectedActivities = | 309 const char* expectedActivities = |
| 310 "blinkAddElement | iframe | data:text/html;charset=utf-8,A\n" | 310 "blinkAddElement | iframe | data:text/html;charset=utf-8,A\n" |
| 311 "blinkSetAttribute | iframe | src | data:text/html;charset=utf-8,A | dat
a:text/html;charset=utf-8,B\n" | 311 "blinkSetAttribute | iframe | src | data:text/html;charset=utf-8,A | dat
a:text/html;charset=utf-8,B\n" |
| 312 "blinkSetAttribute | iframe | src | data:text/html;charset=utf-8,B | dat
a:text/html;charset=utf-8,C\n" | 312 "blinkSetAttribute | iframe | src | data:text/html;charset=utf-8,B | dat
a:text/html;charset=utf-8,C\n" |
| 313 "blinkSetAttribute | iframe | src | data:text/html;charset=utf-8,C | dat
a:text/html;charset=utf-8,D\n" | 313 "blinkSetAttribute | iframe | src | data:text/html;charset=utf-8,C | dat
a:text/html;charset=utf-8,D\n" |
| 314 "blinkSetAttribute | iframe | src | data:text/html;charset=utf-8,D | dat
a:text/html;charset=utf-8,E"; | 314 "blinkSetAttribute | iframe | src | data:text/html;charset=utf-8,D | dat
a:text/html;charset=utf-8,E"; |
| 315 executeScriptInMainWorld(code); | 315 executeScriptInMainWorld(code); |
| 316 ASSERT_TRUE(verifyActivities("")); | 316 ASSERT_TRUE(verifyActivities("")); |
| 317 executeScriptInIsolatedWorld(code); | 317 executeScriptInIsolatedWorld(code); |
| 318 ASSERT_TRUE(verifyActivities(expectedActivities)); | 318 ASSERT_TRUE(verifyActivities(expectedActivities)); |
| 319 } | 319 } |
| 320 | 320 |
| 321 TEST_F(ActivityLoggerTest, AnchorHrefAttribute) | 321 TEST_F(ActivityLoggerTest, DISABLED_AnchorHrefAttribute) |
| 322 { | 322 { |
| 323 const char* code = | 323 const char* code = |
| 324 "document.body.innerHTML = '<a href=\\\'data:text/html;charset=utf-8,A\\
\'></a>';" | 324 "document.body.innerHTML = '<a href=\\\'data:text/html;charset=utf-8,A\\
\'></a>';" |
| 325 "var a = document.getElementsByTagName('a')[0];" | 325 "var a = document.getElementsByTagName('a')[0];" |
| 326 "a.href = 'data:text/html;charset=utf-8,B';" | 326 "a.href = 'data:text/html;charset=utf-8,B';" |
| 327 "a.setAttribute('href', 'data:text/html;charset=utf-8,C');" | 327 "a.setAttribute('href', 'data:text/html;charset=utf-8,C');" |
| 328 "a.setAttributeNS('', 'href', 'data:text/html;charset=utf-8,D');" | 328 "a.setAttributeNS('', 'href', 'data:text/html;charset=utf-8,D');" |
| 329 "var attr = document.createAttribute('href');" | 329 "var attr = document.createAttribute('href');" |
| 330 "attr.value = 'data:text/html;charset=utf-8,E';" | 330 "attr.value = 'data:text/html;charset=utf-8,E';" |
| 331 "a.setAttributeNode(attr);"; | 331 "a.setAttributeNode(attr);"; |
| 332 const char* expectedActivities = | 332 const char* expectedActivities = |
| 333 "blinkAddElement | a | data:text/html;charset=utf-8,A\n" | 333 "blinkAddElement | a | data:text/html;charset=utf-8,A\n" |
| 334 "blinkSetAttribute | a | href | data:text/html;charset=utf-8,A | data:te
xt/html;charset=utf-8,B\n" | 334 "blinkSetAttribute | a | href | data:text/html;charset=utf-8,A | data:te
xt/html;charset=utf-8,B\n" |
| 335 "blinkSetAttribute | a | href | data:text/html;charset=utf-8,B | data:te
xt/html;charset=utf-8,C\n" | 335 "blinkSetAttribute | a | href | data:text/html;charset=utf-8,B | data:te
xt/html;charset=utf-8,C\n" |
| 336 "blinkSetAttribute | a | href | data:text/html;charset=utf-8,C | data:te
xt/html;charset=utf-8,D\n" | 336 "blinkSetAttribute | a | href | data:text/html;charset=utf-8,C | data:te
xt/html;charset=utf-8,D\n" |
| 337 "blinkSetAttribute | a | href | data:text/html;charset=utf-8,D | data:te
xt/html;charset=utf-8,E"; | 337 "blinkSetAttribute | a | href | data:text/html;charset=utf-8,D | data:te
xt/html;charset=utf-8,E"; |
| 338 executeScriptInMainWorld(code); | 338 executeScriptInMainWorld(code); |
| 339 ASSERT_TRUE(verifyActivities("")); | 339 ASSERT_TRUE(verifyActivities("")); |
| 340 executeScriptInIsolatedWorld(code); | 340 executeScriptInIsolatedWorld(code); |
| 341 ASSERT_TRUE(verifyActivities(expectedActivities)); | 341 ASSERT_TRUE(verifyActivities(expectedActivities)); |
| 342 } | 342 } |
| 343 | 343 |
| 344 TEST_F(ActivityLoggerTest, LinkHrefAttribute) | 344 TEST_F(ActivityLoggerTest, DISABLED_LinkHrefAttribute) |
| 345 { | 345 { |
| 346 const char* code = | 346 const char* code = |
| 347 "document.body.innerHTML = '<link rel=\\\'stylesheet\\\' href=\\\'data:t
ext/css;charset=utf-8,A\\\'></link>';" | 347 "document.body.innerHTML = '<link rel=\\\'stylesheet\\\' href=\\\'data:t
ext/css;charset=utf-8,A\\\'></link>';" |
| 348 "var link = document.getElementsByTagName('link')[0];" | 348 "var link = document.getElementsByTagName('link')[0];" |
| 349 "link.href = 'data:text/css;charset=utf-8,B';" | 349 "link.href = 'data:text/css;charset=utf-8,B';" |
| 350 "link.setAttribute('href', 'data:text/css;charset=utf-8,C');" | 350 "link.setAttribute('href', 'data:text/css;charset=utf-8,C');" |
| 351 "link.setAttributeNS('', 'href', 'data:text/css;charset=utf-8,D');" | 351 "link.setAttributeNS('', 'href', 'data:text/css;charset=utf-8,D');" |
| 352 "var attr = document.createAttribute('href');" | 352 "var attr = document.createAttribute('href');" |
| 353 "attr.value = 'data:text/css;charset=utf-8,E';" | 353 "attr.value = 'data:text/css;charset=utf-8,E';" |
| 354 "link.setAttributeNode(attr);"; | 354 "link.setAttributeNode(attr);"; |
| 355 const char* expectedActivities = | 355 const char* expectedActivities = |
| 356 "blinkAddElement | link | stylesheet | data:text/css;charset=utf-8,A\n" | 356 "blinkAddElement | link | stylesheet | data:text/css;charset=utf-8,A\n" |
| 357 "blinkSetAttribute | link | href | data:text/css;charset=utf-8,A | data:
text/css;charset=utf-8,B\n" | 357 "blinkSetAttribute | link | href | data:text/css;charset=utf-8,A | data:
text/css;charset=utf-8,B\n" |
| 358 "blinkSetAttribute | link | href | data:text/css;charset=utf-8,B | data:
text/css;charset=utf-8,C\n" | 358 "blinkSetAttribute | link | href | data:text/css;charset=utf-8,B | data:
text/css;charset=utf-8,C\n" |
| 359 "blinkSetAttribute | link | href | data:text/css;charset=utf-8,C | data:
text/css;charset=utf-8,D\n" | 359 "blinkSetAttribute | link | href | data:text/css;charset=utf-8,C | data:
text/css;charset=utf-8,D\n" |
| 360 "blinkSetAttribute | link | href | data:text/css;charset=utf-8,D | data:
text/css;charset=utf-8,E"; | 360 "blinkSetAttribute | link | href | data:text/css;charset=utf-8,D | data:
text/css;charset=utf-8,E"; |
| 361 executeScriptInMainWorld(code); | 361 executeScriptInMainWorld(code); |
| 362 ASSERT_TRUE(verifyActivities("")); | 362 ASSERT_TRUE(verifyActivities("")); |
| 363 executeScriptInIsolatedWorld(code); | 363 executeScriptInIsolatedWorld(code); |
| 364 ASSERT_TRUE(verifyActivities(expectedActivities)); | 364 ASSERT_TRUE(verifyActivities(expectedActivities)); |
| 365 } | 365 } |
| 366 | 366 |
| 367 TEST_F(ActivityLoggerTest, InputFormActionAttribute) | 367 TEST_F(ActivityLoggerTest, DISABLED_InputFormActionAttribute) |
| 368 { | 368 { |
| 369 const char* code = | 369 const char* code = |
| 370 "document.body.innerHTML = '<input type=\\\'button\\\' formaction=\\\'da
ta:text/html;charset=utf-8,A\\\'></input>';" | 370 "document.body.innerHTML = '<input type=\\\'button\\\' formaction=\\\'da
ta:text/html;charset=utf-8,A\\\'></input>';" |
| 371 "var input = document.getElementsByTagName('input')[0];" | 371 "var input = document.getElementsByTagName('input')[0];" |
| 372 "input.formAction = 'data:text/html;charset=utf-8,B';" | 372 "input.formAction = 'data:text/html;charset=utf-8,B';" |
| 373 "input.setAttribute('formaction', 'data:text/html;charset=utf-8,C');" | 373 "input.setAttribute('formaction', 'data:text/html;charset=utf-8,C');" |
| 374 "input.setAttributeNS('', 'formaction', 'data:text/html;charset=utf-8,D'
);" | 374 "input.setAttributeNS('', 'formaction', 'data:text/html;charset=utf-8,D'
);" |
| 375 "var attr = document.createAttribute('formaction');" | 375 "var attr = document.createAttribute('formaction');" |
| 376 "attr.value = 'data:text/html;charset=utf-8,E';" | 376 "attr.value = 'data:text/html;charset=utf-8,E';" |
| 377 "input.setAttributeNode(attr);"; | 377 "input.setAttributeNode(attr);"; |
| 378 const char* expectedActivities = | 378 const char* expectedActivities = |
| 379 "blinkAddElement | input | button | data:text/html;charset=utf-8,A\n" | 379 "blinkAddElement | input | button | data:text/html;charset=utf-8,A\n" |
| 380 "blinkSetAttribute | input | formaction | data:text/html;charset=utf-8,A
| data:text/html;charset=utf-8,B\n" | 380 "blinkSetAttribute | input | formaction | data:text/html;charset=utf-8,A
| data:text/html;charset=utf-8,B\n" |
| 381 "blinkSetAttribute | input | formaction | data:text/html;charset=utf-8,B
| data:text/html;charset=utf-8,C\n" | 381 "blinkSetAttribute | input | formaction | data:text/html;charset=utf-8,B
| data:text/html;charset=utf-8,C\n" |
| 382 "blinkSetAttribute | input | formaction | data:text/html;charset=utf-8,C
| data:text/html;charset=utf-8,D\n" | 382 "blinkSetAttribute | input | formaction | data:text/html;charset=utf-8,C
| data:text/html;charset=utf-8,D\n" |
| 383 "blinkSetAttribute | input | formaction | data:text/html;charset=utf-8,D
| data:text/html;charset=utf-8,E"; | 383 "blinkSetAttribute | input | formaction | data:text/html;charset=utf-8,D
| data:text/html;charset=utf-8,E"; |
| 384 executeScriptInMainWorld(code); | 384 executeScriptInMainWorld(code); |
| 385 ASSERT_TRUE(verifyActivities("")); | 385 ASSERT_TRUE(verifyActivities("")); |
| 386 executeScriptInIsolatedWorld(code); | 386 executeScriptInIsolatedWorld(code); |
| 387 ASSERT_TRUE(verifyActivities(expectedActivities)); | 387 ASSERT_TRUE(verifyActivities(expectedActivities)); |
| 388 } | 388 } |
| 389 | 389 |
| 390 TEST_F(ActivityLoggerTest, ButtonFormActionAttribute) | 390 TEST_F(ActivityLoggerTest, DISABLED_ButtonFormActionAttribute) |
| 391 { | 391 { |
| 392 const char* code = | 392 const char* code = |
| 393 "document.body.innerHTML = '<button type=\\\'submit\\\' formmethod=\\\'p
ost\\\' formaction=\\\'data:text/html;charset=utf-8,A\\\'></input>';" | 393 "document.body.innerHTML = '<button type=\\\'submit\\\' formmethod=\\\'p
ost\\\' formaction=\\\'data:text/html;charset=utf-8,A\\\'></input>';" |
| 394 "var button = document.getElementsByTagName('button')[0];" | 394 "var button = document.getElementsByTagName('button')[0];" |
| 395 "button.formAction = 'data:text/html;charset=utf-8,B';" | 395 "button.formAction = 'data:text/html;charset=utf-8,B';" |
| 396 "button.setAttribute('formaction', 'data:text/html;charset=utf-8,C');" | 396 "button.setAttribute('formaction', 'data:text/html;charset=utf-8,C');" |
| 397 "button.setAttributeNS('', 'formaction', 'data:text/html;charset=utf-8,D
');" | 397 "button.setAttributeNS('', 'formaction', 'data:text/html;charset=utf-8,D
');" |
| 398 "var attr = document.createAttribute('formaction');" | 398 "var attr = document.createAttribute('formaction');" |
| 399 "attr.value = 'data:text/html;charset=utf-8,E';" | 399 "attr.value = 'data:text/html;charset=utf-8,E';" |
| 400 "button.setAttributeNode(attr);"; | 400 "button.setAttributeNode(attr);"; |
| 401 const char* expectedActivities = | 401 const char* expectedActivities = |
| 402 "blinkAddElement | button | submit | post | data:text/html;charset=utf-8
,A\n" | 402 "blinkAddElement | button | submit | post | data:text/html;charset=utf-8
,A\n" |
| 403 "blinkSetAttribute | button | formaction | data:text/html;charset=utf-8,
A | data:text/html;charset=utf-8,B\n" | 403 "blinkSetAttribute | button | formaction | data:text/html;charset=utf-8,
A | data:text/html;charset=utf-8,B\n" |
| 404 "blinkSetAttribute | button | formaction | data:text/html;charset=utf-8,
B | data:text/html;charset=utf-8,C\n" | 404 "blinkSetAttribute | button | formaction | data:text/html;charset=utf-8,
B | data:text/html;charset=utf-8,C\n" |
| 405 "blinkSetAttribute | button | formaction | data:text/html;charset=utf-8,
C | data:text/html;charset=utf-8,D\n" | 405 "blinkSetAttribute | button | formaction | data:text/html;charset=utf-8,
C | data:text/html;charset=utf-8,D\n" |
| 406 "blinkSetAttribute | button | formaction | data:text/html;charset=utf-8,
D | data:text/html;charset=utf-8,E"; | 406 "blinkSetAttribute | button | formaction | data:text/html;charset=utf-8,
D | data:text/html;charset=utf-8,E"; |
| 407 executeScriptInMainWorld(code); | 407 executeScriptInMainWorld(code); |
| 408 ASSERT_TRUE(verifyActivities("")); | 408 ASSERT_TRUE(verifyActivities("")); |
| 409 executeScriptInIsolatedWorld(code); | 409 executeScriptInIsolatedWorld(code); |
| 410 ASSERT_TRUE(verifyActivities(expectedActivities)); | 410 ASSERT_TRUE(verifyActivities(expectedActivities)); |
| 411 } | 411 } |
| 412 | 412 |
| 413 TEST_F(ActivityLoggerTest, FormActionAttribute) | 413 TEST_F(ActivityLoggerTest, DISABLED_FormActionAttribute) |
| 414 { | 414 { |
| 415 const char* code = | 415 const char* code = |
| 416 "document.body.innerHTML = '<form action=\\\'data:text/html;charset=utf-
8,A\\\'></form>';" | 416 "document.body.innerHTML = '<form action=\\\'data:text/html;charset=utf-
8,A\\\'></form>';" |
| 417 "var form = document.getElementsByTagName('form')[0];" | 417 "var form = document.getElementsByTagName('form')[0];" |
| 418 "form.action = 'data:text/html;charset=utf-8,B';" | 418 "form.action = 'data:text/html;charset=utf-8,B';" |
| 419 "form.setAttribute('action', 'data:text/html;charset=utf-8,C');" | 419 "form.setAttribute('action', 'data:text/html;charset=utf-8,C');" |
| 420 "form.setAttributeNS('', 'action', 'data:text/html;charset=utf-8,D');" | 420 "form.setAttributeNS('', 'action', 'data:text/html;charset=utf-8,D');" |
| 421 "var attr = document.createAttribute('action');" | 421 "var attr = document.createAttribute('action');" |
| 422 "attr.value = 'data:text/html;charset=utf-8,E';" | 422 "attr.value = 'data:text/html;charset=utf-8,E';" |
| 423 "form.setAttributeNode(attr);"; | 423 "form.setAttributeNode(attr);"; |
| 424 const char* expectedActivities = | 424 const char* expectedActivities = |
| 425 "blinkAddElement | form | | data:text/html;charset=utf-8,A\n" | 425 "blinkAddElement | form | | data:text/html;charset=utf-8,A\n" |
| 426 "blinkSetAttribute | form | action | data:text/html;charset=utf-8,A | da
ta:text/html;charset=utf-8,B\n" | 426 "blinkSetAttribute | form | action | data:text/html;charset=utf-8,A | da
ta:text/html;charset=utf-8,B\n" |
| 427 "blinkSetAttribute | form | action | data:text/html;charset=utf-8,B | da
ta:text/html;charset=utf-8,C\n" | 427 "blinkSetAttribute | form | action | data:text/html;charset=utf-8,B | da
ta:text/html;charset=utf-8,C\n" |
| 428 "blinkSetAttribute | form | action | data:text/html;charset=utf-8,C | da
ta:text/html;charset=utf-8,D\n" | 428 "blinkSetAttribute | form | action | data:text/html;charset=utf-8,C | da
ta:text/html;charset=utf-8,D\n" |
| 429 "blinkSetAttribute | form | action | data:text/html;charset=utf-8,D | da
ta:text/html;charset=utf-8,E"; | 429 "blinkSetAttribute | form | action | data:text/html;charset=utf-8,D | da
ta:text/html;charset=utf-8,E"; |
| 430 executeScriptInMainWorld(code); | 430 executeScriptInMainWorld(code); |
| 431 ASSERT_TRUE(verifyActivities("")); | 431 ASSERT_TRUE(verifyActivities("")); |
| 432 executeScriptInIsolatedWorld(code); | 432 executeScriptInIsolatedWorld(code); |
| 433 ASSERT_TRUE(verifyActivities(expectedActivities)); | 433 ASSERT_TRUE(verifyActivities(expectedActivities)); |
| 434 } | 434 } |
| 435 | 435 |
| 436 TEST_F(ActivityLoggerTest, LocalDOMWindowAttribute) | 436 TEST_F(ActivityLoggerTest, DISABLED_LocalDOMWindowAttribute) |
| 437 { | 437 { |
| 438 const char* code = | 438 const char* code = |
| 439 "location.href = 'data:text/html;charset=utf-8,A';" | 439 "location.href = 'data:text/html;charset=utf-8,A';" |
| 440 "location.assign('data:text/html;charset=utf-8,B');" | 440 "location.assign('data:text/html;charset=utf-8,B');" |
| 441 "location.replace('data:text/html;charset=utf-8,C');" | 441 "location.replace('data:text/html;charset=utf-8,C');" |
| 442 "location.protocol = 'protocol';" | 442 "location.protocol = 'protocol';" |
| 443 "location.pathname = 'pathname';" | 443 "location.pathname = 'pathname';" |
| 444 "location.search = 'search';" | 444 "location.search = 'search';" |
| 445 "location.hash = 'hash';" | 445 "location.hash = 'hash';" |
| 446 "location.href = 'about:blank';"; | 446 "location.href = 'about:blank';"; |
| 447 const char* expectedActivities = | 447 const char* expectedActivities = |
| 448 "blinkSetAttribute | LocalDOMWindow | url | about:blank | data:text/html
;charset=utf-8,A\n" | 448 "blinkSetAttribute | LocalDOMWindow | url | about:blank | data:text/html
;charset=utf-8,A\n" |
| 449 "blinkSetAttribute | LocalDOMWindow | url | about:blank | data:text/html
;charset=utf-8,B\n" | 449 "blinkSetAttribute | LocalDOMWindow | url | about:blank | data:text/html
;charset=utf-8,B\n" |
| 450 "blinkSetAttribute | LocalDOMWindow | url | about:blank | data:text/html
;charset=utf-8,C\n" | 450 "blinkSetAttribute | LocalDOMWindow | url | about:blank | data:text/html
;charset=utf-8,C\n" |
| 451 "blinkSetAttribute | LocalDOMWindow | url | about:blank | protocol:blank
\n" | 451 "blinkSetAttribute | LocalDOMWindow | url | about:blank | protocol:blank
\n" |
| 452 "blinkSetAttribute | LocalDOMWindow | url | about:blank | about:pathname
\n" | 452 "blinkSetAttribute | LocalDOMWindow | url | about:blank | about:pathname
\n" |
| 453 "blinkSetAttribute | LocalDOMWindow | url | about:blank | about:blank?se
arch\n" | 453 "blinkSetAttribute | LocalDOMWindow | url | about:blank | about:blank?se
arch\n" |
| 454 "blinkSetAttribute | LocalDOMWindow | url | about:blank | about:blank#ha
sh\n" | 454 "blinkSetAttribute | LocalDOMWindow | url | about:blank | about:blank#ha
sh\n" |
| 455 "blinkSetAttribute | LocalDOMWindow | url | about:blank#hash | about:bla
nk\n"; | 455 "blinkSetAttribute | LocalDOMWindow | url | about:blank#hash | about:bla
nk\n"; |
| 456 executeScriptInMainWorld(code); | 456 executeScriptInMainWorld(code); |
| 457 ASSERT_TRUE(verifyActivities("")); | 457 ASSERT_TRUE(verifyActivities("")); |
| 458 executeScriptInIsolatedWorld(code); | 458 executeScriptInIsolatedWorld(code); |
| 459 ASSERT_TRUE(verifyActivities(expectedActivities)); | 459 ASSERT_TRUE(verifyActivities(expectedActivities)); |
| 460 } | 460 } |
| 461 | 461 |
| 462 } // namespace | 462 } // namespace |
| OLD | NEW |