| Index: third_party/WebKit/Source/core/testing/Internals.cpp
|
| diff --git a/third_party/WebKit/Source/core/testing/Internals.cpp b/third_party/WebKit/Source/core/testing/Internals.cpp
|
| index 694167995e2ed5a69666f5f0753c577fd6115ede..33b5df0e89dd0152b0f46cfba0eb594ae0df6aa9 100644
|
| --- a/third_party/WebKit/Source/core/testing/Internals.cpp
|
| +++ b/third_party/WebKit/Source/core/testing/Internals.cpp
|
| @@ -491,6 +491,9 @@ void Internals::pauseAnimations(double pauseTime, ExceptionState& exceptionState
|
| return;
|
| }
|
|
|
| + if (!frame())
|
| + return;
|
| +
|
| frame()->view()->updateAllLifecyclePhases();
|
| frame()->document()->timeline().pauseAnimationsForTesting(pauseTime);
|
| }
|
| @@ -779,7 +782,9 @@ bool Internals::hasAutofocusRequest()
|
|
|
| Vector<String> Internals::formControlStateOfHistoryItem(ExceptionState& exceptionState)
|
| {
|
| - HistoryItem* mainItem = frame()->loader().currentItem();
|
| + HistoryItem* mainItem = nullptr;
|
| + if (frame())
|
| + mainItem = frame()->loader().currentItem();
|
| if (!mainItem) {
|
| exceptionState.throwDOMException(InvalidAccessError, "No history item is available.");
|
| return Vector<String>();
|
| @@ -789,7 +794,9 @@ Vector<String> Internals::formControlStateOfHistoryItem(ExceptionState& exceptio
|
|
|
| void Internals::setFormControlStateOfHistoryItem(const Vector<String>& state, ExceptionState& exceptionState)
|
| {
|
| - HistoryItem* mainItem = frame()->loader().currentItem();
|
| + HistoryItem* mainItem = nullptr;
|
| + if (frame())
|
| + mainItem = frame()->loader().currentItem();
|
| if (!mainItem) {
|
| exceptionState.throwDOMException(InvalidAccessError, "No history item is available.");
|
| return;
|
| @@ -1873,6 +1880,9 @@ void Internals::setPageScaleFactorLimits(float minScaleFactor, float maxScaleFac
|
|
|
| bool Internals::magnifyScaleAroundAnchor(float scaleFactor, float x, float y)
|
| {
|
| + if (!frame())
|
| + return false;
|
| +
|
| return frame()->host()->visualViewport().magnifyScaleAroundAnchor(scaleFactor, FloatPoint(x, y));
|
| }
|
|
|
| @@ -1949,6 +1959,9 @@ TypeConversions* Internals::typeConversions() const
|
|
|
| PrivateScriptTest* Internals::privateScriptTest() const
|
| {
|
| + if (!frame())
|
| + return nullptr;
|
| +
|
| return PrivateScriptTest::create(frame()->document());
|
| }
|
|
|
| @@ -1964,6 +1977,9 @@ UnionTypesTest* Internals::unionTypesTest() const
|
|
|
| Vector<String> Internals::getReferencedFilePaths() const
|
| {
|
| + if (!frame())
|
| + return Vector<String>();
|
| +
|
| return frame()->loader().currentItem()->getReferencedFilePaths();
|
| }
|
|
|
| @@ -2107,6 +2123,9 @@ static const char* cursorTypeToString(Cursor::Type cursorType)
|
|
|
| String Internals::getCurrentCursorInfo()
|
| {
|
| + if (!frame())
|
| + return String();
|
| +
|
| Cursor cursor = frame()->page()->chromeClient().lastSetCursorForTesting();
|
|
|
| StringBuilder result;
|
| @@ -2134,6 +2153,9 @@ String Internals::getCurrentCursorInfo()
|
|
|
| bool Internals::cursorUpdatePending() const
|
| {
|
| + if (!frame())
|
| + return false;
|
| +
|
| return frame()->eventHandler().cursorUpdatePending();
|
| }
|
|
|
| @@ -2153,6 +2175,9 @@ PassRefPtr<SerializedScriptValue> Internals::deserializeBuffer(DOMArrayBuffer* b
|
|
|
| void Internals::forceReload(bool bypassCache)
|
| {
|
| + if (!frame())
|
| + return;
|
| +
|
| frame()->reload(bypassCache ? FrameLoadTypeReloadBypassingCache : FrameLoadTypeReload, ClientRedirectPolicy::NotClientRedirect);
|
| }
|
|
|
| @@ -2255,6 +2280,9 @@ void Internals::forceCompositingUpdate(Document* document, ExceptionState& excep
|
|
|
| void Internals::setZoomFactor(float factor)
|
| {
|
| + if (!frame())
|
| + return;
|
| +
|
| frame()->setPageZoomFactor(factor);
|
| }
|
|
|
| @@ -2372,11 +2400,17 @@ String Internals::textSurroundingNode(Node* node, int x, int y, unsigned long ma
|
|
|
| void Internals::setFocused(bool focused)
|
| {
|
| + if (!frame())
|
| + return;
|
| +
|
| frame()->page()->focusController().setFocused(focused);
|
| }
|
|
|
| void Internals::setInitialFocus(bool reverse)
|
| {
|
| + if (!frame())
|
| + return;
|
| +
|
| frame()->document()->clearFocusedElement();
|
| frame()->page()->focusController().setInitialFocus(reverse ? WebFocusTypeBackward : WebFocusTypeForward);
|
| }
|
| @@ -2453,36 +2487,57 @@ void Internals::forceBlinkGCWithoutV8GC()
|
|
|
| String Internals::selectedHTMLForClipboard()
|
| {
|
| + if (!frame())
|
| + return String();
|
| +
|
| return frame()->selection().selectedHTMLForClipboard();
|
| }
|
|
|
| String Internals::selectedTextForClipboard()
|
| {
|
| + if (!frame())
|
| + return String();
|
| +
|
| return frame()->selection().selectedTextForClipboard();
|
| }
|
|
|
| void Internals::setVisualViewportOffset(int x, int y)
|
| {
|
| + if (!frame())
|
| + return;
|
| +
|
| frame()->host()->visualViewport().setLocation(FloatPoint(x, y));
|
| }
|
|
|
| int Internals::visualViewportHeight()
|
| {
|
| + if (!frame())
|
| + return 0;
|
| +
|
| return expandedIntSize(frame()->host()->visualViewport().visibleRect().size()).height();
|
| }
|
|
|
| int Internals::visualViewportWidth()
|
| {
|
| + if (!frame())
|
| + return 0;
|
| +
|
| return expandedIntSize(frame()->host()->visualViewport().visibleRect().size()).width();
|
| }
|
|
|
| double Internals::visualViewportScrollX()
|
| {
|
| + if (!frame())
|
| + return 0;
|
| +
|
| return frame()->view()->getScrollableArea()->scrollPositionDouble().x();
|
| }
|
|
|
| double Internals::visualViewportScrollY()
|
| {
|
| + if (!frame())
|
| + return 0;
|
| +
|
| return frame()->view()->getScrollableArea()->scrollPositionDouble().y();
|
| }
|
|
|
|
|