本文整理汇总了C++中wtf::String::reverseFind方法的典型用法代码示例。如果您正苦于以下问题:C++ String::reverseFind方法的具体用法?C++ String::reverseFind怎么用?C++ String::reverseFind使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类wtf::String
的用法示例。
在下文中一共展示了String::reverseFind方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: urlSuitableForTestResult
static WTF::String urlSuitableForTestResult(const WTF::String& uriString)
{
if (uriString.isEmpty() || !uriString.startsWith("file://"))
return uriString;
const size_t index = uriString.reverseFind('/');
return (index == WTF::notFound) ? uriString : uriString.substring(index + 1);
}
示例2: resolveMimeType
const string WebResponse::resolveMimeType(const string& url, const string& old_mime)
{
// Use "text/html" as a default (matching the behaviour of the Apache
// HTTP stack -- see guessMimeType() in LoadListener.java).
string mimeType = old_mime.length() ? old_mime : "text/html";
// Try to guess a better MIME type from the URL. We call
// getMIMETypeForExtension rather than getMIMETypeForPath because the
// latter defaults to "application/octet-stream" on failure.
WebCore::KURL kurl(WebCore::ParsedURLString, url.c_str());
WTF::String path = kurl.path();
size_t extensionPos = path.reverseFind('.');
if (extensionPos != WTF::notFound) {
// We found a file extension.
path.remove(0, extensionPos + 1);
// TODO: Should use content-disposition instead of url if it is there
WTF::String mime = WebCore::MIMETypeRegistry::getMIMETypeForExtension(path);
if (!mime.isEmpty()) {
// Great, we found a MIME type.
mimeType = std::string(mime.utf8().data(), mime.length());
}
}
return mimeType;
}
示例3: updateHistoryItem
void WebHistoryItem::updateHistoryItem(WebCore::HistoryItem* item) {
// Do not want to update during inflation.
if (!m_active)
return;
WebHistoryItem* webItem = this;
// Now we need to update the top-most WebHistoryItem based on the top-most
// HistoryItem.
if (m_parent) {
webItem = m_parent.get();
if (webItem->hasOneRef()) {
// if the parent only has one ref, it is from this WebHistoryItem.
// This means that the matching WebCore::HistoryItem has been freed.
// This can happen during clear().
ALOGW("Can't updateHistoryItem as the top HistoryItem is gone");
return;
}
while (webItem->parent())
webItem = webItem->parent();
item = webItem->historyItem();
if (!item) {
// If a HistoryItem only exists for page cache, it is possible that
// the parent HistoryItem destroyed before the child HistoryItem. If
// it happens, skip updating.
ALOGW("Can't updateHistoryItem as the top HistoryItem is gone");
return;
}
}
JNIEnv* env = JSC::Bindings::getJNIEnv();
if (!env)
return;
MutexLocker locker(webItem->m_lock);
// TODO: Figure out if we can't just use item->urlString() instead...
const WTF::String urlString = WebFrame::convertIDNToUnicode(item->url());
webItem->m_url = urlString.threadsafeCopy();
const WTF::String originalUrlString = WebFrame::convertIDNToUnicode(item->originalURL());
webItem->m_originalUrl = originalUrlString.threadsafeCopy();
const WTF::String& titleString = item->title();
webItem->m_title = titleString.threadsafeCopy();
// Try to get the favicon from the history item. For some pages like Grand
// Prix, there are history items with anchors. If the icon fails for the
// item, try to get the icon using the url without the ref.
jobject favicon = NULL;
WTF::String url = item->urlString();
if (item->url().hasFragmentIdentifier()) {
int refIndex = url.reverseFind('#');
url = url.substring(0, refIndex);
}
// FIXME: This method should not be used from outside WebCore and will be removed.
// http://trac.webkit.org/changeset/81484
WebCore::Image* icon = WebCore::iconDatabase().synchronousIconForPageURL(url, WebCore::IntSize(16, 16));
delete webItem->m_favicon;
webItem->m_favicon = webcoreImageToSkBitmap(icon);
if (webItem->m_faviconCached) {
env->DeleteGlobalRef(webItem->m_faviconCached);
webItem->m_faviconCached = 0;
}
webItem->m_data.clear();
WebHistory::Flatten(env, webItem->m_data, item);
if (webItem->m_dataCached) {
env->DeleteGlobalRef(webItem->m_dataCached);
webItem->m_dataCached = 0;
}
}
示例4: updateHistoryItem
void WebHistoryItem::updateHistoryItem(WebCore::HistoryItem* item) {
// Do not want to update during inflation.
if (!m_active)
return;
WebHistoryItem* webItem = this;
// Now we need to update the top-most WebHistoryItem based on the top-most
// HistoryItem.
if (m_parent) {
webItem = m_parent.get();
if (webItem->hasOneRef()) {
// if the parent only has one ref, it is from this WebHistoryItem.
// This means that the matching WebCore::HistoryItem has been freed.
// This can happen during clear().
LOGW("Can't updateHistoryItem as the top HistoryItem is gone");
return;
}
while (webItem->parent())
webItem = webItem->parent();
item = webItem->historyItem();
if (!item) {
// If a HistoryItem only exists for page cache, it is possible that
// the parent HistoryItem destroyed before the child HistoryItem. If
// it happens, skip updating.
LOGW("Can't updateHistoryItem as the top HistoryItem is gone");
return;
}
}
JNIEnv* env = JSC::Bindings::getJNIEnv();
if (!env)
return;
// Don't do anything if the item has been gc'd already
AutoJObject realItem = getRealObject(env, webItem->m_object);
if (!realItem.get())
return;
const WTF::String urlString = WebFrame::convertIDNToUnicode(item->url());
jstring urlStr = NULL;
if (!urlString.isNull())
urlStr = wtfStringToJstring(env, urlString);
const WTF::String originalUrlString = WebFrame::convertIDNToUnicode(item->originalURL());
jstring originalUrlStr = NULL;
if (!originalUrlString.isNull())
originalUrlStr = wtfStringToJstring(env, originalUrlString);
const WTF::String& titleString = item->title();
jstring titleStr = NULL;
if (!titleString.isNull())
titleStr = wtfStringToJstring(env, titleString);
// Try to get the favicon from the history item. For some pages like Grand
// Prix, there are history items with anchors. If the icon fails for the
// item, try to get the icon using the url without the ref.
jobject favicon = NULL;
WTF::String url = item->urlString();
if (item->url().hasFragmentIdentifier()) {
int refIndex = url.reverseFind('#');
url = url.substring(0, refIndex);
}
// FIXME: This method should not be used from outside WebCore and will be removed.
// http://trac.webkit.org/changeset/81484
WebCore::Image* icon = WebCore::iconDatabase().synchronousIconForPageURL(url, WebCore::IntSize(16, 16));
if (icon)
favicon = webcoreImageToJavaBitmap(env, icon);
WTF::Vector<char> data;
jbyteArray array = WebHistory::Flatten(env, data, item);
env->CallVoidMethod(realItem.get(), gWebHistoryItem.mUpdate, urlStr,
originalUrlStr, titleStr, favicon, array);
env->DeleteLocalRef(urlStr);
env->DeleteLocalRef(originalUrlStr);
env->DeleteLocalRef(titleStr);
if (favicon)
env->DeleteLocalRef(favicon);
env->DeleteLocalRef(array);
}