summaryrefslogtreecommitdiffstats
path: root/WebKit/wx/WebFrame.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebKit/wx/WebFrame.cpp')
-rw-r--r--WebKit/wx/WebFrame.cpp103
1 files changed, 83 insertions, 20 deletions
diff --git a/WebKit/wx/WebFrame.cpp b/WebKit/wx/WebFrame.cpp
index 6cda197..1d5f03a 100644
--- a/WebKit/wx/WebFrame.cpp
+++ b/WebKit/wx/WebFrame.cpp
@@ -24,8 +24,7 @@
*/
#include "config.h"
-#include "BackForwardList.h"
-#include "CString.h"
+
#include "Document.h"
#include "Editor.h"
#include "Element.h"
@@ -50,6 +49,7 @@
#include "JSDOMBinding.h"
#include <runtime/JSValue.h>
#include <runtime/UString.h>
+#include <wtf/text/CString.h>
#include "EditorClientWx.h"
#include "FrameLoaderClientWx.h"
@@ -59,6 +59,9 @@
#include "wx/wx.h"
#endif
+#include "WebDOMNode.h"
+
+#include "WebDOMSelection.h"
#include "WebFrame.h"
#include "WebView.h"
#include "WebFramePrivate.h"
@@ -152,7 +155,7 @@ wxString wxWebFrame::GetPageSource()
return wxEmptyString;
}
-void wxWebFrame::SetPageSource(const wxString& source, const wxString& baseUrl)
+void wxWebFrame::SetPageSource(const wxString& source, const wxString& baseUrl, const wxString& mimetype)
{
if (m_impl->frame && m_impl->frame->loader()) {
WebCore::KURL url(WebCore::KURL(), baseUrl);
@@ -161,7 +164,7 @@ void wxWebFrame::SetPageSource(const wxString& source, const wxString& baseUrl)
const char* contents = charBuffer;
WTF::PassRefPtr<WebCore::SharedBuffer> sharedBuffer = WebCore::SharedBuffer::create(contents, strlen(contents));
- WebCore::SubstituteData substituteData(sharedBuffer, WebCore::String("text/html"), WebCore::String("UTF-8"), WebCore::blankURL(), url);
+ WebCore::SubstituteData substituteData(sharedBuffer, mimetype, WTF::String("UTF-8"), WebCore::blankURL(), url);
m_impl->frame->loader()->stop();
m_impl->frame->loader()->load(WebCore::ResourceRequest(url), substituteData, false);
@@ -193,6 +196,30 @@ wxString wxWebFrame::GetExternalRepresentation()
return externalRepresentation(m_impl->frame);
}
+wxString wxWebFrame::GetSelectionAsHTML()
+{
+ if (m_impl->frame)
+ return m_impl->frame->selection()->toNormalizedRange()->toHTML();
+
+ return wxEmptyString;
+}
+
+wxString wxWebFrame::GetSelectionAsText()
+{
+ if (m_impl->frame)
+ return m_impl->frame->selection()->toNormalizedRange()->text();
+
+ return wxEmptyString;
+}
+
+wxWebKitSelection wxWebFrame::GetSelection()
+{
+ if (m_impl->frame)
+ return wxWebKitSelection(m_impl->frame->selection());
+
+ return 0;
+}
+
wxString wxWebFrame::RunScript(const wxString& javascript)
{
wxString returnValue = wxEmptyString;
@@ -201,22 +228,52 @@ wxString wxWebFrame::RunScript(const wxString& javascript)
wxASSERT_MSG(hasLoaded, wxT("Document must be loaded before calling RunScript."));
if (hasLoaded) {
WebCore::ScriptController* controller = m_impl->frame->script();
- bool jsEnabled = controller->canExecuteScripts();
+ bool jsEnabled = controller->canExecuteScripts(WebCore::AboutToExecuteScript);
wxASSERT_MSG(jsEnabled, wxT("RunScript requires JavaScript to be enabled."));
if (jsEnabled) {
JSC::JSValue result = controller->executeScript(javascript, true).jsValue();
if (result)
- returnValue = wxString(result.toString(m_impl->frame->script()->globalObject(WebCore::mainThreadNormalWorld())->globalExec()).UTF8String().c_str(), wxConvUTF8);
+ returnValue = wxString(result.toString(m_impl->frame->script()->globalObject(WebCore::mainThreadNormalWorld())->globalExec()).utf8().data(), wxConvUTF8);
}
}
}
return returnValue;
}
+bool wxWebFrame::ExecuteEditCommand(const wxString& command, const wxString& parameter)
+{
+ if (m_impl->frame && IsEditable())
+ return m_impl->frame->editor()->command(command).execute(parameter);
+}
+
+EditState wxWebFrame::GetEditCommandState(const wxString& command) const
+{
+ if (m_impl->frame && IsEditable()) {
+ WebCore::TriState state = m_impl->frame->editor()->command(command).state();
+ if (state == WebCore::TrueTriState)
+ return EditStateTrue;
+ if (state == WebCore::FalseTriState)
+ return EditStateFalse;
+
+ return EditStateMixed;
+ }
+
+ return EditStateFalse;
+}
+
+wxString wxWebFrame::GetEditCommandValue(const wxString& command) const
+{
+ if (m_impl->frame && IsEditable())
+ return m_impl->frame->editor()->command(command).value();
+
+ return wxEmptyString;
+}
+
+
bool wxWebFrame::FindString(const wxString& string, bool forward, bool caseSensitive, bool wrapSelection, bool startInSelection)
{
if (m_impl->frame)
- return m_impl->frame->findString(string, forward, caseSensitive, wrapSelection, startInSelection);
+ return m_impl->frame->editor()->findString(string, forward, caseSensitive, wrapSelection, startInSelection);
return false;
}
@@ -261,16 +318,16 @@ bool wxWebFrame::GoForward()
bool wxWebFrame::CanGoBack()
{
- if (m_impl->frame && m_impl->frame->page() && m_impl->frame->page()->backForwardList())
- return m_impl->frame->page()->backForwardList()->backItem() != NULL;
+ if (m_impl->frame && m_impl->frame->page())
+ return m_impl->frame->page()->canGoBackOrForward(-1);
return false;
}
bool wxWebFrame::CanGoForward()
{
- if (m_impl->frame && m_impl->frame->page() && m_impl->frame->page()->backForwardList())
- return m_impl->frame->page()->backForwardList()->forwardItem() != NULL;
+ if (m_impl->frame && m_impl->frame->page())
+ return m_impl->frame->page()->canGoBackOrForward(1);
return false;
}
@@ -305,7 +362,7 @@ bool wxWebFrame::CanRedo()
bool wxWebFrame::CanIncreaseTextSize() const
{
- if (m_impl->frame) {
+ if (m_impl->frame && m_impl->frame->view()) {
if (m_textMagnifier*TextSizeMultiplierRatio <= MaximumTextSizeMultiplier)
return true;
}
@@ -316,13 +373,13 @@ void wxWebFrame::IncreaseTextSize()
{
if (CanIncreaseTextSize()) {
m_textMagnifier = m_textMagnifier*TextSizeMultiplierRatio;
- m_impl->frame->setZoomFactor(m_textMagnifier, true);
+ m_impl->frame->setTextZoomFactor(m_textMagnifier);
}
}
bool wxWebFrame::CanDecreaseTextSize() const
{
- if (m_impl->frame) {
+ if (m_impl->frame && m_impl->frame->view()) {
if (m_textMagnifier/TextSizeMultiplierRatio >= MinimumTextSizeMultiplier)
return true;
}
@@ -333,7 +390,7 @@ void wxWebFrame::DecreaseTextSize()
{
if (CanDecreaseTextSize()) {
m_textMagnifier = m_textMagnifier/TextSizeMultiplierRatio;
- m_impl->frame->setZoomFactor(m_textMagnifier, true);
+ m_impl->frame->setTextZoomFactor(m_textMagnifier);
}
}
@@ -341,7 +398,7 @@ void wxWebFrame::ResetTextSize()
{
m_textMagnifier = 1.0;
if (m_impl->frame)
- m_impl->frame->setZoomFactor(m_textMagnifier, true);
+ m_impl->frame->setTextZoomFactor(m_textMagnifier);
}
void wxWebFrame::MakeEditable(bool enable)
@@ -414,15 +471,21 @@ wxWebViewDOMElementInfo wxWebFrame::HitTest(const wxPoint& pos) const
bool wxWebFrame::ShouldClose() const
{
if (m_impl->frame)
- return m_impl->frame->shouldClose();
+ return m_impl->frame->loader()->shouldClose();
return true;
}
-wxWebKitParseMode wxWebFrame::GetParseMode() const
+wxWebKitCompatibilityMode wxWebFrame::GetCompatibilityMode() const
{
if (m_impl->frame && m_impl->frame->document())
- return (wxWebKitParseMode)m_impl->frame->document()->parseMode();
+ return (wxWebKitCompatibilityMode)m_impl->frame->document()->compatibilityMode();
+
+ return QuirksMode;
+}
- return NoDocument;
+void wxWebFrame::GrantUniversalAccess()
+{
+ if (m_impl->frame && m_impl->frame->document())
+ m_impl->frame->document()->securityOrigin()->grantUniversalAccess();
}