bool CWebView::LoadURL ( const SString& strURL, bool bFilterEnabled, const SString& strPostData, bool bURLEncoded ) { if ( !m_pWebView ) return false; CefURLParts urlParts; if ( !CefParseURL ( strURL, urlParts ) ) return false; // Invalid URL // Are we allowed to browse this website? if ( bFilterEnabled && g_pCore->GetWebCore ()->GetURLState ( UTF16ToMbUTF8 ( urlParts.host.str ), true ) != eURLState::WEBPAGE_ALLOWED ) return false; // Load it! auto pFrame = m_pWebView->GetMainFrame (); if ( strPostData.empty () ) { pFrame->LoadURL ( strURL ); } else { // Load URL first, see https://bitbucket.org/chromiumembedded/cef/issue/579 pFrame->LoadURL ( "about:blank" ); // Perform HTTP POST auto request = CefRequest::Create (); auto postData = CefPostData::Create (); auto postDataElement = CefPostDataElement::Create (); postDataElement->SetToBytes ( strPostData.size (), strPostData.c_str () ); postData->AddElement ( postDataElement ); if ( bURLEncoded ) { CefRequest::HeaderMap headerMap; headerMap.insert ( std::make_pair ( "Content-Type", "application/x-www-form-urlencoded" ) ); headerMap.insert ( std::make_pair ( "Content-Length", std::to_string ( strPostData.size () ) ) ); //headerMap.insert ( std::make_pair ( "Connection", "close" ) ); request->SetHeaderMap ( headerMap ); } request->SetURL ( strURL ); request->SetMethod ( "POST" ); request->SetPostData ( postData ); pFrame->LoadRequest ( request ); } return true; }
bool PluginWebView::OnCmdEvent(ICmdParam& cmd,int phase) { if(!cmd.evtptr||phase==IDefs::PHASE_POSTCALL) return true; if(cmd.evtptr->m_sId=="WebView.Go") { WndManager::current().evtmgr["WebView.URL"].WndExecuteEx(IDefs::ACTION_TRANSFER2MODEL); LoadURL(temp_url); } if(cmd.evtptr->m_sId=="Webview.Exec") { IWnd_webview* wv=GetActiveWebView(); if(!wv) return true; wm.evtmgr["Webview.script"].WndExecuteEx(IDefs::ACTION_TRANSFER2MODEL); String val; wm.evtmgr.table["Webview.script"].get<String>(val); wv->RunScript(val); } if(cmd.evtptr->m_sId=="Webview.Clear") { wm.evtmgr.table["Webview.script"].reset<String>(""); wm.evtmgr["Webview.script"].WndExecuteEx(IDefs::ACTION_TRANSFER2WINDOW); } return true; }
void wxWebViewIE::LoadHistoryItem(wxSharedPtr<wxWebViewHistoryItem> item) { int pos = -1; for(unsigned int i = 0; i < m_historyList.size(); i++) { //We compare the actual pointers to find the correct item if(m_historyList[i].get() == item.get()) pos = i; } wxASSERT_MSG(pos != static_cast<int>(m_historyList.size()), "invalid history item"); m_historyLoadingFromList = true; LoadURL(item->GetUrl()); m_historyPosition = pos; }
bool PluginWebView::OnWndEvent(IWndParam& cmd,int phase) { if(phase!=IDefs::PHASE_POSTCALL) return true; if(!cmd.iwvptr||!cmd.evtptr||cmd.evtptr->m_sId!="WebView.URL") { return true; } if(cmd.action==IDefs::ACTION_TRANSFER2MODEL) { cmd.iwvptr->DoGetValue(temp_url); } if(cmd.action==IDefs::ACTION_VALUE_CHANGED) { cmd.iwvptr->DoGetValue(temp_url); LoadURL(temp_url); } return true; }
bool wxWebViewIE::Create(wxWindow* parent, wxWindowID id, const wxString& url, const wxPoint& pos, const wxSize& size, long style, const wxString& name) { if (!wxControl::Create(parent, id, pos, size, style, wxDefaultValidator, name)) { return false; } m_webBrowser = NULL; m_isBusy = false; m_historyLoadingFromList = false; m_historyEnabled = true; m_historyPosition = -1; m_zoomType = wxWEB_VIEW_ZOOM_TYPE_TEXT; if (::CoCreateInstance(CLSID_WebBrowser, NULL, CLSCTX_INPROC_SERVER, // CLSCTX_INPROC, IID_IWebBrowser2 , (void**)&m_webBrowser) != 0) { wxLogError("Failed to initialize IE, CoCreateInstance returned an error"); return false; } m_ie.SetDispatchPtr(m_webBrowser); // wxAutomationObject will release itself m_webBrowser->put_RegisterAsBrowser(VARIANT_TRUE); m_webBrowser->put_RegisterAsDropTarget(VARIANT_TRUE); m_uiHandler = new DocHostUIHandler; m_container = new wxIEContainer(this, IID_IWebBrowser2, m_webBrowser, m_uiHandler); EnableControlFeature(21 /* FEATURE_DISABLE_NAVIGATION_SOUNDS */); LoadURL(url); return true; }
void CefControlBase::LoadURL(const CefString& url) { if (browser_handler_.get() && browser_handler_->GetBrowser().get()) { CefRefPtr<CefFrame> frame = browser_handler_->GetBrowser()->GetMainFrame(); if (!frame) return; frame->LoadURL(url); } else { if (browser_handler_.get()) { StdClosure cb = ToWeakCallback([this, url]() { LoadURL(url); }); browser_handler_->AddAfterCreateTask(cb); } } }
void VisionApp::MessageReceived(BMessage* msg) { switch (msg->what) { case M_ABOUT_CLOSE: { fAboutWin = 0; if (fShuttingDown) PostMessage(B_QUIT_REQUESTED); } break; case M_SETUP_SHOW: { if (fSetupWin) fSetupWin->Activate(); else { fSetupWin = new SetupWindow(); fSetupWin->Show(); } } break; case M_SETUP_CLOSE: { SaveSettings(); fSetupWin = 0; if (fClientWin == NULL) PostMessage(B_QUIT_REQUESTED); } break; case M_PREFS_SHOW: { if (fPrefsWin) fPrefsWin->Activate(); else { fPrefsWin = new PrefsWindow(); fPrefsWin->Show(); } } break; case M_PREFS_CLOSE: { SaveSettings(); fPrefsWin = 0; } break; case M_NETWORK_SHOW: { if (fNetWin) fNetWin->Activate(); else { fNetWin = new NetworkWindow(); fNetWin->Show(); } } break; case M_NETWORK_CLOSE: { SaveSettings(); fNetWin = 0; } break; case M_CONNECT_NETWORK: { BRect clientWinRect(GetRect("clientWinRect")); BMessage netData = GetNetwork(msg->FindString("network")); // sanity check if (netData.IsEmpty()) break; if (netData.FindBool("useDefaults")) { netData.RemoveName("nick"); netData.RemoveName("realname"); netData.RemoveName("ident"); BMessage netDefaults(GetNetwork("defaults")); netData.AddString("realname", netDefaults.FindString("realname")); netData.AddString("ident", netDefaults.FindString("ident")); const char* nick(NULL); for (int32 i = 0; (nick = netDefaults.FindString("nick", i)) != NULL; i++) netData.AddString("nick", nick); } if (fClientWin == NULL) { fClientWin = new ClientWindow(clientWinRect); fWinThread = fClientWin->Thread(); fClientWin->Show(); } BMessage connMsg(M_MAKE_NEW_NETWORK); connMsg.AddMessage("network", &netData); fClientWin->PostMessage(&connMsg); } break; case M_JOIN_CHANNEL: { if (fClientWin == NULL) break; fClientWin->PostMessage(msg); } break; case M_DCC_FILE_WIN: { if (fDccFileWin) { fDccFileWin->PostMessage(msg); } else { DCCConnect* view; msg->FindPointer("view", reinterpret_cast<void**>(&view)); fDccFileWin = new DCCFileWindow(view); fDccFileWin->Show(); } } break; case M_DCC_MESSENGER: if (msg->IsSourceWaiting()) { BMessenger msgr(fDccFileWin); BMessage reply; reply.AddMessenger("msgr", msgr); msg->SendReply(&reply); } break; case M_DCC_FILE_WIN_DONE: { fDccFileWin = 0; } break; case M_DCC_COMPLETE: { Broadcast(msg); } break; case M_LOAD_URL: { BString url(msg->FindString("url")); if (url.Length() > 0) { LoadURL(url.String()); } } break; default: BApplication::MessageReceived(msg); } }
void MovieTexture::CreateTexture(Graphics::RenderTarget* renderTarget) { if (m_status == 0) { m_status = 1; if (m_url->get_size() > 0) { auto url0 = m_url->get1Value(0); #if 0 TCHAR fullurl[512]; { DWORD resultLen = sizeof(fullurl); InternetCombineUrl(W2A(m_pScene->m_url), W2A(url0), fullurl, &resultLen, 0); } ErrorCode hr = LoadURL(_bstr_t(fullurl)); if (SUCCEEDED(hr)) { /* CComPtr<IStream> stream; ErrorCode hr = URLOpenBlockingStream(0, _bstr_t(fullurl), &stream, 0, 0); LDraw::Bitmap* pBitmap = new LDraw::Bitmap(stream); if (pBitmap->GetLastStatus() == LDraw::Ok) { LDraw::BitmapData bitmapData; if (pBitmap->LockBits( &LDraw::Rect(0, 0, pBitmap->GetWidth(), pBitmap->GetHeight()), LDraw::ImageLockModeRead, PixelFormat32bppARGB, &bitmapData) == 0) { } } */ glGenTextures(1, &m_texName); ASSERT(glGetError() == GL_NO_ERROR); glBindTexture(GL_TEXTURE_2D, m_texName); ASSERT(glGetError() == GL_NO_ERROR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, (m_repeatS->m_value)? GL_REPEAT : GL_CLAMP); ASSERT(glGetError() == GL_NO_ERROR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, (m_repeatT->m_value)? GL_REPEAT : GL_CLAMP); ASSERT(glGetError() == GL_NO_ERROR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); ASSERT(glGetError() == GL_NO_ERROR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); ASSERT(glGetError() == GL_NO_ERROR); LVIDEOINFOHEADER2* vih = ((LVIDEOINFOHEADER2*)m_pVideoFilter->m_pInput->m_mt->pbFormat); int width = vih->bmiHeader.biWidth; int height = vih->bmiHeader.biHeight; m_texwidth = 1; while (m_texwidth < width) m_texwidth <<= 1; m_texheight = 1; while (m_texheight < height) m_texheight <<= 1; //BYTE* p = new BYTE[m_texwidth*m_texheight*3]; glTexImage2D(GL_TEXTURE_2D, 0, 4, m_texwidth, m_texheight, 0/*border*/, GL_RGB, GL_UNSIGNED_BYTE, NULL/*bitmapData.Scan0*/); ASSERT(glGetError() == GL_NO_ERROR); // pBitmap->UnlockBits(&bitmapData); //delete pBitmap; m_filterGraph->Run(); } #endif } } }
NS_IMETHODIMP nsJSSh::Init() { nsCOMPtr<nsIScriptSecurityManager> ssm = do_GetService(NS_SCRIPTSECURITYMANAGER_CONTRACTID); if (!ssm) { NS_ERROR("failed to get script security manager"); return NS_ERROR_FAILURE; } ssm->GetSystemPrincipal(getter_AddRefs(mPrincipal)); if (!mPrincipal) { NS_ERROR("failed to get system principal"); return NS_ERROR_FAILURE; } nsCOMPtr<nsIXPConnect> xpc = do_GetService(nsIXPConnect::GetCID()); if (!xpc) { NS_ERROR("failed to get xpconnect service"); return NS_ERROR_FAILURE; } nsCOMPtr<nsIJSRuntimeService> rtsvc = do_GetService("@mozilla.org/js/xpc/RuntimeService;1"); // get the JSRuntime from the runtime svc if (!rtsvc) { NS_ERROR("failed to get nsJSRuntimeService"); return NS_ERROR_FAILURE; } JSRuntime *rt = nsnull; if (NS_FAILED(rtsvc->GetRuntime(&rt)) || !rt) { NS_ERROR("failed to get JSRuntime from nsJSRuntimeService"); return NS_ERROR_FAILURE; } mJSContext = JS_NewContext(rt, 8192); if (!mJSContext) { NS_ERROR("JS_NewContext failed"); return NS_ERROR_FAILURE; } JSAutoRequest ar(mJSContext); // Enable e4x: JS_SetOptions(mJSContext, JS_GetOptions(mJSContext) | JSOPTION_XML); // Always use the latest js version JS_SetVersion(mJSContext, JSVERSION_LATEST); mContextStack = do_GetService("@mozilla.org/js/xpc/ContextStack;1"); if (!mContextStack) { NS_ERROR("failed to get the nsThreadJSContextStack service"); return NS_ERROR_FAILURE; } JS_SetErrorReporter(mJSContext, my_ErrorReporter); nsCOMPtr<nsIXPConnectJSObjectHolder> holder; xpc->InitClassesWithNewWrappedGlobal(mJSContext, (nsIJSSh*)this, NS_GET_IID(nsISupports), PR_TRUE, getter_AddRefs(holder)); if (!holder) { NS_ERROR("global initialization failed"); return NS_ERROR_FAILURE; } holder->GetJSObject(&mGlobal); if (!mGlobal) { NS_ERROR("bad global object"); return NS_ERROR_FAILURE; } mContextObj = mGlobal; if (!JS_DefineFunctions(mJSContext, mGlobal, global_functions)) { NS_ERROR("failed to initialise global functions"); return NS_ERROR_FAILURE; } if (!mStartupURI.IsEmpty()) LoadURL(mStartupURI.get()); return NS_OK; }