Discussion:
[chromium-bugs] Re: Issue 448172 in chromium: chrome.proxy.settings.get 'details' parameter in callback is undefined
c***@googlecode.com
2015-01-16 07:36:06 UTC
Permalink
Updates:
Labels: Needs-Feedback

Comment #2 on issue 448172 by ***@chromium.org:
chrome.proxy.settings.get 'details' parameter in callback is undefined
https://code.google.com/p/chromium/issues/detail?id=448172

lucyhe@, Thanks for filing. Can you please provide a sample extension to
triage this issue further?
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/a/chromium.org/group/chromium-bugs

To unsubscribe from this group and stop receiving emails from it, send an email to chromium-bugs+***@chromium.org.
c***@googlecode.com
2015-01-16 18:11:48 UTC
Permalink
Comment #3 on issue 448172 by ***@google.com:
chrome.proxy.settings.get 'details' parameter in callback is undefined
https://code.google.com/p/chromium/issues/detail?id=448172

Thanks for taking a look! I've attached a sample where the expected
behaviour is observed in 39.0.2171.95, and the error is seen in
40.0.2214.85 beta (64-bit).
(Attachment should be unzipped and loaded as an unpacked extension.)

Attachments:
sample-extension.zip 6.7 KB
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/a/chromium.org/group/chromium-bugs

To unsubscribe from this group and stop receiving emails from it, send an email to chromium-bugs+***@chromium.org.
c***@googlecode.com
2015-01-19 08:17:29 UTC
Permalink
Updates:
Status: Assigned
Owner: ***@chromium.org
Labels: -Pri-2 -Type-Bug -OS-Mac -Needs-Feedback Pri-1 Type-Bug-Regression
OS-All M-40

Comment #4 on issue 448172 by ***@chromium.org:
chrome.proxy.settings.get 'details' parameter in callback is undefined
https://code.google.com/p/chromium/issues/detail?id=448172

Thank you for providing Sample Extension. Able to reproduce the issue on
Windows and Linux as well.

This is a regression issue broken in M40 and below is the Bisect Info:

CHANGELOG URL:
https://chromium.googlesource.com/chromium/src/+log/8b8f3285ce31b886805b3ad0f428b96539bc045b..e825878113bab9d4d993ce5f5440fb2caf942247

Blink Roll:
https://chromium.googlesource.com/chromium/blink/+log/f05984fee3be37b9e401b635885c67161aaaf123..20feb3edc199015a96b39c081d50a083cf39ac87

From Blink roll, suspecting -
https://chromium.googlesource.com/chromium/blink/+/b70edf7ad1227eb73b0f99c9a9b7b65f955683ed
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/a/chromium.org/group/chromium-bugs

To unsubscribe from this group and stop receiving emails from it, send an email to chromium-bugs+***@chromium.org.
c***@googlecode.com
2015-01-28 15:12:51 UTC
Permalink
Comment #5 on issue 448172 by ***@gmail.com:
chrome.proxy.settings.get 'details' parameter in callback is undefined
https://code.google.com/p/chromium/issues/detail?id=448172

In 41.0.2272.12 (64-bit) the 'details' object can be logged in the console.
But it broke in 40.0.2214.93(x86) ...
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/a/chromium.org/group/chromium-bugs

To unsubscribe from this group and stop receiving emails from it, send an email to chromium-bugs+***@chromium.org.
c***@googlecode.com
2015-01-28 15:17:51 UTC
Permalink
Comment #6 on issue 448172 by ***@gmail.com:
chrome.proxy.settings.get 'details' parameter in callback is undefined
https://code.google.com/p/chromium/issues/detail?id=448172

In 41.0.2272.12 (64-bit) the 'details' object can be logged in the console.
But the function was broken in 40.0.2214.93(x86) ...
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/a/chromium.org/group/chromium-bugs

