Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1643)

Unified Diff: Source/core/rendering/RenderFileUploadControl.cpp

Issue 19510005: [oilpan] Completely move HTMLFormControlElement's hierarchy to the managed heap Base URL: svn://svn.chromium.org/blink/branches/oilpan
Patch Set: Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/rendering/RenderFileUploadControl.h ('k') | Source/core/rendering/RenderListBox.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/rendering/RenderFileUploadControl.cpp
diff --git a/Source/core/rendering/RenderFileUploadControl.cpp b/Source/core/rendering/RenderFileUploadControl.cpp
index 4b2b657bb54fdffb6e8df7d3e0901a4d2e9be5c5..eb8e1b317d8e23a331dafc149aebbd244c803668 100644
--- a/Source/core/rendering/RenderFileUploadControl.cpp
+++ b/Source/core/rendering/RenderFileUploadControl.cpp
@@ -51,8 +51,8 @@ const int iconFilenameSpacing = 2;
const int defaultWidthNumChars = 34;
const int buttonShadowHeight = 2;
-RenderFileUploadControl::RenderFileUploadControl(HTMLInputElement* input)
- : RenderBlock(input)
+RenderFileUploadControl::RenderFileUploadControl(Handle<HTMLInputElement> input)
+ : RenderBlock(input.raw())
, m_canReceiveDroppedFiles(input->canReceiveDroppedFiles())
{
}
@@ -68,10 +68,10 @@ bool RenderFileUploadControl::canBeReplacedWithInlineRunIn() const
void RenderFileUploadControl::updateFromElement()
{
- HTMLInputElement* input = static_cast<HTMLInputElement*>(node());
+ Handle<HTMLInputElement> input(static_cast<HTMLInputElement*>(node()));
ASSERT(input->isFileUpload());
- if (HTMLInputElement* button = uploadButton()) {
+ if (Handle<HTMLInputElement> button = uploadButton()) {
bool newCanReceiveDroppedFilesState = input->canReceiveDroppedFiles();
if (m_canReceiveDroppedFiles != newCanReceiveDroppedFilesState) {
m_canReceiveDroppedFiles = newCanReceiveDroppedFilesState;
@@ -87,14 +87,14 @@ void RenderFileUploadControl::updateFromElement()
repaint();
}
-static int nodeWidth(Node* node)
+static int nodeWidth(Handle<Node> node)
{
return (node && node->renderBox()) ? node->renderBox()->pixelSnappedWidth() : 0;
}
int RenderFileUploadControl::maxFilenameWidth() const
{
- HTMLInputElement* input = static_cast<HTMLInputElement*>(node());
+ Handle<HTMLInputElement> input(static_cast<HTMLInputElement*>(node()));
return max(0, contentBoxRect().pixelSnappedWidth() - nodeWidth(uploadButton()) - afterButtonSpacing
- (input->icon() ? iconWidth + iconFilenameSpacing : 0));
}
@@ -123,11 +123,11 @@ void RenderFileUploadControl::paintObject(PaintInfo& paintInfo, const LayoutPoin
// Determine where the filename should be placed
LayoutUnit contentLeft = paintOffset.x() + borderLeft() + paddingLeft();
- HTMLInputElement* button = uploadButton();
+ Handle<HTMLInputElement> button = uploadButton();
if (!button)
return;
- HTMLInputElement* input = static_cast<HTMLInputElement*>(node());
+ Handle<HTMLInputElement> input(static_cast<HTMLInputElement*>(node()));
LayoutUnit buttonWidth = nodeWidth(button);
LayoutUnit buttonAndIconWidth = buttonWidth + afterButtonSpacing
+ (input->icon() ? iconWidth + iconFilenameSpacing : 0);
@@ -181,7 +181,7 @@ void RenderFileUploadControl::computeIntrinsicLogicalWidths(LayoutUnit& minLogic
const String label = theme()->fileListDefaultLabel(node()->toInputElement()->multiple());
float defaultLabelWidth = font.width(constructTextRun(renderer, font, label, style(), TextRun::AllowTrailingExpansion));
- if (HTMLInputElement* button = uploadButton())
+ if (Handle<HTMLInputElement> button = uploadButton())
if (RenderObject* buttonRenderer = button->renderer())
defaultLabelWidth += buttonRenderer->maxPreferredLogicalWidth() + afterButtonSpacing;
maxLogicalWidth = static_cast<int>(ceilf(max(minDefaultLabelWidth, defaultLabelWidth)));
@@ -224,19 +224,19 @@ VisiblePosition RenderFileUploadControl::positionForPoint(const LayoutPoint&)
return VisiblePosition();
}
-HTMLInputElement* RenderFileUploadControl::uploadButton() const
+Result<HTMLInputElement> RenderFileUploadControl::uploadButton() const
{
- HTMLInputElement* input = static_cast<HTMLInputElement*>(node());
+ Handle<HTMLInputElement> input(static_cast<HTMLInputElement*>(node()));
ASSERT(input->shadow());
Node* buttonNode = input->shadow()->oldestShadowRoot()->firstChild();
- return buttonNode && buttonNode->isHTMLElement() && buttonNode->hasTagName(inputTag) ? static_cast<HTMLInputElement*>(buttonNode) : 0;
+ return buttonNode && buttonNode->isHTMLElement() && buttonNode->hasTagName(inputTag) ? Handle<HTMLInputElement>(static_cast<HTMLInputElement*>(buttonNode)) : nullptr;
}
String RenderFileUploadControl::buttonValue()
{
- if (HTMLInputElement* button = uploadButton())
+ if (Handle<HTMLInputElement> button = uploadButton())
return button->value();
return String();
@@ -244,7 +244,7 @@ String RenderFileUploadControl::buttonValue()
String RenderFileUploadControl::fileTextValue() const
{
- HTMLInputElement* input = static_cast<HTMLInputElement*>(node());
+ Handle<HTMLInputElement> input(static_cast<HTMLInputElement*>(node()));
ASSERT(input->files());
return theme()->fileListNameForWidth(input->files(), style()->font(), maxFilenameWidth(), input->multiple());
}
« no previous file with comments | « Source/core/rendering/RenderFileUploadControl.h ('k') | Source/core/rendering/RenderListBox.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698