| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 351 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 362 m_v8Session(v8Session), | 362 m_v8Session(v8Session), |
| 363 m_client(client), | 363 m_client(client), |
| 364 m_lastScriptIdentifier(0), | 364 m_lastScriptIdentifier(0), |
| 365 m_enabled(false), | 365 m_enabled(false), |
| 366 m_reloading(false), | 366 m_reloading(false), |
| 367 m_inspectorResourceContentLoader(resourceContentLoader), | 367 m_inspectorResourceContentLoader(resourceContentLoader), |
| 368 m_resourceContentLoaderClientId(resourceContentLoader->createClientId()) { | 368 m_resourceContentLoaderClientId(resourceContentLoader->createClientId()) { |
| 369 } | 369 } |
| 370 | 370 |
| 371 void InspectorPageAgent::restore() { | 371 void InspectorPageAgent::restore() { |
| 372 ErrorString error; | |
| 373 if (m_state->booleanProperty(PageAgentState::pageAgentEnabled, false)) | 372 if (m_state->booleanProperty(PageAgentState::pageAgentEnabled, false)) |
| 374 enable(&error); | 373 enable(); |
| 375 setBlockedEventsWarningThreshold( | 374 setBlockedEventsWarningThreshold(m_state->doubleProperty( |
| 376 &error, m_state->doubleProperty( | 375 PageAgentState::blockedEventsWarningThreshold, 0.0)); |
| 377 PageAgentState::blockedEventsWarningThreshold, 0.0)); | |
| 378 if (m_client) { | 376 if (m_client) { |
| 379 String overlayMessage; | 377 String overlayMessage; |
| 380 m_state->getString(PageAgentState::overlayMessage, &overlayMessage); | 378 m_state->getString(PageAgentState::overlayMessage, &overlayMessage); |
| 381 m_client->configureOverlay( | 379 m_client->configureOverlay( |
| 382 m_state->booleanProperty(PageAgentState::overlaySuspended, false), | 380 m_state->booleanProperty(PageAgentState::overlaySuspended, false), |
| 383 overlayMessage); | 381 overlayMessage); |
| 384 } | 382 } |
| 385 } | 383 } |
| 386 | 384 |
| 387 void InspectorPageAgent::enable(ErrorString*) { | 385 Response InspectorPageAgent::enable() { |
| 388 m_enabled = true; | 386 m_enabled = true; |
| 389 m_state->setBoolean(PageAgentState::pageAgentEnabled, true); | 387 m_state->setBoolean(PageAgentState::pageAgentEnabled, true); |
| 390 m_instrumentingAgents->addInspectorPageAgent(this); | 388 m_instrumentingAgents->addInspectorPageAgent(this); |
| 389 return Response::OK(); |
| 391 } | 390 } |
| 392 | 391 |
| 393 void InspectorPageAgent::disable(ErrorString*) { | 392 Response InspectorPageAgent::disable() { |
| 394 m_enabled = false; | 393 m_enabled = false; |
| 395 m_state->setBoolean(PageAgentState::pageAgentEnabled, false); | 394 m_state->setBoolean(PageAgentState::pageAgentEnabled, false); |
| 396 m_state->remove(PageAgentState::pageAgentScriptsToEvaluateOnLoad); | 395 m_state->remove(PageAgentState::pageAgentScriptsToEvaluateOnLoad); |
| 397 m_scriptToEvaluateOnLoadOnce = String(); | 396 m_scriptToEvaluateOnLoadOnce = String(); |
| 398 m_pendingScriptToEvaluateOnLoadOnce = String(); | 397 m_pendingScriptToEvaluateOnLoadOnce = String(); |
| 399 m_instrumentingAgents->removeInspectorPageAgent(this); | 398 m_instrumentingAgents->removeInspectorPageAgent(this); |
| 400 m_inspectorResourceContentLoader->cancel(m_resourceContentLoaderClientId); | 399 m_inspectorResourceContentLoader->cancel(m_resourceContentLoaderClientId); |
| 401 | 400 |
| 402 stopScreencast(0); | 401 stopScreencast(); |
| 403 configureOverlay(nullptr, false, String()); | 402 configureOverlay(false, String()); |
| 404 | 403 |
| 405 finishReload(); | 404 finishReload(); |
| 405 return Response::OK(); |
| 406 } | 406 } |
| 407 | 407 |
| 408 void InspectorPageAgent::addScriptToEvaluateOnLoad(ErrorString*, | 408 Response InspectorPageAgent::addScriptToEvaluateOnLoad(const String& source, |
| 409 const String& source, | 409 String* identifier) { |
| 410 String* identifier) { | |
| 411 protocol::DictionaryValue* scripts = | 410 protocol::DictionaryValue* scripts = |
| 412 m_state->getObject(PageAgentState::pageAgentScriptsToEvaluateOnLoad); | 411 m_state->getObject(PageAgentState::pageAgentScriptsToEvaluateOnLoad); |
| 413 if (!scripts) { | 412 if (!scripts) { |
| 414 std::unique_ptr<protocol::DictionaryValue> newScripts = | 413 std::unique_ptr<protocol::DictionaryValue> newScripts = |
| 415 protocol::DictionaryValue::create(); | 414 protocol::DictionaryValue::create(); |
| 416 scripts = newScripts.get(); | 415 scripts = newScripts.get(); |
| 417 m_state->setObject(PageAgentState::pageAgentScriptsToEvaluateOnLoad, | 416 m_state->setObject(PageAgentState::pageAgentScriptsToEvaluateOnLoad, |
| 418 std::move(newScripts)); | 417 std::move(newScripts)); |
| 419 } | 418 } |
| 420 // Assure we don't override existing ids -- m_lastScriptIdentifier could get | 419 // Assure we don't override existing ids -- m_lastScriptIdentifier could get |
| 421 // out of sync WRT actual scripts once we restored the scripts from the cookie | 420 // out of sync WRT actual scripts once we restored the scripts from the cookie |
| 422 // during navigation. | 421 // during navigation. |
| 423 do { | 422 do { |
| 424 *identifier = String::number(++m_lastScriptIdentifier); | 423 *identifier = String::number(++m_lastScriptIdentifier); |
| 425 } while (scripts->get(*identifier)); | 424 } while (scripts->get(*identifier)); |
| 426 scripts->setString(*identifier, source); | 425 scripts->setString(*identifier, source); |
| 426 return Response::OK(); |
| 427 } | 427 } |
| 428 | 428 |
| 429 void InspectorPageAgent::removeScriptToEvaluateOnLoad( | 429 Response InspectorPageAgent::removeScriptToEvaluateOnLoad( |
| 430 ErrorString* error, | |
| 431 const String& identifier) { | 430 const String& identifier) { |
| 432 protocol::DictionaryValue* scripts = | 431 protocol::DictionaryValue* scripts = |
| 433 m_state->getObject(PageAgentState::pageAgentScriptsToEvaluateOnLoad); | 432 m_state->getObject(PageAgentState::pageAgentScriptsToEvaluateOnLoad); |
| 434 if (!scripts || !scripts->get(identifier)) { | 433 if (!scripts || !scripts->get(identifier)) |
| 435 *error = "Script not found"; | 434 return Response::Error("Script not found"); |
| 436 return; | |
| 437 } | |
| 438 scripts->remove(identifier); | 435 scripts->remove(identifier); |
| 436 return Response::OK(); |
| 439 } | 437 } |
| 440 | 438 |
| 441 void InspectorPageAgent::setAutoAttachToCreatedPages(ErrorString*, | 439 Response InspectorPageAgent::setAutoAttachToCreatedPages(bool autoAttach) { |
| 442 bool autoAttach) { | |
| 443 m_state->setBoolean(PageAgentState::autoAttachToCreatedPages, autoAttach); | 440 m_state->setBoolean(PageAgentState::autoAttachToCreatedPages, autoAttach); |
| 441 return Response::OK(); |
| 444 } | 442 } |
| 445 | 443 |
| 446 void InspectorPageAgent::reload( | 444 Response InspectorPageAgent::reload( |
| 447 ErrorString*, | 445 Maybe<bool> optionalBypassCache, |
| 448 const Maybe<bool>& optionalBypassCache, | 446 Maybe<String> optionalScriptToEvaluateOnLoad) { |
| 449 const Maybe<String>& optionalScriptToEvaluateOnLoad) { | |
| 450 m_pendingScriptToEvaluateOnLoadOnce = | 447 m_pendingScriptToEvaluateOnLoadOnce = |
| 451 optionalScriptToEvaluateOnLoad.fromMaybe(""); | 448 optionalScriptToEvaluateOnLoad.fromMaybe(""); |
| 452 m_v8Session->setSkipAllPauses(true); | 449 m_v8Session->setSkipAllPauses(true); |
| 453 m_reloading = true; | 450 m_reloading = true; |
| 454 FrameLoadType reloadType = FrameLoadTypeReload; | 451 FrameLoadType reloadType = FrameLoadTypeReload; |
| 455 if (optionalBypassCache.fromMaybe(false)) | 452 if (optionalBypassCache.fromMaybe(false)) |
| 456 reloadType = FrameLoadTypeReloadBypassingCache; | 453 reloadType = FrameLoadTypeReloadBypassingCache; |
| 457 else if (RuntimeEnabledFeatures:: | 454 else if (RuntimeEnabledFeatures:: |
| 458 reloadwithoutSubResourceCacheRevalidationEnabled()) | 455 reloadwithoutSubResourceCacheRevalidationEnabled()) |
| 459 reloadType = FrameLoadTypeReloadMainResource; | 456 reloadType = FrameLoadTypeReloadMainResource; |
| 460 m_inspectedFrames->root()->reload(reloadType, | 457 m_inspectedFrames->root()->reload(reloadType, |
| 461 ClientRedirectPolicy::NotClientRedirect); | 458 ClientRedirectPolicy::NotClientRedirect); |
| 459 return Response::OK(); |
| 462 } | 460 } |
| 463 | 461 |
| 464 void InspectorPageAgent::navigate(ErrorString*, | 462 Response InspectorPageAgent::navigate(const String& url, String* outFrameId) { |
| 465 const String& url, | |
| 466 String* outFrameId) { | |
| 467 *outFrameId = frameId(m_inspectedFrames->root()); | 463 *outFrameId = frameId(m_inspectedFrames->root()); |
| 464 return Response::OK(); |
| 468 } | 465 } |
| 469 | 466 |
| 470 static void cachedResourcesForDocument(Document* document, | 467 static void cachedResourcesForDocument(Document* document, |
| 471 HeapVector<Member<Resource>>& result, | 468 HeapVector<Member<Resource>>& result, |
| 472 bool skipXHRs) { | 469 bool skipXHRs) { |
| 473 const ResourceFetcher::DocumentResourceMap& allResources = | 470 const ResourceFetcher::DocumentResourceMap& allResources = |
| 474 document->fetcher()->allResources(); | 471 document->fetcher()->allResources(); |
| 475 for (const auto& resource : allResources) { | 472 for (const auto& resource : allResources) { |
| 476 Resource* cachedResource = resource.value.get(); | 473 Resource* cachedResource = resource.value.get(); |
| 477 if (!cachedResource) | 474 if (!cachedResource) |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 510 HeapVector<Member<Document>> loaders = | 507 HeapVector<Member<Document>> loaders = |
| 511 InspectorPageAgent::importsForFrame(frame); | 508 InspectorPageAgent::importsForFrame(frame); |
| 512 | 509 |
| 513 cachedResourcesForDocument(rootDocument, result, skipXHRs); | 510 cachedResourcesForDocument(rootDocument, result, skipXHRs); |
| 514 for (size_t i = 0; i < loaders.size(); ++i) | 511 for (size_t i = 0; i < loaders.size(); ++i) |
| 515 cachedResourcesForDocument(loaders[i], result, skipXHRs); | 512 cachedResourcesForDocument(loaders[i], result, skipXHRs); |
| 516 | 513 |
| 517 return result; | 514 return result; |
| 518 } | 515 } |
| 519 | 516 |
| 520 void InspectorPageAgent::getResourceTree( | 517 Response InspectorPageAgent::getResourceTree( |
| 521 ErrorString*, | |
| 522 std::unique_ptr<protocol::Page::FrameResourceTree>* object) { | 518 std::unique_ptr<protocol::Page::FrameResourceTree>* object) { |
| 523 *object = buildObjectForFrameTree(m_inspectedFrames->root()); | 519 *object = buildObjectForFrameTree(m_inspectedFrames->root()); |
| 520 return Response::OK(); |
| 524 } | 521 } |
| 525 | 522 |
| 526 void InspectorPageAgent::finishReload() { | 523 void InspectorPageAgent::finishReload() { |
| 527 if (!m_reloading) | 524 if (!m_reloading) |
| 528 return; | 525 return; |
| 529 m_reloading = false; | 526 m_reloading = false; |
| 530 m_v8Session->setSkipAllPauses(false); | 527 m_v8Session->setSkipAllPauses(false); |
| 531 } | 528 } |
| 532 | 529 |
| 533 void InspectorPageAgent::getResourceContentAfterResourcesContentLoaded( | 530 void InspectorPageAgent::getResourceContentAfterResourcesContentLoaded( |
| 534 const String& frameId, | 531 const String& frameId, |
| 535 const String& url, | 532 const String& url, |
| 536 std::unique_ptr<GetResourceContentCallback> callback) { | 533 std::unique_ptr<GetResourceContentCallback> callback) { |
| 537 LocalFrame* frame = IdentifiersFactory::frameById(m_inspectedFrames, frameId); | 534 LocalFrame* frame = IdentifiersFactory::frameById(m_inspectedFrames, frameId); |
| 538 if (!frame) { | 535 if (!frame) { |
| 539 callback->sendFailure("No frame for given id found"); | 536 callback->sendFailure(Response::Error("No frame for given id found")); |
| 540 return; | 537 return; |
| 541 } | 538 } |
| 542 String content; | 539 String content; |
| 543 bool base64Encoded; | 540 bool base64Encoded; |
| 544 if (InspectorPageAgent::cachedResourceContent( | 541 if (InspectorPageAgent::cachedResourceContent( |
| 545 InspectorPageAgent::cachedResource(frame, KURL(ParsedURLString, url)), | 542 InspectorPageAgent::cachedResource(frame, KURL(ParsedURLString, url)), |
| 546 &content, &base64Encoded)) | 543 &content, &base64Encoded)) |
| 547 callback->sendSuccess(content, base64Encoded); | 544 callback->sendSuccess(content, base64Encoded); |
| 548 else | 545 else |
| 549 callback->sendFailure("No resource with given URL found"); | 546 callback->sendFailure(Response::Error("No resource with given URL found")); |
| 550 } | 547 } |
| 551 | 548 |
| 552 void InspectorPageAgent::getResourceContent( | 549 void InspectorPageAgent::getResourceContent( |
| 553 const String& frameId, | 550 const String& frameId, |
| 554 const String& url, | 551 const String& url, |
| 555 std::unique_ptr<GetResourceContentCallback> callback) { | 552 std::unique_ptr<GetResourceContentCallback> callback) { |
| 556 if (!m_enabled) { | 553 if (!m_enabled) { |
| 557 callback->sendFailure("Agent is not enabled."); | 554 callback->sendFailure(Response::Error("Agent is not enabled.")); |
| 558 return; | 555 return; |
| 559 } | 556 } |
| 560 m_inspectorResourceContentLoader->ensureResourcesContentLoaded( | 557 m_inspectorResourceContentLoader->ensureResourcesContentLoaded( |
| 561 m_resourceContentLoaderClientId, | 558 m_resourceContentLoaderClientId, |
| 562 WTF::bind( | 559 WTF::bind( |
| 563 &InspectorPageAgent::getResourceContentAfterResourcesContentLoaded, | 560 &InspectorPageAgent::getResourceContentAfterResourcesContentLoaded, |
| 564 wrapPersistent(this), frameId, url, passed(std::move(callback)))); | 561 wrapPersistent(this), frameId, url, passed(std::move(callback)))); |
| 565 } | 562 } |
| 566 | 563 |
| 567 void InspectorPageAgent::searchContentAfterResourcesContentLoaded( | 564 void InspectorPageAgent::searchContentAfterResourcesContentLoaded( |
| 568 const String& frameId, | 565 const String& frameId, |
| 569 const String& url, | 566 const String& url, |
| 570 const String& query, | 567 const String& query, |
| 571 bool caseSensitive, | 568 bool caseSensitive, |
| 572 bool isRegex, | 569 bool isRegex, |
| 573 std::unique_ptr<SearchInResourceCallback> callback) { | 570 std::unique_ptr<SearchInResourceCallback> callback) { |
| 574 LocalFrame* frame = IdentifiersFactory::frameById(m_inspectedFrames, frameId); | 571 LocalFrame* frame = IdentifiersFactory::frameById(m_inspectedFrames, frameId); |
| 575 if (!frame) { | 572 if (!frame) { |
| 576 callback->sendFailure("No frame for given id found"); | 573 callback->sendFailure(Response::Error("No frame for given id found")); |
| 577 return; | 574 return; |
| 578 } | 575 } |
| 579 String content; | 576 String content; |
| 580 bool base64Encoded; | 577 bool base64Encoded; |
| 581 if (!InspectorPageAgent::cachedResourceContent( | 578 if (!InspectorPageAgent::cachedResourceContent( |
| 582 InspectorPageAgent::cachedResource(frame, KURL(ParsedURLString, url)), | 579 InspectorPageAgent::cachedResource(frame, KURL(ParsedURLString, url)), |
| 583 &content, &base64Encoded)) { | 580 &content, &base64Encoded)) { |
| 584 callback->sendFailure("No resource with given URL found"); | 581 callback->sendFailure(Response::Error("No resource with given URL found")); |
| 585 return; | 582 return; |
| 586 } | 583 } |
| 587 | 584 |
| 588 auto matches = m_v8Session->searchInTextByLines( | 585 auto matches = m_v8Session->searchInTextByLines( |
| 589 toV8InspectorStringView(content), toV8InspectorStringView(query), | 586 toV8InspectorStringView(content), toV8InspectorStringView(query), |
| 590 caseSensitive, isRegex); | 587 caseSensitive, isRegex); |
| 591 auto results = protocol::Array< | 588 auto results = protocol::Array< |
| 592 v8_inspector::protocol::Debugger::API::SearchMatch>::create(); | 589 v8_inspector::protocol::Debugger::API::SearchMatch>::create(); |
| 593 for (size_t i = 0; i < matches.size(); ++i) | 590 for (size_t i = 0; i < matches.size(); ++i) |
| 594 results->addItem(std::move(matches[i])); | 591 results->addItem(std::move(matches[i])); |
| 595 callback->sendSuccess(std::move(results)); | 592 callback->sendSuccess(std::move(results)); |
| 596 } | 593 } |
| 597 | 594 |
| 598 void InspectorPageAgent::searchInResource( | 595 void InspectorPageAgent::searchInResource( |
| 599 const String& frameId, | 596 const String& frameId, |
| 600 const String& url, | 597 const String& url, |
| 601 const String& query, | 598 const String& query, |
| 602 const Maybe<bool>& optionalCaseSensitive, | 599 Maybe<bool> optionalCaseSensitive, |
| 603 const Maybe<bool>& optionalIsRegex, | 600 Maybe<bool> optionalIsRegex, |
| 604 std::unique_ptr<SearchInResourceCallback> callback) { | 601 std::unique_ptr<SearchInResourceCallback> callback) { |
| 605 if (!m_enabled) { | 602 if (!m_enabled) { |
| 606 callback->sendFailure("Agent is not enabled."); | 603 callback->sendFailure(Response::Error("Agent is not enabled.")); |
| 607 return; | 604 return; |
| 608 } | 605 } |
| 609 m_inspectorResourceContentLoader->ensureResourcesContentLoaded( | 606 m_inspectorResourceContentLoader->ensureResourcesContentLoaded( |
| 610 m_resourceContentLoaderClientId, | 607 m_resourceContentLoaderClientId, |
| 611 WTF::bind(&InspectorPageAgent::searchContentAfterResourcesContentLoaded, | 608 WTF::bind(&InspectorPageAgent::searchContentAfterResourcesContentLoaded, |
| 612 wrapPersistent(this), frameId, url, query, | 609 wrapPersistent(this), frameId, url, query, |
| 613 optionalCaseSensitive.fromMaybe(false), | 610 optionalCaseSensitive.fromMaybe(false), |
| 614 optionalIsRegex.fromMaybe(false), passed(std::move(callback)))); | 611 optionalIsRegex.fromMaybe(false), passed(std::move(callback)))); |
| 615 } | 612 } |
| 616 | 613 |
| 617 void InspectorPageAgent::setDocumentContent(ErrorString* errorString, | 614 Response InspectorPageAgent::setDocumentContent(const String& frameId, |
| 618 const String& frameId, | 615 const String& html) { |
| 619 const String& html) { | |
| 620 LocalFrame* frame = IdentifiersFactory::frameById(m_inspectedFrames, frameId); | 616 LocalFrame* frame = IdentifiersFactory::frameById(m_inspectedFrames, frameId); |
| 621 if (!frame) { | 617 if (!frame) |
| 622 *errorString = "No frame for given id found"; | 618 return Response::Error("No frame for given id found"); |
| 623 return; | |
| 624 } | |
| 625 | 619 |
| 626 Document* document = frame->document(); | 620 Document* document = frame->document(); |
| 627 if (!document) { | 621 if (!document) |
| 628 *errorString = "No Document instance to set HTML for"; | 622 return Response::Error("No Document instance to set HTML for"); |
| 629 return; | |
| 630 } | |
| 631 DOMPatchSupport::patchDocument(*document, html); | 623 DOMPatchSupport::patchDocument(*document, html); |
| 624 return Response::OK(); |
| 632 } | 625 } |
| 633 | 626 |
| 634 void InspectorPageAgent::didClearDocumentOfWindowObject(LocalFrame* frame) { | 627 void InspectorPageAgent::didClearDocumentOfWindowObject(LocalFrame* frame) { |
| 635 if (!frontend()) | 628 if (!frontend()) |
| 636 return; | 629 return; |
| 637 | 630 |
| 638 protocol::DictionaryValue* scripts = | 631 protocol::DictionaryValue* scripts = |
| 639 m_state->getObject(PageAgentState::pageAgentScriptsToEvaluateOnLoad); | 632 m_state->getObject(PageAgentState::pageAgentScriptsToEvaluateOnLoad); |
| 640 if (scripts) { | 633 if (scripts) { |
| 641 for (size_t i = 0; i < scripts->size(); ++i) { | 634 for (size_t i = 0; i < scripts->size(); ++i) { |
| (...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 819 continue; | 812 continue; |
| 820 if (!childrenArray) | 813 if (!childrenArray) |
| 821 childrenArray = | 814 childrenArray = |
| 822 protocol::Array<protocol::Page::FrameResourceTree>::create(); | 815 protocol::Array<protocol::Page::FrameResourceTree>::create(); |
| 823 childrenArray->addItem(buildObjectForFrameTree(toLocalFrame(child))); | 816 childrenArray->addItem(buildObjectForFrameTree(toLocalFrame(child))); |
| 824 } | 817 } |
| 825 result->setChildFrames(std::move(childrenArray)); | 818 result->setChildFrames(std::move(childrenArray)); |
| 826 return result; | 819 return result; |
| 827 } | 820 } |
| 828 | 821 |
| 829 void InspectorPageAgent::startScreencast(ErrorString*, | 822 Response InspectorPageAgent::startScreencast(Maybe<String> format, |
| 830 const Maybe<String>& format, | 823 Maybe<int> quality, |
| 831 const Maybe<int>& quality, | 824 Maybe<int> maxWidth, |
| 832 const Maybe<int>& maxWidth, | 825 Maybe<int> maxHeight, |
| 833 const Maybe<int>& maxHeight, | 826 Maybe<int> everyNthFrame) { |
| 834 const Maybe<int>& everyNthFrame) { | |
| 835 m_state->setBoolean(PageAgentState::screencastEnabled, true); | 827 m_state->setBoolean(PageAgentState::screencastEnabled, true); |
| 828 return Response::OK(); |
| 836 } | 829 } |
| 837 | 830 |
| 838 void InspectorPageAgent::stopScreencast(ErrorString*) { | 831 Response InspectorPageAgent::stopScreencast() { |
| 839 m_state->setBoolean(PageAgentState::screencastEnabled, false); | 832 m_state->setBoolean(PageAgentState::screencastEnabled, false); |
| 833 return Response::OK(); |
| 840 } | 834 } |
| 841 | 835 |
| 842 void InspectorPageAgent::configureOverlay(ErrorString*, | 836 Response InspectorPageAgent::configureOverlay(Maybe<bool> suspended, |
| 843 const Maybe<bool>& suspended, | 837 Maybe<String> message) { |
| 844 const Maybe<String>& message) { | |
| 845 m_state->setBoolean(PageAgentState::overlaySuspended, | 838 m_state->setBoolean(PageAgentState::overlaySuspended, |
| 846 suspended.fromMaybe(false)); | 839 suspended.fromMaybe(false)); |
| 847 m_state->setString(PageAgentState::overlaySuspended, | 840 m_state->setString(PageAgentState::overlaySuspended, |
| 848 message.fromMaybe(String())); | 841 message.fromMaybe(String())); |
| 849 if (m_client) | 842 if (m_client) |
| 850 m_client->configureOverlay(suspended.fromMaybe(false), | 843 m_client->configureOverlay(suspended.fromMaybe(false), |
| 851 message.fromMaybe(String())); | 844 message.fromMaybe(String())); |
| 845 return Response::OK(); |
| 852 } | 846 } |
| 853 | 847 |
| 854 void InspectorPageAgent::setBlockedEventsWarningThreshold(ErrorString*, | 848 Response InspectorPageAgent::setBlockedEventsWarningThreshold( |
| 855 double threshold) { | 849 double threshold) { |
| 856 m_state->setDouble(PageAgentState::blockedEventsWarningThreshold, threshold); | 850 m_state->setDouble(PageAgentState::blockedEventsWarningThreshold, threshold); |
| 857 FrameHost* host = m_inspectedFrames->root()->host(); | 851 FrameHost* host = m_inspectedFrames->root()->host(); |
| 858 if (!host) | 852 if (!host) |
| 859 return; | 853 return Response::Error("Host not found"); |
| 860 host->settings().setBlockedMainThreadEventsWarningThreshold(threshold); | 854 host->settings().setBlockedMainThreadEventsWarningThreshold(threshold); |
| 855 return Response::OK(); |
| 861 } | 856 } |
| 862 | 857 |
| 863 void InspectorPageAgent::getLayoutMetrics( | 858 Response InspectorPageAgent::getLayoutMetrics( |
| 864 ErrorString*, | |
| 865 std::unique_ptr<protocol::Page::LayoutViewport>* outLayoutViewport, | 859 std::unique_ptr<protocol::Page::LayoutViewport>* outLayoutViewport, |
| 866 std::unique_ptr<protocol::Page::VisualViewport>* outVisualViewport) { | 860 std::unique_ptr<protocol::Page::VisualViewport>* outVisualViewport) { |
| 867 LocalFrame* mainFrame = m_inspectedFrames->root(); | 861 LocalFrame* mainFrame = m_inspectedFrames->root(); |
| 868 VisualViewport& visualViewport = mainFrame->host()->visualViewport(); | 862 VisualViewport& visualViewport = mainFrame->host()->visualViewport(); |
| 869 | 863 |
| 870 mainFrame->document()->updateStyleAndLayoutIgnorePendingStylesheets(); | 864 mainFrame->document()->updateStyleAndLayoutIgnorePendingStylesheets(); |
| 871 | 865 |
| 872 IntRect visibleContents = mainFrame->view()->visibleContentRect(); | 866 IntRect visibleContents = mainFrame->view()->visibleContentRect(); |
| 873 *outLayoutViewport = protocol::Page::LayoutViewport::create() | 867 *outLayoutViewport = protocol::Page::LayoutViewport::create() |
| 874 .setPageX(visibleContents.x()) | 868 .setPageX(visibleContents.x()) |
| (...skipping 13 matching lines...) Expand all Loading... |
| 888 *outVisualViewport = | 882 *outVisualViewport = |
| 889 protocol::Page::VisualViewport::create() | 883 protocol::Page::VisualViewport::create() |
| 890 .setOffsetX(adjustScrollForAbsoluteZoom(visibleRect.x(), pageZoom)) | 884 .setOffsetX(adjustScrollForAbsoluteZoom(visibleRect.x(), pageZoom)) |
| 891 .setOffsetY(adjustScrollForAbsoluteZoom(visibleRect.y(), pageZoom)) | 885 .setOffsetY(adjustScrollForAbsoluteZoom(visibleRect.y(), pageZoom)) |
| 892 .setPageX(adjustScrollForAbsoluteZoom(pageOffset.width(), pageZoom)) | 886 .setPageX(adjustScrollForAbsoluteZoom(pageOffset.width(), pageZoom)) |
| 893 .setPageY(adjustScrollForAbsoluteZoom(pageOffset.height(), pageZoom)) | 887 .setPageY(adjustScrollForAbsoluteZoom(pageOffset.height(), pageZoom)) |
| 894 .setClientWidth(visibleRect.width() - scrollbarWidth) | 888 .setClientWidth(visibleRect.width() - scrollbarWidth) |
| 895 .setClientHeight(visibleRect.height() - scrollbarHeight) | 889 .setClientHeight(visibleRect.height() - scrollbarHeight) |
| 896 .setScale(scale) | 890 .setScale(scale) |
| 897 .build(); | 891 .build(); |
| 892 return Response::OK(); |
| 898 } | 893 } |
| 899 | 894 |
| 900 DEFINE_TRACE(InspectorPageAgent) { | 895 DEFINE_TRACE(InspectorPageAgent) { |
| 901 visitor->trace(m_inspectedFrames); | 896 visitor->trace(m_inspectedFrames); |
| 902 visitor->trace(m_inspectorResourceContentLoader); | 897 visitor->trace(m_inspectorResourceContentLoader); |
| 903 InspectorBaseAgent::trace(visitor); | 898 InspectorBaseAgent::trace(visitor); |
| 904 } | 899 } |
| 905 | 900 |
| 906 } // namespace blink | 901 } // namespace blink |
| OLD | NEW |