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

Unified Diff: chrome/browser/automation/automation_provider_observers.cc

Issue 8395044: Disable the Developer Tools when Javascript is disabled. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebased Created 9 years, 1 month 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
Index: chrome/browser/automation/automation_provider_observers.cc
diff --git a/chrome/browser/automation/automation_provider_observers.cc b/chrome/browser/automation/automation_provider_observers.cc
index c9be7990458b511b1e68f81dfe0bb127967e59e1..aff40eb33ec614d03a47b16197a6aedbcad8a7f8 100644
--- a/chrome/browser/automation/automation_provider_observers.cc
+++ b/chrome/browser/automation/automation_provider_observers.cc
@@ -27,6 +27,7 @@
#include "chrome/browser/automation/automation_provider_json.h"
#include "chrome/browser/bookmarks/bookmark_model.h"
#include "chrome/browser/browser_process.h"
+#include "chrome/browser/content_settings/tab_specific_content_settings.h"
#include "chrome/browser/dom_operation_notification_details.h"
#include "chrome/browser/extensions/crx_installer.h"
#include "chrome/browser/extensions/extension_host.h"
@@ -69,6 +70,7 @@
#include "chrome/browser/ui/webui/ntp/recently_closed_tabs_handler.h"
#include "chrome/common/automation_messages.h"
#include "chrome/common/chrome_notification_types.h"
+#include "chrome/common/content_settings_types.h"
#include "chrome/common/extensions/extension.h"
#include "content/browser/download/save_package.h"
#include "content/browser/renderer_host/render_process_host.h"
@@ -1164,6 +1166,8 @@ DomOperationObserver::DomOperationObserver() {
content::NotificationService::AllSources());
registrar_.Add(this, chrome::NOTIFICATION_APP_MODAL_DIALOG_SHOWN,
content::NotificationService::AllSources());
+ registrar_.Add(this, chrome::NOTIFICATION_TAB_CONTENT_SETTINGS_CHANGED,
+ content::NotificationService::AllSources());
}
DomOperationObserver::~DomOperationObserver() {}
@@ -1176,6 +1180,17 @@ void DomOperationObserver::Observe(
OnDomOperationCompleted(dom_op_details->json());
} else if (type == chrome::NOTIFICATION_APP_MODAL_DIALOG_SHOWN) {
OnModalDialogShown();
+ } else if (type == chrome::NOTIFICATION_TAB_CONTENT_SETTINGS_CHANGED) {
+ TabContents* tab_contents = content::Source<TabContents>(source).ptr();
+ if (tab_contents) {
+ TabContentsWrapper* wrapper =
+ TabContentsWrapper::GetCurrentWrapperForContents(tab_contents);
+ if (wrapper &&
+ wrapper->content_settings()->IsContentBlocked(
+ CONTENT_SETTINGS_TYPE_JAVASCRIPT)) {
+ OnJavascriptBlocked();
+ }
+ }
}
}
@@ -1215,6 +1230,14 @@ void DomOperationMessageSender::OnModalDialogShown() {
}
}
+void DomOperationMessageSender::OnJavascriptBlocked() {
+ if (automation_ && use_json_interface_) {
+ AutomationJSONReply(automation_, reply_message_.release())
+ .SendError("Javascript execution was blocked");
+ delete this;
+ }
+}
+
DocumentPrintedNotificationObserver::DocumentPrintedNotificationObserver(
AutomationProvider* automation, IPC::Message* reply_message)
: automation_(automation->AsWeakPtr()),
@@ -1934,7 +1957,6 @@ void PageSnapshotTaker::Observe(int type,
SendMessage(false, "a modal dialog is active");
}
-
void PageSnapshotTaker::SendMessage(bool success,
const std::string& error_msg) {
if (automation_) {
« no previous file with comments | « chrome/browser/automation/automation_provider_observers.h ('k') | chrome/browser/policy/configuration_policy_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698