| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "components/test_runner/web_frame_test_client.h" | 5 #include "components/test_runner/web_frame_test_client.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 | 8 |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/strings/string_piece.h" | 10 #include "base/strings/string_piece.h" |
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 158 return kFormResubmittedString; | 158 return kFormResubmittedString; |
| 159 case blink::WebNavigationTypeOther: | 159 case blink::WebNavigationTypeOther: |
| 160 return kOtherString; | 160 return kOtherString; |
| 161 } | 161 } |
| 162 return kIllegalString; | 162 return kIllegalString; |
| 163 } | 163 } |
| 164 | 164 |
| 165 } // namespace | 165 } // namespace |
| 166 | 166 |
| 167 WebFrameTestClient::WebFrameTestClient( | 167 WebFrameTestClient::WebFrameTestClient( |
| 168 TestRunner* test_runner, | |
| 169 WebTestDelegate* delegate, | 168 WebTestDelegate* delegate, |
| 170 WebViewTestProxyBase* web_view_test_proxy_base, | 169 WebViewTestProxyBase* web_view_test_proxy_base, |
| 171 WebFrameTestProxyBase* web_frame_test_proxy_base) | 170 WebFrameTestProxyBase* web_frame_test_proxy_base) |
| 172 : test_runner_(test_runner), | 171 : delegate_(delegate), |
| 173 delegate_(delegate), | |
| 174 web_view_test_proxy_base_(web_view_test_proxy_base), | 172 web_view_test_proxy_base_(web_view_test_proxy_base), |
| 175 web_frame_test_proxy_base_(web_frame_test_proxy_base) { | 173 web_frame_test_proxy_base_(web_frame_test_proxy_base) { |
| 176 DCHECK(test_runner); | |
| 177 DCHECK(delegate_); | 174 DCHECK(delegate_); |
| 175 DCHECK(web_frame_test_proxy_base_); |
| 178 DCHECK(web_view_test_proxy_base_); | 176 DCHECK(web_view_test_proxy_base_); |
| 179 } | 177 } |
| 180 | 178 |
| 181 WebFrameTestClient::~WebFrameTestClient() {} | 179 WebFrameTestClient::~WebFrameTestClient() {} |
| 182 | 180 |
| 183 blink::WebColorChooser* WebFrameTestClient::createColorChooser( | 181 blink::WebColorChooser* WebFrameTestClient::createColorChooser( |
| 184 blink::WebColorChooserClient* client, | 182 blink::WebColorChooserClient* client, |
| 185 const blink::WebColor& color, | 183 const blink::WebColor& color, |
| 186 const blink::WebVector<blink::WebColorSuggestion>& suggestions) { | 184 const blink::WebVector<blink::WebColorSuggestion>& suggestions) { |
| 187 // This instance is deleted by WebCore::ColorInputType | 185 // This instance is deleted by WebCore::ColorInputType |
| 188 return new MockColorChooser(client, delegate_, test_runner_); | 186 return new MockColorChooser(client, delegate_, test_runner()); |
| 189 } | 187 } |
| 190 | 188 |
| 191 void WebFrameTestClient::runModalAlertDialog(const blink::WebString& message) { | 189 void WebFrameTestClient::runModalAlertDialog(const blink::WebString& message) { |
| 192 delegate_->PrintMessage(std::string("ALERT: ") + message.utf8().data() + | 190 delegate_->PrintMessage(std::string("ALERT: ") + message.utf8().data() + |
| 193 "\n"); | 191 "\n"); |
| 194 } | 192 } |
| 195 | 193 |
| 196 bool WebFrameTestClient::runModalConfirmDialog( | 194 bool WebFrameTestClient::runModalConfirmDialog( |
| 197 const blink::WebString& message) { | 195 const blink::WebString& message) { |
| 198 delegate_->PrintMessage(std::string("CONFIRM: ") + message.utf8().data() + | 196 delegate_->PrintMessage(std::string("CONFIRM: ") + message.utf8().data() + |
| 199 "\n"); | 197 "\n"); |
| 200 return true; | 198 return true; |
| 201 } | 199 } |
| 202 | 200 |
| 203 bool WebFrameTestClient::runModalPromptDialog( | 201 bool WebFrameTestClient::runModalPromptDialog( |
| 204 const blink::WebString& message, | 202 const blink::WebString& message, |
| 205 const blink::WebString& default_value, | 203 const blink::WebString& default_value, |
| 206 blink::WebString* actual_value) { | 204 blink::WebString* actual_value) { |
| 207 delegate_->PrintMessage(std::string("PROMPT: ") + message.utf8().data() + | 205 delegate_->PrintMessage(std::string("PROMPT: ") + message.utf8().data() + |
| 208 ", default text: " + default_value.utf8().data() + | 206 ", default text: " + default_value.utf8().data() + |
| 209 "\n"); | 207 "\n"); |
| 210 return true; | 208 return true; |
| 211 } | 209 } |
| 212 | 210 |
| 213 bool WebFrameTestClient::runModalBeforeUnloadDialog(bool is_reload) { | 211 bool WebFrameTestClient::runModalBeforeUnloadDialog(bool is_reload) { |
| 214 delegate_->PrintMessage(std::string("CONFIRM NAVIGATION\n")); | 212 delegate_->PrintMessage(std::string("CONFIRM NAVIGATION\n")); |
| 215 return !test_runner_->shouldStayOnPageAfterHandlingBeforeUnload(); | 213 return !test_runner()->shouldStayOnPageAfterHandlingBeforeUnload(); |
| 216 } | 214 } |
| 217 | 215 |
| 218 blink::WebScreenOrientationClient* | 216 blink::WebScreenOrientationClient* |
| 219 WebFrameTestClient::webScreenOrientationClient() { | 217 WebFrameTestClient::webScreenOrientationClient() { |
| 220 return test_runner_->getMockScreenOrientationClient(); | 218 return test_runner()->getMockScreenOrientationClient(); |
| 221 } | 219 } |
| 222 | 220 |
| 223 void WebFrameTestClient::postAccessibilityEvent(const blink::WebAXObject& obj, | 221 void WebFrameTestClient::postAccessibilityEvent(const blink::WebAXObject& obj, |
| 224 blink::WebAXEvent event) { | 222 blink::WebAXEvent event) { |
| 225 // Only hook the accessibility events occured during the test run. | 223 // Only hook the accessibility events occured during the test run. |
| 226 // This check prevents false positives in WebLeakDetector. | 224 // This check prevents false positives in WebLeakDetector. |
| 227 // The pending tasks in browser/renderer message queue may trigger | 225 // The pending tasks in browser/renderer message queue may trigger |
| 228 // accessibility events, | 226 // accessibility events, |
| 229 // and AccessibilityController will hold on to their target nodes if we don't | 227 // and AccessibilityController will hold on to their target nodes if we don't |
| 230 // ignore them here. | 228 // ignore them here. |
| 231 if (!test_runner_->TestIsRunning()) | 229 if (!test_runner()->TestIsRunning()) |
| 232 return; | 230 return; |
| 233 | 231 |
| 234 const char* event_name = NULL; | 232 const char* event_name = NULL; |
| 235 switch (event) { | 233 switch (event) { |
| 236 case blink::WebAXEventActiveDescendantChanged: | 234 case blink::WebAXEventActiveDescendantChanged: |
| 237 event_name = "ActiveDescendantChanged"; | 235 event_name = "ActiveDescendantChanged"; |
| 238 break; | 236 break; |
| 239 case blink::WebAXEventAlert: | 237 case blink::WebAXEventAlert: |
| 240 event_name = "Alert"; | 238 event_name = "Alert"; |
| 241 break; | 239 break; |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 348 message += " - id:"; | 346 message += " - id:"; |
| 349 message += element.getAttribute("id").utf8().data(); | 347 message += element.getAttribute("id").utf8().data(); |
| 350 } | 348 } |
| 351 } | 349 } |
| 352 | 350 |
| 353 delegate_->PrintMessage(message + "\n"); | 351 delegate_->PrintMessage(message + "\n"); |
| 354 } | 352 } |
| 355 } | 353 } |
| 356 | 354 |
| 357 void WebFrameTestClient::didChangeSelection(bool is_empty_callback) { | 355 void WebFrameTestClient::didChangeSelection(bool is_empty_callback) { |
| 358 if (test_runner_->shouldDumpEditingCallbacks()) | 356 if (test_runner()->shouldDumpEditingCallbacks()) |
| 359 delegate_->PrintMessage( | 357 delegate_->PrintMessage( |
| 360 "EDITING DELEGATE: " | 358 "EDITING DELEGATE: " |
| 361 "webViewDidChangeSelection:WebViewDidChangeSelectionNotification\n"); | 359 "webViewDidChangeSelection:WebViewDidChangeSelectionNotification\n"); |
| 362 } | 360 } |
| 363 | 361 |
| 364 blink::WebPlugin* WebFrameTestClient::createPlugin( | 362 blink::WebPlugin* WebFrameTestClient::createPlugin( |
| 365 blink::WebLocalFrame* frame, | 363 blink::WebLocalFrame* frame, |
| 366 const blink::WebPluginParams& params) { | 364 const blink::WebPluginParams& params) { |
| 367 if (TestPlugin::IsSupportedMimeType(params.mimeType)) | 365 if (TestPlugin::IsSupportedMimeType(params.mimeType)) |
| 368 return TestPlugin::create(frame, params, delegate_); | 366 return TestPlugin::create(frame, params, delegate_); |
| 369 return delegate_->CreatePluginPlaceholder(frame, params); | 367 return delegate_->CreatePluginPlaceholder(frame, params); |
| 370 } | 368 } |
| 371 | 369 |
| 372 void WebFrameTestClient::showContextMenu( | 370 void WebFrameTestClient::showContextMenu( |
| 373 const blink::WebContextMenuData& context_menu_data) { | 371 const blink::WebContextMenuData& context_menu_data) { |
| 374 web_view_test_proxy_base_->event_sender()->SetContextMenuData( | 372 web_view_test_proxy_base_->event_sender()->SetContextMenuData( |
| 375 context_menu_data); | 373 context_menu_data); |
| 376 } | 374 } |
| 377 | 375 |
| 378 blink::WebUserMediaClient* WebFrameTestClient::userMediaClient() { | 376 blink::WebUserMediaClient* WebFrameTestClient::userMediaClient() { |
| 379 return test_runner_->getMockWebUserMediaClient(); | 377 return test_runner()->getMockWebUserMediaClient(); |
| 380 } | 378 } |
| 381 | 379 |
| 382 void WebFrameTestClient::loadURLExternally( | 380 void WebFrameTestClient::loadURLExternally( |
| 383 const blink::WebURLRequest& request, | 381 const blink::WebURLRequest& request, |
| 384 blink::WebNavigationPolicy policy, | 382 blink::WebNavigationPolicy policy, |
| 385 const blink::WebString& suggested_name, | 383 const blink::WebString& suggested_name, |
| 386 bool replaces_current_history_item) { | 384 bool replaces_current_history_item) { |
| 387 if (test_runner_->shouldWaitUntilExternalURLLoad()) { | 385 if (test_runner()->shouldWaitUntilExternalURLLoad()) { |
| 388 if (policy == blink::WebNavigationPolicyDownload) { | 386 if (policy == blink::WebNavigationPolicyDownload) { |
| 389 delegate_->PrintMessage( | 387 delegate_->PrintMessage( |
| 390 std::string("Downloading URL with suggested filename \"") + | 388 std::string("Downloading URL with suggested filename \"") + |
| 391 suggested_name.utf8() + "\"\n"); | 389 suggested_name.utf8() + "\"\n"); |
| 392 } else { | 390 } else { |
| 393 delegate_->PrintMessage(std::string("Loading URL externally - \"") + | 391 delegate_->PrintMessage(std::string("Loading URL externally - \"") + |
| 394 URLDescription(request.url()) + "\"\n"); | 392 URLDescription(request.url()) + "\"\n"); |
| 395 } | 393 } |
| 396 delegate_->TestFinished(); | 394 delegate_->TestFinished(); |
| 397 } | 395 } |
| 398 } | 396 } |
| 399 | 397 |
| 400 void WebFrameTestClient::didStartProvisionalLoad(blink::WebLocalFrame* frame, | 398 void WebFrameTestClient::didStartProvisionalLoad(blink::WebLocalFrame* frame, |
| 401 double trigering_event_time) { | 399 double trigering_event_time) { |
| 402 test_runner_->tryToSetTopLoadingFrame(frame); | 400 test_runner()->tryToSetTopLoadingFrame(frame); |
| 403 | 401 |
| 404 if (test_runner_->shouldDumpFrameLoadCallbacks()) { | 402 if (test_runner()->shouldDumpFrameLoadCallbacks()) { |
| 405 PrintFrameDescription(delegate_, frame); | 403 PrintFrameDescription(delegate_, frame); |
| 406 delegate_->PrintMessage(" - didStartProvisionalLoadForFrame\n"); | 404 delegate_->PrintMessage(" - didStartProvisionalLoadForFrame\n"); |
| 407 } | 405 } |
| 408 | 406 |
| 409 if (test_runner_->shouldDumpUserGestureInFrameLoadCallbacks()) { | 407 if (test_runner()->shouldDumpUserGestureInFrameLoadCallbacks()) { |
| 410 PrintFrameuserGestureStatus(delegate_, frame, | 408 PrintFrameuserGestureStatus(delegate_, frame, |
| 411 " - in didStartProvisionalLoadForFrame\n"); | 409 " - in didStartProvisionalLoadForFrame\n"); |
| 412 } | 410 } |
| 413 } | 411 } |
| 414 | 412 |
| 415 void WebFrameTestClient::didReceiveServerRedirectForProvisionalLoad( | 413 void WebFrameTestClient::didReceiveServerRedirectForProvisionalLoad( |
| 416 blink::WebLocalFrame* frame) { | 414 blink::WebLocalFrame* frame) { |
| 417 if (test_runner_->shouldDumpFrameLoadCallbacks()) { | 415 if (test_runner()->shouldDumpFrameLoadCallbacks()) { |
| 418 PrintFrameDescription(delegate_, frame); | 416 PrintFrameDescription(delegate_, frame); |
| 419 delegate_->PrintMessage( | 417 delegate_->PrintMessage( |
| 420 " - didReceiveServerRedirectForProvisionalLoadForFrame\n"); | 418 " - didReceiveServerRedirectForProvisionalLoadForFrame\n"); |
| 421 } | 419 } |
| 422 } | 420 } |
| 423 | 421 |
| 424 void WebFrameTestClient::didFailProvisionalLoad( | 422 void WebFrameTestClient::didFailProvisionalLoad( |
| 425 blink::WebLocalFrame* frame, | 423 blink::WebLocalFrame* frame, |
| 426 const blink::WebURLError& error, | 424 const blink::WebURLError& error, |
| 427 blink::WebHistoryCommitType commit_type) { | 425 blink::WebHistoryCommitType commit_type) { |
| 428 if (test_runner_->shouldDumpFrameLoadCallbacks()) { | 426 if (test_runner()->shouldDumpFrameLoadCallbacks()) { |
| 429 PrintFrameDescription(delegate_, frame); | 427 PrintFrameDescription(delegate_, frame); |
| 430 delegate_->PrintMessage(" - didFailProvisionalLoadWithError\n"); | 428 delegate_->PrintMessage(" - didFailProvisionalLoadWithError\n"); |
| 431 } | 429 } |
| 432 } | 430 } |
| 433 | 431 |
| 434 void WebFrameTestClient::didCommitProvisionalLoad( | 432 void WebFrameTestClient::didCommitProvisionalLoad( |
| 435 blink::WebLocalFrame* frame, | 433 blink::WebLocalFrame* frame, |
| 436 const blink::WebHistoryItem& history_item, | 434 const blink::WebHistoryItem& history_item, |
| 437 blink::WebHistoryCommitType history_type) { | 435 blink::WebHistoryCommitType history_type) { |
| 438 if (test_runner_->shouldDumpFrameLoadCallbacks()) { | 436 if (test_runner()->shouldDumpFrameLoadCallbacks()) { |
| 439 PrintFrameDescription(delegate_, frame); | 437 PrintFrameDescription(delegate_, frame); |
| 440 delegate_->PrintMessage(" - didCommitLoadForFrame\n"); | 438 delegate_->PrintMessage(" - didCommitLoadForFrame\n"); |
| 441 } | 439 } |
| 442 } | 440 } |
| 443 | 441 |
| 444 void WebFrameTestClient::didReceiveTitle(blink::WebLocalFrame* frame, | 442 void WebFrameTestClient::didReceiveTitle(blink::WebLocalFrame* frame, |
| 445 const blink::WebString& title, | 443 const blink::WebString& title, |
| 446 blink::WebTextDirection direction) { | 444 blink::WebTextDirection direction) { |
| 447 if (test_runner_->shouldDumpFrameLoadCallbacks()) { | 445 if (test_runner()->shouldDumpFrameLoadCallbacks()) { |
| 448 PrintFrameDescription(delegate_, frame); | 446 PrintFrameDescription(delegate_, frame); |
| 449 delegate_->PrintMessage(std::string(" - didReceiveTitle: ") + title.utf8() + | 447 delegate_->PrintMessage(std::string(" - didReceiveTitle: ") + title.utf8() + |
| 450 "\n"); | 448 "\n"); |
| 451 } | 449 } |
| 452 | 450 |
| 453 if (test_runner_->shouldDumpTitleChanges()) | 451 if (test_runner()->shouldDumpTitleChanges()) |
| 454 delegate_->PrintMessage(std::string("TITLE CHANGED: '") + title.utf8() + | 452 delegate_->PrintMessage(std::string("TITLE CHANGED: '") + title.utf8() + |
| 455 "'\n"); | 453 "'\n"); |
| 456 } | 454 } |
| 457 | 455 |
| 458 void WebFrameTestClient::didChangeIcon(blink::WebLocalFrame* frame, | 456 void WebFrameTestClient::didChangeIcon(blink::WebLocalFrame* frame, |
| 459 blink::WebIconURL::Type icon_type) { | 457 blink::WebIconURL::Type icon_type) { |
| 460 if (test_runner_->shouldDumpIconChanges()) { | 458 if (test_runner()->shouldDumpIconChanges()) { |
| 461 PrintFrameDescription(delegate_, frame); | 459 PrintFrameDescription(delegate_, frame); |
| 462 delegate_->PrintMessage(std::string(" - didChangeIcons\n")); | 460 delegate_->PrintMessage(std::string(" - didChangeIcons\n")); |
| 463 } | 461 } |
| 464 } | 462 } |
| 465 | 463 |
| 466 void WebFrameTestClient::didFinishDocumentLoad(blink::WebLocalFrame* frame) { | 464 void WebFrameTestClient::didFinishDocumentLoad(blink::WebLocalFrame* frame) { |
| 467 if (test_runner_->shouldDumpFrameLoadCallbacks()) { | 465 if (test_runner()->shouldDumpFrameLoadCallbacks()) { |
| 468 PrintFrameDescription(delegate_, frame); | 466 PrintFrameDescription(delegate_, frame); |
| 469 delegate_->PrintMessage(" - didFinishDocumentLoadForFrame\n"); | 467 delegate_->PrintMessage(" - didFinishDocumentLoadForFrame\n"); |
| 470 } | 468 } |
| 471 } | 469 } |
| 472 | 470 |
| 473 void WebFrameTestClient::didHandleOnloadEvents(blink::WebLocalFrame* frame) { | 471 void WebFrameTestClient::didHandleOnloadEvents(blink::WebLocalFrame* frame) { |
| 474 if (test_runner_->shouldDumpFrameLoadCallbacks()) { | 472 if (test_runner()->shouldDumpFrameLoadCallbacks()) { |
| 475 PrintFrameDescription(delegate_, frame); | 473 PrintFrameDescription(delegate_, frame); |
| 476 delegate_->PrintMessage(" - didHandleOnloadEventsForFrame\n"); | 474 delegate_->PrintMessage(" - didHandleOnloadEventsForFrame\n"); |
| 477 } | 475 } |
| 478 } | 476 } |
| 479 | 477 |
| 480 void WebFrameTestClient::didFailLoad(blink::WebLocalFrame* frame, | 478 void WebFrameTestClient::didFailLoad(blink::WebLocalFrame* frame, |
| 481 const blink::WebURLError& error, | 479 const blink::WebURLError& error, |
| 482 blink::WebHistoryCommitType commit_type) { | 480 blink::WebHistoryCommitType commit_type) { |
| 483 if (test_runner_->shouldDumpFrameLoadCallbacks()) { | 481 if (test_runner()->shouldDumpFrameLoadCallbacks()) { |
| 484 PrintFrameDescription(delegate_, frame); | 482 PrintFrameDescription(delegate_, frame); |
| 485 delegate_->PrintMessage(" - didFailLoadWithError\n"); | 483 delegate_->PrintMessage(" - didFailLoadWithError\n"); |
| 486 } | 484 } |
| 487 } | 485 } |
| 488 | 486 |
| 489 void WebFrameTestClient::didFinishLoad(blink::WebLocalFrame* frame) { | 487 void WebFrameTestClient::didFinishLoad(blink::WebLocalFrame* frame) { |
| 490 if (test_runner_->shouldDumpFrameLoadCallbacks()) { | 488 if (test_runner()->shouldDumpFrameLoadCallbacks()) { |
| 491 PrintFrameDescription(delegate_, frame); | 489 PrintFrameDescription(delegate_, frame); |
| 492 delegate_->PrintMessage(" - didFinishLoadForFrame\n"); | 490 delegate_->PrintMessage(" - didFinishLoadForFrame\n"); |
| 493 } | 491 } |
| 494 } | 492 } |
| 495 | 493 |
| 496 void WebFrameTestClient::didNavigateWithinPage( | 494 void WebFrameTestClient::didNavigateWithinPage( |
| 497 blink::WebLocalFrame* frame, | 495 blink::WebLocalFrame* frame, |
| 498 const blink::WebHistoryItem& history_item, | 496 const blink::WebHistoryItem& history_item, |
| 499 blink::WebHistoryCommitType commit_type, | 497 blink::WebHistoryCommitType commit_type, |
| 500 bool contentInitiated) { | 498 bool contentInitiated) { |
| 501 test_runner_->OnNavigationEnd(); | 499 test_runner()->OnNavigationEnd(); |
| 502 } | 500 } |
| 503 | 501 |
| 504 void WebFrameTestClient::didStartLoading(bool to_different_document) { | 502 void WebFrameTestClient::didStartLoading(bool to_different_document) { |
| 505 test_runner_->OnNavigationBegin(web_frame_test_proxy_base_->web_frame()); | 503 test_runner()->OnNavigationBegin(web_frame_test_proxy_base_->web_frame()); |
| 506 } | 504 } |
| 507 | 505 |
| 508 void WebFrameTestClient::didStopLoading() { | 506 void WebFrameTestClient::didStopLoading() { |
| 509 test_runner_->tryToClearTopLoadingFrame( | 507 test_runner()->tryToClearTopLoadingFrame( |
| 510 web_frame_test_proxy_base_->web_frame()); | 508 web_frame_test_proxy_base_->web_frame()); |
| 511 } | 509 } |
| 512 | 510 |
| 513 void WebFrameTestClient::didDetectXSS(const blink::WebURL& insecure_url, | 511 void WebFrameTestClient::didDetectXSS(const blink::WebURL& insecure_url, |
| 514 bool did_block_entire_page) { | 512 bool did_block_entire_page) { |
| 515 if (test_runner_->shouldDumpFrameLoadCallbacks()) | 513 if (test_runner()->shouldDumpFrameLoadCallbacks()) |
| 516 delegate_->PrintMessage("didDetectXSS\n"); | 514 delegate_->PrintMessage("didDetectXSS\n"); |
| 517 } | 515 } |
| 518 | 516 |
| 519 void WebFrameTestClient::didDispatchPingLoader(const blink::WebURL& url) { | 517 void WebFrameTestClient::didDispatchPingLoader(const blink::WebURL& url) { |
| 520 if (test_runner_->shouldDumpPingLoaderCallbacks()) | 518 if (test_runner()->shouldDumpPingLoaderCallbacks()) |
| 521 delegate_->PrintMessage(std::string("PingLoader dispatched to '") + | 519 delegate_->PrintMessage(std::string("PingLoader dispatched to '") + |
| 522 URLDescription(url).c_str() + "'.\n"); | 520 URLDescription(url).c_str() + "'.\n"); |
| 523 } | 521 } |
| 524 | 522 |
| 525 void WebFrameTestClient::willSendRequest(blink::WebLocalFrame* frame, | 523 void WebFrameTestClient::willSendRequest(blink::WebLocalFrame* frame, |
| 526 blink::WebURLRequest& request) { | 524 blink::WebURLRequest& request) { |
| 527 // Need to use GURL for host() and SchemeIs() | 525 // Need to use GURL for host() and SchemeIs() |
| 528 GURL url = request.url(); | 526 GURL url = request.url(); |
| 529 std::string request_url = url.possibly_invalid_spec(); | 527 std::string request_url = url.possibly_invalid_spec(); |
| 530 | 528 |
| 531 GURL main_document_url = request.firstPartyForCookies(); | 529 GURL main_document_url = request.firstPartyForCookies(); |
| 532 | 530 |
| 533 if (test_runner_->shouldDumpResourceLoadCallbacks()) { | 531 if (test_runner()->shouldDumpResourceLoadCallbacks()) { |
| 534 delegate_->PrintMessage(DescriptionSuitableForTestResult(request_url)); | 532 delegate_->PrintMessage(DescriptionSuitableForTestResult(request_url)); |
| 535 delegate_->PrintMessage(" - willSendRequest <NSURLRequest URL "); | 533 delegate_->PrintMessage(" - willSendRequest <NSURLRequest URL "); |
| 536 delegate_->PrintMessage( | 534 delegate_->PrintMessage( |
| 537 DescriptionSuitableForTestResult(request_url).c_str()); | 535 DescriptionSuitableForTestResult(request_url).c_str()); |
| 538 delegate_->PrintMessage(", main document URL "); | 536 delegate_->PrintMessage(", main document URL "); |
| 539 delegate_->PrintMessage(URLDescription(main_document_url).c_str()); | 537 delegate_->PrintMessage(URLDescription(main_document_url).c_str()); |
| 540 delegate_->PrintMessage(", http method "); | 538 delegate_->PrintMessage(", http method "); |
| 541 delegate_->PrintMessage(request.httpMethod().utf8().data()); | 539 delegate_->PrintMessage(request.httpMethod().utf8().data()); |
| 542 delegate_->PrintMessage(">\n"); | 540 delegate_->PrintMessage(">\n"); |
| 543 } | 541 } |
| 544 | 542 |
| 545 if (test_runner_->httpHeadersToClear()) { | 543 if (test_runner()->httpHeadersToClear()) { |
| 546 const std::set<std::string>* clearHeaders = | 544 const std::set<std::string>* clearHeaders = |
| 547 test_runner_->httpHeadersToClear(); | 545 test_runner()->httpHeadersToClear(); |
| 548 for (std::set<std::string>::const_iterator header = clearHeaders->begin(); | 546 for (std::set<std::string>::const_iterator header = clearHeaders->begin(); |
| 549 header != clearHeaders->end(); ++header) | 547 header != clearHeaders->end(); ++header) |
| 550 request.clearHTTPHeaderField(blink::WebString::fromUTF8(*header)); | 548 request.clearHTTPHeaderField(blink::WebString::fromUTF8(*header)); |
| 551 } | 549 } |
| 552 | 550 |
| 553 std::string host = url.host(); | 551 std::string host = url.host(); |
| 554 if (!host.empty() && | 552 if (!host.empty() && |
| 555 (url.SchemeIs(url::kHttpScheme) || url.SchemeIs(url::kHttpsScheme))) { | 553 (url.SchemeIs(url::kHttpScheme) || url.SchemeIs(url::kHttpsScheme))) { |
| 556 if (!IsLocalHost(host) && !IsTestHost(host) && | 554 if (!IsLocalHost(host) && !IsTestHost(host) && |
| 557 !HostIsUsedBySomeTestsToGenerateError(host) && | 555 !HostIsUsedBySomeTestsToGenerateError(host) && |
| 558 ((!main_document_url.SchemeIs(url::kHttpScheme) && | 556 ((!main_document_url.SchemeIs(url::kHttpScheme) && |
| 559 !main_document_url.SchemeIs(url::kHttpsScheme)) || | 557 !main_document_url.SchemeIs(url::kHttpsScheme)) || |
| 560 IsLocalHost(main_document_url.host())) && | 558 IsLocalHost(main_document_url.host())) && |
| 561 !delegate_->AllowExternalPages()) { | 559 !delegate_->AllowExternalPages()) { |
| 562 delegate_->PrintMessage(std::string("Blocked access to external URL ") + | 560 delegate_->PrintMessage(std::string("Blocked access to external URL ") + |
| 563 request_url + "\n"); | 561 request_url + "\n"); |
| 564 BlockRequest(request); | 562 BlockRequest(request); |
| 565 return; | 563 return; |
| 566 } | 564 } |
| 567 } | 565 } |
| 568 | 566 |
| 569 // Set the new substituted URL. | 567 // Set the new substituted URL. |
| 570 request.setURL(delegate_->RewriteLayoutTestsURL( | 568 request.setURL(delegate_->RewriteLayoutTestsURL( |
| 571 request.url().string().utf8(), | 569 request.url().string().utf8(), |
| 572 test_runner_->is_web_platform_tests_mode())); | 570 test_runner()->is_web_platform_tests_mode())); |
| 573 } | 571 } |
| 574 | 572 |
| 575 void WebFrameTestClient::didReceiveResponse( | 573 void WebFrameTestClient::didReceiveResponse( |
| 576 const blink::WebURLResponse& response) { | 574 const blink::WebURLResponse& response) { |
| 577 if (test_runner_->shouldDumpResourceLoadCallbacks()) { | 575 if (test_runner()->shouldDumpResourceLoadCallbacks()) { |
| 578 delegate_->PrintMessage(DescriptionSuitableForTestResult( | 576 delegate_->PrintMessage(DescriptionSuitableForTestResult( |
| 579 GURL(response.url()).possibly_invalid_spec())); | 577 GURL(response.url()).possibly_invalid_spec())); |
| 580 delegate_->PrintMessage(" - didReceiveResponse "); | 578 delegate_->PrintMessage(" - didReceiveResponse "); |
| 581 PrintResponseDescription(delegate_, response); | 579 PrintResponseDescription(delegate_, response); |
| 582 delegate_->PrintMessage("\n"); | 580 delegate_->PrintMessage("\n"); |
| 583 } | 581 } |
| 584 if (test_runner_->shouldDumpResourceResponseMIMETypes()) { | 582 if (test_runner()->shouldDumpResourceResponseMIMETypes()) { |
| 585 GURL url = response.url(); | 583 GURL url = response.url(); |
| 586 blink::WebString mime_type = response.mimeType(); | 584 blink::WebString mime_type = response.mimeType(); |
| 587 delegate_->PrintMessage(url.ExtractFileName()); | 585 delegate_->PrintMessage(url.ExtractFileName()); |
| 588 delegate_->PrintMessage(" has MIME type "); | 586 delegate_->PrintMessage(" has MIME type "); |
| 589 // Simulate NSURLResponse's mapping of empty/unknown MIME types to | 587 // Simulate NSURLResponse's mapping of empty/unknown MIME types to |
| 590 // application/octet-stream | 588 // application/octet-stream |
| 591 delegate_->PrintMessage(mime_type.isEmpty() ? "application/octet-stream" | 589 delegate_->PrintMessage(mime_type.isEmpty() ? "application/octet-stream" |
| 592 : mime_type.utf8().data()); | 590 : mime_type.utf8().data()); |
| 593 delegate_->PrintMessage("\n"); | 591 delegate_->PrintMessage("\n"); |
| 594 } | 592 } |
| 595 } | 593 } |
| 596 | 594 |
| 597 void WebFrameTestClient::didAddMessageToConsole( | 595 void WebFrameTestClient::didAddMessageToConsole( |
| 598 const blink::WebConsoleMessage& message, | 596 const blink::WebConsoleMessage& message, |
| 599 const blink::WebString& source_name, | 597 const blink::WebString& source_name, |
| 600 unsigned source_line, | 598 unsigned source_line, |
| 601 const blink::WebString& stack_trace) { | 599 const blink::WebString& stack_trace) { |
| 602 if (!test_runner_->ShouldDumpConsoleMessages()) | 600 if (!test_runner()->ShouldDumpConsoleMessages()) |
| 603 return; | 601 return; |
| 604 std::string level; | 602 std::string level; |
| 605 switch (message.level) { | 603 switch (message.level) { |
| 606 case blink::WebConsoleMessage::LevelDebug: | 604 case blink::WebConsoleMessage::LevelDebug: |
| 607 level = "DEBUG"; | 605 level = "DEBUG"; |
| 608 break; | 606 break; |
| 609 case blink::WebConsoleMessage::LevelLog: | 607 case blink::WebConsoleMessage::LevelLog: |
| 610 level = "MESSAGE"; | 608 level = "MESSAGE"; |
| 611 break; | 609 break; |
| 612 case blink::WebConsoleMessage::LevelInfo: | 610 case blink::WebConsoleMessage::LevelInfo: |
| (...skipping 20 matching lines...) Expand all Loading... |
| 633 new_message = new_message.substr(0, file_protocol) + | 631 new_message = new_message.substr(0, file_protocol) + |
| 634 URLSuitableForTestResult(new_message.substr(file_protocol)); | 632 URLSuitableForTestResult(new_message.substr(file_protocol)); |
| 635 } | 633 } |
| 636 delegate_->PrintMessage(new_message); | 634 delegate_->PrintMessage(new_message); |
| 637 } | 635 } |
| 638 delegate_->PrintMessage(std::string("\n")); | 636 delegate_->PrintMessage(std::string("\n")); |
| 639 } | 637 } |
| 640 | 638 |
| 641 blink::WebNavigationPolicy WebFrameTestClient::decidePolicyForNavigation( | 639 blink::WebNavigationPolicy WebFrameTestClient::decidePolicyForNavigation( |
| 642 const blink::WebFrameClient::NavigationPolicyInfo& info) { | 640 const blink::WebFrameClient::NavigationPolicyInfo& info) { |
| 643 if (test_runner_->shouldDumpNavigationPolicy()) { | 641 if (test_runner()->shouldDumpNavigationPolicy()) { |
| 644 delegate_->PrintMessage("Default policy for navigation to '" + | 642 delegate_->PrintMessage("Default policy for navigation to '" + |
| 645 URLDescription(info.urlRequest.url()) + "' is '" + | 643 URLDescription(info.urlRequest.url()) + "' is '" + |
| 646 WebNavigationPolicyToString(info.defaultPolicy) + | 644 WebNavigationPolicyToString(info.defaultPolicy) + |
| 647 "'\n"); | 645 "'\n"); |
| 648 } | 646 } |
| 649 | 647 |
| 650 blink::WebNavigationPolicy result; | 648 blink::WebNavigationPolicy result; |
| 651 if (!test_runner_->policyDelegateEnabled()) | 649 if (!test_runner()->policyDelegateEnabled()) |
| 652 return info.defaultPolicy; | 650 return info.defaultPolicy; |
| 653 | 651 |
| 654 delegate_->PrintMessage( | 652 delegate_->PrintMessage( |
| 655 std::string("Policy delegate: attempt to load ") + | 653 std::string("Policy delegate: attempt to load ") + |
| 656 URLDescription(info.urlRequest.url()) + " with navigation type '" + | 654 URLDescription(info.urlRequest.url()) + " with navigation type '" + |
| 657 WebNavigationTypeToString(info.navigationType) + "'\n"); | 655 WebNavigationTypeToString(info.navigationType) + "'\n"); |
| 658 if (test_runner_->policyDelegateIsPermissive()) | 656 if (test_runner()->policyDelegateIsPermissive()) |
| 659 result = blink::WebNavigationPolicyCurrentTab; | 657 result = blink::WebNavigationPolicyCurrentTab; |
| 660 else | 658 else |
| 661 result = blink::WebNavigationPolicyIgnore; | 659 result = blink::WebNavigationPolicyIgnore; |
| 662 | 660 |
| 663 if (test_runner_->policyDelegateShouldNotifyDone()) { | 661 if (test_runner()->policyDelegateShouldNotifyDone()) { |
| 664 test_runner_->policyDelegateDone(); | 662 test_runner()->policyDelegateDone(); |
| 665 result = blink::WebNavigationPolicyIgnore; | 663 result = blink::WebNavigationPolicyIgnore; |
| 666 } | 664 } |
| 667 | 665 |
| 668 return result; | 666 return result; |
| 669 } | 667 } |
| 670 | 668 |
| 671 void WebFrameTestClient::checkIfAudioSinkExistsAndIsAuthorized( | 669 void WebFrameTestClient::checkIfAudioSinkExistsAndIsAuthorized( |
| 672 const blink::WebString& sink_id, | 670 const blink::WebString& sink_id, |
| 673 const blink::WebSecurityOrigin& security_origin, | 671 const blink::WebSecurityOrigin& security_origin, |
| 674 blink::WebSetSinkIdCallbacks* web_callbacks) { | 672 blink::WebSetSinkIdCallbacks* web_callbacks) { |
| (...skipping 15 matching lines...) Expand all Loading... |
| 690 bool WebFrameTestClient::runFileChooser( | 688 bool WebFrameTestClient::runFileChooser( |
| 691 const blink::WebFileChooserParams& params, | 689 const blink::WebFileChooserParams& params, |
| 692 blink::WebFileChooserCompletion* completion) { | 690 blink::WebFileChooserCompletion* completion) { |
| 693 delegate_->PrintMessage("Mock: Opening a file chooser.\n"); | 691 delegate_->PrintMessage("Mock: Opening a file chooser.\n"); |
| 694 // FIXME: Add ability to set file names to a file upload control. | 692 // FIXME: Add ability to set file names to a file upload control. |
| 695 return false; | 693 return false; |
| 696 } | 694 } |
| 697 | 695 |
| 698 blink::WebEffectiveConnectionType | 696 blink::WebEffectiveConnectionType |
| 699 WebFrameTestClient::getEffectiveConnectionType() { | 697 WebFrameTestClient::getEffectiveConnectionType() { |
| 700 return test_runner_->effective_connection_type(); | 698 return test_runner()->effective_connection_type(); |
| 699 } |
| 700 |
| 701 TestRunner* WebFrameTestClient::test_runner() { |
| 702 return web_view_test_proxy_base_->test_interfaces()->GetTestRunner(); |
| 701 } | 703 } |
| 702 | 704 |
| 703 } // namespace test_runner | 705 } // namespace test_runner |
| OLD | NEW |