Bug 1061469 - part 9: defaultView should be null for imports. r=mrbkap

This commit is contained in:
Gabor Krizsanits 2014-10-02 09:54:26 +02:00
Родитель 2e91061d2a
Коммит e66325cbde
5 изменённых файлов: 41 добавлений и 2 удалений

Просмотреть файл

@ -2243,7 +2243,8 @@ public:
void SetDir(const nsAString& aDirection);
nsIDOMWindow* GetDefaultView() const
{
return GetWindow();
// For Imports the defaultView is always null.
return mMasterDocument ? nullptr : GetWindow();
}
Element* GetActiveElement();
bool HasFocus(mozilla::ErrorResult& rv) const;
@ -2738,6 +2739,8 @@ protected:
uint32_t mBlockDOMContentLoaded;
bool mDidFireDOMContentLoaded:1;
nsCOMPtr<nsIDocument> mMasterDocument;
};
NS_DEFINE_STATIC_IID_ACCESSOR(nsIDocument, NS_IDOCUMENT_IID)

Просмотреть файл

@ -1773,7 +1773,6 @@ private:
CSPErrorQueue mCSPWebConsoleErrorQueue;
nsCOMPtr<nsIDocument> mMasterDocument;
nsRefPtr<mozilla::dom::ImportManager> mImportManager;
nsTArray<nsCOMPtr<nsINode> > mSubImportLinks;

Просмотреть файл

@ -0,0 +1,4 @@
<!DOCTYPE html>
<head>
</head>
<body>Simple import</body>

Просмотреть файл

@ -36,6 +36,7 @@ support-files =
file_cycle_5_C.html
file_cycle_5_D.html
file_encoding.html
file_simple_import.html
[test_cycle_1.html]
skip-if = toolkit == 'gonk' # nested imports fail on b2g emulator
@ -48,3 +49,4 @@ skip-if = toolkit == 'gonk' # nested imports fail on b2g emulator
[test_cycle_5.html]
skip-if = toolkit == 'gonk' # nested imports fail on b2g emulator
[test_encoding.html]
[test_defaultView.html]

Просмотреть файл

@ -0,0 +1,31 @@
<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=1061469
-->
<head>
<title>Test for Bug 1061469</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
</head>
<body>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1061469">Mozilla Bug 1061469</a>
<script type="text/javascript">
SimpleTest.waitForExplicitFinish();
var success = false;
function loaded() {
success = true;
}
function failed() {
ok(false, "Import loading failed");
}
</script>
<link rel="import" href="file_simple_import.html" id="import" onload="loaded()" onerror="failed()"></link>
<script type="text/javascript">
document.defaultView;
is(document.getElementById("import").import.defaultView, null, "defaultView is always null for imports");
SimpleTest.finish();
</script>
</body>
</html>