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

Side by Side Diff: chrome/browser/ui/tab_contents/per_tab_prefs_tab_helper.cc

Issue 8716004: Add per-tab "JavaScript enabled" preference. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed comments and fixed fwd declaration Created 9 years 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/ui/tab_contents/per_tab_prefs_tab_helper.h"
6
7 #include "chrome/browser/prefs/pref_service.h"
8 #include "chrome/browser/profiles/profile.h"
9 #include "chrome/browser/ui/constrained_window_tab_helper.h"
10 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
11 #include "chrome/common/pref_names.h"
12 #include "webkit/glue/webpreferences.h"
13
14 const char* kPerTabPrefsToObserve[] = {
15 prefs::kWebKitJavascriptEnabled
16 };
17
18 const int kPerTabPrefsToObserveLength = arraysize(kPerTabPrefsToObserve);
19
20 PerTabPrefsTabHelper::PerTabPrefsTabHelper(
21 TabContentsWrapper* wrapper)
22 : TabContentsObserver(wrapper->tab_contents()),
23 wrapper_(wrapper) {
24 prefs_.reset(
25 wrapper_->profile()->GetPrefs()->CreatePrefServiceWithPerTabPrefStore());
26 RegisterPerTabUserPrefs(prefs_.get());
27
28 // Notify the wrapper about all interested prefs changes.
29 pref_change_registrar_.Init(prefs_.get());
30 for (int i = 0; i < kPerTabPrefsToObserveLength; ++i) {
31 pref_change_registrar_.Add(kPerTabPrefsToObserve[i], wrapper_);
32 }
33 }
34
35 PerTabPrefsTabHelper::~PerTabPrefsTabHelper() {
36 }
37
38 void PerTabPrefsTabHelper::OverrideWebPreferences(WebPreferences* prefs) {
39 prefs->javascript_enabled =
40 prefs_->GetBoolean(prefs::kWebKitJavascriptEnabled);
41 }
42
43 void PerTabPrefsTabHelper::RegisterPerTabUserPrefs(PrefService* prefs) {
44 WebPreferences pref_defaults;
45
46 prefs->RegisterBooleanPref(prefs::kWebKitJavascriptEnabled,
47 pref_defaults.javascript_enabled,
48 PrefService::UNSYNCABLE_PREF);
49 }
50
51 void PerTabPrefsTabHelper::TabContentsDestroyed(TabContents* tab) {
52 pref_change_registrar_.RemoveAll();
53 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698