#if ENABLE(PAGE_VISIBILITY_API)
, m_visibilityState(WebCore::PageVisibilityStateVisible)
#endif
-#if ENABLE(TIZEN_RECORDING_SURFACE_SET)
- , m_recordingSurfaceSetEnable(false)
- , m_recordingSurfaceSetLoadStart(false)
- , m_recordingSurfaceSetLoadFinished(false)
- , m_recordingSurfaceSetSettings(false)
-#endif
#if ENABLE(TIZEN_SYNC_REQUEST_ANIMATION_FRAME)
, m_suspendedAnimationController(false)
#endif
, m_inspectorClient(0)
+#if ENABLE(TIZEN_ISF_PORT)
+ , m_prepareKeyDownEvent(false)
+#endif
{
ASSERT(m_pageID);
// FIXME: This is a non-ideal location for this Setting and
result.hasComposition = frame->editor()->hasComposition();
result.shouldIgnoreCompositionSelectionChange = frame->editor()->ignoreCompositionSelectionChange();
-#if ENABLE(TIZEN_WEBKIT2_TEXT_SELECTION) || ENABLE(TIZEN_ISF_PORT)
- Element* selectionRoot = frame->selection()->rootEditableElementOrDocumentElement();
- if (!selectionRoot)
+#if ENABLE(TIZEN_WEBKIT2_GET_TEXT_STYLE_FOR_SELECTION)
+ if (!result.shouldIgnoreCompositionSelectionChange) {
+ result.underlineState = frame->editor()->selectionHasStyle(CSSPropertyWebkitTextDecorationsInEffect, "underline");
+ result.italicState = frame->editor()->selectionHasStyle(CSSPropertyFontStyle, "italic");
+ result.boldState = frame->editor()->selectionHasStyle(CSSPropertyFontWeight, "bold");
+ result.bgColor = frame->editor()->selectionStartCSSPropertyValue(CSSPropertyBackgroundColor);
+ result.color = frame->editor()->selectionStartCSSPropertyValue(CSSPropertyColor);
+ result.fontSize = frame->editor()->selectionStartCSSPropertyValue(CSSPropertyFontSize);
+ }
+#endif
+
+#if ENABLE(TIZEN_ISF_PORT) || ENABLE(TIZEN_WEBKIT2_TEXT_SELECTION)
+ Element* rootEditableElement = frame->selection()->rootEditableElement();
+ if (!rootEditableElement)
return result;
- result.editorRect = frame->view()->contentsToWindow(selectionRoot->getPixelSnappedRect());
- if (result.editorRect.maxX() <= 0 || result.editorRect.maxY() <= 0)
- result.isContentEditable = false;
+ result.editorRect = nodeRect(rootEditableElement);
#endif
#if ENABLE(TIZEN_ISF_PORT)
- Node* hostNode = selectionRoot->shadowAncestorNode();
- if (result.isContentEditable) {
+ if (!result.shouldIgnoreCompositionSelectionChange && result.isContentEditable) {
+ result.inputMethodContextID = reinterpret_cast<uintptr_t>(rootEditableElement);
+
+ Node* hostNode = rootEditableElement->shadowHost();
+ if (!hostNode)
+ hostNode = rootEditableElement;
+
HTMLTextFormControlElement* formControl = toTextFormControl(hostNode);
if (formControl) {
- result.inputMethodHints = formControl->type();
+ const AtomicString& type = formControl->type();
+
+ if (type == "number" && formControl->hasTagName(HTMLNames::inputTag)) {
+ StepRange stepRange = static_cast<HTMLInputElement*>(formControl)->createStepRange(RejectAny);
+ bool needsSigned = stepRange.minimum().isNegative();
+ bool needsDecimal = (stepRange.step().floor() != stepRange.step());
+
+ if (needsSigned && needsDecimal)
+ result.inputMethodHints = "signedDecimalNumber";
+ else if (needsSigned)
+ result.inputMethodHints = "signedNumber";
+ else if (needsDecimal)
+ result.inputMethodHints = "decimalNumber";
+ else
+ result.inputMethodHints = "number";
+ } else if (type == "text" && formControl->form() && equalIgnoringCase(formControl->form()->fastGetAttribute(HTMLNames::roleAttr), "search"))
+ result.inputMethodHints = "search";
+ else
+ result.inputMethodHints = type;
+
result.surroundingText = formControl->value();
}
void WebPage::loadURL(const String& url, const SandboxExtension::Handle& sandboxExtensionHandle)
{
-#if ENABLE(TIZEN_RECORDING_SURFACE_SET)
- recordingSurfaceSetEnableURL(url);
-#endif
loadURLRequest(ResourceRequest(KURL(KURL(), url)), sandboxExtensionHandle);
}
- #if ENABLE(TIZEN_RECORDING_SURFACE_SET)
-void WebPage::recordingSurfaceSetEnableURL(const String& url)
-{
- if (m_recordingSurfaceSetSettings && strstr(url.utf8().data(), "bubblemark.com")) {
- m_recordingSurfaceSetEnable = true;
- m_page->m_recordingSurfaceSetEnable = true;
- } else {
- m_recordingSurfaceSetEnable = false;
- m_page->m_recordingSurfaceSetEnable = false;
- }
-}
-#endif
-
void WebPage::loadURLRequest(const ResourceRequest& request, const SandboxExtension::Handle& sandboxExtensionHandle)
{
SendStopResponsivenessTimer stopper(this);
Settings* settings = m_page->settings();
#if OS(TIZEN)
+#if ENABLE(TIZEN_DLOG_SUPPORT)
+ TIZEN_LOGI(" args type: [%d], scale: [%.1f, %.1f, %.1f], layout: [%.1f, %.1f], userScalable: [%.1f]"
+ , static_cast<int>(m_page->viewportArguments().type), m_page->viewportArguments().initialScale
+ , m_page->viewportArguments().minimumScale, m_page->viewportArguments().maximumScale
+ , m_page->viewportArguments().width, m_page->viewportArguments().height, m_page->viewportArguments().userScalable);
+#endif
+
// As android and iphone does, we set layout width to 980 for desktop content
int minimumLayoutFallbackWidth = settings->layoutFallbackWidth();
#else
if (m_viewportSize == size)
return;
+#if ENABLE(TIZEN_DLOG_SUPPORT)
+ TIZEN_LOGI(" viewportSize: [%d, %d]", size.width(), size.height());
+#endif
+
m_viewportSize = size;
sendViewportAttributesChanged();
#if USE(TILED_BACKING_STORE)
void WebPage::pageDidRequestScroll(const IntPoint& point)
{
+#if ENABLE(TIZEN_DLOG_SUPPORT)
+ TIZEN_LOGI(" scroll position: [%d, %d]", point.x(), point.y());
+#endif
send(Messages::WebPageProxy::PageDidRequestScroll(point));
}
#endif
#if ENABLE(TIZEN_WEBKIT2_HISTORICAL_RESTORE_VISIBLE_CONTENT_RECT)
void WebPage::pageDidRequestRestoreVisibleContentRect(const IntPoint& point, float scale)
{
+#if ENABLE(TIZEN_DLOG_SUPPORT)
+ TIZEN_LOGI(" scale factor: [%.2f], scroll position: [%d, %d]", scale, point.x(), point.y());
+#endif
send(Messages::WebPageProxy::pageDidRequestRestoreVisibleContentRect(point, scale));
}
#endif
{
CurrentEvent currentEvent(keyboardEvent);
+#if ENABLE(TIZEN_ISF_PORT)
+ m_prepareKeyDownEvent = false;
+#endif
+
bool handled = handleKeyEvent(keyboardEvent, m_page.get());
// FIXME: Platform default behaviors should be performed during normal DOM event dispatch (in most cases, in default keydown event handler).
if (!handled)
m_page->group().groupSettings()->setLocalFileSystemQuotaBytes(0x6400000); //100M
#endif
+#if ENABLE(TIZEN_WORKERS)
+ m_page->group().groupSettings()->setAllowUniversalAccessFromFileURLs(settings->allowUniversalAccessFromFileURLs());
+#endif
+
platformPreferencesDidChange(store);
if (m_drawingArea)
m_activeOpenPanelResultListener = 0;
}
+#if OS(TIZEN)
+void WebPage::cancelForOpenPanel()
+{
+ if (m_activeOpenPanelResultListener) {
+ m_activeOpenPanelResultListener->disconnectFromPage();
+ m_activeOpenPanelResultListener = 0;
+ }
+}
+#endif
+
#if ENABLE(WEB_PROCESS_SANDBOX)
void WebPage::extendSandboxForFileFromOpenPanel(const SandboxExtension::Handle& handle)
{