|
@@ -310,7 +310,8 @@ WebContents::WebContents(v8::Isolate* isolate,
|
|
|
type_(type),
|
|
|
request_id_(0),
|
|
|
background_throttling_(true),
|
|
|
- enable_devtools_(true) {
|
|
|
+ enable_devtools_(true),
|
|
|
+ is_dom_ready_(false) {
|
|
|
const mate::Dictionary options = mate::Dictionary::CreateEmpty(isolate);
|
|
|
if (type == REMOTE) {
|
|
|
web_contents->SetUserAgentOverride(GetBrowserContext()->GetUserAgent());
|
|
@@ -799,8 +800,10 @@ void WebContents::DidChangeThemeColor(SkColor theme_color) {
|
|
|
|
|
|
void WebContents::DocumentLoadedInFrame(
|
|
|
content::RenderFrameHost* render_frame_host) {
|
|
|
- if (!render_frame_host->GetParent())
|
|
|
+ if (!render_frame_host->GetParent()) {
|
|
|
+ is_dom_ready_ = true;
|
|
|
Emit("dom-ready");
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
void WebContents::DidFinishLoad(content::RenderFrameHost* render_frame_host,
|
|
@@ -822,6 +825,7 @@ void WebContents::DidFailLoad(content::RenderFrameHost* render_frame_host,
|
|
|
}
|
|
|
|
|
|
void WebContents::DidStartLoading() {
|
|
|
+ is_dom_ready_ = false;
|
|
|
Emit("did-start-loading");
|
|
|
}
|
|
|
|
|
@@ -1343,6 +1347,10 @@ bool WebContents::IsAudioMuted() {
|
|
|
return web_contents()->IsAudioMuted();
|
|
|
}
|
|
|
|
|
|
+bool WebContents::IsDOMReady() const {
|
|
|
+ return is_dom_ready_;
|
|
|
+}
|
|
|
+
|
|
|
void WebContents::Print(mate::Arguments* args) {
|
|
|
PrintSettings settings = { false, false, base::string16() };
|
|
|
if (args->Length() >= 1 && !args->GetNext(&settings)) {
|
|
@@ -1934,6 +1942,7 @@ void WebContents::BuildPrototype(v8::Isolate* isolate,
|
|
|
&WebContents::SetIgnoreMenuShortcuts)
|
|
|
.SetMethod("setAudioMuted", &WebContents::SetAudioMuted)
|
|
|
.SetMethod("isAudioMuted", &WebContents::IsAudioMuted)
|
|
|
+ .SetMethod("isDomReady", &WebContents::IsDOMReady)
|
|
|
.SetMethod("undo", &WebContents::Undo)
|
|
|
.SetMethod("redo", &WebContents::Redo)
|
|
|
.SetMethod("cut", &WebContents::Cut)
|