Commit 029ee37f authored by tkent@chromium.org's avatar tkent@chromium.org

Oilpan: Prepare to move FormSubmission to Oilpan heap.

This removes two Persistent<>s, and add one Persistent<>.

BUG=

Review URL: https://codereview.chromium.org/333593002

git-svn-id: svn://svn.chromium.org/blink/trunk@175990 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent c2822b4a
...@@ -330,7 +330,7 @@ void HTMLFormElement::submitFromJavaScript() ...@@ -330,7 +330,7 @@ void HTMLFormElement::submitFromJavaScript()
submit(0, false, UserGestureIndicator::processingUserGesture(), SubmittedByJavaScript); submit(0, false, UserGestureIndicator::processingUserGesture(), SubmittedByJavaScript);
} }
void HTMLFormElement::submitDialog(PassRefPtr<FormSubmission> formSubmission) void HTMLFormElement::submitDialog(PassRefPtrWillBeRawPtr<FormSubmission> formSubmission)
{ {
for (Node* node = this; node; node = node->parentOrShadowHostNode()) { for (Node* node = this; node; node = node->parentOrShadowHostNode()) {
if (isHTMLDialogElement(*node)) { if (isHTMLDialogElement(*node)) {
...@@ -369,7 +369,7 @@ void HTMLFormElement::submit(Event* event, bool activateSubmitButton, bool proce ...@@ -369,7 +369,7 @@ void HTMLFormElement::submit(Event* event, bool activateSubmitButton, bool proce
if (needButtonActivation && firstSuccessfulSubmitButton) if (needButtonActivation && firstSuccessfulSubmitButton)
firstSuccessfulSubmitButton->setActivatedSubmit(true); firstSuccessfulSubmitButton->setActivatedSubmit(true);
RefPtr<FormSubmission> formSubmission = FormSubmission::create(this, m_attributes, event, formSubmissionTrigger); RefPtrWillBeRawPtr<FormSubmission> formSubmission = FormSubmission::create(this, m_attributes, event, formSubmissionTrigger);
EventQueueScope scopeForDialogClose; // Delay dispatching 'close' to dialog until done submitting. EventQueueScope scopeForDialogClose; // Delay dispatching 'close' to dialog until done submitting.
if (formSubmission->method() == FormSubmission::DialogMethod) if (formSubmission->method() == FormSubmission::DialogMethod)
submitDialog(formSubmission.release()); submitDialog(formSubmission.release());
...@@ -380,7 +380,7 @@ void HTMLFormElement::submit(Event* event, bool activateSubmitButton, bool proce ...@@ -380,7 +380,7 @@ void HTMLFormElement::submit(Event* event, bool activateSubmitButton, bool proce
firstSuccessfulSubmitButton->setActivatedSubmit(false); firstSuccessfulSubmitButton->setActivatedSubmit(false);
} }
void HTMLFormElement::scheduleFormSubmission(PassRefPtr<FormSubmission> submission) void HTMLFormElement::scheduleFormSubmission(PassRefPtrWillBeRawPtr<FormSubmission> submission)
{ {
ASSERT(submission->method() == FormSubmission::PostMethod || submission->method() == FormSubmission::GetMethod); ASSERT(submission->method() == FormSubmission::PostMethod || submission->method() == FormSubmission::GetMethod);
ASSERT(submission->data()); ASSERT(submission->data());
......
...@@ -136,10 +136,10 @@ private: ...@@ -136,10 +136,10 @@ private:
virtual void copyNonAttributePropertiesFromElement(const Element&) OVERRIDE; virtual void copyNonAttributePropertiesFromElement(const Element&) OVERRIDE;
void submitDialog(PassRefPtr<FormSubmission>); void submitDialog(PassRefPtrWillBeRawPtr<FormSubmission>);
void submit(Event*, bool activateSubmitButton, bool processingUserGesture, FormSubmissionTrigger); void submit(Event*, bool activateSubmitButton, bool processingUserGesture, FormSubmissionTrigger);
void scheduleFormSubmission(PassRefPtr<FormSubmission>); void scheduleFormSubmission(PassRefPtrWillBeRawPtr<FormSubmission>);
void collectAssociatedElements(Node& root, FormAssociatedElement::List&) const; void collectAssociatedElements(Node& root, FormAssociatedElement::List&) const;
void collectImageElements(Node& root, WillBeHeapVector<RawPtrWillBeMember<HTMLImageElement> >&); void collectImageElements(Node& root, WillBeHeapVector<RawPtrWillBeMember<HTMLImageElement> >&);
......
...@@ -160,7 +160,7 @@ inline FormSubmission::FormSubmission(const String& result) ...@@ -160,7 +160,7 @@ inline FormSubmission::FormSubmission(const String& result)
{ {
} }
PassRefPtr<FormSubmission> FormSubmission::create(HTMLFormElement* form, const Attributes& attributes, PassRefPtrWillBeRawPtr<Event> event, FormSubmissionTrigger trigger) PassRefPtrWillBeRawPtr<FormSubmission> FormSubmission::create(HTMLFormElement* form, const Attributes& attributes, PassRefPtrWillBeRawPtr<Event> event, FormSubmissionTrigger trigger)
{ {
ASSERT(form); ASSERT(form);
...@@ -190,8 +190,8 @@ PassRefPtr<FormSubmission> FormSubmission::create(HTMLFormElement* form, const A ...@@ -190,8 +190,8 @@ PassRefPtr<FormSubmission> FormSubmission::create(HTMLFormElement* form, const A
if (copiedAttributes.method() == DialogMethod) { if (copiedAttributes.method() == DialogMethod) {
if (submitButton) if (submitButton)
return adoptRef(new FormSubmission(submitButton->resultForDialogSubmit())); return adoptRefWillBeNoop(new FormSubmission(submitButton->resultForDialogSubmit()));
return adoptRef(new FormSubmission("")); return adoptRefWillBeNoop(new FormSubmission(""));
} }
Document& document = form->document(); Document& document = form->document();
...@@ -242,7 +242,13 @@ PassRefPtr<FormSubmission> FormSubmission::create(HTMLFormElement* form, const A ...@@ -242,7 +242,13 @@ PassRefPtr<FormSubmission> FormSubmission::create(HTMLFormElement* form, const A
formData->setIdentifier(generateFormDataIdentifier()); formData->setIdentifier(generateFormDataIdentifier());
formData->setContainsPasswordData(containsPasswordData); formData->setContainsPasswordData(containsPasswordData);
AtomicString targetOrBaseTarget = copiedAttributes.target().isEmpty() ? document.baseTarget() : copiedAttributes.target(); AtomicString targetOrBaseTarget = copiedAttributes.target().isEmpty() ? document.baseTarget() : copiedAttributes.target();
return adoptRef(new FormSubmission(copiedAttributes.method(), actionURL, targetOrBaseTarget, encodingType, FormState::create(*form, trigger), formData.release(), boundary, event)); return adoptRefWillBeNoop(new FormSubmission(copiedAttributes.method(), actionURL, targetOrBaseTarget, encodingType, FormState::create(*form, trigger), formData.release(), boundary, event));
}
void FormSubmission::trace(Visitor* visitor)
{
visitor->trace(m_formState);
visitor->trace(m_event);
} }
KURL FormSubmission::requestURL() const KURL FormSubmission::requestURL() const
......
...@@ -48,7 +48,7 @@ class FormData; ...@@ -48,7 +48,7 @@ class FormData;
struct FrameLoadRequest; struct FrameLoadRequest;
class HTMLFormElement; class HTMLFormElement;
class FormSubmission : public RefCounted<FormSubmission> { class FormSubmission : public RefCountedWillBeGarbageCollectedFinalized<FormSubmission> {
public: public:
enum Method { GetMethod, PostMethod, DialogMethod }; enum Method { GetMethod, PostMethod, DialogMethod };
...@@ -93,7 +93,8 @@ public: ...@@ -93,7 +93,8 @@ public:
String m_acceptCharset; String m_acceptCharset;
}; };
static PassRefPtr<FormSubmission> create(HTMLFormElement*, const Attributes&, PassRefPtrWillBeRawPtr<Event>, FormSubmissionTrigger); static PassRefPtrWillBeRawPtr<FormSubmission> create(HTMLFormElement*, const Attributes&, PassRefPtrWillBeRawPtr<Event>, FormSubmissionTrigger);
void trace(Visitor*);
void populateFrameLoadRequest(FrameLoadRequest&); void populateFrameLoadRequest(FrameLoadRequest&);
...@@ -122,10 +123,10 @@ private: ...@@ -122,10 +123,10 @@ private:
KURL m_action; KURL m_action;
AtomicString m_target; AtomicString m_target;
AtomicString m_contentType; AtomicString m_contentType;
RefPtrWillBePersistent<FormState> m_formState; RefPtrWillBeMember<FormState> m_formState;
RefPtr<FormData> m_formData; RefPtr<FormData> m_formData;
String m_boundary; String m_boundary;
RefPtrWillBePersistent<Event> m_event; RefPtrWillBeMember<Event> m_event;
Referrer m_referrer; Referrer m_referrer;
String m_origin; String m_origin;
String m_result; String m_result;
......
...@@ -199,7 +199,7 @@ private: ...@@ -199,7 +199,7 @@ private:
class ScheduledFormSubmission FINAL : public ScheduledNavigation { class ScheduledFormSubmission FINAL : public ScheduledNavigation {
public: public:
ScheduledFormSubmission(PassRefPtr<FormSubmission> submission, bool lockBackForwardList) ScheduledFormSubmission(PassRefPtrWillBeRawPtr<FormSubmission> submission, bool lockBackForwardList)
: ScheduledNavigation(0, lockBackForwardList, true) : ScheduledNavigation(0, lockBackForwardList, true)
, m_submission(submission) , m_submission(submission)
{ {
...@@ -221,7 +221,7 @@ public: ...@@ -221,7 +221,7 @@ public:
FormSubmission* submission() const { return m_submission.get(); } FormSubmission* submission() const { return m_submission.get(); }
private: private:
RefPtr<FormSubmission> m_submission; RefPtrWillBePersistent<FormSubmission> m_submission;
}; };
NavigationScheduler::NavigationScheduler(LocalFrame* frame) NavigationScheduler::NavigationScheduler(LocalFrame* frame)
...@@ -321,7 +321,7 @@ void NavigationScheduler::scheduleLocationChange(Document* originDocument, const ...@@ -321,7 +321,7 @@ void NavigationScheduler::scheduleLocationChange(Document* originDocument, const
schedule(adoptPtr(new ScheduledLocationChange(originDocument, url, referrer, lockBackForwardList))); schedule(adoptPtr(new ScheduledLocationChange(originDocument, url, referrer, lockBackForwardList)));
} }
void NavigationScheduler::scheduleFormSubmission(PassRefPtr<FormSubmission> submission) void NavigationScheduler::scheduleFormSubmission(PassRefPtrWillBeRawPtr<FormSubmission> submission)
{ {
ASSERT(m_frame->page()); ASSERT(m_frame->page());
schedule(adoptPtr(new ScheduledFormSubmission(submission, mustLockBackForwardList(m_frame)))); schedule(adoptPtr(new ScheduledFormSubmission(submission, mustLockBackForwardList(m_frame))));
......
...@@ -78,7 +78,7 @@ public: ...@@ -78,7 +78,7 @@ public:
void scheduleRedirect(double delay, const String& url); void scheduleRedirect(double delay, const String& url);
void scheduleLocationChange(Document*, const String& url, const Referrer& referrer, bool lockBackForwardList = true); void scheduleLocationChange(Document*, const String& url, const Referrer& referrer, bool lockBackForwardList = true);
void scheduleFormSubmission(PassRefPtr<FormSubmission>); void scheduleFormSubmission(PassRefPtrWillBeRawPtr<FormSubmission>);
void scheduleRefresh(); void scheduleRefresh();
void scheduleHistoryNavigation(int steps); void scheduleHistoryNavigation(int steps);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment