本文整理汇总了C++中RenderEmbeddedObject::style方法的典型用法代码示例。如果您正苦于以下问题:C++ RenderEmbeddedObject::style方法的具体用法?C++ RenderEmbeddedObject::style怎么用?C++ RenderEmbeddedObject::style使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类RenderEmbeddedObject
的用法示例。
在下文中一共展示了RenderEmbeddedObject::style方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: isTopLevelFullPagePlugin
bool HTMLPlugInImageElement::isTopLevelFullPagePlugin(const RenderEmbeddedObject& renderer) const
{
Frame& frame = *document().frame();
if (!frame.isMainFrame())
return false;
auto& style = renderer.style();
IntSize visibleSize = frame.view()->visibleSize();
LayoutRect contentRect = renderer.contentBoxRect();
int contentWidth = contentRect.width();
int contentHeight = contentRect.height();
return is100Percent(style.width()) && is100Percent(style.height()) && contentWidth * contentHeight > visibleSize.area() * sizingFullPageAreaRatioThreshold;
}
示例2: updateWidget
void HTMLAppletElement::updateWidget(PluginCreationOption pluginCreationOption)
{
setNeedsWidgetUpdate(false);
// FIXME: This should ASSERT isFinishedParsingChildren() instead.
if (!isFinishedParsingChildren())
return;
#if PLATFORM(IOS)
UNUSED_PARAM(pluginCreationOption);
#else
// FIXME: It's sadness that we have this special case here.
// See http://trac.webkit.org/changeset/25128 and
// plugins/netscape-plugin-setwindow-size.html
if (pluginCreationOption == CreateOnlyNonNetscapePlugins) {
// Ensure updateWidget() is called again during layout to create the Netscape plug-in.
setNeedsWidgetUpdate(true);
return;
}
RenderEmbeddedObject* renderer = renderEmbeddedObject();
LayoutUnit contentWidth = renderer->style().width().isFixed() ? LayoutUnit(renderer->style().width().value()) :
renderer->width() - renderer->horizontalBorderAndPaddingExtent();
LayoutUnit contentHeight = renderer->style().height().isFixed() ? LayoutUnit(renderer->style().height().value()) :
renderer->height() - renderer->verticalBorderAndPaddingExtent();
Vector<String> paramNames;
Vector<String> paramValues;
paramNames.append("code");
paramValues.append(fastGetAttribute(codeAttr).string());
const AtomicString& codeBase = fastGetAttribute(codebaseAttr);
if (!codeBase.isNull()) {
paramNames.append(ASCIILiteral("codeBase"));
paramValues.append(codeBase.string());
}
const AtomicString& name = document().isHTMLDocument() ? getNameAttribute() : getIdAttribute();
if (!name.isNull()) {
paramNames.append("name");
paramValues.append(name.string());
}
const AtomicString& archive = fastGetAttribute(archiveAttr);
if (!archive.isNull()) {
paramNames.append(ASCIILiteral("archive"));
paramValues.append(archive.string());
}
paramNames.append(ASCIILiteral("baseURL"));
paramValues.append(document().baseURL().string());
const AtomicString& mayScript = fastGetAttribute(mayscriptAttr);
if (!mayScript.isNull()) {
paramNames.append(ASCIILiteral("mayScript"));
paramValues.append(mayScript.string());
}
for (auto& param : childrenOfType<HTMLParamElement>(*this)) {
if (param.name().isEmpty())
continue;
paramNames.append(param.name());
paramValues.append(param.value());
}
Frame* frame = document().frame();
ASSERT(frame);
renderer->setWidget(frame->loader().subframeLoader().createJavaAppletWidget(roundedIntSize(LayoutSize(contentWidth, contentHeight)), *this, paramNames, paramValues));
#endif // !PLATFORM(IOS)
}
示例3: updateWidget
void HTMLAppletElement::updateWidget(PluginCreationOption)
{
setNeedsWidgetUpdate(false);
// FIXME: This should ASSERT isFinishedParsingChildren() instead.
if (!isFinishedParsingChildren())
return;
RenderEmbeddedObject* renderer = renderEmbeddedObject();
Frame* frame = document().frame();
ASSERT(frame);
LayoutUnit contentWidth = renderer->style()->width().isFixed() ? LayoutUnit(renderer->style()->width().value()) :
renderer->width() - renderer->borderAndPaddingWidth();
LayoutUnit contentHeight = renderer->style()->height().isFixed() ? LayoutUnit(renderer->style()->height().value()) :
renderer->height() - renderer->borderAndPaddingHeight();
Vector<String> paramNames;
Vector<String> paramValues;
paramNames.append("code");
paramValues.append(getAttribute(codeAttr).string());
const AtomicString& codeBase = getAttribute(codebaseAttr);
if (!codeBase.isNull()) {
KURL codeBaseURL = document().completeURL(codeBase);
if (!document().securityOrigin()->canDisplay(codeBaseURL)) {
FrameLoader::reportLocalLoadFailed(frame, codeBaseURL.string());
return;
}
const char javaAppletMimeType[] = "application/x-java-applet";
if (!document().contentSecurityPolicy()->allowObjectFromSource(codeBaseURL)
|| !document().contentSecurityPolicy()->allowPluginType(javaAppletMimeType, javaAppletMimeType, codeBaseURL))
return;
paramNames.append("codeBase");
paramValues.append(codeBase.string());
}
const AtomicString& name = document().isHTMLDocument() ? getNameAttribute() : getIdAttribute();
if (!name.isNull()) {
paramNames.append("name");
paramValues.append(name.string());
}
const AtomicString& archive = getAttribute(archiveAttr);
if (!archive.isNull()) {
paramNames.append("archive");
paramValues.append(archive.string());
}
paramNames.append("baseURL");
KURL baseURL = document().baseURL();
paramValues.append(baseURL.string());
const AtomicString& mayScript = getAttribute(mayscriptAttr);
if (!mayScript.isNull()) {
paramNames.append("mayScript");
paramValues.append(mayScript.string());
}
for (Node* child = firstChild(); child; child = child->nextSibling()) {
if (!child->hasTagName(paramTag))
continue;
HTMLParamElement* param = toHTMLParamElement(child);
if (param->name().isEmpty())
continue;
paramNames.append(param->name());
paramValues.append(param->value());
}
RefPtr<Widget> widget;
if (frame->loader()->allowPlugins(AboutToInstantiatePlugin))
widget = frame->loader()->client()->createJavaAppletWidget(roundedIntSize(LayoutSize(contentWidth, contentHeight)), this, baseURL, paramNames, paramValues);
if (!widget) {
if (!renderer->showsUnavailablePluginIndicator())
renderer->setPluginUnavailabilityReason(RenderEmbeddedObject::PluginMissing);
return;
}
frame->loader()->setContainsPlugins();
renderer->setWidget(widget);
}
示例4: updateWidgetInternal
void HTMLAppletElement::updateWidgetInternal()
{
ASSERT(!m_isDelayingLoadEvent);
setNeedsWidgetUpdate(false);
// FIXME: This should ASSERT isFinishedParsingChildren() instead.
if (!isFinishedParsingChildren())
return;
RenderEmbeddedObject* renderer = renderEmbeddedObject();
Frame* frame = document().frame();
ASSERT(frame);
LayoutUnit contentWidth = renderer->style()->width().isFixed() ? LayoutUnit(renderer->style()->width().value()) :
renderer->width() - renderer->borderAndPaddingWidth();
LayoutUnit contentHeight = renderer->style()->height().isFixed() ? LayoutUnit(renderer->style()->height().value()) :
renderer->height() - renderer->borderAndPaddingHeight();
Vector<String> paramNames;
Vector<String> paramValues;
const AtomicString& codeBase = getAttribute(codebaseAttr);
if (!codeBase.isNull()) {
KURL codeBaseURL = document().completeURL(codeBase);
paramNames.append("codeBase");
paramValues.append(codeBase.string());
}
const AtomicString& archive = getAttribute(archiveAttr);
if (!archive.isNull()) {
paramNames.append("archive");
paramValues.append(archive.string());
}
const AtomicString& code = getAttribute(codeAttr);
paramNames.append("code");
paramValues.append(code.string());
// If the 'codebase' attribute is set, it serves as a relative root for the file that the Java
// plugin will load. If the 'code' attribute is set, and the 'archive' is not set, then we need
// to check the url generated by resolving 'code' against 'codebase'. If the 'archive'
// attribute is set, then 'code' points to a class inside the archive, so we need to check the
// url generated by resolving 'archive' against 'codebase'.
KURL urlToCheck;
KURL rootURL = codeBase.isNull() ? document().url() : document().completeURL(codeBase);
if (!archive.isNull())
urlToCheck = KURL(rootURL, archive);
else if (!code.isNull())
urlToCheck = KURL(rootURL, code);
if (!canEmbedURL(urlToCheck))
return;
const AtomicString& name = document().isHTMLDocument() ? getNameAttribute() : getIdAttribute();
if (!name.isNull()) {
paramNames.append("name");
paramValues.append(name.string());
}
paramNames.append("baseURL");
KURL baseURL = document().baseURL();
paramValues.append(baseURL.string());
const AtomicString& mayScript = getAttribute(mayscriptAttr);
if (!mayScript.isNull()) {
paramNames.append("mayScript");
paramValues.append(mayScript.string());
}
for (Node* child = firstChild(); child; child = child->nextSibling()) {
if (!child->hasTagName(paramTag))
continue;
HTMLParamElement* param = toHTMLParamElement(child);
if (param->name().isEmpty())
continue;
paramNames.append(param->name());
paramValues.append(param->value());
}
RefPtr<Widget> widget;
if (frame->loader().allowPlugins(AboutToInstantiatePlugin))
widget = frame->loader().client()->createJavaAppletWidget(roundedIntSize(LayoutSize(contentWidth, contentHeight)), this, baseURL, paramNames, paramValues);
if (!widget) {
if (!renderer->showsUnavailablePluginIndicator())
renderer->setPluginUnavailabilityReason(RenderEmbeddedObject::PluginMissing);
return;
}
document().setContainsPlugins();
renderer->setWidget(widget);
}