To unsubscribe from this group and stop receiving emails from it, send an email to chromium-bugs+***@chromium.org.
c***@googlecode.com
2015-01-29 01:33:02 UTC
Permalink
Comment #7 on issue 448172 by ***@gmail.com:
chrome.proxy.settings.get 'details' parameter in callback is undefined
https://code.google.com/p/chromium/issues/detail?id=448172

I found something strange.
The issue is affecting all 40+ version.(tested in 42.0.2288.6 (64-bit))
But if you have installed the extension in 38 and then update Chrome to 40,
extension will work fine.
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/a/chromium.org/group/chromium-bugs

To unsubscribe from this group and stop receiving emails from it, send an email to chromium-bugs+***@chromium.org.
c***@googlecode.com
2015-01-29 16:49:40 UTC
Permalink
Updates:
Status: Started

Comment #10 on issue 448172 by ***@chromium.org:
chrome.proxy.settings.get 'details' parameter in callback is undefined
https://code.google.com/p/chromium/issues/detail?id=448172

(No comment was entered for this change.)
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/a/chromium.org/group/chromium-bugs

To unsubscribe from this group and stop receiving emails from it, send an email to chromium-bugs+***@chromium.org.
c***@googlecode.com
2015-01-29 17:37:43 UTC
Permalink
Comment #11 on issue 448172 by ***@chromium.org:
chrome.proxy.settings.get 'details' parameter in callback is undefined
https://code.google.com/p/chromium/issues/detail?id=448172

Here are the errors I see in the logs when I repro:
[20529:20529:0129/090741:ERROR:proxy_api.cc(145)] Cannot determine proxy
mode.
[20529:20529:0129/090741:ERROR:preference_api.cc(613)] Internal error:
Stored value for preference 'proxy' cannot be converted properly.
[20529:20529:0129/090741:INFO:CONSOLE(2)] "undefined", source: (2)
[20529:20529:0129/090741:INFO:CONSOLE(0)] "Unchecked runtime.lastError
while running types.ChromeSetting.get: Unknown error.", source:
chrome-extension://pfmgfdlgomnbgkofeojodiodmgpgmkac/popup.html (0)
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/a/chromium.org/group/chromium-bugs

To unsubscribe from this group and stop receiving emails from it, send an email to chromium-bugs+***@chromium.org.
c***@googlecode.com
2015-01-29 17:54:43 UTC
Permalink
Comment #12 on issue 448172 by ***@chromium.org:
chrome.proxy.settings.get 'details' parameter in callback is undefined
https://code.google.com/p/chromium/issues/detail?id=448172

What does the preferences entry for proxy look like?
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/a/chromium.org/group/chromium-bugs

To unsubscribe from this group and stop receiving emails from it, send an email to chromium-bugs+***@chromium.org.
c***@googlecode.com
2015-01-30 05:41:56 UTC
Permalink
Comment #18 on issue 448172 by ***@gmail.com:
chrome.proxy.settings.get 'details' parameter in callback is undefined
https://code.google.com/p/chromium/issues/detail?id=448172

We've been bitten by this bug as well. I can confirm that prior to
v40 "chrome.proxy.settings.get" without a previous call to ".set" used to
return proxy settings currently in effect.

One reason to read proxy settings without setting them first is to
determine the current 'levelOfControl' so that an extension could know if
it can override proxy settings. Currently we have to resort to a hack,
treating `details === undefined` as `details.levelOfControl
== 'controllable_by_this_extension'` in a callback to
`chrome.proxy.settings.get()`.
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/a/chromium.org/group/chromium-bugs

To unsubscribe from this group and stop receiving emails from it, send an email to chromium-bugs+***@chromium.org.
c***@googlecode.com
2015-01-30 06:23:59 UTC
Permalink
Comment #19 on issue 448172 by ***@gmail.com:
chrome.proxy.settings.get 'details' parameter in callback is undefined
https://code.google.com/p/chromium/issues/detail?id=448172

And the official extension document said that the details is a object not
a 'undefined'
https://developer.chrome.com/extensions/types#ChromeSetting
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/a/chromium.org/group/chromium-bugs

To unsubscribe from this group and stop receiving emails from it, send an email to chromium-bugs+***@chromium.org.
c***@googlecode.com
2015-01-30 06:42:59 UTC
Permalink
Comment #20 on issue 448172 by ***@gmail.com:
chrome.proxy.settings.get 'details' parameter in callback is undefined
https://code.google.com/p/chromium/issues/detail?id=448172

output of "chrome.proxy.settings.get({},
function(details){console.log(details);});"
v38:
chrome.proxy.settings.get({}, function(details){console.log(details);})
undefined
Object {levelOfControl: "controllable_by_this_extension", value: Object}
levelOfControl: "controllable_by_this_extension"
value: Object
mode: "direct"
....
v39: same as v38
chrome.proxy.settings.get({}, function(details){console.log(details);})
undefined
Object {levelOfControl: "controllable_by_this_extension", value: Object}
levelOfControl: "controllable_by_this_extension"
value: Object
mode: "direct"
....

Attachments:
捕获.JPG 35.0 KB
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/a/chromium.org/group/chromium-bugs

To unsubscribe from this group and stop receiving emails from it, send an email to chromium-bugs+***@chromium.org.
c***@googlecode.com
2015-01-30 06:44:59 UTC
Permalink
Comment #21 on issue 448172 by ***@gmail.com:
chrome.proxy.settings.get 'details' parameter in callback is undefined
https://code.google.com/p/chromium/issues/detail?id=448172

output of "chrome.proxy.settings.get({},
function(details){console.log(details);});"
v38:
chrome.proxy.settings.get({}, function(details){console.log(details);})
undefined
Object {levelOfControl: "controllable_by_this_extension", value: Object}
levelOfControl: "controllable_by_this_extension"
value: Object
mode: "direct"
....
v39: like v38
chrome.proxy.settings.get({}, function(details){console.log(details);})
undefined
Object {levelOfControl: "controllable_by_this_extension", value: Object}
levelOfControl: "controllable_by_this_extension"
value: Object
mode: "system"
....

Attachments:
捕获.JPG 35.0 KB
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/a/chromium.org/group/chromium-bugs

To unsubscribe from this group and stop receiving emails from it, send an email to chromium-bugs+***@chromium.org.
c***@googlecode.com
2015-02-02 23:31:40 UTC
Permalink
Comment #23 on issue 448172 by ***@chromium.org:
chrome.proxy.settings.get 'details' parameter in callback is undefined
https://code.google.com/p/chromium/issues/detail?id=448172

This bug was introduced by removing the following lines in
data_reduction_proxy_chrome_configurator.cc:
DataReductionProxyChromeConfigurator::Disable():
- DCHECK(prefs_);
- DictionaryPrefUpdate update(prefs_, prefs::kProxy);
- base::DictionaryValue* dict = update.Get();
- dict->SetString("mode", ProxyModeToString(ProxyPrefs::MODE_SYSTEM));
- dict->SetString("server", "");
- dict->SetString("bypass_list", "");

I confirmed that add it back fixes this issue.

Here is what happened: prior to M40, data reduction proxy was only
implemented on Android and iOS. Since these platforms don't allow the proxy
to be overridden, the only 2 possible values for the proxy preference were
1) data reduction proxy
2) system.
So when data reduction proxy was not enabled,
DataReductionProxyChromeConfigurator would unconditionally set the proxy
pref dictionary to "system".

When data reduction proxy support was added to all platforms, the data
reduction component stopped setting proxy to "system" unconditionally. This
caused the bug since it seems that the default value is either not being
set at all or being cleared by something else.
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/a/chromium.org/group/chromium-bugs

To unsubscribe from this group and stop receiving emails from it, send an email to chromium-bugs+***@chromium.org.
c***@googlecode.com
2015-02-03 06:40:31 UTC
Permalink
Comment #24 on issue 448172 by ***@gmail.com:
chrome.proxy.settings.get 'details' parameter in callback is undefined
https://code.google.com/p/chromium/issues/detail?id=448172

Thanks~. I'm waiting for updates
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/a/chromium.org/group/chromium-bugs

To unsubscribe from this group and stop receiving emails from it, send an email to chromium-bugs+***@chromium.org.
c***@googlecode.com
2015-02-03 16:40:36 UTC
Permalink
Comment #25 on issue 448172 by ***@chromium.org:
chrome.proxy.settings.get 'details' parameter in callback is undefined
https://code.google.com/p/chromium/issues/detail?id=448172

I'm investigating. Will post here when I have an update.
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/a/chromium.org/group/chromium-bugs

To unsubscribe from this group and stop receiving emails from it, send an email to chromium-bugs+***@chromium.org.
c***@googlecode.com
2015-02-03 23:42:18 UTC
Permalink
Updates:
Cc: ***@chromium.org

Comment #26 on issue 448172 by ***@chromium.org:
chrome.proxy.settings.get 'details' parameter in callback is undefined
https://code.google.com/p/chromium/issues/detail?id=448172

The above code was masking another issue, and adding it back is not the
right fix.

Here is whats happening:

When the "proxy" pref is not set, there is no "proxy" entry in persisted
preferences(preferences file). A default entry is added to the in memory
prefs in PrefProxyConfigTrackerImpl::RegisterProfilePrefs:
https://code.google.com/p/chromium/codesearch#chromium/src/chrome/browser/net/pref_proxy_config_tracker_impl.cc&q=ProxyConfigDictionary::CreateSystem&sq=package:chromium&type=cs&l=214

Here is the code the data reduction proxy codebase uses to obtain the
DictionaryValue:
DictionaryPrefUpdate update(prefs_, prefs::kProxy);
base::DictionaryValue* dict = update.Get();

There are 2 issues here:
1) This code users the PersistentPrefStore, so does not find the default
value:
https://code.google.com/p/chromium/codesearch#chromium/src/base/prefs/pref_service.cc&q=user_pref_store_-%3EGetMutableValue&sq=package:chromium&l=447
2) Calling "update.Get()" above creates a new empty DictionaryValue if one
is not found.

Since this empty value does not match the data reduction proxy, the value
is kept unchanged:
https://code.google.com/p/chromium/codesearch#chromium/src/chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_settings.cc&q=ContainsDataReductionProxy%5C(proxy_rules%5C)&sq=package:chromium&l=46&type=cs

Consequently a new empty dictionary for "proxy" preference is persisted.

This issue occurs in the current version.

We need 2 fixes:
1) Empty "proxy" preference entries created because of this bug must be
removed.
2) We should not create any more empty "proxy" preference entries.

Sending out a cl soon.
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/a/chromium.org/group/chromium-bugs

To unsubscribe from this group and stop receiving emails from it, send an email to chromium-bugs+***@chromium.org.
c***@googlecode.com
2015-02-05 17:54:12 UTC
Permalink
Comment #29 on issue 448172 by ***@chromium.org:
chrome.proxy.settings.get 'details' parameter in callback is undefined
https://code.google.com/p/chromium/issues/detail?id=448172

Tested fix in Canary version 42.0.2296.0 canary (64-bit)
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/a/chromium.org/group/chromium-bugs

To unsubscribe from this group and stop receiving emails from it, send an email to chromium-bugs+***@chromium.org.
c***@googlecode.com
2015-02-05 17:57:12 UTC
Permalink
Updates:
Labels: Merge-Requested

Comment #30 on issue 448172 by ***@chromium.org:
chrome.proxy.settings.get 'details' parameter in callback is undefined
https://code.google.com/p/chromium/issues/detail?id=448172

Requesting merge because this bug breaks the extensions API
chrome.proxy.settings.get(..) in production.

As a result of this bug, extension will get an error when they call
chrome.proxy.settings.get(..) instead of getting back the results object.
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/a/chromium.org/group/chromium-bugs

To unsubscribe from this group and stop receiving emails from it, send an email to chromium-bugs+***@chromium.org.
c***@googlecode.com
2015-02-11 00:04:16 UTC
Permalink
Updates:
Labels: -Merge-Approved merge-merged-2272

Comment #36 on issue 448172 by ***@chromium.org:
chrome.proxy.settings.get 'details' parameter in callback is undefined
https://code.google.com/p/chromium/issues/detail?id=448172#c36

The following revision refers to this bug:

https://chromium.googlesource.com/chromium/src.git/+/c0d660124bfaa6a4e0124aac8b5f7895edb11a43

commit c0d660124bfaa6a4e0124aac8b5f7895edb11a43
Author: Scott Little <***@chromium.org>
Date: Tue Feb 10 23:28:37 2015

Correctly clear deprecated "proxy" pref set by data reduction proxy.

Clear empty "proxy" dictionary created by bug in data reduction proxy code.

BUG=448172

Review URL: https://codereview.chromium.org/893333002

Cr-Commit-Position: refs/heads/master@{#314593}
(cherry picked from commit 253dde8ec63036f390dd6315c3e156b0d7ab662b)

Review URL: https://codereview.chromium.org/909013007

Cr-Commit-Position: refs/branch-heads/2272@{#259}
Cr-Branched-From:
827a380cfdb31aa54c8d56e63ce2c3fd8c3ba4d4-refs/heads/master@{#310958}

[modify]
http://crrev.com/c0d660124bfaa6a4e0124aac8b5f7895edb11a43/chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_settings.cc
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/a/chromium.org/group/chromium-bugs

To unsubscribe from this group and stop receiving emails from it, send an email to chromium-bugs+***@chromium.org.
c***@googlecode.com
2015-02-14 01:03:49 UTC
Permalink
Updates:
Status: Fixed

Comment #37 on issue 448172 by ***@chromium.org:
chrome.proxy.settings.get 'details' parameter in callback is undefined
https://code.google.com/p/chromium/issues/detail?id=448172

(No comment was entered for this change.)
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/a/chromium.org/group/chromium-bugs

To unsubscribe from this group and stop receiving emails from it, send an email to chromium-bugs+***@chromium.org.
c***@googlecode.com
2015-02-18 05:57:57 UTC
Permalink
Updates:
Labels: TE-Verified-M41 TE-Verified-41.0.2272.63

Comment #38 on issue 448172 by ***@chromium.org:
chrome.proxy.settings.get 'details' parameter in callback is undefined
https://code.google.com/p/chromium/issues/detail?id=448172

Verified with chrome 41.0.2272.63 beta on Win7, Mac OS X 10.9.5 and Ubuntu
14.04 and issue is fixed. Attached video.

Adding respective 'TE-Verified' labels.

kundaji@, though the 'details' object is logged in the console with its
value and levelOfControl, the first line still shows 'Undefined'. Please
refer screenshot attached. Is this expected?

Attachments:
448172.mp4 1.5 MB
448172.png 18.1 KB
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/a/chromium.org/group/chromium-bugs

To unsubscribe from this group and stop receiving emails from it, send an email to chromium-bugs+***@chromium.org.
c***@googlecode.com
2015-02-18 17:47:18 UTC
Permalink
Comment #39 on issue 448172 by ***@chromium.org:
chrome.proxy.settings.get 'details' parameter in callback is undefined
https://code.google.com/p/chromium/issues/detail?id=448172

hmuppala@: Yes the first 'Undefined' is expected.
chrome.proxy.settings.get(..) does return any value, which is by design.
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/a/chromium.org/group/chromium-bugs

To unsubscribe from this group and stop receiving emails from it, send an email to chromium-bugs+***@chromium.org.
Loading...