| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2010 Google, Inc. All Rights Reserved. | 2 * Copyright (C) 2010 Google, Inc. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 703 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 714 } | 714 } |
| 715 | 715 |
| 716 void HTMLDocumentParser::startBackgroundParser() | 716 void HTMLDocumentParser::startBackgroundParser() |
| 717 { | 717 { |
| 718 ASSERT(!isStopped()); | 718 ASSERT(!isStopped()); |
| 719 ASSERT(shouldUseThreading()); | 719 ASSERT(shouldUseThreading()); |
| 720 ASSERT(!m_haveBackgroundParser); | 720 ASSERT(!m_haveBackgroundParser); |
| 721 ASSERT(document()); | 721 ASSERT(document()); |
| 722 m_haveBackgroundParser = true; | 722 m_haveBackgroundParser = true; |
| 723 | 723 |
| 724 document()->frame()->frameScheduler()->setDocumentParsedInBackground(true); |
| 725 |
| 724 // Make sure that a resolver is set up, so that the correct viewport dimensi
ons will be fed to the background parser and preload scanner. | 726 // Make sure that a resolver is set up, so that the correct viewport dimensi
ons will be fed to the background parser and preload scanner. |
| 725 if (document()->loader()) | 727 if (document()->loader()) |
| 726 document()->ensureStyleResolver(); | 728 document()->ensureStyleResolver(); |
| 727 | 729 |
| 728 RefPtr<WeakReference<BackgroundHTMLParser>> reference = WeakReference<Backgr
oundHTMLParser>::createUnbound(); | 730 RefPtr<WeakReference<BackgroundHTMLParser>> reference = WeakReference<Backgr
oundHTMLParser>::createUnbound(); |
| 729 m_backgroundParser = WeakPtr<BackgroundHTMLParser>(reference); | 731 m_backgroundParser = WeakPtr<BackgroundHTMLParser>(reference); |
| 730 | 732 |
| 731 std::unique_ptr<BackgroundHTMLParser::Configuration> config = wrapUnique(new
BackgroundHTMLParser::Configuration); | 733 std::unique_ptr<BackgroundHTMLParser::Configuration> config = wrapUnique(new
BackgroundHTMLParser::Configuration); |
| 732 config->options = m_options; | 734 config->options = m_options; |
| 733 config->parser = m_weakFactory.createWeakPtr(); | 735 config->parser = m_weakFactory.createWeakPtr(); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 754 MediaValuesCached::MediaValuesCachedData(*document()), | 756 MediaValuesCached::MediaValuesCachedData(*document()), |
| 755 passed(m_loadingTaskRunner->clone())); | 757 passed(m_loadingTaskRunner->clone())); |
| 756 } | 758 } |
| 757 | 759 |
| 758 void HTMLDocumentParser::stopBackgroundParser() | 760 void HTMLDocumentParser::stopBackgroundParser() |
| 759 { | 761 { |
| 760 ASSERT(shouldUseThreading()); | 762 ASSERT(shouldUseThreading()); |
| 761 ASSERT(m_haveBackgroundParser); | 763 ASSERT(m_haveBackgroundParser); |
| 762 m_haveBackgroundParser = false; | 764 m_haveBackgroundParser = false; |
| 763 | 765 |
| 766 document()->frame()->frameScheduler()->setDocumentParsedInBackground(false); |
| 767 |
| 764 // Make this sync, as lsan triggers on some unittests if the task runner is | 768 // Make this sync, as lsan triggers on some unittests if the task runner is |
| 765 // used. Note that these lifetimes will be much more concrete if | 769 // used. Note that these lifetimes will be much more concrete if |
| 766 // ParseHTMLOnMainThread lands (the lookahead parser will be a member). | 770 // ParseHTMLOnMainThread lands (the lookahead parser will be a member). |
| 767 postTaskToLookaheadParser(Synchronous, &BackgroundHTMLParser::stop, m_backgr
oundParser); | 771 postTaskToLookaheadParser(Synchronous, &BackgroundHTMLParser::stop, m_backgr
oundParser); |
| 768 m_weakFactory.revokeAll(); | 772 m_weakFactory.revokeAll(); |
| 769 } | 773 } |
| 770 | 774 |
| 771 void HTMLDocumentParser::append(const String& inputSource) | 775 void HTMLDocumentParser::append(const String& inputSource) |
| 772 { | 776 { |
| 773 if (isStopped()) | 777 if (isStopped()) |
| (...skipping 381 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1155 (*WTF::bind(function, std::forward<Ps>(parameters)...))(); | 1159 (*WTF::bind(function, std::forward<Ps>(parameters)...))(); |
| 1156 return; | 1160 return; |
| 1157 case Asynchronous: | 1161 case Asynchronous: |
| 1158 m_loadingTaskRunner->postTask(BLINK_FROM_HERE, WTF::bind(function, std::
forward<Ps>(parameters)...)); | 1162 m_loadingTaskRunner->postTask(BLINK_FROM_HERE, WTF::bind(function, std::
forward<Ps>(parameters)...)); |
| 1159 return; | 1163 return; |
| 1160 } | 1164 } |
| 1161 NOTREACHED(); | 1165 NOTREACHED(); |
| 1162 } | 1166 } |
| 1163 | 1167 |
| 1164 } // namespace blink | 1168 } // namespace blink |
| OLD | NEW |