Page* WebChromeClient::createWindow(Frame*, const FrameLoadRequest& frameLoadRequest, const WindowFeatures& features) { if (features.dialog) { COMPtr<IWebUIDelegate> delegate = uiDelegate(); if (!delegate) return 0; COMPtr<IWebMutableURLRequest> request(AdoptCOM, WebMutableURLRequest::createInstance(frameLoadRequest.resourceRequest())); COMPtr<IWebView> dialog; if (FAILED(delegate->createModalDialog(m_webView, request.get(), &dialog))) return 0; return core(dialog.get()); } Page* page = 0; IWebUIDelegate* uiDelegate = 0; IWebMutableURLRequest* request = WebMutableURLRequest::createInstance(frameLoadRequest.resourceRequest()); if (SUCCEEDED(m_webView->uiDelegate(&uiDelegate))) { IWebView* webView = 0; if (SUCCEEDED(uiDelegate->createWebViewWithRequest(m_webView, request, &webView))) { page = core(webView); webView->Release(); } uiDelegate->Release(); } request->Release(); return page; }
void WebChromeClient::setResizable(bool resizable) { IWebUIDelegate* uiDelegate = 0; if (SUCCEEDED(m_webView->uiDelegate(&uiDelegate))) { uiDelegate->setResizable(m_webView, resizable); uiDelegate->Release(); } }
void WebChromeClient::setStatusbarVisible(bool visible) { IWebUIDelegate* uiDelegate = 0; if (SUCCEEDED(m_webView->uiDelegate(&uiDelegate))) { uiDelegate->setStatusBarVisible(m_webView, visible); uiDelegate->Release(); } }
void WebChromeClient::show() { IWebUIDelegate* uiDelegate = 0; if (SUCCEEDED(m_webView->uiDelegate(&uiDelegate))) { uiDelegate->webViewShow(m_webView); uiDelegate->Release(); } }
void WebEditorClient::redo() { IWebUIDelegate* uiDelegate = 0; if (SUCCEEDED(m_webView->uiDelegate(&uiDelegate))) { uiDelegate->redo(); uiDelegate->Release(); } }
void WebEditorClient::clearUndoRedoOperations() { IWebUIDelegate* uiDelegate = 0; if (SUCCEEDED(m_webView->uiDelegate(&uiDelegate))) { uiDelegate->removeAllActionsWithTarget(m_undoTarget); uiDelegate->Release(); } }
bool WebChromeClient::canRunBeforeUnloadConfirmPanel() { IWebUIDelegate* ui; if (SUCCEEDED(m_webView->uiDelegate(&ui)) && ui) { ui->Release(); return true; } return false; }
void WebChromeClient::setWindowRect(const FloatRect& r) { IWebUIDelegate* uiDelegate = 0; if (SUCCEEDED(m_webView->uiDelegate(&uiDelegate))) { RECT rect = IntRect(r); uiDelegate->setFrame(m_webView, &rect); uiDelegate->Release(); } }
void WebChromeClient::takeFocus(FocusDirection direction) { IWebUIDelegate* uiDelegate = 0; BOOL bForward = (direction == FocusDirectionForward) ? TRUE : FALSE; if (SUCCEEDED(m_webView->uiDelegate(&uiDelegate))) { uiDelegate->takeFocus(m_webView, bForward); uiDelegate->Release(); } }
bool WebChromeClient::statusbarVisible() { BOOL result = false; IWebUIDelegate* uiDelegate = 0; if (SUCCEEDED(m_webView->uiDelegate(&uiDelegate))) { uiDelegate->webViewIsStatusBarVisible(m_webView, &result); uiDelegate->Release(); } return result != false; }
void WebChromeClient::unfocus() { IWebUIDelegate* uiDelegate = 0; if (SUCCEEDED(m_webView->uiDelegate(&uiDelegate))) { uiDelegate->webViewUnfocus(m_webView); uiDelegate->Release(); } // Normally this would happen on a timer, but JS might need to know this earlier, so we'll update here. m_webView->updateActiveState(); }
bool WebEditorClient::canRedo() const { BOOL result = FALSE; IWebUIDelegate* uiDelegate = 0; if (SUCCEEDED(m_webView->uiDelegate(&uiDelegate))) { uiDelegate->canRedo(&result); uiDelegate->Release(); } return !!result; }
bool WebChromeClient::runBeforeUnloadConfirmPanel(const String& message, Frame* frame) { BOOL result = TRUE; IWebUIDelegate* ui; if (SUCCEEDED(m_webView->uiDelegate(&ui)) && ui) { WebFrame* webFrame = kit(frame); ui->runBeforeUnloadConfirmPanelWithMessage(m_webView, BString(message), webFrame, &result); ui->Release(); } return !!result; }
void WebEditorClient::registerCommandForRedo(PassRefPtr<EditCommand> command) { IWebUIDelegate* uiDelegate = 0; if (SUCCEEDED(m_webView->uiDelegate(&uiDelegate))) { WebEditorUndoCommand* undoCommand = new WebEditorUndoCommand(command, false); if (!undoCommand) return; uiDelegate->registerUndoWithTarget(m_undoTarget, 0, undoCommand); undoCommand->Release(); // the undo manager owns the reference uiDelegate->Release(); } }
bool WebChromeClient::canTakeFocus(FocusDirection direction) { IWebUIDelegate* uiDelegate = 0; BOOL bForward = (direction == FocusDirectionForward) ? TRUE : FALSE; BOOL result = FALSE; if (SUCCEEDED(m_webView->uiDelegate(&uiDelegate))) { uiDelegate->canTakeFocus(m_webView, bForward, &result); uiDelegate->Release(); } return !!result; }
FloatRect WebChromeClient::windowRect() { IWebUIDelegate* uiDelegate = 0; if (SUCCEEDED(m_webView->uiDelegate(&uiDelegate))) { RECT rect; HRESULT retval = uiDelegate->webViewFrame(m_webView, &rect); uiDelegate->Release(); if (SUCCEEDED(retval)) return rect; } return FloatRect(); }
void WebEditorClient::registerCommandForUndo(PassRefPtr<EditCommand> command) { IWebUIDelegate* uiDelegate = 0; if (SUCCEEDED(m_webView->uiDelegate(&uiDelegate))) { String actionName = undoNameForEditAction(command->editingAction()); WebEditorUndoCommand* undoCommand = new WebEditorUndoCommand(command, true); if (!undoCommand) return; uiDelegate->registerUndoWithTarget(m_undoTarget, 0, undoCommand); undoCommand->Release(); // the undo manager owns the reference if (!actionName.isEmpty()) uiDelegate->setActionTitle(BString(actionName)); uiDelegate->Release(); } }
IntRect WebChromeClient::windowResizerRect() const { IntRect intRect; IWebUIDelegate* ui; if (SUCCEEDED(m_webView->uiDelegate(&ui)) && ui) { IWebUIDelegatePrivate* uiPrivate; if (SUCCEEDED(ui->QueryInterface(IID_IWebUIDelegatePrivate, (void**)&uiPrivate))) { RECT r; if (SUCCEEDED(uiPrivate->webViewResizerRect(m_webView, &r))) intRect = IntRect(r.left, r.top, r.right-r.left, r.bottom-r.top); uiPrivate->Release(); } ui->Release(); } return intRect; }