Index: Source/core/page/History.cpp |
diff --git a/Source/core/page/History.cpp b/Source/core/page/History.cpp |
deleted file mode 100644 |
index 7e16ff4293fa0e720a56b6519124615430629fe9..0000000000000000000000000000000000000000 |
--- a/Source/core/page/History.cpp |
+++ /dev/null |
@@ -1,159 +0,0 @@ |
-/* |
- * Copyright (C) 2007 Apple Inc. All rights reserved. |
- * |
- * Redistribution and use in source and binary forms, with or without |
- * modification, are permitted provided that the following conditions |
- * are met: |
- * 1. Redistributions of source code must retain the above copyright |
- * notice, this list of conditions and the following disclaimer. |
- * 2. Redistributions in binary form must reproduce the above copyright |
- * notice, this list of conditions and the following disclaimer in the |
- * documentation and/or other materials provided with the distribution. |
- * |
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY |
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR |
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY |
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
- */ |
- |
-#include "config.h" |
-#include "core/page/History.h" |
- |
-#include "bindings/v8/ExceptionState.h" |
-#include "bindings/v8/SerializedScriptValue.h" |
-#include "core/dom/Document.h" |
-#include "core/dom/ExceptionCode.h" |
-#include "core/history/BackForwardController.h" |
-#include "core/history/HistoryItem.h" |
-#include "core/loader/DocumentLoader.h" |
-#include "core/loader/FrameLoader.h" |
-#include "core/loader/FrameLoaderClient.h" |
-#include "core/page/Frame.h" |
-#include "core/page/Page.h" |
-#include "weborigin/KURL.h" |
-#include "weborigin/SecurityOrigin.h" |
-#include "wtf/MainThread.h" |
- |
-namespace WebCore { |
- |
-History::History(Frame* frame) |
- : DOMWindowProperty(frame) |
- , m_lastStateObjectRequested(0) |
-{ |
- ScriptWrappable::init(this); |
-} |
- |
-unsigned History::length() const |
-{ |
- if (!m_frame) |
- return 0; |
- if (!m_frame->page()) |
- return 0; |
- return m_frame->page()->backForward().count(); |
-} |
- |
-SerializedScriptValue* History::state() |
-{ |
- m_lastStateObjectRequested = stateInternal(); |
- return m_lastStateObjectRequested.get(); |
-} |
- |
-SerializedScriptValue* History::stateInternal() const |
-{ |
- if (!m_frame) |
- return 0; |
- |
- if (HistoryItem* historyItem = m_frame->loader()->history()->currentItem()) |
- return historyItem->stateObject(); |
- |
- return 0; |
-} |
- |
-bool History::stateChanged() const |
-{ |
- return m_lastStateObjectRequested != stateInternal(); |
-} |
- |
-bool History::isSameAsCurrentState(SerializedScriptValue* state) const |
-{ |
- return state == stateInternal(); |
-} |
- |
-void History::back() |
-{ |
- go(-1); |
-} |
- |
-void History::back(ScriptExecutionContext* context) |
-{ |
- go(context, -1); |
-} |
- |
-void History::forward() |
-{ |
- go(1); |
-} |
- |
-void History::forward(ScriptExecutionContext* context) |
-{ |
- go(context, 1); |
-} |
- |
-void History::go(int distance) |
-{ |
- if (!m_frame) |
- return; |
- |
- m_frame->navigationScheduler()->scheduleHistoryNavigation(distance); |
-} |
- |
-void History::go(ScriptExecutionContext* context, int distance) |
-{ |
- if (!m_frame) |
- return; |
- |
- ASSERT(isMainThread()); |
- Document* activeDocument = toDocument(context); |
- if (!activeDocument) |
- return; |
- |
- if (!activeDocument->canNavigate(m_frame)) |
- return; |
- |
- m_frame->navigationScheduler()->scheduleHistoryNavigation(distance); |
-} |
- |
-KURL History::urlForState(const String& urlString) |
-{ |
- Document* document = m_frame->document(); |
- |
- if (urlString.isNull()) |
- return document->url(); |
- if (urlString.isEmpty()) |
- return document->baseURL(); |
- |
- return KURL(document->baseURL(), urlString); |
-} |
- |
-void History::stateObjectAdded(PassRefPtr<SerializedScriptValue> data, const String& /* title */, const String& urlString, SameDocumentNavigationSource sameDocumentNavigationSource, ExceptionState& es) |
-{ |
- if (!m_frame || !m_frame->page()) |
- return; |
- |
- KURL fullURL = urlForState(urlString); |
- if (!fullURL.isValid() || !m_frame->document()->securityOrigin()->canRequest(fullURL)) { |
- // We can safely expose the URL to JavaScript, as a) no redirection takes place: JavaScript already had this URL, b) JavaScript can only access a same-origin History object. |
- es.throwSecurityError("A history state object with URL '" + fullURL.elidedString() + "' cannot be created in a document with origin '" + m_frame->document()->securityOrigin()->toString() + "'."); |
- return; |
- } |
- m_frame->loader()->updateForSameDocumentNavigation(fullURL, sameDocumentNavigationSource, data, FrameLoader::DoNotUpdateBackForwardList); |
-} |
- |
-} // namespace WebCore |